Bug 803239

Summary: Call Trace when use netfront NIC on RHEL6.3 HVM guest with xen_emul_unplug=never
Product: Red Hat Enterprise Linux 6 Reporter: Qin Guan <qguan>
Component: kernelAssignee: Igor Mammedov <imammedo>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: bkearney, cduryee, drjones, imammedo, leiwang, lersek, qguan, qwan, rjones, xen-maint, yuzhou
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: xen
Fixed In Version: kernel-2.6.32-257.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 08:34:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 653816    
Attachments:
Description Flags
dmesg-rhel6u3-20120307.log
none
[RHEL6.3 PATCH] xen: initialize platform_pci even if xen_emul_unplug=never none

Description Qin Guan 2012-03-14 09:59:24 UTC
Description of problem:
As the Bug 756307 modified, it will not init the xen platform pci when the kernel option xen_emul_unplug=nerver added.

While, the Call Trace keep printing on the RHEL6.3 guest console when :
a) with option "xen_emul_unplug=nerver" added in kernel cmd line.
b) use NIC with the type of netfront

INFO: task rhsmd:26621 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
rhsmd D 0000000000000000 0 26621 26619 0x00000080
ffff88003df15cf8 0000000000000082 000000023df15ca8 0000000000000000
ffff880000019718 00000037ffffffc8 ffff88000002ab00 0000000000000000
ffff88003df9d058 ffff88003df15fd8 000000000000fac8 ffff88003df9d058
Call Trace:
[<ffffffff810909ae>] ? prepare_to_wait+0x4e/0x80
[<ffffffff81306cb5>] read_reply+0xb5/0x140
[<ffffffff810906c0>] ? autoremove_wake_function+0x0/0x40
[<ffffffff81306e64>] xs_talkv+0xe4/0x1e0
[<ffffffff813070cb>] xs_single+0x4b/0x60
[<ffffffff81307838>] xenbus_read+0x48/0x70
[<ffffffff8130a187>] uuid_show+0x57/0xc0
[<ffffffff81309f9c>] hyp_sysfs_show+0x1c/0x20
[<ffffffff811ee1b1>] sysfs_read_file+0x111/0x1f0
[<ffffffff81179745>] vfs_read+0xb5/0x1a0
[<ffffffff810d4fa2>] ? audit_syscall_entry+0x272/0x2a0
[<ffffffff81179881>] sys_read+0x51/0x90
[<ffffffff8100b0f2>] system_call_fastpath+0x16/0x1b

Version-Release number of selected component (if applicable):
Host:
kernel-xen-2.6.18-308.el5
xen-3.0.3-135.el5
Guest:
2.6.32-250.el6

How reproducible:
100%

Steps to Reproduce:
1. Add option "xen_emul_unplug=nerver" to guest kernel cmd line .
2. Create the guest with NIC type of netfront .
3. Wait for a long time (such as couple of hours), then Call Trace keep printing in on the console at the interval of 120 seconds.

Actual results:
Call Trace printed on the console.

Expected results:
No Call Trace printed on the console.

Additional info:

Comment 1 Qin Guan 2012-03-14 10:01:15 UTC
Created attachment 569948 [details]
dmesg-rhel6u3-20120307.log

Comment 3 Igor Mammedov 2012-03-16 16:17:14 UTC
Could be reproduced faster with command 'cat /sys/hypervisor/uuid' in guest and we have the same trace:

INFO: task cat:9120 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
cat           D 0000000000000000     0  9120   1157 0x00000080
 ffff88010ba9fcf8 0000000000000082 0000000000000000 0000000000000000
 ffff880000025dd8 00000037ffffffc8 ffff88000002eb00 0000000000000000
 ffff8801084c45f8 ffff88010ba9ffd8 000000000000fac8 ffff8801084c45f8
Call Trace:
 [<ffffffff81306cb5>] read_reply+0xb5/0x140
 [<ffffffff810906c0>] ? autoremove_wake_function+0x0/0x40
 [<ffffffff81306e64>] xs_talkv+0xe4/0x1e0
 [<ffffffff813070cb>] xs_single+0x4b/0x60
 [<ffffffff81307838>] xenbus_read+0x48/0x70
 [<ffffffff8130a187>] uuid_show+0x57/0xc0
 [<ffffffff81309f9c>] hyp_sysfs_show+0x1c/0x20
 [<ffffffff811ee1b1>] sysfs_read_file+0x111/0x1f0
 [<ffffffff81179745>] vfs_read+0xb5/0x1a0
 [<ffffffff810d4fa2>] ? audit_syscall_entry+0x272/0x2a0
 [<ffffffff81179881>] sys_read+0x51/0x90
 [<ffffffff8100b0f2>] system_call_fastpath+0x16/0x1b

BTW
 it is not necessary to have netfront nic in config.

Comment 4 Igor Mammedov 2012-03-16 16:24:44 UTC
Upstream a947f0f8f70 sort of "fixes" it. i.e. it returns -EBUSY instead of hanging on read.

Question is if this is suitable for RHEL since initially bug was triggered by rhsmd from subscription-manager.

Bryan,
Is it mandatory for files in /sys/hypervisor be readable and return meaningful values?

Comment 7 James Bowes 2012-03-19 13:48:52 UTC
rhsmd reads /sys/hypervisor/uuid to figure out the guest's virt uuid, so we can do guest/host association, and grant free entitlements as appropriate.

Unless there's another way a xen guest can figure out its virt uuid, having access to /sys/hypervisor is pretty important for us.

Comment 8 Richard W.M. Jones 2012-03-19 14:00:19 UTC
virt-what reads /sys/hypervisor/type (not /sys/hypervisor/uuid).

We've not seen a problem before, and IMHO if reading this file
causes a kernel timeout, then it's a bug in the kernel, but I'm
not sure I have the full picture of what is going on.

Comment 9 RHEL Program Management 2012-03-20 16:10:31 UTC
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux maintenance release. Product Management has 
requested further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed 
products. This request is not yet committed for inclusion in an Update release.

Comment 10 Igor Mammedov 2012-03-21 20:29:10 UTC
Created attachment 571838 [details]
[RHEL6.3 PATCH] xen: initialize platform_pci even if xen_emul_unplug=never

Comment 11 Aristeu Rozanski 2012-03-26 21:23:28 UTC
Patch(es) available on kernel-2.6.32-257.el6

Comment 16 Qixiang Wan 2012-04-26 07:10:51 UTC
Verified with kernel-2.6.32-268.

With the fix in bug 807354 integrated, this bug is fixed, PV guest also works well.

# uname -a
Linux RHEL63x64HVM 2.6.32-268.el6.x86_64 #1 SMP Tue Apr 24 16:27:49 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

# cat /proc/cmdline 
ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM console=tty0 console=ttyS0,115200n8 crashkernel=128M xen_emul_unplug=never

# cat /sys/hypervisor/uuid
da2e69a8-21c6-1d6d-b774-eeb3e5ba4d1f

# cat /sys/hypervisor/type
xen

# virt-what 
xen
xen-hvm

Comment 18 errata-xmlrpc 2012-06-20 08:34:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2012-0862.html