My question is related to the Linux integration components version 2. My current environment is MS Hyper-V 2008 hosting a multitude of CentOS VMs (yes, I realize CentOS is not an officially supported distro). The VM I'm seeing this problem with is running CentOS 5.4 kernel 2.6.18-167-11.1.el5 using LVM. When I initially created the machine, I neglected to remove the uneeded SCSI controller at first but subsequently pulled it. I'm not positive it's relevant, but one of the errors is definitely related to STORVSC.
Anyway, I'm not sure whether anyone can assist in debugging this, but here's my dmesg output:
[deadlines@vlad ~]# dmesg | grep ERROR BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_2 (ffff81001ec10488) on driver blkvsc (-16)... BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_5 (ffff81001f29a488) on driver blkvsc (-16)... VMBUS_DRV: vmbus_child_device_register() ERROR!! unable to register child device (ffff81001f29a488) (517406016) VMBUS: VmbusChannelProcessOffer() ERROR!! unable to add child device object (relid 2) BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 STORVSC: StorVscOnChannelCallback() ERROR!! unable to get stor device...device being destroyed? VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_6 (ffff81001f29a488) on driver blkvsc (-16)... VMBUS_DRV: vmbus_child_device_register() ERROR!! unable to register child device (ffff81001f29a488) (518192448) VMBUS: VmbusChannelProcessOffer() ERROR!! unable to add child device object (relid 2)
The Linux IC drivers and modules installed correctly using the setup.pl script, although I did get a warning related to an unused variable. Here's the content of that:
[deadlines@vlad linux_ic]# cat drvinstall.err Building modules, stage 2. WARNING: could not find /opt/linux_ic/drivers/dist/vmbus/../hv/vmbus/.vmbus.x86_64.cmd for /opt/linux_ic/drivers/dist/vmbus/../hv/vmbus/vmbus.x86_64 /opt/linux_ic/drivers/dist/blkvsc/blkvsc_drv.c: In function blkvsc_ioctl: /opt/linux_ic/drivers/dist/blkvsc/blkvsc_drv.c:1490: warning: unused variable blkdev Building modules, stage 2. WARNING: could not find /opt/linux_ic/drivers/dist/blkvsc/../hv/blkvsc/.blkvsc.x86_64.cmd for /opt/linux_ic/drivers/dist/blkvsc/../hv/blkvsc/blkvsc.x86_64 Building modules, stage 2. WARNING: could not find /opt/linux_ic/drivers/dist/storvsc/../hv/storvsc/.storvsc.x86_64.cmd for /opt/linux_ic/drivers/dist/storvsc/../hv/storvsc/storvsc.x86_64 Building modules, stage 2. WARNING: could not find /opt/linux_ic/drivers/dist/netvsc/../hv/netvsc/.netvsc.x86_64.cmd for /opt/linux_ic/drivers/dist/netvsc/../hv/netvsc/netvsc.x86_64
The drivers seem to be loading properly for my IDE drive, but these strange probe errors persist during boot. Is there any way to view/modify the list of GUIDs the VMBUS or BLKSVC probes use to enumerate devices?
Yes, I have tried to install them a couple of times, as for my environment...
From the original post:
"The VM I'm seeing this problem with is running CentOS 5.4 kernel 2.6.18-167-11.1.el5 using LVM."
The strange thing is, the drivers do seem to have installed and loading, but the probes seem to be searching for additional, non-existent GUIDs during the boot process. At least I *think* that is what's happening.
As you can see, the vmbus seems to be loaded and running.
Here's a more complete picture of the entire loading process for the ICs during boot:
VMBUS_DRV: Vmbus initializing.... current log level 0x1f1f0006 (1f1f,6) VMBUS: +++++++ Build Date=Jun 29 2009 18:39:53 +++++++ VMBUS: +++++++ Build Description=Version 2.0 +++++++ VMBUS: +++++++ Vmbus supported version = 13 +++++++ VMBUS: +++++++ Vmbus using SINT 2 +++++++ VMBUS: Windows hypervisor detected! Retrieving more info... VMBUS: Vendor ID: Microsoft Hv VMBUS: Interface ID: Hv#1 VMBUS: OS Build:6001-6.0-18-0.18016 VMBUS: Hypercall page VA=0x00004000, PA=0x1ed05000 VMBUS_DRV: irq 0x5 vector 0x25 VMBUS: SynIC version: 1 VMBUS: Vmbus connected!! VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={c5295816-f63a-4d5f-8d1a4daf999ca185} VMBUS: Channel offer notification - child relid 1 monitor id 0 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000000-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 2 monitor id 1 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000001-0000-8899-0000000000000000} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: child device (ffff81001ec10888) registered VMBUS: Channel offer notification - child relid 3 monitor id 0 allocated 0, type {cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} instance {58f75a6d-d949-4320-99e1a2a2576d581c} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: child device (ffff81001ec10488) registered VMBUS: Channel offer notification - child relid 5 monitor id 2 allocated 1, type {f8615163-df3e-46c5-913ff2d2f965ed0e} instance {e4a858ad-c43d-4b7b-8275347baf70c29c} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} VMBUS_DRV: child device (ffff81001ec10088) registered VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={f8615163-df3e-46c5-913ff2d2f965ed0e} VMBUS_DRV: child device (ffff81001f29ac88) registered BLKVSC_DRV: Blkvsc initializing.... BLKVSC: max io outstd 226 VMBUS_DRV: child driver (ffffffff881ab120) registering - name blkvsc VMBUS_DRV: device object (ffff81001ec10af0) set to driver object (ffffffff881ab278) VMBUS: channel <ffff81001ec9fe00> open success!! STORVSC: BEGIN_INITIALIZATION_OPERATION... STORVSC: QUERY_PROTOCOL_VERSION_OPERATION... STORVSC: QUERY_PROPERTIES_OPERATION... STORVSC: END_INITIALIZATION_OPERATION... STORVSC: **** storage channel up and running!! **** BLKVSC_DRV: blkvsc registered for major 3!! hda: hda1 hda2 BLKVSC_DRV: hda added!! capacity 125829120 sector_size 512 VMBUS_DRV: device object (ffff81001ec106f0) set to driver object (ffffffff881ab278) VMBUS: channel <ffff81001ec9f800> open success!! STORVSC: BEGIN_INITIALIZATION_OPERATION... STORVSC: QUERY_PROTOCOL_VERSION_OPERATION... STORVSC: QUERY_PROPERTIES_OPERATION... STORVSC: END_INITIALIZATION_OPERATION... STORVSC: **** storage channel up and running!! **** register_blkdev: cannot get major 22 for ide BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 STORVSC: disabling storage device (ffff81001ec96680)...
STORVSC: removing storage device (ffff81001ec96680)... STORVSC: storage device (ffff81001ec96680) safe to remove VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_2 (ffff81001ec10488) on driver blkvsc (-16)... blkvsc: probe of vmbus_0_2 failed with error -16 VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS: Channel offer notification - child relid 1 monitor id 0 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000000-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 2 monitor id 1 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000001-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 3 monitor id 0 allocated 0, type {cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} instance {58f75a6d-d949-4320-99e1a2a2576d581c} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: device object (ffff81001f29a6f0) set to driver object (ffffffff881ab278) VMBUS: Channel offer notification - child relid 5 monitor id 2 allocated 1, type {f8615163-df3e-46c5-913ff2d2f965ed0e} instance {e4a858ad-c43d-4b7b-8275347baf70c29c} VMBUS: channel <ffff81001ed29400> open success!! STORVSC_DRV: Storvsc initializing.... STORVSC: max io 107, currently 64
STORVSC_DRV: request extension size 72, max outstanding reqs 107 VMBUS_DRV: child driver (ffffffff881bd300) registering - name storvsc VMBUS: Channel offer notification - child relid 1 monitor id 0 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000000-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 2 monitor id 1 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000001-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 3 monitor id 0 allocated 0, type {cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} instance {58f75a6d-d949-4320-99e1a2a2576d581c} VMBUS: Channel offer notification - child relid 5 monitor id 2 allocated 1, type {f8615163-df3e-46c5-913ff2d2f965ed0e} instance {e4a858ad-c43d-4b7b-8275347baf70c29c} STORVSC: BEGIN_INITIALIZATION_OPERATION... STORVSC: QUERY_PROTOCOL_VERSION_OPERATION... STORVSC: QUERY_PROPERTIES_OPERATION... STORVSC: END_INITIALIZATION_OPERATION... STORVSC: **** storage channel up and running!! **** register_blkdev: cannot get major 22 for ide BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 STORVSC: disabling storage device (ffff81001ec96580)... STORVSC: removing storage device (ffff81001ec96580)... STORVSC: storage device (ffff81001ec96580) safe to remove VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_5 (ffff81001f29a488) on driver blkvsc (-16)... blkvsc: probe of vmbus_0_5 failed with error -16 VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: vmbus_child_device_register() ERROR!! unable to register child device (ffff81001f29a488) (517406016) VMBUS: VmbusChannelProcessOffer() ERROR!! unable to add child device object (relid 2) NETVSC_DRV: Netvsc initializing.... VMBUS_DRV: child driver (ffffffff881d0d00) registering - name netvsc VMBUS_DRV: device object (ffff81001f29aef0) set to driver object (ffffffff881d0e58) VMBUS: channel <ffff81001ec9f400> open success!! NETVSC: *** NetVSC channel opened successfully! *** NETVSC: Sending NvspMessageTypeInit... NETVSC: NvspMessageTypeInit status(1) max mdl chain (34) NETVSC: Sending NvspMessage1TypeSendNdisVersion... NETVSC: Establishing receive buffer's GPADL... NETVSC: Sending NvspMessage1TypeSendReceiveBuffer... NETVSC: Receive sections info (count 1, offset 0, endoffset 1048576, suballoc size 2048, num suballocs 512) NETVSC: Establishing send buffer's GPADL... NETVSC: Sending NvspMessage1TypeSendSendBuffer... NETVSC: *** NetVSC channel handshake result - 0 *** NETVSC: Device 0xffff81001ed00f40 mac addr 00155d173c1c NETVSC: Device 0xffff81001ed00f40 link state up VMBUS: Channel offer notification - child relid 1 monitor id 0 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000000-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 2 monitor id 1 allocated 1, type {32412632-86cb-44a2-9b5c50d1417354f5} instance {00000001-0000-8899-0000000000000000} VMBUS: Channel offer notification - child relid 3 monitor id 0 allocated 0, type {cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} instance {58f75a6d-d949-4320-99e1a2a2576d581c} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: device object (ffff81001f29a6f0) set to driver object (ffffffff881ab278) VMBUS: Channel offer notification - child relid 5 monitor id 2 allocated 1, type {f8615163-df3e-46c5-913ff2d2f965ed0e} instance {e4a858ad-c43d-4b7b-8275347baf70c29c} VMBUS: channel <ffff81001ed5ca00> open success!! STORVSC: BEGIN_INITIALIZATION_OPERATION... STORVSC: QUERY_PROTOCOL_VERSION_OPERATION... STORVSC: QUERY_PROPERTIES_OPERATION... STORVSC: END_INITIALIZATION_OPERATION... STORVSC: **** storage channel up and running!! **** register_blkdev: cannot get major 22 for ide BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16 STORVSC: disabling storage device (ffff81001ed5b980)... STORVSC: removing storage device (ffff81001ed5b980)... STORVSC: storage device (ffff81001ed5b980) safe to remove STORVSC: StorVscOnChannelCallback() ERROR!! unable to get stor device...device being destroyed? VMBUS_DRV: vmbus_probe() ERROR!! probe() failed for device vmbus_0_6 (ffff81001f29a488) on driver blkvsc (-16)... blkvsc: probe of vmbus_0_6 failed with error -16 VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: vmbus_child_device_register() ERROR!! unable to register child device (ffff81001f29a488) (518192448) VMBUS: VmbusChannelProcessOffer() ERROR!! unable to add child device object (relid 2) VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={f8615163-df3e-46c5-913ff2d2f965ed0e} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={cfa8b69e-5b4a-4cc0-b98b8ba1a1f3f95a} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={32412632-86cb-44a2-9b5c50d1417354f5} VMBUS_DRV: generating uevent - VMBUS_DEVICE_CLASS_GUID={c5295816-f63a-4d5f-8d1a4daf999ca185}
I'm pretty sure CentOS 5.4 and the Linux ICs are known to not play nicely at the kernel version I'm running, but thought I'd give it a shot anyways. Figured I'd throw this out here just to see if anyone has run into similar issues or have an idea on how it might be corrected.
Thanks for the feedback Matt, this is definitely curious. I'm actually using the IDE controller for my disk as well, which is why this seems so odd to me. From what I've been reading the STORVSC module is for SCSI controllers, which then begs the question why is it loading it at all?
It seems kind of silly to me that the Linux ICs are an all or nothing scenario, that is you have no granularity over what modules are installed. And yeah, it's definitely not "officially supported" but then again we aren't paying anything to post here so it's not like we're seeking "official" support... hopefully trying to open a discussion in an open forum like this will be just fine. I'm not sure how much traction we'll get here, but figure it's worth trying.
Thanks Brian, adding the, "ide0=noprobe" & "ide1=noprobe" options to the kernel fixed the issue for me. The vmbus drivers script adds the, "hda=noprobe" and "hdb=noprobe" commands automatically, but the ide options need to be added manually.