From: Cornelia Huck <cohuck@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: kvm@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, dev@dpdk.org, mtosatti@redhat.com,
thomas@monjalon.net, bluca@debian.org, jerinjacobk@gmail.com,
bruce.richardson@intel.com
Subject: Re: [dpdk-dev] [PATCH 4/7] vfio: Introduce VFIO_DEVICE_FEATURE ioctl and first user
Date: Thu, 13 Feb 2020 19:08:13 +0100 [thread overview]
Message-ID: <20200213190813.1bcd1a15.cohuck@redhat.com> (raw)
In-Reply-To: <20200213103957.0d75034b@w520.home>
On Thu, 13 Feb 2020 10:39:57 -0700
Alex Williamson <alex.williamson@redhat.com> wrote:
> On Thu, 13 Feb 2020 13:41:21 +0100
> Cornelia Huck <cohuck@redhat.com> wrote:
>
> > On Tue, 11 Feb 2020 16:05:51 -0700
> > Alex Williamson <alex.williamson@redhat.com> wrote:
> > > +struct vfio_device_feature {
> > > + __u32 argsz;
> > > + __u32 flags;
> > > +#define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */
> > > +#define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */
> > > +#define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */
> > > +#define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */
> > > + __u8 data[];
> > > +};
> >
> > I'm not sure I'm a fan of cramming both feature selection and operation
> > selection into flags. What about:
> >
> > struct vfio_device_feature {
> > __u32 argsz;
> > __u32 flags;
> > /* GET/SET/PROBE #defines */
> > __u32 feature;
> > __u8 data[];
> > };
>
> Then data is unaligned so we either need to expand feature or add
> padding. So this makes the structure at least 8 bytes bigger and buys
> us...? What's so special about the bottom half of flags that we can't
> designate it as the flags that specify the feature? We still have
> another 13 bits of flags for future use.
It is more my general dislike of bit fiddling here, no strong
objection, certainly.
>
> > Getting/setting more than one feature at the same time does not sound
> > like a common use case; you would need to specify some kind of
> > algorithm for that anyway, and just doing it individually seems much
> > easier than that.
>
> Yup. I just figured 2^16 features is a nice way to make use of the
> structure vs 2^32 features and 4 bytes of padding or 2^64 features. I
> don't think I'm being optimistic in thinking we'll have far less than
> 16K features and we can always reserve feature 0xffff as an extended
> feature where the first 8-bytes of data defines that extended feature
> index.
Agreed, we're probably not going to end up with a flood of features
here.
Anyway, much of this seems to be a matter of personal taste, so let's
keep it as it is.
next prev parent reply other threads:[~2020-02-13 18:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-11 23:05 [dpdk-dev] [PATCH 0/7] vfio/pci: SR-IOV support Alex Williamson
2020-02-11 23:05 ` [dpdk-dev] [PATCH 1/7] vfio: Include optional device match in vfio_device_ops callbacks Alex Williamson
2020-02-13 10:31 ` Cornelia Huck
2020-02-11 23:05 ` [dpdk-dev] [PATCH 2/7] vfio/pci: Implement match ops Alex Williamson
2020-02-13 11:04 ` Cornelia Huck
2020-02-11 23:05 ` [dpdk-dev] [PATCH 3/7] vfio/pci: Introduce VF token Alex Williamson
2020-02-13 11:46 ` Cornelia Huck
2020-02-13 17:23 ` Alex Williamson
2020-02-13 18:35 ` Cornelia Huck
2020-02-14 23:40 ` Alex Williamson
2020-02-11 23:05 ` [dpdk-dev] [PATCH 4/7] vfio: Introduce VFIO_DEVICE_FEATURE ioctl and first user Alex Williamson
2020-02-13 12:41 ` Cornelia Huck
2020-02-13 17:39 ` Alex Williamson
2020-02-13 18:08 ` Cornelia Huck [this message]
2020-02-11 23:06 ` [dpdk-dev] [PATCH 5/7] vfio/pci: Add sriov_configure support Alex Williamson
2020-02-11 23:06 ` [dpdk-dev] [PATCH 6/7] vfio/pci: Remove dev_fmt definition Alex Williamson
2020-02-11 23:06 ` [dpdk-dev] [PATCH 7/7] vfio/pci: Cleanup .probe() exit paths Alex Williamson
2020-02-14 4:57 ` [dpdk-dev] [PATCH 0/7] vfio/pci: SR-IOV support Alexey Kardashevskiy
2020-02-14 15:27 ` 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=20200213190813.1bcd1a15.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=bluca@debian.org \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jerinjacobk@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=thomas@monjalon.net \
/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).