staging: hv: Anyone having success?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Has anyone had success insmoding the hv_vmbus driver? The drivers build for me, but insmoding hv_vmbus.ko hangs. I can however get the v2 version of the linux_integration_components from Microsoft (where vmbus is a binary) to work.

It looks like the linux-next driver may not be receiving an interrupt from Hyper-v as vmbus_isr() isn't being called; the 'insmod hv_vmbus.ko hangs until I press ctrl-c, at which point I enter the else statement below (Connection.c)

    /* Wait for the connection response */
    osd_WaitEventWait(msgInfo->WaitEvent);

    list_del(&msgInfo->MsgListEntry);

    /* Check if successful */
    if (msgInfo->Response.VersionResponse.VersionSupported) {
        DPRINT_INFO(VMBUS, "Vmbus connected!!");
        gVmbusConnection.ConnectState = Connected;

    } else {
        DPRINT_ERR(VMBUS, "Vmbus connection failed!!..."
               "current version (%d) not supported",
               VMBUS_REVISION_NUMBER);
        ret = -1;
        goto Cleanup;
    }

To provide more debug info I increased the loglevel in both versions.

Here is the dmesg after building the source from linux-next and trying to insmod hv_vmbus.ko:
[ 3128.596317] [VMBUS_DRV]: vmbus_init() enter
[ 3128.596322] VMBUS_DRV: Vmbus initializing.... current log level 0x1f1f0009 (1f1f,9)
[ 3128.596324] [VMBUS_DRV]: vmbus_bus_init() enter
[ 3128.596326] [VMBUS]: VmbusInitialize() enter
[ 3128.596327] VMBUS: +++++++ Build Date=Sep 28 2009 21:51:28 +++++++
[ 3128.596329] VMBUS: +++++++ Build Description=Version 2.0 +++++++
[ 3128.596331] VMBUS: +++++++ Vmbus supported version = 13 +++++++
[ 3128.596332] VMBUS: +++++++ Vmbus using SINT 2 +++++++
[ 3128.596334] VMBUS: VmbusInitialize() sizeof(VMBUS_CHANNEL_PACKET_PAGE_BUFFER)=280, sizeof(VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER)=288
[ 3128.596337] [VMBUS]: HvInit() enter
[ 3128.596340] VMBUS: Windows hypervisor detected! Retrieving more info...
[ 3128.596344] VMBUS: Vendor ID: Microsoft Hv
[ 3128.596346] VMBUS: Interface ID: Hv#1
[ 3128.596349] VMBUS: OS Build:7600-6.1-16-0.16385
[ 3128.596875] VMBUS: Hypercall page VA=ffffc20000040000, PA=0x21830000
[ 3128.596877] [VMBUS]: HvInit() exit
[ 3128.596878] [VMBUS]: VmbusInitialize() exit
[ 3128.597925] VMBUS_DRV: irq 0x5 vector 0x35
[ 3128.597927] [VMBUS]: VmbusOnDeviceAdd() enter
[ 3128.597928] [VMBUS]: HvSynicInit() enter
[ 3128.597931] VMBUS: SynIC version: 1
[ 3128.597935] VMBUS: HvSynicInit() HV_X64_MSR_SIMP msr set to: 1f8bf001
[ 3128.598549] VMBUS: HvSynicInit() HV_X64_MSR_SIEFP msr set to: 1f8be001
[ 3128.599273] VMBUS: HvSynicInit() HV_X64_MSR_SINT1 msr set to: 20035
[ 3128.599278] [VMBUS]: HvSynicInit() exit
[ 3128.599280] [VMBUS]: VmbusConnect() enter
[ 3128.599314] VMBUS: VmbusConnect() Vmbus connection - interrupt pfn 1f8bd000, monitor1 pfn 371a2000,, monitor2 pfn 371a3000
[ 3128.599316] VMBUS: VmbusConnect() Sending channel initiate msg...
[ 3128.599319] VMBUS: HvDoHypercall() Hypercall <control 5c input phys 3700ba00 virt ffff88003700ba00 output phys 0 virt 0000000000000000 hypercall ffffc20000040000>
[ 3128.599328] VMBUS: HvDoHypercall() Hypercall <return 0>
/* I pressed ctrl-c at this time */
[ 3135.035606] VMBUS: VmbusConnect() ERROR!! Vmbus connection failed!!...current version (13) not supported
[ 3135.036312] [VMBUS]: VmbusConnect() exit
[ 3135.036315] [VMBUS]: VmbusOnDeviceAdd() exit
[ 3135.036317] VMBUS_DRV: vmbus_bus_init() ERROR!! ERROR - Unable to add vmbus root device
[ 3135.037038] [VMBUS_DRV]: vmbus_bus_init() exit
[ 3135.037041] [VMBUS_DRV]: vmbus_init() exit


