virtio-dev.lists.oasis-open.org archive mirror
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	 "virtio-dev@lists.oasis-open.org"
	<virtio-dev@lists.oasis-open.org>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	 "virtio-comment@lists.oasis-open.org"
	<virtio-comment@lists.oasis-open.org>,
	Shahaf Shuler <shahafs@nvidia.com>,
	 Satananda Burla <sburla@marvell.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>,
	 Yan Vugenfirer <yan@daynix.com>
Subject: [virtio-dev] Re: [virtio-comment] Re: [PATCH 09/11] transport-pci: Describe PCI MMR dev config registers
Date: Fri, 14 Apr 2023 11:09:35 +0800	[thread overview]
Message-ID: <CACGkMEvSSXyXQnRs=OiaSJnSEYHP83chL6-B5ZPCGx6TeW9W5Q@mail.gmail.com> (raw)
In-Reply-To: <PH0PR12MB54819A5D8FCEC6375D80897DDC989@PH0PR12MB5481.namprd12.prod.outlook.com>

On Fri, Apr 14, 2023 at 3:39 AM Parav Pandit <parav@nvidia.com> wrote:
>
>
> > From: Michael S. Tsirkin <mst@redhat.com>
> > Sent: Thursday, April 13, 2023 1:20 PM
> >
> > On Thu, Apr 13, 2023 at 01:14:15PM +0800, Jason Wang wrote:
> > > > >>>> The proposed solution in this series enables it and avoid per
> > > > >>>> field sw
> > > > >>> interpretation and mediation in parsing values etc.
> >
> > ... except for reset, notifications, and maybe more down the road.
> >
> Your AQ proposal addresses reset too.
> Nothing extra for the notifications, as comes for free from the device side.
> >
> > > > >>> I don't think it's possible. See the discussion about
> > > > >>> ORDER_PLATFORM and ACCESS_PLATFORM in previous threads.
> > > > >>>
> > > > >> I have read the previous thread.
> > > > >> Hypervisor will be limiting to those platforms where ORDER_PLATFORM
> > is not needed.
> > > > >
> > > > > So you introduce a bunch of new facilities that only work on some
> > > > > specific archs. This breaks the architecture independence of
> > > > > virtio since 1.0.
> > > > The defined spec for PCI device does not work today for transitional
> > > > device for virtualization. Only works in limited PF case.
> > > > Hence this update.
> > >
> > > I fully understand the motivation. I just want to say
> > >
> > > 1) compare to the MMIO ar BAR0, this proposal doesn't provide much
> > > advantages
> > > 2) mediate on top of modern devices allows us to not worry about the
> > > device design which is hard for legacy
> >
> > I begin to think so, too. When I proposed this it looked like just a single
> > capability will be enough, without a lot of mess.  But it seems that addressing
> > this fully is getting more and more complex.
> > The one thing we can't do in software is different header size for virtio net. For
> > starters, let's add a capability to address that?
>
> Hdr bit doesn't solve it because hypervisor is not involved in any trapping of feature bits, cvq or other vqs.
> It is unified code for 1.x and transitional in hypervisor.
>
> We have two options to satisfy the requirements.
> (partly taken/repeated from Jason's yday email).
>
> 1. AQ (solves reset) + notification for building non transitional device that support perform well and it is both backward and forward compat
> Pros:
> a. efficient device reset.
> b. efficient notifications from OS to device
> c. device vendor doesn't need to build transitional configuration space.
> d. works without any mediation in hv for 1.x and non 1.x for all non-legacy interfaces (vqs, config space, cvq, and future features).

Without mediation, how could you forward guest config access to admin
virtqueue? Or you mean:

1) hypervisor medate for legacy
2) otherwise the modern BARs are assigned to the guest

For 2) as we discussed, we can't have such an assumption as

1) spec doesn't enforce the size of a specific structure
2) bing vendor locked thus a blocker for live migration as it mandate
the layout for the guest, mediation layer is a must in this case to
maintain cross vendor compatibility

Hypervisor needs to start from a mediation method and do BAR
assignment only when possible.

> e. can work with non-Linux guest VMs too
>
> Cons:
> a. More AQ commands work in sw

Note that this needs to be done on top of the transport virtqueue. And
we need to carefully design the command sets since they could be
mutually exclusive.

Thanks


> b. Does not work for bare metal PFs
>
> 2. Allowing MMIO BAR0 on transitional device as SHOULD requirement with larger BAR size.
> Pros:
> a. Can work with Linux bare-metal and Linux guest VMs as one of the wider uses case
> b. in-efficient device handling for notifications
> c. Works without mediation like 1.d.
> d. Also works without HV mediation.
>
> Cons:
> a. device reset implementation is very for the hw.
> b. requires transitional device to be built.
> c. Notification performance may suffer.
>
> For Marvell and us #1 works well.
> I am evaluating #2 and get back.
>


---------------------------------------------------------------------
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-04-14  3:09 UTC|newest]

Thread overview: 200+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-30 22:58 [virtio-dev] [PATCH 00/11] Introduce transitional mmr pci device Parav Pandit
2023-03-30 22:58 ` [virtio-dev] [PATCH 01/11] transport-pci: Use lowecase alphabets Parav Pandit
2023-03-30 22:58 ` [virtio-dev] [PATCH 02/11] transport-pci: Move transitional device id to legacy section Parav Pandit
2023-03-31  6:43   ` [virtio-dev] " Michael S. Tsirkin
2023-03-31 21:24     ` [virtio-dev] " Parav Pandit
2023-04-02  7:54       ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 14:42         ` [virtio-dev] " Parav Pandit
2023-04-03 14:50           ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 14:58             ` [virtio-dev] " Parav Pandit
2023-04-03 15:14               ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 03/11] transport-pci: Split notes of PCI Device Layout Parav Pandit
2023-03-30 22:58 ` [virtio-dev] [PATCH 04/11] transport-pci: Rename and move legacy PCI Device layout section Parav Pandit
2023-03-30 22:58 ` [virtio-dev] [PATCH 05/11] introduction: Add missing helping verb Parav Pandit
2023-03-30 22:58 ` [virtio-dev] [PATCH 06/11] introduction: Introduce transitional MMR interface Parav Pandit
2023-04-07  9:17   ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 07/11] transport-pci: Introduce transitional MMR device id Parav Pandit
2023-04-04  7:28   ` [virtio-dev] " Michael S. Tsirkin
2023-04-04 16:08     ` Parav Pandit
2023-04-07 12:03       ` [virtio-dev] Re: [virtio-comment] " Michael S. Tsirkin
2023-04-07 15:18         ` [virtio-dev] " Parav Pandit
2023-04-07 15:51           ` [virtio-dev] " Michael S. Tsirkin
2023-04-09  3:15             ` [virtio-dev] " Parav Pandit
2023-04-10 10:18               ` [virtio-dev] " Michael S. Tsirkin
2023-04-10 14:34                 ` Parav Pandit
2023-04-10 19:58                   ` Michael S. Tsirkin
2023-04-10 20:16                     ` Parav Pandit
2023-04-07  8:37   ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 08/11] transport-pci: Introduce virtio extended capability Parav Pandit
2023-04-04  7:35   ` [virtio-dev] " Michael S. Tsirkin
2023-04-04  7:54     ` Cornelia Huck
2023-04-04 12:43       ` Michael S. Tsirkin
2023-04-04 13:19         ` Cornelia Huck
2023-04-04 14:37           ` Michael S. Tsirkin
2023-04-10 16:21             ` Parav Pandit
2023-04-10 19:49               ` Michael S. Tsirkin
2023-04-10 19:57                 ` [virtio-dev] " Parav Pandit
2023-04-10 20:02                   ` [virtio-dev] " Michael S. Tsirkin
2023-04-11  8:39                     ` Cornelia Huck
2023-04-04 21:18     ` [virtio-dev] " Parav Pandit
2023-04-05  5:10       ` [virtio-dev] " Michael S. Tsirkin
2023-04-05 13:16         ` [virtio-dev] " Parav Pandit
2023-04-07  8:15           ` [virtio-dev] " Michael S. Tsirkin
2023-04-10  1:36   ` [virtio-dev] " Jason Wang
2023-04-10  6:24     ` Michael S. Tsirkin
2023-04-10  7:16       ` Jason Wang
2023-04-10 10:04         ` Michael S. Tsirkin
2023-04-11  2:19           ` Jason Wang
2023-04-11  7:00             ` Michael S. Tsirkin
2023-04-11  9:07               ` Jason Wang
2023-04-11 10:43                 ` Michael S. Tsirkin
2023-04-11 13:59                 ` Parav Pandit
2023-04-11 14:11                 ` Michael S. Tsirkin
2023-04-11 13:47               ` Parav Pandit
2023-04-11 14:02                 ` Michael S. Tsirkin
2023-04-11 14:07                   ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-04-11 14:10                     ` [virtio-dev] " Michael S. Tsirkin
2023-04-11 14:30                       ` [virtio-dev] " Parav Pandit
2023-04-10 17:54     ` Parav Pandit
2023-04-10 17:58       ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-04-11  3:28       ` Jason Wang
2023-04-11 19:01         ` Parav Pandit
2023-04-11 21:25           ` Michael S. Tsirkin
2023-04-12  0:40             ` Parav Pandit
2023-04-12  2:56               ` Michael S. Tsirkin
2023-04-12  4:07             ` Jason Wang
2023-04-12  4:20               ` Michael S. Tsirkin
2023-04-12  4:53                 ` [virtio-dev] Re: [virtio-comment] " Jason Wang
2023-04-12  5:25                   ` Michael S. Tsirkin
2023-04-12  5:37                     ` Jason Wang
2023-04-13 17:03                       ` Michael S. Tsirkin
2023-04-12  4:04           ` Jason Wang
2023-04-12  4:13             ` Parav Pandit
2023-04-12  4:20             ` Michael S. Tsirkin
2023-04-12  4:55               ` Jason Wang
2023-05-19  6:10   ` [virtio-dev] " Michael S. Tsirkin
2023-05-19 21:02     ` [virtio-dev] " Parav Pandit
2023-05-21  5:57       ` [virtio-dev] " Michael S. Tsirkin
2023-05-21 13:24         ` [virtio-dev] " Parav Pandit
2023-05-21 14:34           ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 09/11] transport-pci: Describe PCI MMR dev config registers Parav Pandit
2023-04-07  8:55   ` [virtio-dev] " Michael S. Tsirkin
2023-04-10  1:33     ` [virtio-dev] Re: [virtio-comment] " Jason Wang
2023-04-10  6:14       ` Michael S. Tsirkin
2023-04-10  6:20         ` Jason Wang
2023-04-10  6:39           ` Michael S. Tsirkin
2023-04-10  7:20             ` Jason Wang
2023-04-10 10:06               ` Michael S. Tsirkin
2023-04-11  2:13                 ` Jason Wang
2023-04-11  7:04                   ` Michael S. Tsirkin
2023-04-11  9:01                     ` Jason Wang
     [not found]                       ` <CALBs2cXURMEzCGnULicXbsBfwnKE5cZOz=M-_hhFCXZ=Lqb9Nw@mail.gmail.com>
