public inbox for virtio-dev@lists.linux.dev
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: "virtio-dev@lists.oasis-open.org"
	<virtio-dev@lists.oasis-open.org>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	"david.edmondson@oracle.com" <david.edmondson@oracle.com>,
	"sburla@marvell.com" <sburla@marvell.com>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	Yishai Hadas <yishaih@nvidia.com>,
	Maor Gottlieb <maorg@nvidia.com>,
	"virtio-comment@lists.oasis-open.org"
	<virtio-comment@lists.oasis-open.org>,
	Shahaf Shuler <shahafs@nvidia.com>
Subject: [virtio-dev] Re: [PATCH v3 0/3] transport-pci: Introduce legacy registers access using AQ
Date: Mon, 5 Jun 2023 09:50:21 -0400	[thread overview]
Message-ID: <20230605092859-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <PH0PR12MB5481C14D65D5E10CD23A9F67DC4DA@PH0PR12MB5481.namprd12.prod.outlook.com>

On Mon, Jun 05, 2023 at 01:27:04PM +0000, Parav Pandit wrote:
> 
> > From: Michael S. Tsirkin <mst@redhat.com>
> > Sent: Monday, June 5, 2023 1:52 AM
> 
> [..]
> > > > E.g. with 1.x using VIRTIO_F_NOTIF_CONFIG_DATA - probably not.
> > > >
> > > Not really because legacy doesn't have that feature.
> > > Legacy notifications are subset of 1.x feature.
> > > This was also discussed.
> > 
> > So for legacy such hardware will likely not want to use the same BAR.
> > 
> I don't follow this comment in conjunction with your below comment about offset 0.
> If we consider offset 0, legacy will use the same notification area as 1.x, right?
> So I am confused on "hardware don't want to use the same "BAR".

Never mind,

> > 
> > > > Let's just say, we are not in the position where we dictate these
> > > > things to OS vendors yet.  One of motivations of the spec is making
> > > > writing drivers easier so let's add an option for that pls.
> > > >
> > > There is no need to add multiple options at this point when the hw vendors
> > are not going to implement.
> > > When we find another vendor to implement, we can always add the new
> > method.
> > > Marvell and Nvidia both are forwarding with AQ at present proposal.
> > >
> > > > > VF has BAR for driver notifications. This BAR is used for 1.x and legacy.
> > > >
> > > > But it's the same piece of silicon - be it in PF or in VF.
> > > > I really don't see why it matters.
> > > >
> > > In same piece of silicon one needs to open yet another PCI steering entry to
> > tell that treat this for VF.
> > > This double size programming is useless.
> > >
> > > Yet again we are discussing same point as before.
> > >
> > > > > There is no need to ask vendors to build new HW to put driver
> > > > > notifications
> > > > on the PF BAR for VFs, when it already exists on the VF.
> > > > I'm talking about giving vendors an option not asking them.
> > > >
> > > Ok. Understood.
> > > When a vendor prefers to implement such cross hw forwarding it can be done.
> > > There isn't a desire to burn and program extra hw for functionality that
> > already exists on the VF.
> > > Hence, VF's doorbell on PF can be parked for the future option when one
> > actually wants to implement it.
> > 
> > I reached out to windows team to know how big a problem this is. Let's see.
> > 
> > 
> Ok. Linux didn't had multi-function driver support and infra was added.
> So even if the facility may not be there, or if the current IPR facility they may not want to use,
> 
> In future OS vendor itself can provide the new APIs.
> I certainly don't see being blocked on this.
> 
> But good to get feedback on there current state of OS.
> 
> > I have another idea meanwhile: VF already has notification capability. The only
> > issue is offset has to be queried through modern BAR.  How about we agree that
> > for legacy, we just agree that offset 0 is used?  Does not sound like a big
> > sacrifice of memory to me, and we completely avoid the new command and the
> > need to tie PF and VF.
> 
> It will not work for the SIOV which shouldn't replicate this capability (and some other cap) so many times, are you ok with it?

