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>,
"david.edmondson@oracle.com" <david.edmondson@oracle.com>,
"sburla@marvell.com" <sburla@marvell.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 v2 0/2] transport-pci: Introduce legacy registers access using AQ
Date: Mon, 15 May 2023 15:10:47 +0800 [thread overview]
Message-ID: <893b6ec0-a74f-69b7-95a3-988f0f9382a8@redhat.com> (raw)
In-Reply-To: <PH0PR12MB5481DE0569EC53A862A4D2E9DC749@PH0PR12MB5481.namprd12.prod.outlook.com>
在 2023/5/11 21:28, Parav Pandit 写道:
>
>> From: Jason Wang <jasowang@redhat.com>
>> Sent: Thursday, May 11, 2023 3:07 AM
>>>> 4th point in cover letter is: "config virtqueues of the managed device".
>>>>
>>>> This work belongs to the driver -> device direct communication using
>>>> a queue from driver to device.
>>>> So, I imagine this work can be done using a queue by the guest
>>>> driver and serviced by the device like how a guest driver configures
>>>> the queue today without any mediation.
>>>> For PCI, MMIO transport, surely this can be done by the PCI device
>>>> directly being is PF, VF or SIOV.
>>>> (Instead of config register, using a new queue interface). Looks fine to me.
>> Great.
>>
>>>> Can this new cfg queue mediated like CVQ that is done in a sw? May be yes.
>>>> Should it be always mediated when it is of VF, SIOV Device? Mostly
>>>> no because it is yet another VQ for PF, VF, SIOV.
>> Yes, the mediation is always conditional but not mandated when doing the
>> design.
>>
>>>> I am yet to parse rest of the 4 patches, please give me some time to review
>> it.
>>> I went over the past work of [1], [2].
>>>
>>> [1]
>>> https://lore.kernel.org/all/20220826100034.200432-2-lingshan.zhu@intel
>>> .com/ [2]
>>> https://lists.oasis-open.org/archives/virtio-comment/202208/msg00141.h
>>> tml
>>>
>>> The "virtio q as transport" in [2] is bit misleading as its only role is to
>> transport the _registers_ of the SIOV_R1 device through its parent PF.
>>> Rest of the work is the pure management work to manage the life cycle of
>> SIOV devices (create/delete/configure/compose).
>>
>> I think this can be tweaked for static provisioning setups like SR-IOV. E.g group
>> owner can choose to not advertise the life cycle management commands. Then
>> the hypervisor may know the provisioning is transport specific.
>>
> It is just bunch of admin commands in the new SIOV or virtual virtio device chapter.
> It is not a transport chapter.
Provisioning could be a part of the transport. For example SR-IOV allows
static and dynamic provisioning. If a virtio device needs to be
implemented in VF, it needs to be provisioned first.
>
>>> And the motivation is also clear is to provide composing a virtio device for the
>> guest VM for the backward compatibility for 1.x part of the specification.
>>> It seems fine and indeed orthogonal to me that: it is for backward
>> compatibility for already defined config fields for existing guest VM driver.
>>> It does not conflict with the cfgq/cmdq idea whose main purpose is for the
>> new config fields, new use cases that doesn't require any mediation.
>>> Such cfgq works across PF, VF, SF/SIOV devices in uniform way without
>> mediation.
>>
>> My understanding is that the cfgq/cmdq could be done on top, since the
>> commands are part of transport unless I miss something.
>>
> On top of what?
> cfgq/cmdq is just another queue like any other VQ.
> it is orthogonal to accessing 1.x registers using group owner's queue.
I think there hasn't been any proposal that call any virtqueue like
cfgq/cmdq. So using that may cause a lot of misunderstanding. I think
the context here is to provide or extend transport facilities via a
virtqueue not something like the control virtqueue.
>
>>> It also scales device register memory also very well in predictable way.
>>>
>>> The registers and feature bits access described in [2], can certainly be done
>> using new non_legacy new AQ commands.
>>> Both legacy and non-legacy command have different semantics as Michael
>> mentioned.
>>> The AQ semantics that Michael did as opposed to "virtqueue as transport" fits
>> well for the use case described in [1].
>>> There are changes on going in MSI-X area and SIOV, so you might want to
>> wait for it.
>>
>> I think you meant IMS, actually, it's not hard to add new commands to support
>> a general IMS. We can start from a virtio specific one (as it looks a common
>> requirement not only for PCI/SIOV but also for transport like MMIO)
>>
> IMS configuration usually supposed to go directly to the device.
Admin virtqueue doesn't preventing anything from letting IMS go directly
to the device.
> Long discussion with Thomas on IMS topic.
> I will avoid diverting to unrelated discussion for now.
>
>>> Or proposed command in [1] should be tagged as siov_r1, then things will be
>> cleaner.
>>
>> Maybe we can say, one of the implementations is siov_r1, since it can be used
>> to implement devices in other transport. One of the main motivations for
>> transport virtqueue is to reduce the transport specific resources to ease the
>> virtio device implementation.
>>
> Yes, the main motivation as for backward compatibility for the currently defined features.
>
>>> With that I don't see legacy 3 commands anyway conflict with [1].
>> It doesn't, but it's not elegant since:
>>
> I don’t see how making 3 commands to 9 commands makes it elegant by doing bisecting of registers offset in hypervisor.
Or it needs to be done by the hardware and cross register write/read
needs to be handled there as well.
> Its same thing using more opcodes.
Do we really care about the number of opcodes? I think we've reserved
sufficient spaces.
>
>> 1) Modern transport, admin virtqueue with well defined transport commands
>> 2) Legacy transport, works moe like a PCI transport on top of the admin
>> virtqueue
>>
>> Transport virtqueue tend to be transport independent, but 2) tie it somehow to
>> the PCI. That's why I suggest to
>>
> The 4 patches are not transporting all the PCI things over transport VQ. it is not a transport.
It really depends on the different viewpoint. To me, adminq is not
specific to PCI, so this proposal looks more like a partial transport
for legacy.
So we have
1) all commands via PCI
2) all commands via adminq
3) part of the commands via PCI and the rest via adminq
This proposal goes to for 3 with transport specific commands while I
think we need to try 1 and 2 then it is more general and it helps to
avoid duplication with future features.
Thanks
> It is mediation done for SIOV like how it's done for 2 patches.
>
>> 1) introduce legacy transport commands
>>
>> or
>>
>> 2) tweak your proposal to become a PCI over admin virtqueue
>>
> This is not the objective to transport all PCI virtio fields over AQ.
> Transport VQ commands proposal commands and commands in this proposal are just fine the way there without quoting it as "transport".
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next prev parent reply other threads:[~2023-05-15 7:11 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-06 0:01 [virtio-dev] [PATCH v2 0/2] transport-pci: Introduce legacy registers access using AQ Parav Pandit
2023-05-06 0:01 ` [virtio-dev] [PATCH v2 1/2] transport-pci: Introduce legacy registers access commands Parav Pandit
2023-05-17 5:44 ` [virtio-dev] " Michael S. Tsirkin
2023-05-17 19:32 ` [virtio-dev] " Parav Pandit
2023-05-18 19:42 ` [virtio-dev] Re: [virtio-comment] " Michael S. Tsirkin
2023-05-18 20:51 ` [virtio-dev] " Parav Pandit
2023-05-19 1:54 ` [virtio-dev] " Jason Wang
2023-05-19 2:04 ` [virtio-dev] " Parav Pandit
2023-05-19 6:06 ` [virtio-dev] " Michael S. Tsirkin
2023-05-19 16:37 ` [virtio-dev] " Parav Pandit
2023-05-21 9:16 ` [virtio-dev] " Michael S. Tsirkin
2023-05-21 13:21 ` [virtio-dev] " Parav Pandit
2023-05-21 14:33 ` [virtio-dev] " Michael S. Tsirkin
2023-05-21 14:44 ` [virtio-dev] " Parav Pandit
2023-05-22 20:07 ` [virtio-dev] " Michael S. Tsirkin
2023-05-22 21:05 ` [virtio-dev] " Parav Pandit
2023-05-22 21:34 ` [virtio-dev] " Michael S. Tsirkin
2023-05-23 17:13 ` [virtio-dev] " Parav Pandit
2023-05-23 18:48 ` [virtio-dev] " Michael S. Tsirkin
2023-05-23 22:22 ` [virtio-dev] " Parav Pandit
2023-05-24 1:17 ` [virtio-dev] " Jason Wang
2023-05-24 10:07 ` Michael S. Tsirkin
2023-05-24 19:18 ` [virtio-dev] " Parav Pandit
2023-05-24 20:12 ` [virtio-dev] " Michael S. Tsirkin
2023-05-24 21:02 ` [virtio-dev] " Parav Pandit
2023-05-22 21:42 ` [virtio-dev] " Michael S. Tsirkin
2023-05-22 0:54 ` Jason Wang
2023-05-22 2:46 ` [virtio-dev] " Parav Pandit
2023-05-22 19:35 ` [virtio-dev] " Michael S. Tsirkin
2023-05-06 0:01 ` [virtio-dev] [PATCH v2 2/2] transport-pci: Add legacy register access conformance section Parav Pandit
2023-05-06 2:31 ` [virtio-dev] Re: [PATCH v2 0/2] transport-pci: Introduce legacy registers access using AQ Jason Wang
2023-05-07 13:44 ` Michael S. Tsirkin
2023-05-08 2:23 ` Jason Wang
2023-05-08 17:07 ` Parav Pandit
2023-05-09 3:44 ` Jason Wang
2023-05-09 3:56 ` [virtio-dev] " Parav Pandit
2023-05-10 3:51 ` [virtio-dev] " Jason Wang
2023-05-10 4:22 ` Jason Wang
2023-05-10 16:07 ` Parav Pandit
2023-05-11 7:20 ` [virtio-dev] Re: [virtio-comment] " Jason Wang
2023-05-11 11:35 ` Michael S. Tsirkin
2023-05-15 5:08 ` Jason Wang
2023-05-15 15:25 ` [virtio-dev] " Parav Pandit
2023-05-10 16:04 ` [virtio-dev] " Parav Pandit
2023-05-11 7:17 ` Jason Wang
2023-05-11 14:31 ` [virtio-dev] " Parav Pandit
2023-05-15 5:12 ` [virtio-dev] Re: [virtio-comment] " Jason Wang
2023-05-15 15:26 ` [virtio-dev] " Parav Pandit
2023-05-10 6:04 ` [virtio-dev] " Michael S. Tsirkin
2023-05-10 7:01 ` Jason Wang
2023-05-10 7:43 ` Michael S. Tsirkin
2023-05-10 16:13 ` Parav Pandit
2023-05-11 7:04 ` Jason Wang
2023-05-11 12:54 ` Michael S. Tsirkin
2023-05-11 13:02 ` [virtio-dev] " Parav Pandit
2023-05-15 7:30 ` [virtio-dev] " Jason Wang
2023-05-15 10:08 ` Michael S. Tsirkin
2023-05-15 14:30 ` [virtio-dev] " Parav Pandit
2023-05-23 18:16 ` [virtio-dev] " Michael S. Tsirkin
2023-05-23 21:32 ` [virtio-dev] " Parav Pandit
2023-05-24 5:56 ` [virtio-dev] " Michael S. Tsirkin
2023-05-24 18:57 ` [virtio-dev] " Parav Pandit
2023-05-24 19:58 ` [virtio-dev] " Michael S. Tsirkin
2023-05-24 20:01 ` [virtio-dev] " Parav Pandit
2023-05-24 20:15 ` [virtio-dev] " Michael S. Tsirkin
2023-05-15 15:59 ` [virtio-dev] " Parav Pandit
2023-05-16 6:21 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 19:11 ` [virtio-dev] " Parav Pandit
2023-05-16 20:58 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 21:19 ` [virtio-dev] " Parav Pandit
2023-05-16 21:23 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 21:30 ` [virtio-dev] " Parav Pandit
2023-05-15 7:13 ` [virtio-dev] " Jason Wang
2023-05-11 13:15 ` [virtio-dev] " Parav Pandit
2023-05-11 13:45 ` [virtio-dev] " Michael S. Tsirkin
2023-05-12 14:03 ` Parav Pandit
2023-05-16 3:54 ` Jason Wang
2023-05-16 19:35 ` [virtio-dev] RE: [virtio-comment] " Parav Pandit
2023-05-16 21:11 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 21:49 ` [virtio-dev] " Parav Pandit
2023-05-16 21:56 ` [virtio-dev] " Michael S. Tsirkin
2023-05-10 16:11 ` [virtio-dev] " Parav Pandit
2023-05-10 16:16 ` Michael S. Tsirkin
2023-05-10 17:33 ` [virtio-dev] " Parav Pandit
2023-05-10 21:08 ` Parav Pandit
2023-05-10 21:33 ` [virtio-dev] " Michael S. Tsirkin
2023-05-10 21:48 ` [virtio-dev] " Parav Pandit
2023-05-11 7:06 ` [virtio-dev] " Jason Wang
2023-05-11 13:04 ` Michael S. Tsirkin
2023-05-15 5:19 ` Jason Wang
2023-05-15 15:31 ` [virtio-dev] " Parav Pandit
2023-05-11 13:28 ` Parav Pandit
2023-05-11 13:38 ` [virtio-dev] " Michael S. Tsirkin
2023-05-11 16:00 ` [virtio-dev] " Parav Pandit
2023-05-11 20:47 ` Parav Pandit
2023-05-11 20:58 ` [virtio-dev] " Michael S. Tsirkin
2023-05-11 21:03 ` [virtio-dev] " Parav Pandit
2023-05-15 16:55 ` Parav Pandit
2023-05-15 7:10 ` Jason Wang [this message]
2023-05-15 15:49 ` Parav Pandit
2023-05-15 17:44 ` [virtio-dev] " Michael S. Tsirkin
2023-05-15 17:51 ` [virtio-dev] " Parav Pandit
2023-05-15 17:56 ` [virtio-dev] " Michael S. Tsirkin
2023-05-15 18:00 ` [virtio-dev] " Parav Pandit
2023-05-15 18:01 ` [virtio-dev] " Michael S. Tsirkin
2023-05-15 18:05 ` [virtio-dev] " Parav Pandit
2023-05-16 3:37 ` [virtio-dev] " Jason Wang
2023-05-16 3:43 ` Jason Wang
2023-05-16 5:38 ` Michael S. Tsirkin
2023-05-16 3:28 ` Jason Wang
2023-05-16 3:45 ` [virtio-dev] " Parav Pandit
2023-05-16 4:08 ` [virtio-dev] " Jason Wang
2023-05-16 19:29 ` [virtio-dev] " Parav Pandit
2023-05-16 21:09 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 21:41 ` [virtio-dev] " Parav Pandit
2023-05-16 21:54 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 4:18 ` Michael S. Tsirkin
2023-05-07 9:04 ` Michael S. Tsirkin
2023-05-08 16:54 ` Parav Pandit
2023-05-15 20:29 ` [virtio-dev] Re: [virtio-comment] " Michael S. Tsirkin
2023-05-15 20:56 ` [virtio-dev] " Parav Pandit
2023-05-16 4:32 ` [virtio-dev] " Michael S. Tsirkin
2023-05-16 18:45 ` [virtio-dev] " Parav Pandit
2023-05-16 20:42 ` [virtio-dev] " Michael S. Tsirkin
2023-05-23 6:38 ` [virtio-dev] " Michael S. Tsirkin
2023-05-23 17:28 ` [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=893b6ec0-a74f-69b7-95a3-988f0f9382a8@redhat.com \
--to=jasowang@redhat.com \
--cc=cohuck@redhat.com \
--cc=david.edmondson@oracle.com \
--cc=maorg@nvidia.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=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