Here is the dmesg output when using the driver provided by microsoft (w/ vmbus binary) up through vmbus connected:
[  660.464568] [VMBUS_DRV]: vmbus_init() enter
[ 660.464574] VMBUS_DRV: Vmbus initializing.... current log level 0x1f1f0009 (1f1f,9)
[  660.464576] [VMBUS_DRV]: vmbus_bus_init() enter
[  660.464578] VMBUS: +++++++ Build Date=Jun 29 2009 18:39:53 +++++++
[  660.464579] VMBUS: +++++++ Build Description=Version 2.0 +++++++
[  660.464581] VMBUS: +++++++ Vmbus supported version = 13 +++++++
[  660.464583] VMBUS: +++++++ Vmbus using SINT 2 +++++++
[ 660.464585] VMBUS: VmbusInitialize() sizeof(VMBUS_CHANNEL_PACKET_PAGE_BUFFER)=280, sizeof(VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER)=288 [ 660.464589] VMBUS: Windows hypervisor detected! Retrieving more info...
[  660.464593] VMBUS: Vendor ID: Microsoft Hv
[  660.464595] VMBUS: Interface ID: Hv#1
[  660.464598] VMBUS: OS Build:7600-6.1-16-0.16385
[  660.465539] VMBUS: Hypercall page VA=0x00026000, PA=0x218e5000
[  660.466282] VMBUS_DRV: irq 0x5 vector 0x35
[  660.466287] VMBUS: SynIC version: 1
[  660.466292] VMBUS: HvSynicInit() HV_X64_MSR_SIMP msr set to: 218e4001
[ 660.467025] VMBUS: HvSynicInit() HV_X64_MSR_SIEFP msr set to: 21899001
[  660.467753] VMBUS: HvSynicInit() HV_X64_MSR_SINT1 msr set to: 20035
[ 660.467796] VMBUS: VmbusConnect() Vmbus connection - interrupt pfn 21898000, monitor1 pfn 37036000,, monitor2 pfn 37037000
[  660.467798] VMBUS: VmbusConnect() Sending channel initiate msg...
[ 660.467802] VMBUS: HvDoHypercall() Hypercall <control 5c input phys 1f912000 virt ffff88001f912000 output phys 0 virt 0000000000000000 hypercall ffffc20000026000>
[  660.467810] VMBUS: HvDoHypercall() Hypercall <return 0>
[  660.473815] [VMBUS_DRV]: vmbus_isr() enter
[  660.473821] VMBUS: VmbusOnISR() received msg type 1 size 16
[  660.473823] [VMBUS_DRV]: vmbus_isr() exit
[  660.473827] [VMBUS_DRV]: vmbus_msg_dpc() enter
[  660.473831] [VMBUS_DRV]: vmbus_msg_dpc() exit
[  660.473836] VMBUS: VmbusOnChannelMessage() message type 15 size 16
[  660.473841] VMBUS: Vmbus connected!!
....

As I mentioned, it seems there may be a problem with interrupts as we aren't entering vmbus_isr() after the driver issues the hypercall. I tried to debug the code by comparing the dmesg outputs, but once I started looking at HvSynicInit() in Hv.c, I quickly became overwhelmed....

Thanks,
Tim
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux