[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] virtio: don't zero out memory region cache for indirect d
From: |
Stefan Hajnoczi |
Subject: |
Re: [PATCH v2] virtio: don't zero out memory region cache for indirect descriptors |
Date: |
Mon, 14 Aug 2023 10:17:12 -0400 |
On Fri, Aug 11, 2023 at 04:34:23PM +0200, Ilya Maximets wrote:
> Lots of virtio functions that are on a hot path in data transmission
> are initializing indirect descriptor cache at the point of stack
> allocation. It's a 112 byte structure that is getting zeroed out on
> each call adding unnecessary overhead. It's going to be correctly
> initialized later via special init function. The only reason to
> actually initialize right away is the ability to safely destruct it.
> Replacing a designated initializer with a function to only initialize
> what is necessary.
>
> Removal of the unnecessary stack initializations improves throughput
> of virtio-net devices in terms of 64B packets per second by 6-14 %
> depending on the case. Tested with a proposed af-xdp network backend
> and a dpdk testpmd application in the guest, but should be beneficial
> for other virtio devices as well.
>
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> ---
>
> Version 2:
>
> * Introduced an initialization function, so we don't need to compare
> pointers in the end. [Stefan]
> * Removed the now unused macro. [Jason]
>
> hw/virtio/virtio.c | 20 +++++++++++++++-----
> include/exec/memory.h | 16 +++++++++++++---
> 2 files changed, 28 insertions(+), 8 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
signature.asc
Description: PGP signature