Skip to contentSkip to conversation

Test with VT-d patches

DISCUSSION [email protected] 3 participants 3 messages Sep 4, 2008 KVM

lore
Share & tools
lore
#0 lore raw

Hello,

I try to explain the current state on my pc.

1) The patch KVM 1/2 was applied with the following change.
The files "drivers/pci/iova.h" and "drivers/pci/intel-iommu.h" already exists. And I get both files rejected.
So I take the headers from the KVM 1/2 Patchfile and use these a "iova.h" and "intel-iommu.h". Kernel compiles without errors.

2) What known bug is in the latest userspace patchfile? (Told by Yang, Sheng)

Quoted 38 lines

Hello,

Quoted 11 lines · * On Wednesday 03 September 2008 14:07:36 [email protected] wrote:

Hi,

i make some more tests with
1) an old APCI1500/PCI card no linux driver support -> so i don't need to unload the module. 2) my second network-card Realtek 10/100 MBit.

Both don't work at all. Only my first gigabit-onboard-network-card starts.

Here the output from userspace/dmesg:

Quoted 6 lines

1) // Applied Micro Circuits Corp. APCI1500 Signal processing controller

Warning: No DNS servers found
Registered host PCI device 03:00.0 ("03:00.0") as guest device 00:03.0
assigned_dev_update_irq: Input/output error
assigned_dev_update_irq: Input/output error

This means the devices shares the irq with some other device in the system. See the "lspci -v" output for details.

Quoted 7 lines

2) // 03:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Registered host PCI device 03:02.0 ("03:02.0") as guest device 00:03.0 assigned_dev_update_irq: Input/output error

[  369.195971] pci 0000:03:02.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[  369.326026] kvm_vm_ioctl_assign_irq: couldn't allocate irq for pv device

Same error.

Quoted 1 line

Sould i update the BIOS if possible/available?

That's not necessary. We don't support assigning devices that share the irq on

Quoted 8 lines

the host with some other device. You can try inserting one device at a time and try different PCI slots.

Quoted 2 lines

Could it be a problem with the already assigned patches? (See the first E-Mail :The VTD [PATCH1/2] seems already be applied. )

No patches have already been applied to any tree. You'll definitely have to apply the 1/2 patch as well.

Ok. On both PCI-Cards (1) APCI1500 Signal processing controller and (2) Realtek NIC the IRQ is shared with my USB-UHCI-Controller.
On this PC there is no PS2-Connector (USB-Mouse/USB-Keyboard).
When I unload the usb module on the host, I can not handle the system anymore.

I can start qemu/kvm remote over a serial-console. But then I cannot use the guest system without keyboard/mouse. (login and so)

"Han, Weidong" told to use IRQF_SHARED in reqeust_irq(). In which code?

Both tests are only made to get an idea how it works with other devices.

My primary efforts are to use my onboard Gigabit with VT-d direct on the Windows guest-system. This device don't share the IRQ with an other device. But I have the problems with:
1) slow down the complete system and generate this Unbalanced IRQ 21 messages.
2) Packet statistic under windows shows on this device no package traffic in live-network. (no ping etc. possible)

Thanks for your hints.

Gregor

#1 lore raw
Quoted 4 lines · [email protected] wrote:

Hello,

I try to explain the current state on my pc.

Quoted 9 lines

1) The patch KVM 1/2 was applied with the following change. The files "drivers/pci/iova.h" and "drivers/pci/intel-iommu.h" already exists. And I get both files rejected.
So I take the headers from the KVM 1/2 Patchfile and use these a "iova.h" and "intel-iommu.h". Kernel compiles without errors.

2) What known bug is in the latest userspace patchfile? (Told by Yang, Sheng)

in add_assigned_device(), you can simply comment out some lines between following #ifdef and #endif as follows.

