All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, alex.williamson@redhat.com
Subject: Re: [PATCH] qemu: Update Linux headers
Date: Mon, 15 Oct 2012 15:54:20 -0500	[thread overview]
Message-ID: <87vcebwj5v.fsf@codemonkey.ws> (raw)
In-Reply-To: <20121015201439.23147.54946.stgit@bling.home>

Alex Williamson <alex.williamson@redhat.com> writes:

> Based on v3.7-rc1-3-g29bb4cc

Normally this would go through qemu-kvm/uq/master but since this is from
Linus' tree, it's less of a concern.

Nonetheless, I'd prefer we did it from v3.7-rc1 instead of a random git
snapshot.

Regards,

Anthony Liguori

>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> ---
>
>  Trying to get KVM_IRQFD_FLAG_RESAMPLE and friends for vfio-pci
>
>  linux-headers/asm-x86/kvm.h         |   17 +++++++++++++++++
>  linux-headers/linux/kvm.h           |   25 +++++++++++++++++++++----
>  linux-headers/linux/kvm_para.h      |    6 +++---
>  linux-headers/linux/vfio.h          |    6 +++---
>  linux-headers/linux/virtio_config.h |    6 +++---
>  linux-headers/linux/virtio_ring.h   |    6 +++---
>  6 files changed, 50 insertions(+), 16 deletions(-)
>
> diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
> index 246617e..a65ec29 100644
> --- a/linux-headers/asm-x86/kvm.h
> +++ b/linux-headers/asm-x86/kvm.h
> @@ -9,6 +9,22 @@
>  #include <linux/types.h>
>  #include <linux/ioctl.h>
>  
> +#define DE_VECTOR 0
> +#define DB_VECTOR 1
> +#define BP_VECTOR 3
> +#define OF_VECTOR 4
> +#define BR_VECTOR 5
> +#define UD_VECTOR 6
> +#define NM_VECTOR 7
> +#define DF_VECTOR 8
> +#define TS_VECTOR 10
> +#define NP_VECTOR 11
> +#define SS_VECTOR 12
> +#define GP_VECTOR 13
> +#define PF_VECTOR 14
> +#define MF_VECTOR 16
> +#define MC_VECTOR 18
> +
>  /* Select x86 specific features in <linux/kvm.h> */
>  #define __KVM_HAVE_PIT
>  #define __KVM_HAVE_IOAPIC
> @@ -25,6 +41,7 @@
>  #define __KVM_HAVE_DEBUGREGS
>  #define __KVM_HAVE_XSAVE
>  #define __KVM_HAVE_XCRS
> +#define __KVM_HAVE_READONLY_MEM
>  
>  /* Architectural interrupt line count. */
>  #define KVM_NR_INTERRUPTS 256
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index 4b9e575..81d2feb 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -101,9 +101,13 @@ struct kvm_userspace_memory_region {
>  	__u64 userspace_addr; /* start of the userspace allocated memory */
>  };
>  
> -/* for kvm_memory_region::flags */
> -#define KVM_MEM_LOG_DIRTY_PAGES  1UL
> -#define KVM_MEMSLOT_INVALID      (1UL << 1)
> +/*
> + * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace,
> + * other bits are reserved for kvm internal use which are defined in
> + * include/linux/kvm_host.h.
> + */
> +#define KVM_MEM_LOG_DIRTY_PAGES	(1UL << 0)
> +#define KVM_MEM_READONLY	(1UL << 1)
>  
>  /* for KVM_IRQ_LINE */
>  struct kvm_irq_level {
> @@ -618,6 +622,10 @@ struct kvm_ppc_smmu_info {
>  #define KVM_CAP_PPC_GET_SMMU_INFO 78
>  #define KVM_CAP_S390_COW 79
>  #define KVM_CAP_PPC_ALLOC_HTAB 80
> +#ifdef __KVM_HAVE_READONLY_MEM
> +#define KVM_CAP_READONLY_MEM 81
> +#endif
> +#define KVM_CAP_IRQFD_RESAMPLE 82
>  
>  #ifdef KVM_CAP_IRQ_ROUTING
>  
> @@ -683,12 +691,21 @@ struct kvm_xen_hvm_config {
>  #endif
>  
>  #define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
> +/*
> + * Available with KVM_CAP_IRQFD_RESAMPLE
> + *
> + * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
> + * the irqfd to operate in resampling mode for level triggered interrupt
> + * emlation.  See Documentation/virtual/kvm/api.txt.
> + */
> +#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
>  
>  struct kvm_irqfd {
>  	__u32 fd;
>  	__u32 gsi;
>  	__u32 flags;
> -	__u8  pad[20];
> +	__u32 resamplefd;
> +	__u8  pad[16];
>  };
>  
>  struct kvm_clock_data {
> diff --git a/linux-headers/linux/kvm_para.h b/linux-headers/linux/kvm_para.h
> index 7bdcf93..cea2c5c 100644
> --- a/linux-headers/linux/kvm_para.h
> +++ b/linux-headers/linux/kvm_para.h
> @@ -1,5 +1,5 @@
> -#ifndef __LINUX_KVM_PARA_H
> -#define __LINUX_KVM_PARA_H
> +#ifndef _UAPI__LINUX_KVM_PARA_H
> +#define _UAPI__LINUX_KVM_PARA_H
>  
>  /*
>   * This header file provides a method for making a hypercall to the host
> @@ -25,4 +25,4 @@
>   */
>  #include <asm/kvm_para.h>
>  
> -#endif /* __LINUX_KVM_PARA_H */
> +#endif /* _UAPI__LINUX_KVM_PARA_H */
> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
> index f787b72..4758d1b 100644
> --- a/linux-headers/linux/vfio.h
> +++ b/linux-headers/linux/vfio.h
> @@ -8,8 +8,8 @@
>   * it under the terms of the GNU General Public License version 2 as
>   * published by the Free Software Foundation.
>   */
> -#ifndef VFIO_H
> -#define VFIO_H
> +#ifndef _UAPIVFIO_H
> +#define _UAPIVFIO_H
>  
>  #include <linux/types.h>
>  #include <linux/ioctl.h>
> @@ -365,4 +365,4 @@ struct vfio_iommu_type1_dma_unmap {
>  
>  #define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14)
>  
> -#endif /* VFIO_H */
> +#endif /* _UAPIVFIO_H */
> diff --git a/linux-headers/linux/virtio_config.h b/linux-headers/linux/virtio_config.h
> index 4f51d8f..b7cda39 100644
> --- a/linux-headers/linux/virtio_config.h
> +++ b/linux-headers/linux/virtio_config.h
> @@ -1,5 +1,5 @@
> -#ifndef _LINUX_VIRTIO_CONFIG_H
> -#define _LINUX_VIRTIO_CONFIG_H
> +#ifndef _UAPI_LINUX_VIRTIO_CONFIG_H
> +#define _UAPI_LINUX_VIRTIO_CONFIG_H
>  /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
>   * anyone can use the definitions to implement compatible drivers/servers.
>   *
> @@ -51,4 +51,4 @@
>   * suppressed them? */
>  #define VIRTIO_F_NOTIFY_ON_EMPTY	24
>  
> -#endif /* _LINUX_VIRTIO_CONFIG_H */
> +#endif /* _UAPI_LINUX_VIRTIO_CONFIG_H */
> diff --git a/linux-headers/linux/virtio_ring.h b/linux-headers/linux/virtio_ring.h
> index 1b333e2..921694a 100644
> --- a/linux-headers/linux/virtio_ring.h
> +++ b/linux-headers/linux/virtio_ring.h
> @@ -1,5 +1,5 @@
> -#ifndef _LINUX_VIRTIO_RING_H
> -#define _LINUX_VIRTIO_RING_H
> +#ifndef _UAPI_LINUX_VIRTIO_RING_H
> +#define _UAPI_LINUX_VIRTIO_RING_H
>  /* An interface for efficient virtio implementation, currently for use by KVM
>   * and lguest, but hopefully others soon.  Do NOT change this since it will
>   * break existing servers and clients.
> @@ -160,4 +160,4 @@ static __inline__ int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old
>  	return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old);
>  }
>  
> -#endif /* _LINUX_VIRTIO_RING_H */
> +#endif /* _UAPI_LINUX_VIRTIO_RING_H */

WARNING: multiple messages have this Message-ID (diff)
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [PATCH] qemu: Update Linux headers
Date: Mon, 15 Oct 2012 15:54:20 -0500	[thread overview]
Message-ID: <87vcebwj5v.fsf@codemonkey.ws> (raw)
In-Reply-To: <20121015201439.23147.54946.stgit@bling.home>

Alex Williamson <alex.williamson@redhat.com> writes:

> Based on v3.7-rc1-3-g29bb4cc

Normally this would go through qemu-kvm/uq/master but since this is from
Linus' tree, it's less of a concern.

Nonetheless, I'd prefer we did it from v3.7-rc1 instead of a random git
snapshot.

Regards,

Anthony Liguori

>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> ---
>
>  Trying to get KVM_IRQFD_FLAG_RESAMPLE and friends for vfio-pci
>
>  linux-headers/asm-x86/kvm.h         |   17 +++++++++++++++++
>  linux-headers/linux/kvm.h           |   25 +++++++++++++++++++++----
>  linux-headers/linux/kvm_para.h      |    6 +++---
>  linux-headers/linux/vfio.h          |    6 +++---
>  linux-headers/linux/virtio_config.h |    6 +++---
>  linux-headers/linux/virtio_ring.h   |    6 +++---
>  6 files changed, 50 insertions(+), 16 deletions(-)
>
> diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
> index 246617e..a65ec29 100644
> --- a/linux-headers/asm-x86/kvm.h
> +++ b/linux-headers/asm-x86/kvm.h
> @@ -9,6 +9,22 @@
>  #include <linux/types.h>
>  #include <linux/ioctl.h>
>  
> +#define DE_VECTOR 0
> +#define DB_VECTOR 1
> +#define BP_VECTOR 3
> +#define OF_VECTOR 4
> +#define BR_VECTOR 5
> +#define UD_VECTOR 6
> +#define NM_VECTOR 7
> +#define DF_VECTOR 8
> +#define TS_VECTOR 10
> +#define NP_VECTOR 11
> +#define SS_VECTOR 12
> +#define GP_VECTOR 13
> +#define PF_VECTOR 14
> +#define MF_VECTOR 16
> +#define MC_VECTOR 18
> +
>  /* Select x86 specific features in <linux/kvm.h> */
>  #define __KVM_HAVE_PIT
>  #define __KVM_HAVE_IOAPIC
> @@ -25,6 +41,7 @@
>  #define __KVM_HAVE_DEBUGREGS
>  #define __KVM_HAVE_XSAVE
>  #define __KVM_HAVE_XCRS
> +#define __KVM_HAVE_READONLY_MEM
>  
>  /* Architectural interrupt line count. */
>  #define KVM_NR_INTERRUPTS 256
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index 4b9e575..81d2feb 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -101,9 +101,13 @@ struct kvm_userspace_memory_region {
>  	__u64 userspace_addr; /* start of the userspace allocated memory */
>  };
>  
> -/* for kvm_memory_region::flags */
> -#define KVM_MEM_LOG_DIRTY_PAGES  1UL
> -#define KVM_MEMSLOT_INVALID      (1UL << 1)
> +/*
> + * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace,
> + * other bits are reserved for kvm internal use which are defined in
> + * include/linux/kvm_host.h.
> + */
> +#define KVM_MEM_LOG_DIRTY_PAGES	(1UL << 0)
> +#define KVM_MEM_READONLY	(1UL << 1)
>  
>  /* for KVM_IRQ_LINE */
>  struct kvm_irq_level {
> @@ -618,6 +622,10 @@ struct kvm_ppc_smmu_info {
>  #define KVM_CAP_PPC_GET_SMMU_INFO 78
>  #define KVM_CAP_S390_COW 79
>  #define KVM_CAP_PPC_ALLOC_HTAB 80
> +#ifdef __KVM_HAVE_READONLY_MEM
> +#define KVM_CAP_READONLY_MEM 81
> +#endif
> +#define KVM_CAP_IRQFD_RESAMPLE 82
>  
>  #ifdef KVM_CAP_IRQ_ROUTING
>  
> @@ -683,12 +691,21 @@ struct kvm_xen_hvm_config {
>  #endif
>  
>  #define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
> +/*
> + * Available with KVM_CAP_IRQFD_RESAMPLE
> + *
> + * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
> + * the irqfd to operate in resampling mode for level triggered interrupt
> + * emlation.  See Documentation/virtual/kvm/api.txt.
> + */
> +#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
>  
>  struct kvm_irqfd {
>  	__u32 fd;
>  	__u32 gsi;
>  	__u32 flags;
> -	__u8  pad[20];
> +	__u32 resamplefd;
> +	__u8  pad[16];
>  };
>  
>  struct kvm_clock_data {
> diff --git a/linux-headers/linux/kvm_para.h b/linux-headers/linux/kvm_para.h
> index 7bdcf93..cea2c5c 100644
> --- a/linux-headers/linux/kvm_para.h
> +++ b/linux-headers/linux/kvm_para.h
> @@ -1,5 +1,5 @@
> -#ifndef __LINUX_KVM_PARA_H
> -#define __LINUX_KVM_PARA_H
> +#ifndef _UAPI__LINUX_KVM_PARA_H
> +#define _UAPI__LINUX_KVM_PARA_H
>  
>  /*
>   * This header file provides a method for making a hypercall to the host
> @@ -25,4 +25,4 @@
>   */
>  #include <asm/kvm_para.h>
>  
> -#endif /* __LINUX_KVM_PARA_H */
> +#endif /* _UAPI__LINUX_KVM_PARA_H */
> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
> index f787b72..4758d1b 100644
> --- a/linux-headers/linux/vfio.h
> +++ b/linux-headers/linux/vfio.h
> @@ -8,8 +8,8 @@
>   * it under the terms of the GNU General Public License version 2 as
>   * published by the Free Software Foundation.
>   */
> -#ifndef VFIO_H
> -#define VFIO_H
> +#ifndef _UAPIVFIO_H
> +#define _UAPIVFIO_H
>  
>  #include <linux/types.h>
>  #include <linux/ioctl.h>
> @@ -365,4 +365,4 @@ struct vfio_iommu_type1_dma_unmap {
>  
>  #define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14)
>  
> -#endif /* VFIO_H */
> +#endif /* _UAPIVFIO_H */
> diff --git a/linux-headers/linux/virtio_config.h b/linux-headers/linux/virtio_config.h
> index 4f51d8f..b7cda39 100644
> --- a/linux-headers/linux/virtio_config.h
> +++ b/linux-headers/linux/virtio_config.h
> @@ -1,5 +1,5 @@
> -#ifndef _LINUX_VIRTIO_CONFIG_H
> -#define _LINUX_VIRTIO_CONFIG_H
> +#ifndef _UAPI_LINUX_VIRTIO_CONFIG_H
> +#define _UAPI_LINUX_VIRTIO_CONFIG_H
>  /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
>   * anyone can use the definitions to implement compatible drivers/servers.
>   *
> @@ -51,4 +51,4 @@
>   * suppressed them? */
>  #define VIRTIO_F_NOTIFY_ON_EMPTY	24
>  
> -#endif /* _LINUX_VIRTIO_CONFIG_H */
> +#endif /* _UAPI_LINUX_VIRTIO_CONFIG_H */
> diff --git a/linux-headers/linux/virtio_ring.h b/linux-headers/linux/virtio_ring.h
> index 1b333e2..921694a 100644
> --- a/linux-headers/linux/virtio_ring.h
> +++ b/linux-headers/linux/virtio_ring.h
> @@ -1,5 +1,5 @@
> -#ifndef _LINUX_VIRTIO_RING_H
> -#define _LINUX_VIRTIO_RING_H
> +#ifndef _UAPI_LINUX_VIRTIO_RING_H
> +#define _UAPI_LINUX_VIRTIO_RING_H
>  /* An interface for efficient virtio implementation, currently for use by KVM
>   * and lguest, but hopefully others soon.  Do NOT change this since it will
>   * break existing servers and clients.
> @@ -160,4 +160,4 @@ static __inline__ int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old
>  	return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old);
>  }
>  
> -#endif /* _LINUX_VIRTIO_RING_H */
> +#endif /* _UAPI_LINUX_VIRTIO_RING_H */

  reply	other threads:[~2012-10-15 20:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-15 20:15 [PATCH] qemu: Update Linux headers Alex Williamson
2012-10-15 20:15 ` [Qemu-devel] " Alex Williamson
2012-10-15 20:54 ` Anthony Liguori [this message]
2012-10-15 20:54   ` Anthony Liguori
2012-10-15 21:04   ` Alex Williamson
2012-10-15 21:04     ` [Qemu-devel] " Alex Williamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vcebwj5v.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=alex.williamson@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.