Hi Weidong, Thank you for your answer. I tried to test latest Avi's kvm.git and kvm-userspace.git. but, kvm-userspace fails to compile.
I used the following git repositories: git clone git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm-userspace.git vtd $ ./configure $ make make -C libkvm make[1]: Entering directory `/home/ddk/vtd/libkvm' gcc -m32 -D__i386__ -MMD -MF ./.libkvm.d -g -fomit-frame-pointer -Wall -fno-stack-protector -I /home/ddk/vtd/kernel/include -c -o libkvm.o libkvm.c In file included from libkvm.c:38: libkvm.h:630: warning: 'struct kvm_pit_state' declared inside parameter list libkvm.h:630: warning: its scope is only this definition or declaration, which is probably not what you want libkvm.h:641: warning: 'struct kvm_pit_state' declared inside parameter list gcc -m32 -D__i386__ -MMD -MF ./.libkvm-x86.d -g -fomit-frame-pointer -Wall -fno-stack-protector -I /home/ddk/vtd/kernel/include -c -o libkvm-x86.o libkvm-x86.c In file included from libkvm-x86.c:1: libkvm.h:630: warning: 'struct kvm_pit_state' declared inside parameter list libkvm.h:630: warning: its scope is only this definition or declaration, which is probably not what you want libkvm.h:641: warning: 'struct kvm_pit_state' declared inside parameter list libkvm-x86.c:246: warning: 'struct kvm_pit_state' declared inside parameter list libkvm-x86.c:247: error: conflicting types for 'kvm_get_pit' libkvm.h:630: error: previous declaration of 'kvm_get_pit' was here libkvm-x86.c: In function 'kvm_get_pit': libkvm-x86.c:251: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' libkvm-x86.c:251: error: array type has incomplete element type libkvm-x86.c:251: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' libkvm-x86.c:251: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' libkvm-x86.c: At top level: libkvm-x86.c:259: warning: 'struct kvm_pit_state' declared inside parameter list libkvm-x86.c:260: error: conflicting types for 'kvm_set_pit' libkvm.h:641: error: previous declaration of 'kvm_set_pit' was here libkvm-x86.c: In function 'kvm_set_pit': libkvm-x86.c:264: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' libkvm-x86.c:264: error: array type has incomplete element type libkvm-x86.c:264: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' libkvm-x86.c:264: error: invalid application of 'sizeof' to incomplete type 'struct kvm_pit_state' make[1]: *** [libkvm-x86.o] Error 1 make[1]: Leaving directory `/home/ddk/vtd/libkvm' make: *** [libkvm] Error 2 Any advice or tips will help? Thanks, Kazushi From: "Han, Weidong" <[email protected]> Subject: RE: How to use PCI-passthrough with kvm Date: Thu, 11 Dec 2008 18:26:27 +0800 > It's not related to shared irq. MSI is already supported in KVM, so if the > device has MSI capability, there is no sharing irq issue. > > Can you try latest kvm.git and kvm-userspace.git? At least you are not using > latest kvm-userspace because there is output "BUG: kvm_destroy_phys_mem: > invalid parameters (slot=-1)". In addition, can you try out other device, > such as add-on PCIe NIC or USB? > > Regards, > Weidong > > w1ndoz wrote: > > Hi Weidong, > > > > Thank you for your advice. > > > > The other messages which I found are the following messages which > > KVM outputs: > > BUG: kvm_destroy_phys_mem: invalid parameters (slot=-1) > > BUG: kvm_destroy_phys_mem: invalid parameters (slot=-1) > > > > and, IRQ status is as follows: > > > > /proc/interrupt of the host OS is as follows: > > cat /proc/interrupts > > CPU0 CPU1 > > 0: 45 0 IO-APIC-edge timer > > 1: 1 1 IO-APIC-edge i8042 > > 4: 1 1 IO-APIC-edge > > 9: 0 0 IO-APIC-fasteoi acpi > > 12: 2 2 IO-APIC-edge i8042 > > 14: 8675 8589 IO-APIC-edge ata_piix > > 15: 0 0 IO-APIC-edge ata_piix > > 17: 0 1 IO-APIC-fasteoi uhci_hcd:usb3, > > ehci_hcd:usb7 18: 2201 2200 IO-APIC-fasteoi > > uhci_hcd:usb1, > > uhci_hcd:usb6, pata_marvell > > 19: 43 45 IO-APIC-fasteoi uhci_hcd:usb5, ohci1394 > > 21: 1091 1060 IO-APIC-fasteoi uhci_hcd:usb2, > > ata_piix, eth1 23: 2 2 IO-APIC-fasteoi > > uhci_hcd:usb4, ehci_hcd:usb8 505: 7198 7310 > > PCI-MSI-edge i...@pci:0000:00:02.0 506: 50 53 > > PCI-MSI-edge kvm_assigned_msi_device > > NMI: 0 0 Non-maskable interrupts > > LOC: 87300 87267 Local timer interrupts > > RES: 54424 49773 Rescheduling interrupts > > CAL: 494 446 Function call interrupts > > TLB: 651 625 TLB shootdowns > > SPU: 0 0 Spurious interrupts > > ERR: 0 > > MIS: 0 > > > > and GuestOS is as follows: > > $ cat /proc/interrupts > > CPU0 > > 0: 42779 IO-APIC-edge timer > > 1: 76 IO-APIC-edge i8042 > > 2: 0 XT-PIC-XT cascade > > 4: 1 IO-APIC-edge > > 8: 3 IO-APIC-edge rtc > > 10: 68 IO-APIC-edge eth1 > > 11: 45 IO-APIC-edge 0, eth0 > > 12: 228 IO-APIC-edge i8042 > > 14: 9982 IO-APIC-edge libata > > 15: 740 IO-APIC-edge libata > > NMI: 0 Non-maskable interrupts > > LOC: 42638 Local timer interrupts > > RES: 0 Rescheduling interrupts > > CAL: 0 function call interrupts > > TLB: 0 TLB shootdowns > > TRM: 0 Thermal event interrupts > > SPU: 0 Spurious interrupts > > ERR: 0 > > MIS: 0 > > Note that eth1 is Intel NIC. > > > > Any idea ? > > > > Thanks, > > Kazushi > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
