From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Dan Jurgens <danielj@nvidia.com>,
Jason Wang <jasowang@redhat.com>,
netdev@vger.kernel.org, alex.williamson@redhat.com,
pabeni@redhat.com, virtualization@lists.linux.dev,
shshitrit@nvidia.com, yohadt@nvidia.com,
xuanzhuo@linux.alibaba.com, eperezma@redhat.com,
shameerali.kolothum.thodi@huawei.com, jgg@ziepe.ca,
kevin.tian@intel.com, kuba@kernel.org, andrew+netdev@lunn.ch,
edumazet@google.com, Yishai Hadas <yishaih@nvidia.com>
Subject: Re: [PATCH net-next v3 01/11] virtio-pci: Expose generic device capability operations
Date: Thu, 25 Sep 2025 09:08:35 -0400 [thread overview]
Message-ID: <20250925085537-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <b3a7715a-5826-4395-9cc3-73bac8c26a63@nvidia.com>
On Thu, Sep 25, 2025 at 05:39:54PM +0530, Parav Pandit wrote:
>
> On 25-09-2025 05:19 pm, Michael S. Tsirkin wrote:
> > On Thu, Sep 25, 2025 at 04:15:19PM +0530, Parav Pandit wrote:
> > > On 25-09-2025 04:05 pm, Michael S. Tsirkin wrote:
> > > > On Thu, Sep 25, 2025 at 03:21:38PM +0530, Parav Pandit wrote:
> > > > > Function pointers are there for multiple transports to implement their own
> > > > > implementation.
> > > > My understanding is that you want to use flow control admin commands
> > > > in virtio net, without making it depend on virtio pci.
> > > No flow control in vnet.
> > > > This why the callbacks are here. Is that right?
> > > No. callbacks are there so that transport agnostic layer can invoke it,
> > > which is drivers/virtio/virtio.c.
> > >
> > > And transport specific code stays in transport layer, which is presently
> > > following config_ops design.
> > >
> > > > That is fair enough, but it looks like every new command then
> > > > needs a lot of boilerplate code with a callback a wrapper and
> > > > a transport implementation.
> > > Not really. I dont see any callbacks or wrapper in current proposed patches.
> > >
> > > All it has is transport specific implementation of admin commands.
> > >
> > > >
> > > > Why not just put all this code in virtio core? It looks like the
> > > > transport just needs to expose an API to find the admin vq.
> > > Can you please be specific of which line in the current code can be moved to
> > > virtio core?
> > >
> > > When the spec was drafted, _one_ was thinking of admin command transport
> > > over non admin vq also.
> > >
> > > So current implementation of letting transport decide on how to transport a
> > > command seems right to me.
> > >
> > > But sure, if you can pin point the lines of code that can be shifted to
> > > generic layer, that would be good.
> > I imagine a get_admin_vq operation in config_ops. The rest of the
> > code seems to be transport independent and could be part of
> > the core. WDYT?
> >
> IMHV, the code before vp_modern_admin_cmd_exec() can be part of
> drivers/virtio/virtio_admin_cmds.c and admin_cmd_exec() can be part of the
> config ops.
>
> However such refactor can be differed when it actually becomes boiler plate
> code where there is more than one transport and/or more than one way to send
> admin cmds.
Well administration virtqueue section is currently not a part of a
transport section in the spec. But if you think it will change and so
find it cleaner for transports to expose, instead of a VQ, a generic
interfaces to send an admin command, that's fine too. That is still a
far cry from adding all the object management in the transport.
Well we have all the new code you are writing, and hacking around
the fact it's in the wrong module with a level of indirection
seems wrong.
If you need help moving this code let me know, it's not hard.
> Even if its done, it probably will require vfio-virtio-pci to interact with
> generic virtio layer. Not sure added value of that complication to be part
> of this series.
>
>
> Dan,
>
> WDYT?
virtio pci pulls in the core already, and VFIO only uses the SRIOV
group, so it can keep using the existing pci device based interfaces,
if you prefer.
--
MST
next prev parent reply other threads:[~2025-09-25 13:08 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-23 14:19 [PATCH net-next v3 00/11] virtio_net: Add ethtool flow rules support Daniel Jurgens
2025-09-23 14:19 ` [PATCH net-next v3 01/11] virtio-pci: Expose generic device capability operations Daniel Jurgens
2025-09-24 1:16 ` Jason Wang
2025-09-24 6:22 ` Michael S. Tsirkin
2025-09-24 19:02 ` Dan Jurgens
2025-09-25 6:16 ` Michael S. Tsirkin
2025-09-25 9:51 ` Parav Pandit
2025-09-25 10:35 ` Michael S. Tsirkin
2025-09-25 10:45 ` Parav Pandit
2025-09-25 11:49 ` Michael S. Tsirkin
2025-09-25 12:09 ` Parav Pandit
2025-09-25 13:08 ` Michael S. Tsirkin [this message]
2025-09-25 16:53 ` Dan Jurgens
2025-09-25 16:55 ` Michael S. Tsirkin
2025-09-26 4:55 ` Jason Wang
2025-09-26 14:26 ` Michael S. Tsirkin
2025-09-26 15:08 ` Dan Jurgens
2025-09-24 6:16 ` Michael S. Tsirkin
2025-09-23 14:19 ` [PATCH net-next v3 02/11] virtio-pci: Expose object create and destroy API Daniel Jurgens
2025-09-23 14:19 ` [PATCH net-next v3 03/11] virtio_net: Create virtio_net directory Daniel Jurgens
2025-09-25 3:56 ` Xuan Zhuo
2025-09-25 6:13 ` Michael S. Tsirkin
2025-09-25 15:48 ` Dan Jurgens
2025-09-25 20:10 ` Michael S. Tsirkin
2025-09-25 21:17 ` Michael S. Tsirkin
2025-09-23 14:19 ` [PATCH net-next v3 04/11] virtio_net: Query and set flow filter caps Daniel Jurgens
2025-09-25 21:01 ` Michael S. Tsirkin
2025-09-26 2:12 ` Dan Jurgens
2025-09-27 9:02 ` Michael S. Tsirkin
2025-09-25 21:16 ` Michael S. Tsirkin
2025-09-26 4:54 ` Dan Jurgens
2025-09-26 16:01 ` Simon Horman
2025-09-26 18:08 ` Dan Jurgens
2025-09-26 20:45 ` Jakub Kicinski
2025-09-23 14:19 ` [PATCH net-next v3 05/11] virtio_net: Create a FF group for ethtool steering Daniel Jurgens
2025-09-25 21:13 ` Michael S. Tsirkin
2025-09-23 14:19 ` [PATCH net-next v3 06/11] virtio_net: Implement layer 2 ethtool flow rules Daniel Jurgens
2025-09-25 20:58 ` Michael S. Tsirkin
2025-09-27 4:45 ` Dan Jurgens
2025-09-25 21:10 ` Michael S. Tsirkin
2025-09-27 5:02 ` Dan Jurgens
2025-09-26 20:48 ` Jakub Kicinski
2025-09-26 21:04 ` Dan Jurgens
2025-09-23 14:19 ` [PATCH net-next v3 07/11] virtio_net: Use existing classifier if possible Daniel Jurgens
2025-09-25 20:53 ` Michael S. Tsirkin
2025-09-23 14:19 ` [PATCH net-next v3 08/11] virtio_net: Implement IPv4 ethtool flow rules Daniel Jurgens
2025-09-25 20:53 ` Michael S. Tsirkin
2025-09-25 21:13 ` Dan Jurgens
2025-09-25 21:20 ` Michael S. Tsirkin
2025-10-01 14:15 ` Dan Jurgens
2025-09-23 14:19 ` [PATCH net-next v3 09/11] virtio_net: Add support for IPv6 ethtool steering Daniel Jurgens
2025-09-25 20:47 ` Michael S. Tsirkin
2025-09-23 14:19 ` [PATCH net-next v3 10/11] virtio_net: Add support for TCP and UDP ethtool rules Daniel Jurgens
2025-09-23 14:19 ` [PATCH net-next v3 11/11] virtio_net: Add get ethtool flow rules ops Daniel Jurgens
2025-09-25 20:44 ` Michael S. Tsirkin
2025-09-28 4:39 ` Dan Jurgens
2025-09-28 6:19 ` Michael S. Tsirkin
2025-09-25 21:19 ` [PATCH net-next v3 00/11] virtio_net: Add ethtool flow rules support Michael S. Tsirkin
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=20250925085537-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=andrew+netdev@lunn.ch \
--cc=danielj@nvidia.com \
--cc=edumazet@google.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=jgg@ziepe.ca \
--cc=kevin.tian@intel.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=parav@nvidia.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=shshitrit@nvidia.com \
--cc=virtualization@lists.linux.dev \
--cc=xuanzhuo@linux.alibaba.com \
--cc=yishaih@nvidia.com \
--cc=yohadt@nvidia.com \
/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).