[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC][PATCH] Update linux headers against kvm.git
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [RFC][PATCH] Update linux headers against kvm.git |
Date: |
Wed, 11 Jan 2012 20:32:23 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2012-01-11 20:16, Jan Kiszka wrote:
> Hi,
>
> I'm a bit unhappy about the current state of our supposed to be
> automatically sync'ed linux-headers directory in qemu. It has been
> updated several times against undefined kernel trees, means against
> neither a released version nor kvm.git. Now, if I run an update against
> kvm.git + some local change, I get a churn of removals. Same will happen
> when that local change ever goes upstream before the other stuff got
> finally committed.
>
> Alex, it looks to me like this is mostly PPC stuff. Can you comment on
> the origin and workflow? E.g. KVM_CAP_SW_TLB: This has been added half a
> year ago but is not in any Linux release around. Fishy...
>
> I would like to see us avoiding this in the future. Headers update
> patches should mention the source and should not be merged until the ABI
> changes actually made it at least into kvm.git. Same applies, of course,
> to the functional changes related to that ABI. Otherwise we risk quite
> some mess on everyone's side.
>
> Another thing: KVM_CAP_PPC_HIOR has been removed again from the kernel
> and also the header. Is there real free space now or will the cap
> reappear? If there should better be a placeholder, let's add it (to the
> kernel).
>
> Jan
>
Just to underline this, not for merge (yet).
Is it clear that those PPC features will be merged upstream as-is now?
Jan
---8<---
This synchronizes our headers with kvm.git ff92e9b557 - and breaks PPC
build. Fairly telling...
---
linux-headers/asm-powerpc/kvm.h | 37 -------------------------
linux-headers/asm-x86/hyperv.h | 1 +
linux-headers/linux/kvm.h | 54 ++----------------------------------
linux-headers/linux/kvm_para.h | 1 -
linux-headers/linux/virtio_ring.h | 6 ++--
5 files changed, 7 insertions(+), 92 deletions(-)
diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
index fb3fddc..f7727d9 100644
--- a/linux-headers/asm-powerpc/kvm.h
+++ b/linux-headers/asm-powerpc/kvm.h
@@ -292,41 +292,4 @@ struct kvm_allocate_rma {
__u64 rma_size;
};
-struct kvm_book3e_206_tlb_entry {
- __u32 mas8;
- __u32 mas1;
- __u64 mas2;
- __u64 mas7_3;
-};
-
-struct kvm_book3e_206_tlb_params {
- /*
- * For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV:
- *
- * - The number of ways of TLB0 must be a power of two between 2 and
- * 16.
- * - TLB1 must be fully associative.
- * - The size of TLB0 must be a multiple of the number of ways, and
- * the number of sets must be a power of two.
- * - The size of TLB1 may not exceed 64 entries.
- * - TLB0 supports 4 KiB pages.
- * - The page sizes supported by TLB1 are as indicated by
- * TLB1CFG (if MMUCFG[MAVN] = 0) or TLB1PS (if MMUCFG[MAVN] = 1)
- * as returned by KVM_GET_SREGS.
- * - TLB2 and TLB3 are reserved, and their entries in tlb_sizes[]
- * and tlb_ways[] must be zero.
- *
- * tlb_ways[n] = tlb_sizes[n] means the array is fully associative.
- *
- * KVM will adjust TLBnCFG based on the sizes configured here,
- * though arrays greater than 2048 entries will have TLBnCFG[NENTRY]
- * set to zero.
- */
- __u32 tlb_sizes[4];
- __u32 tlb_ways[4];
- __u32 reserved[8];
-};
-
-#define KVM_ONE_REG_PPC_HIOR KVM_ONE_REG_PPC | 0x100
-
#endif /* __LINUX_KVM_POWERPC_H */
diff --git a/linux-headers/asm-x86/hyperv.h b/linux-headers/asm-x86/hyperv.h
index 5df477a..b80420b 100644
--- a/linux-headers/asm-x86/hyperv.h
+++ b/linux-headers/asm-x86/hyperv.h
@@ -189,5 +189,6 @@
#define HV_STATUS_INVALID_HYPERCALL_CODE 2
#define HV_STATUS_INVALID_HYPERCALL_INPUT 3
#define HV_STATUS_INVALID_ALIGNMENT 4
+#define HV_STATUS_INSUFFICIENT_BUFFERS 19
#endif
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index a8761d3..e36ad9a 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -371,6 +371,7 @@ struct kvm_s390_psw {
#define KVM_S390_INT_VIRTIO 0xffff2603u
#define KVM_S390_INT_SERVICE 0xffff2401u
#define KVM_S390_INT_EMERGENCY 0xffff1201u
+#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
struct kvm_s390_interrupt {
__u32 type;
@@ -554,10 +555,9 @@ struct kvm_ppc_pvinfo {
#define KVM_CAP_PPC_SMT 64
#define KVM_CAP_PPC_RMA 65
#define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */
-#define KVM_CAP_PPC_HIOR 67
#define KVM_CAP_PPC_PAPR 68
-#define KVM_CAP_SW_TLB 69
-#define KVM_CAP_ONE_REG 70
+#define KVM_CAP_S390_GMAP 71
+#define KVM_CAP_TSC_DEADLINE_TIMER 72
#ifdef KVM_CAP_IRQ_ROUTING
@@ -637,49 +637,6 @@ struct kvm_clock_data {
__u32 pad[9];
};
-#define KVM_MMU_FSL_BOOKE_NOHV 0
-#define KVM_MMU_FSL_BOOKE_HV 1
-
-struct kvm_config_tlb {
- __u64 params;
- __u64 array;
- __u32 mmu_type;
- __u32 array_len;
-};
-
-struct kvm_dirty_tlb {
- __u64 bitmap;
- __u32 num_dirty;
-};
-
-/* Available with KVM_CAP_ONE_REG */
-
-#define KVM_ONE_REG_GENERIC 0x0000000000000000ULL
-
-/*
- * Architecture specific registers are to be defined in arch headers and
- * ORed with the arch identifier.
- */
-#define KVM_ONE_REG_PPC 0x1000000000000000ULL
-#define KVM_ONE_REG_X86 0x2000000000000000ULL
-#define KVM_ONE_REG_IA64 0x3000000000000000ULL
-#define KVM_ONE_REG_ARM 0x4000000000000000ULL
-#define KVM_ONE_REG_S390 0x5000000000000000ULL
-
-struct kvm_one_reg {
- __u64 id;
- union {
- __u8 reg8;
- __u16 reg16;
- __u32 reg32;
- __u64 reg64;
- __u8 reg128[16];
- __u8 reg256[32];
- __u8 reg512[64];
- __u8 reg1024[128];
- } u;
-};
-
/*
* ioctls for VM fds
*/
@@ -806,11 +763,6 @@ struct kvm_one_reg {
#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct
kvm_create_spapr_tce)
/* Available with KVM_CAP_RMA */
#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
-/* Available with KVM_CAP_SW_TLB */
-#define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
-/* Available with KVM_CAP_ONE_REG */
-#define KVM_GET_ONE_REG _IOWR(KVMIO, 0xab, struct kvm_one_reg)
-#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
diff --git a/linux-headers/linux/kvm_para.h b/linux-headers/linux/kvm_para.h
index b315e27..7bdcf93 100644
--- a/linux-headers/linux/kvm_para.h
+++ b/linux-headers/linux/kvm_para.h
@@ -26,4 +26,3 @@
#include <asm/kvm_para.h>
#endif /* __LINUX_KVM_PARA_H */
-
diff --git a/linux-headers/linux/virtio_ring.h
b/linux-headers/linux/virtio_ring.h
index 78289ee..1b333e2 100644
--- a/linux-headers/linux/virtio_ring.h
+++ b/linux-headers/linux/virtio_ring.h
@@ -135,13 +135,13 @@ static __inline__ void vring_init(struct vring *vr,
unsigned int num, void *p,
vr->num = num;
vr->desc = p;
vr->avail = p + num*sizeof(struct vring_desc);
- vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + align-1)
- & ~(align - 1));
+ vr->used = (void *)(((unsigned long)&vr->avail->ring[num] +
sizeof(__u16)
+ + align-1) & ~(align - 1));
}
static __inline__ unsigned vring_size(unsigned int num, unsigned long align)
{
- return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num)
+ return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (3 + num)
+ align - 1) & ~(align - 1))
+ sizeof(__u16) * 3 + sizeof(struct vring_used_elem) * num;
}
--
1.7.3.4
- Re: [Qemu-devel] State of KVM bits in linux-headers, (continued)
- Re: [Qemu-devel] State of KVM bits in linux-headers, Jan Kiszka, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Anthony Liguori, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Alexander Graf, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Anthony Liguori, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Alexander Graf, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Anthony Liguori, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Alexander Graf, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Avi Kivity, 2012/01/12
- Re: [Qemu-devel] State of KVM bits in linux-headers, Jan Kiszka, 2012/01/11
- Re: [Qemu-devel] State of KVM bits in linux-headers, Gleb Natapov, 2012/01/12
[Qemu-devel] [RFC][PATCH] Update linux headers against kvm.git,
Jan Kiszka <=