Re: [RFC PATCH] net/virtio: Align Virtio-net header on cache line in receive path
From: Yang, Zhiyong <hidden>
Date: 2017-02-22 02:49:11
-----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yuanhan Liu Sent: Wednesday, February 22, 2017 9:38 AM To: Maxime Coquelin <redacted> Cc: Liang, Cunming <redacted>; Tan, Jianfeng [off-list ref]; dev@dpdk.org Subject: Re: [dpdk-dev] [RFC PATCH] net/virtio: Align Virtio-net header on cache line in receive path On Tue, Feb 21, 2017 at 06:32:43PM +0100, Maxime Coquelin wrote:quoted
This patch aligns the Virtio-net header on a cache-line boundary to optimize cache utilization, as it puts the Virtio-net header (which is always accessed) on the same cache line as the packet header. For example with an application that forwards packets at L2 level, a single cache-line will be accessed with this patch, instead of two before.I'm assuming you were testing pkt size <= (64 - hdr_size)?quoted
In case of multi-buffers packets, next segments will be aligned on a cache-line boundary, instead of cache-line boundary minus size of vnet header before.The another thing is, this patch always makes the pkt data cache unaligned for the first packet, which makes Zhihong's optimization on memcpy (for big packet) useless.
Why not could we keep pkt data starting always on the cache-line boundary? In case of multi-buffer, the first remains unchanged, next segments can do as Maxime said that. Thanks Zhiyong