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

Reply via email to