From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
Gavin Shan <gwshan@linux.vnet.ibm.com>,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [RFC PATCH v2 10/13] linux headers update for DDW
Date: Thu, 21 Aug 2014 12:47:43 +1000 [thread overview]
Message-ID: <53F55DCF.7070500@ozlabs.ru> (raw)
In-Reply-To: <1408563882.30803.6.camel@ul30vt.home>
On 08/21/2014 05:44 AM, Alex Williamson wrote:
> On Wed, 2014-08-20 at 17:49 +1000, Alexey Kardashevskiy wrote:
>> 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 <aik@ozlabs.ru>
>>>> ---
>>>> 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().
>
> Why does that matter?
Well, I could try imagining some hardware which would be able to have 2
small windows or 1 big window and only after the userspace created one
windows the host kernel could say if that window was small enough and it
still can do big window, or something like.
On the other hand, since we do not support this anyway and I do not think
we ever will and if we will, no idea what form it will take, I'll remove it
for now.
>>>> +#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 :)
>
> Do we really need to hash this out again? Almost every vfio ioctl
> includes argsz and flags. Please continue to do this unless you have a
> good reason otherwise. Thanks,
Will do. Thanks!
--
Alexey
next prev parent reply other threads:[~2014-08-21 2:48 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-15 10:12 [Qemu-devel] [RFC PATCH v2 00/13] spapr: vfio: Enable Dynamic DMA windows (DDW) Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 01/13] qom: Make object_child_foreach safe for objects removal Alexey Kardashevskiy
2014-08-19 0:39 ` David Gibson
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 02/13] spapr_iommu: Disable in-kernel IOMMU tables for >4GB windows Alexey Kardashevskiy
2014-08-19 0:43 ` David Gibson
2014-08-20 8:09 ` Alexey Kardashevskiy
2014-08-27 9:27 ` Alexander Graf
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 03/13] spapr_pci: Make find_phb()/find_dev() public Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 04/13] spapr_iommu: Make spapr_tce_find_by_liobn() public Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 05/13] spapr_pci: Introduce a liobn number generating macros Alexey Kardashevskiy
2014-08-19 0:44 ` David Gibson
2014-08-27 9:29 ` Alexander Graf
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 06/13] spapr_iommu: Implement free_table() helper Alexey Kardashevskiy
2014-08-26 6:16 ` David Gibson
2014-08-26 7:04 ` Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 07/13] spapr_rtas: Add Dynamic DMA windows (DDW) RTAS calls support Alexey Kardashevskiy
2014-08-26 7:06 ` David Gibson
2014-08-27 9:36 ` Alexander Graf
2014-08-27 13:56 ` Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 08/13] spapr_pci: Enable DDW Alexey Kardashevskiy
2014-08-26 7:14 ` David Gibson
2014-08-26 8:11 ` Alexey Kardashevskiy
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 09/13] spapr_pci_vfio: Call spapr_pci::reset on reset Alexey Kardashevskiy
2014-08-26 6:55 ` David Gibson
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 10/13] linux headers update for DDW Alexey Kardashevskiy
2014-08-18 17:42 ` Alex Williamson
2014-08-20 7:49 ` Alexey Kardashevskiy
2014-08-20 19:44 ` Alex Williamson
2014-08-21 2:47 ` Alexey Kardashevskiy [this message]
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 11/13] spapr_pci_vfio: Enable DDW Alexey Kardashevskiy
2014-08-26 7:19 ` David Gibson
2014-08-26 8:16 ` Alexey Kardashevskiy
2014-08-27 8:25 ` David Gibson
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 12/13] vfio: Enable DDW ioctls to VFIO IOMMU driver Alexey Kardashevskiy
2014-08-26 7:20 ` David Gibson
2014-08-26 8:20 ` Alexey Kardashevskiy
2014-08-27 8:42 ` David Gibson
2014-08-15 10:12 ` [Qemu-devel] [RFC PATCH v2 13/13] spapr: Add pseries-2.2 machine with default "ddw" option Alexey Kardashevskiy
2014-08-27 9:44 ` Alexander Graf
2014-08-27 14:24 ` Alexey Kardashevskiy
2014-08-27 9:44 ` Alexander Graf
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=53F55DCF.7070500@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=gwshan@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).