I think you need sync with kernel code:
$ ./configure
$ cd kernel
$ make sync LINUX=../../kvm -- kvm kernel directory
$ cd ..
$ make
$ make install
BTW, you should also need following patch to pass compilation.
---
kernel/x86/external-module-compat.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/x86/external-module-compat.h
b/kernel/x86/external-module-compat.h
index b5e11e2..2f16ca7 100644
--- a/kernel/x86/external-module-compat.h
+++ b/kernel/x86/external-module-compat.h
@@ -335,7 +335,7 @@ struct kvm_desc_ptr {
#define FEATURE_CONTROL_VMXON_ENABLED (1<<2)
#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
struct mtrr_var_range {
u32 base_lo;
--
1.5.1
w1ndoz wrote:
> 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