2022-07-21 09:32:14

by Guo Zhi

[permalink] [raw]
Subject: [RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.

When this feature has been negotiated, virtio driver will use
descriptors in ring order: starting from offset 0 in the table, and
wrapping around at the end of the table. Vhost devices will always use
descriptors in the same order in which they have been made available.
This can reduce virtio accesses to used ring.

Based on updated virtio-spec, this series realized IN_ORDER prototype
in virtio driver and vhost.

Guo Zhi (5):
vhost: reorder used descriptors in a batch
vhost: announce VIRTIO_F_IN_ORDER support
vhost_test: batch used buffer
virtio: get desc id in order
virtio: annouce VIRTIO_F_IN_ORDER support

drivers/vhost/test.c | 15 +++++++++++-
drivers/vhost/vhost.c | 44 ++++++++++++++++++++++++++++++++++--
drivers/vhost/vhost.h | 4 ++++
drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
4 files changed, 91 insertions(+), 11 deletions(-)

--
2.17.1


2022-07-21 09:38:55

by Jason Wang

[permalink] [raw]
Subject: Re: [RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.

On Thu, Jul 21, 2022 at 4:44 PM Guo Zhi <[email protected]> wrote:
>
> When this feature has been negotiated, virtio driver will use
> descriptors in ring order: starting from offset 0 in the table, and
> wrapping around at the end of the table. Vhost devices will always use
> descriptors in the same order in which they have been made available.
> This can reduce virtio accesses to used ring.
>
> Based on updated virtio-spec, this series realized IN_ORDER prototype
> in virtio driver and vhost.

Thanks a lot for the series.

I wonder if you can share any performance numbers for this?

Thanks

>
> Guo Zhi (5):
> vhost: reorder used descriptors in a batch
> vhost: announce VIRTIO_F_IN_ORDER support
> vhost_test: batch used buffer
> virtio: get desc id in order
> virtio: annouce VIRTIO_F_IN_ORDER support
>
> drivers/vhost/test.c | 15 +++++++++++-
> drivers/vhost/vhost.c | 44 ++++++++++++++++++++++++++++++++++--
> drivers/vhost/vhost.h | 4 ++++
> drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
> 4 files changed, 91 insertions(+), 11 deletions(-)
>
> --
> 2.17.1
>

2022-07-21 12:54:19

by Guo Zhi

[permalink] [raw]
Subject: Re: [RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.

On 2022/7/21 17:17, Jason Wang wrote:
> On Thu, Jul 21, 2022 at 4:44 PM Guo Zhi <[email protected]> wrote:
>> When this feature has been negotiated, virtio driver will use
>> descriptors in ring order: starting from offset 0 in the table, and
>> wrapping around at the end of the table. Vhost devices will always use
>> descriptors in the same order in which they have been made available.
>> This can reduce virtio accesses to used ring.
>>
>> Based on updated virtio-spec, this series realized IN_ORDER prototype
>> in virtio driver and vhost.
> Thanks a lot for the series.
>
> I wonder if you can share any performance numbers for this?
>
> Thanks

As a RFC series, current prototype only support virtio_test, and its
performance evaluation between

in order and traditional has little difference. We can focus on the
prototype design at this stage.

I will continue work to support real network driver and device, thus
share more persuasive performance result.

Thanks.

>> Guo Zhi (5):
>> vhost: reorder used descriptors in a batch
>> vhost: announce VIRTIO_F_IN_ORDER support
>> vhost_test: batch used buffer
>> virtio: get desc id in order
>> virtio: annouce VIRTIO_F_IN_ORDER support
>>
>> drivers/vhost/test.c | 15 +++++++++++-
>> drivers/vhost/vhost.c | 44 ++++++++++++++++++++++++++++++++++--
>> drivers/vhost/vhost.h | 4 ++++
>> drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
>> 4 files changed, 91 insertions(+), 11 deletions(-)
>>
>> --
>> 2.17.1
>>