Yes - SIOV has both command and BAR in the PF.

> Can you explain the motivation of : why querying notification offset via the group member PF is a problem, if there is."

I tried already, I can repeat if you like:

So, I am thinking of a model of using a tiny stub driver for the member.
Control path driver is bigger as it operates AQ command, that would be
the owner driver.  E.g. for PCI this driver needs to map BAR offsets.
Then it handles all data path for this member: driver and device
notifications.  It is clean and easy on all systems assuming you know
offsets at device probe.  But getting it in software from another driver
(owner driver) is AFAIK tricky on some systems.

Generally solutions can be found, they can be more or less robust, and
if systems designers have to overcome obstacles in implementing virtio
they will just go to a competing interface as opposed to jump through
hoops and work on extending either the OS or the virtio spec.

Yes I know your sales department tells you there's no demand for this
feature on anything that is not linux/x86 and maybe arm, and maybe this
means there won't ever be either, but let's just not raise this again
can we? E.g. there was some interest from microsoft at some point,
I think there was a reorg and that project died but hey you never know.
Anyway, you asked I am trying to answer.

The cleanest way is just doing things consistently through one device.
In this case for data path it has to be the VF, so let's just make this
part simple and self contained.


> I don't see a problem with AQ that covers VF,SF/SIOV for legacy.
> 
> Proposed AQ command is cheap and covers both VF, SF/SIOV.

Well for SIOV BAR has to be the owner BAR. This was exactly the reason I
asked for this. If it's not to be I think this is my second preference:
no new command at all, and SIOV will come up with its own.