+#ifdef KVM_CAP_IOMMU
//+ r = kvm_check_extension(kvm_context, KVM_CAP_IOMMU);
//+ if (r)
+ assigned_devices[nr_assigned_devices].dma |=
+ KVM_DEV_ASSIGN_ENABLE_IOMMU;
+
//+ r = get_param_value(dma, sizeof dma, "dma", arg);
//+ if (r && !strncmp(dma, "none", 4)) {
//+ assigned_devices[nr_assigned_devices].dma &=
//+ ~KVM_DEV_ASSIGN_ENABLE_IOMMU;
+ }
+#endif

Randy (Weidong)

Quoted 79 lines
Quoted 44 lines

Hello,

Quoted 13 lines · * On Wednesday 03 September 2008 14:07:36 [email protected] wrote:

Hi,

i make some more tests with
1) an old APCI1500/PCI card no linux driver support -> so i don't need to unload the module. 2) my second network-card Realtek 10/100 MBit.

Both don't work at all. Only my first gigabit-onboard-network-card starts.

Here the output from userspace/dmesg:

Quoted 7 lines

1) // Applied Micro Circuits Corp. APCI1500 Signal processing controller

Warning: No DNS servers found
Registered host PCI device 03:00.0 ("03:00.0") as guest device 00:03.0 assigned_dev_update_irq: Input/output error
assigned_dev_update_irq: Input/output error

This means the devices shares the irq with some other device in the system. See the "lspci -v" output for details.

Quoted 8 lines

2) // 03:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Registered host PCI device 03:02.0 ("03:02.0") as guest device 00:03.0 assigned_dev_update_irq:
Input/output error

[  369.195971] pci 0000:03:02.0: PCI INT A -> GSI 18 (level, low)

-> IRQ 18 [ 369.326026] kvm_vm_ioctl_assign_irq: couldn't allocate irq for pv device

Same error.

Quoted 1 line

Sould i update the BIOS if possible/available?

That's not necessary. We don't support assigning devices that share the irq on

Quoted 8 lines

the host with some other device. You can try inserting one device at a time and try different PCI slots.

Quoted 2 lines

Could it be a problem with the already assigned patches? (See the first E-Mail :The VTD [PATCH1/2] seems already be applied. )

No patches have already been applied to any tree. You'll definitely have to apply the 1/2 patch as well.

Ok. On both PCI-Cards (1) APCI1500 Signal processing controller and
(2) Realtek NIC
the IRQ is shared with my USB-UHCI-Controller.
On this PC there is no PS2-Connector (USB-Mouse/USB-Keyboard). When I unload the usb module on the host, I can not handle the system anymore.

I can start qemu/kvm remote over a serial-console. But then I cannot use the guest system without keyboard/mouse. (login and so)

"Han, Weidong" told to use IRQF_SHARED in reqeust_irq(). In which code?

Both tests are only made to get an idea how it works with other devices.

My primary efforts are to use my onboard Gigabit with VT-d direct on the Windows guest-system. This device don't share the IRQ with an other device. But I have the problems with: 1) slow down the complete system and generate this Unbalanced IRQ 21 messages. 2) Packet statistic under windows shows on this device no package traffic in live-network. (no ping etc. possible)

Thanks for your hints.

Gregor

#2 lore raw
Quoted 5 lines · Weidong
Quoted 4 lines · [email protected] wrote:

Hello,

I try to explain the current state on my pc.

Quoted 9 lines
Quoted 8 lines

1) The patch KVM 1/2 was applied with the following change. The files "drivers/pci/iova.h" and "drivers/pci/intel-iommu.h" already exists. And I get both files rejected.
So I take the headers from the KVM 1/2 Patchfile and use these a "iova.h" and "intel-iommu.h". Kernel compiles without errors.

2) What known bug is in the latest userspace patchfile? (Told by Yang, Sheng)

I think it's mentioned by Ben that userspace patch refer a kvm fd before it was initialized correctly. (patch at 2008-08-26, Hope I don't miss any update on this... )

Quoted 14 lines

in add_assigned_device(), you can simply comment out some lines between following #ifdef and #endif as follows.

+#ifdef KVM_CAP_IOMMU
//+ r = kvm_check_extension(kvm_context, KVM_CAP_IOMMU);
//+ if (r)

