Hide Forgot
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:
Created attachment 569948 [details] dmesg-rhel6u3-20120307.log
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.
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?
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.
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.
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.
Created attachment 571838 [details] [RHEL6.3 PATCH] xen: initialize platform_pci even if xen_emul_unplug=never
Patch(es) available on kernel-2.6.32-257.el6
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
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