2023-04-11 10:39                         ` Michael S. Tsirkin
2023-04-11 11:03                           ` Yan Vugenfirer
2023-04-11 10:42                       ` Michael S. Tsirkin
2023-04-12  3:58                         ` Jason Wang
2023-04-12  4:15                           ` Michael S. Tsirkin
2023-04-12  4:51                             ` Jason Wang
2023-04-12  5:01                               ` [virtio-dev] " Parav Pandit
2023-04-12  5:14                                 ` [virtio-dev] " Jason Wang
2023-04-12  5:30                                   ` [virtio-dev] " Parav Pandit
2023-04-12  5:38                                     ` [virtio-dev] " Jason Wang
2023-04-12  5:55                                       ` [virtio-dev] " Parav Pandit
2023-04-12  6:15                                         ` [virtio-dev] " Jason Wang
2023-04-12 14:23                                           ` [virtio-dev] " Parav Pandit
2023-04-13  1:48                                             ` [virtio-dev] " Jason Wang
2023-04-13  3:31                                               ` Parav Pandit
2023-04-13  5:14                                                 ` Jason Wang
2023-04-13 17:19                                                   ` Michael S. Tsirkin
2023-04-13 19:39                                                     ` [virtio-dev] " Parav Pandit
2023-04-14  3:09                                                       ` Jason Wang [this message]
2023-04-14  3:18                                                         ` Parav Pandit
2023-04-14  3:37                                                           ` [virtio-dev] " Jason Wang
2023-04-14  3:51                                                             ` [virtio-dev] " Parav Pandit
2023-04-14  7:05                                                               ` [virtio-dev] " Michael S. Tsirkin
2023-04-17  3:22                                                               ` Jason Wang
2023-04-17 17:23                                                                 ` [virtio-dev] " Parav Pandit
2023-04-17 20:26                                                                   ` [virtio-dev] " Michael S. Tsirkin
2023-04-17 20:28                                                                     ` [virtio-dev] " Parav Pandit
2023-04-18  0:36                                                                       ` [virtio-dev] " Jason Wang
2023-04-18  1:30                                                                         ` [virtio-dev] " Parav Pandit
2023-04-18 11:58                                                                           ` [virtio-dev] " Michael S. Tsirkin
2023-04-18 12:09                                                                             ` [virtio-dev] " Parav Pandit
2023-04-18 12:30                                                                               ` [virtio-dev] " Michael S. Tsirkin
2023-04-18 12:36                                                                                 ` [virtio-dev] " Parav Pandit
2023-04-18  1:01                                                                   ` [virtio-dev] " Jason Wang
2023-04-18  1:48                                                                     ` [virtio-dev] " Parav Pandit
2023-04-13 17:24                                                   ` [virtio-dev] " Parav Pandit
2023-04-13 21:02                                                     ` Michael S. Tsirkin
2023-04-13 21:08                                                       ` [virtio-dev] " Parav Pandit
2023-04-14  2:36                                                         ` [virtio-dev] " Jason Wang
2023-04-14  2:43                                                           ` [virtio-dev] " Parav Pandit
2023-04-14  6:57                                                             ` [virtio-dev] " Michael S. Tsirkin
2023-04-16 13:41                                                               ` [virtio-dev] " Parav Pandit
2023-04-16 20:44                                                                 ` [virtio-dev] " Michael S. Tsirkin
2023-04-17 16:59                                                                   ` [virtio-dev] " Parav Pandit
2023-04-18  1:09                                                                     ` [virtio-dev] " Jason Wang
2023-04-18  1:37                                                                       ` [virtio-dev] " Parav Pandit
2023-04-14  6:58                                                           ` [virtio-dev] " Michael S. Tsirkin
2023-04-14  3:08                                                     ` Jason Wang
2023-04-14  3:13                                                       ` [virtio-dev] " Parav Pandit
2023-04-14  3:18                                                         ` [virtio-dev] " Jason Wang
2023-04-14  3:22                                                           ` [virtio-dev] " Parav Pandit
2023-04-14  3:29                                                             ` [virtio-dev] " Jason Wang
2023-04-11 13:57                       ` [virtio-dev] " Parav Pandit
2023-04-12  4:33   ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 10/11] transport-pci: Use driver notification PCI capability Parav Pandit
2023-04-12  4:31   ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  4:37     ` [virtio-dev] " Parav Pandit
2023-04-12  4:43       ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  4:48         ` [virtio-dev] " Parav Pandit
2023-04-12  5:02           ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  5:06             ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-04-12  5:17               ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  5:24                 ` [virtio-dev] " Parav Pandit
2023-04-12  5:27                   ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 22:58 ` [virtio-dev] [PATCH 11/11] conformance: Add transitional MMR interface conformance Parav Pandit
2023-03-31  7:03 ` [virtio-dev] Re: [PATCH 00/11] Introduce transitional mmr pci device Michael S. Tsirkin
2023-03-31 21:43   ` Parav Pandit
2023-04-03 14:53     ` Michael S. Tsirkin
2023-04-03 14:57       ` [virtio-dev] " Parav Pandit
2023-04-03 15:06         ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 15:16           ` [virtio-dev] " Parav Pandit
2023-04-03 15:23             ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 15:34               ` Michael S. Tsirkin
2023-04-03 15:47                 ` [virtio-dev] " Parav Pandit
2023-04-03 17:28                   ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 17:35                     ` Parav Pandit
2023-04-03 17:39                       ` Michael S. Tsirkin
2023-04-03 15:36               ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-04-03 17:16                 ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 17:29                   ` Parav Pandit
2023-04-03 18:02                     ` Michael S. Tsirkin
2023-04-03 20:25                       ` [virtio-dev] " Parav Pandit
2023-04-03 21:04                         ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 22:00                           ` Parav Pandit
2023-04-07  9:35                             ` Michael S. Tsirkin
2023-04-10  1:52                               ` Jason Wang
2023-04-03 14:45 ` [virtio-dev] Re: [virtio-comment] " Stefan Hajnoczi
2023-04-03 14:53   ` Parav Pandit
2023-04-03 17:48     ` Michael S. Tsirkin
2023-04-03 19:11       ` Stefan Hajnoczi
2023-04-03 20:03         ` Michael S. Tsirkin
2023-04-03 19:48       ` [virtio-dev] " Parav Pandit
2023-04-03 20:02         ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 20:42           ` [virtio-dev] " Parav Pandit
2023-04-03 21:14             ` [virtio-dev] " Michael S. Tsirkin
2023-04-03 22:08               ` Parav Pandit
2023-04-03 19:10     ` Stefan Hajnoczi
2023-04-03 20:27       ` [virtio-dev] " Parav Pandit
2023-04-04 14:30         ` [virtio-dev] " Stefan Hajnoczi
2023-04-12  4:48 ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  4:52   ` [virtio-dev] " Parav Pandit
2023-04-12  5:12     ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  5:15       ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-04-12  5:23         ` [virtio-dev] " Michael S. Tsirkin
2023-04-12  5:39           ` [virtio-dev] " Parav Pandit
2023-04-12  6:02       ` Parav Pandit
2023-04-12  5:10 ` [virtio-dev] " Halil Pasic
2023-04-25  2:42 ` [virtio-dev] " Parav Pandit
2023-05-02  7:17   ` [virtio-dev] Re: [virtio-comment] " David Edmondson
2023-05-02 13:54     ` [virtio-dev] " Parav Pandit

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='CACGkMEvSSXyXQnRs=OiaSJnSEYHP83chL6-B5ZPCGx6TeW9W5Q@mail.gmail.com' \
    --to=jasowang@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mst@redhat.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=yan@daynix.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).