> From: Joyce Kong [mailto:joyce.k...@arm.com]
> Sent: Tuesday, 17 May 2022 12.51
> 
> For memif non-zero-copy mode, there is a branch to compare
> the mbuf and memif buffer size during memory copying. Add
> a fast memory copy path by removing this branch with mbuf
> and memif buffer size defined at compile time. And for Tx
> fast path, bulk free the mbufs which come from the same
> mempool.
> 
> When mbuf == memif buffer size, both Rx/Tx would choose
> the fast memcpy path. When mbuf < memif buffer size, the
> Rx chooses previous memcpy path while Tx chooses fast
> memcpy path. When mbuf > memif buffer size, the Rx chooses
> fast memcpy path while Tx chooses previous memcpy path.
> 
> Test with 1p1q on Ampere Altra AArch64 server,
> ---------------------------------------------------------
>   buf size  | memif = mbuf | memif < mbuf | memif > mbuf
> ---------------------------------------------------------
> non-zc gain |    16.95%    |     3.28%    |    13.29%
> ---------------------------------------------------------
>    zc gain  |    19.43%    |     4.62%    |    18.14%
> ---------------------------------------------------------
> 
> Test with 1p1q on Cascade Lake Xeon X86server,
> ---------------------------------------------------------
>   buf size  | memif = mbuf | memif < mbuf | memif > mbuf
> ---------------------------------------------------------
> non-zc gain |    19.97%    |     2.35%    |    21.43%
> ---------------------------------------------------------
>    zc gain  |    14.30%    |    -1.21%    |    11.98%
> ---------------------------------------------------------
> 
> Joyce Kong (2):
>   net/memif: add a Rx fast path
>   net/memif: add a Tx fast path
> 
>  drivers/net/memif/rte_eth_memif.c | 258 ++++++++++++++++++++----------
>  1 file changed, 176 insertions(+), 82 deletions(-)
> 
> --
> 2.25.1
> 

Series-Acked-by: Morten Brørup <m...@smartsharesystems.com>

Reply via email to