From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45353) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XK0ef-0008CB-A7 for qemu-devel@nongnu.org; Wed, 20 Aug 2014 03:50:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XK0eZ-0003RT-17 for qemu-devel@nongnu.org; Wed, 20 Aug 2014 03:50:01 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:37946) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XK0eY-0003RH-Rg for qemu-devel@nongnu.org; Wed, 20 Aug 2014 03:49:54 -0400 Received: by mail-pa0-f45.google.com with SMTP id eu11so11774865pac.18 for ; Wed, 20 Aug 2014 00:49:48 -0700 (PDT) Message-ID: <53F45312.2080808@ozlabs.ru> Date: Wed, 20 Aug 2014 17:49:38 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1408097555-28126-1-git-send-email-aik@ozlabs.ru> <1408097555-28126-11-git-send-email-aik@ozlabs.ru> <1408383765.9800.430.camel@ul30vt.home> In-Reply-To: <1408383765.9800.430.camel@ul30vt.home> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v2 10/13] linux headers update for DDW List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex Williamson Cc: David Gibson , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Gavin Shan , Alexander Graf On 08/19/2014 03:42 AM, Alex Williamson wrote: > On Fri, 2014-08-15 at 20:12 +1000, Alexey Kardashevskiy wrote: >> Since the changes are not in upstream yet, no tag or branch is specified here. >> >> Signed-off-by: Alexey Kardashevskiy >> --- >> linux-headers/linux/vfio.h | 37 ++++++++++++++++++++++++++++++++++++- >> 1 file changed, 36 insertions(+), 1 deletion(-) >> >> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h >> index 26c218e..f0aa97d 100644 >> --- a/linux-headers/linux/vfio.h >> +++ b/linux-headers/linux/vfio.h >> @@ -448,13 +448,48 @@ struct vfio_iommu_type1_dma_unmap { >> */ >> struct vfio_iommu_spapr_tce_info { >> __u32 argsz; >> - __u32 flags; /* reserved for future use */ >> + __u32 flags; >> +#define VFIO_IOMMU_SPAPR_TCE_FLAG_DDW 1 /* Support dynamic windows */ >> __u32 dma32_window_start; /* 32 bit window start (bytes) */ >> __u32 dma32_window_size; /* 32 bit window size (bytes) */ >> }; >> >> #define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) >> >> +/* >> + * Dynamic DMA windows >> + */ >> +struct vfio_iommu_spapr_tce_query { >> + __u32 argsz; >> + /* out */ >> + __u32 windows_available; >> + __u32 page_size_mask; >> +}; > > Why do we need a new ioctl for this vs extending tce_info to include it? > That's sort of the point of including argsz and flags in the ioctl. It is not actual now but I can imagine that these numbers may change depending on multiple calls of create()/remove(). > >> +#define VFIO_IOMMU_SPAPR_TCE_QUERY _IO(VFIO_TYPE, VFIO_BASE + 17) >> + >> +struct vfio_iommu_spapr_tce_create { >> + __u32 argsz; >> + /* in */ >> + __u32 page_shift; >> + __u32 window_shift; >> + /* out */ >> + __u64 start_addr; >> + >> +}; >> +#define VFIO_IOMMU_SPAPR_TCE_CREATE _IO(VFIO_TYPE, VFIO_BASE + 18) >> + >> +struct vfio_iommu_spapr_tce_remove { >> + __u32 argsz; >> + /* in */ >> + __u64 start_addr; >> +}; >> +#define VFIO_IOMMU_SPAPR_TCE_REMOVE _IO(VFIO_TYPE, VFIO_BASE + 19) >> + >> +struct vfio_iommu_spapr_tce_reset { >> + __u32 argsz; >> +}; >> +#define VFIO_IOMMU_SPAPR_TCE_RESET _IO(VFIO_TYPE, VFIO_BASE + 20) >> + > > argsz by itself seems rather pointless if we don't have a flags field to > augment the structure. Thanks, Add flags and check for zero or remove it? Cannot choose, please help :) > Alex > >> /* ***************************************************************** */ >> >> #endif /* VFIO_H */ > > > -- Alexey