-- 
MST


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


  reply	other threads:[~2023-06-05 13:50 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-02 20:36 [virtio-dev] [PATCH v3 0/3] transport-pci: Introduce legacy registers access using AQ Parav Pandit
2023-06-02 20:36 ` [virtio-dev] [PATCH v3 1/3] admin: Split opcode table rows with a line Parav Pandit
2023-06-02 20:36 ` [virtio-dev] [PATCH v3 2/3] transport-pci: Introduce legacy registers access commands Parav Pandit
2023-06-04 13:22   ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 13:51     ` [virtio-dev] " Parav Pandit
2023-06-04 14:13       ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 14:32         ` [virtio-dev] " Parav Pandit
2023-06-04 14:41           ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 15:01             ` [virtio-dev] " Parav Pandit
2023-06-04 22:10               ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 23:57                 ` [virtio-dev] " Parav Pandit
2023-06-08 18:34   ` [virtio-dev] " Michael S. Tsirkin
2023-06-08 18:55     ` [virtio-dev] " Parav Pandit
2023-06-08 19:00       ` [virtio-dev] " Michael S. Tsirkin
2023-06-08 19:04         ` [virtio-dev] " Parav Pandit
2023-06-02 20:36 ` [virtio-dev] [PATCH v3 3/3] transport-pci: Add legacy register access conformance section Parav Pandit
2023-06-04 13:34 ` [virtio-dev] Re: [PATCH v3 0/3] transport-pci: Introduce legacy registers access using AQ Michael S. Tsirkin
2023-06-04 13:41   ` [virtio-dev] " Parav Pandit
2023-06-04 13:55     ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 14:10       ` [virtio-dev] " Parav Pandit
2023-06-04 14:23         ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 14:48           ` [virtio-dev] " Parav Pandit
2023-06-04 14:53             ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 15:07               ` [virtio-dev] " Parav Pandit
2023-06-04 21:48                 ` [virtio-dev] " Michael S. Tsirkin
2023-06-04 23:40                   ` [virtio-dev] " Parav Pandit
2023-06-05  5:51                     ` [virtio-dev] " Michael S. Tsirkin
2023-06-05 13:27                       ` [virtio-dev] " Parav Pandit
2023-06-05 13:50                         ` Michael S. Tsirkin [this message]
2023-06-05 16:04                           ` Parav Pandit
2023-06-05 21:57                             ` [virtio-dev] " Michael S. Tsirkin
2023-06-05 22:12                               ` Parav Pandit
2023-06-06 11:56                                 ` Michael S. Tsirkin
2023-06-06 20:15                                   ` Parav Pandit
2023-06-07  2:27                                   ` Jason Wang
2023-06-07  3:05                                     ` Parav Pandit
2023-06-07  6:54                                       ` Jason Wang
2023-06-07  8:54                                         ` Michael S. Tsirkin
2023-06-08 14:38                                         ` Parav Pandit
2023-06-08 14:44                                           ` Michael S. Tsirkin
2023-06-08 14:53                                             ` Parav Pandit
2023-06-08 15:03                                               ` Michael S. Tsirkin
2023-06-08 15:16                                                 ` Parav Pandit
2023-06-08 18:03                                                   ` Michael S. Tsirkin
2023-06-08 18:11                                                     ` Parav Pandit
2023-06-08 18:31                                                   ` Michael S. Tsirkin
2023-06-08 19:00                                                     ` Parav Pandit
2023-06-08 19:03                                                       ` Michael S. Tsirkin
2023-06-08 19:12                                                         ` Parav Pandit
2023-06-09  2:06                                           ` Jason Wang
2023-06-09  2:29                                             ` Parav Pandit
2023-06-09  2:42                                               ` Jason Wang
2023-06-09  2:53                                                 ` Parav Pandit
2023-06-09  2:56                                                   ` Jason Wang
2023-06-09  2:58                                                     ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-06-09  3:02                                                       ` [virtio-dev] " Jason Wang
2023-06-09  3:25                                                         ` [virtio-dev] " Parav Pandit
2023-06-09  6:27                                                           ` [virtio-dev] " Jason Wang
2023-06-09  7:21                                                             ` Michael S. Tsirkin
2023-06-09 17:11                                                               ` [virtio-dev] " Parav Pandit
2023-06-11  0:27                                                                 ` [virtio-dev] " Michael S. Tsirkin
2023-06-11  2:08                                                                   ` [virtio-dev] " Parav Pandit
2023-06-11  7:14                                                                     ` [virtio-dev] " Michael S. Tsirkin
2023-06-11 12:54                                                                       ` [virtio-dev] " Parav Pandit
2023-06-11 20:09                                                                         ` [virtio-dev] " Michael S. Tsirkin
2023-06-11 20:17                                                                           ` [virtio-dev] " Parav Pandit
2023-06-11 23:15                                                                             ` [virtio-dev] " Michael S. Tsirkin
2023-06-26  3:46                                                                   ` Jason Wang
2023-06-26  3:32                                                                 ` Jason Wang
2023-06-26  3:51                                                                   ` [virtio-dev] " Parav Pandit
2023-06-27  2:38                                                                     ` [virtio-dev] " Jason Wang
2023-06-27  3:17                                                                       ` [virtio-dev] " Parav Pandit
2023-06-27  4:33                                                                         ` [virtio-dev] " Jason Wang
2023-06-26  3:50                                                               ` Jason Wang
2023-06-26  3:55                                                                 ` [virtio-dev] " Parav Pandit
2023-06-26 10:49                                                                 ` [virtio-dev] " Michael S. Tsirkin
2023-06-09  7:15                                             ` Michael S. Tsirkin
2023-06-26  3:59                                               ` Jason Wang
2023-06-26  4:04                                                 ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-06-27  2:42                                                   ` [virtio-dev] " Jason Wang
2023-06-26  7:13                                                 ` Michael S. Tsirkin
2023-06-07  8:57                                     ` 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=20230605092859-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=david.edmondson@oracle.com \
    --cc=jasowang@redhat.com \
    --cc=maorg@nvidia.com \
    --cc=parav@nvidia.com \
    --cc=sburla@marvell.com \
    --cc=shahafs@nvidia.com \
    --cc=virtio-comment@lists.oasis-open.org \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=yishaih@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