(quoted diff) +3 -0
+		assigned_devices[nr_assigned_devices].dma |=
+			KVM_DEV_ASSIGN_ENABLE_IOMMU;
+

//+ r = get_param_value(dma, sizeof dma, "dma", arg);
//+ if (r && !strncmp(dma, "none", 4)) {
//+ assigned_devices[nr_assigned_devices].dma &=
//+ ~KVM_DEV_ASSIGN_ENABLE_IOMMU;

Review

Quoted 2 lines
(quoted diff) +2 -0
+	}
+#endif

Yeah, as this workaround.

Quoted 60 lines

Randy (Weidong)

Quoted 58 lines
Quoted 43 lines

Hello,

Quoted 13 lines · * On Wednesday 03 September 2008 14:07:36 [email protected] wrote:

Hi,

i make some more tests with
1) an old APCI1500/PCI card no linux driver support -> so i don't need to unload the module. 2) my second network-card Realtek 10/100 MBit.

Both don't work at all. Only my first gigabit-onboard-network-card starts.

Here the output from userspace/dmesg:

Quoted 7 lines

1) // Applied Micro Circuits Corp. APCI1500 Signal processing controller

Warning: No DNS servers found
Registered host PCI device 03:00.0 ("03:00.0") as guest device 00:03.0 assigned_dev_update_irq: Input/output error
assigned_dev_update_irq: Input/output error

This means the devices shares the irq with some other device in the system. See the "lspci -v" output for details.

Quoted 8 lines

2) // 03:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Registered host PCI device 03:02.0 ("03:02.0") as guest device 00:03.0 assigned_dev_update_irq:
Input/output error

[  369.195971] pci 0000:03:02.0: PCI INT A -> GSI 18 (level, low)

-> IRQ 18 [ 369.326026] kvm_vm_ioctl_assign_irq: couldn't allocate irq for pv device

Same error.

Quoted 1 line

Sould i update the BIOS if possible/available?

That's not necessary. We don't support assigning devices that share the irq on

Quoted 8 lines

the host with some other device. You can try inserting one device at a time and try different PCI slots.

Quoted 2 lines

Could it be a problem with the already assigned patches? (See the first E-Mail :The VTD [PATCH1/2] seems already be applied. )

No patches have already been applied to any tree. You'll definitely have to apply the 1/2 patch as well.

Ok. On both PCI-Cards (1) APCI1500 Signal processing controller and
(2) Realtek NIC
the IRQ is shared with my USB-UHCI-Controller.
On this PC there is no PS2-Connector (USB-Mouse/USB-Keyboard). When I unload the usb module on the host, I can not handle the system anymore.

Well, another choice is use VNC from anyother machine.

Quoted 6 lines
Quoted 6 lines

I can start qemu/kvm remote over a serial-console. But then I cannot use the guest system without keyboard/mouse. (login and so)

"Han, Weidong" told to use IRQF_SHARED in reqeust_irq(). In which code?

kvm_vm_ioctl_assign_irq() in x86.c. But for you are using keyboard and mouse, I think it would cause chaos? Maybe you can tell USB 2.0 controller apart from USB 1.1, and just unload 2.0 ones. The USB 1.1 is UHCI while 2.0 is EHCI, the drivers can be made as modules.

Quoted 10 lines
Quoted 10 lines

Both tests are only made to get an idea how it works with other devices.

My primary efforts are to use my onboard Gigabit with VT-d direct on the Windows guest-system. This device don't share the IRQ with an other device. But I have the problems with: 1) slow down the complete system and generate this Unbalanced IRQ 21 messages. 2) Packet statistic under windows shows on this device no package traffic in live-network. (no ping etc. possible)

No clue, if you ensure that you've got latest version of patch... I think it was posted by Amit at 2008-08-26.

BTW: Can you try a new Linux guest if possible?

Signature · 2 lines
regards
Yang, Sheng
Quoted 4 lines
Quoted 4 lines

Thanks for your hints.

Gregor