[dpdk-dev] [PATCH v1] net/memif: optimized with one-way barrier

Jakub Grajciar -X (jgrajcia - PANTHEON TECHNOLOGIES at Cisco) jgrajcia at cisco.com
Tue Oct 8 13:05:09 CEST 2019


> > -----Original Message-----
> > From: dev <dev-bounces at dpdk.org> On Behalf Of Phil Yang
> > Sent: Monday, August 26, 2019 7:00 PM
> > To: jgrajcia at cisco.com; dev at dpdk.org
> > Cc: thomas at monjalon.net; jerinj at marvell.com; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli at arm.com>; damarion at cisco.com; nd
> <nd at arm.com>
> > Subject: [dpdk-dev] [PATCH v1] net/memif: optimized with one-way
> > barrier
> >
> > Using 'rte_mb' to synchronize the shared ring head/tail between
> > producer and consumer will stall the pipeline and damage performance
> > on the weak memory model platforms, such like aarch64. Meanwhile
> > update the shared ring head and tail are observable and ordered between
> CPUs on IA.
> >
> > Optimized this full barrier with the one-way barrier can improve the
> > throughput. On aarch64 n1sdp server this patch make testpmd throughput
> > boost 2.1%. On Intel E5-2640, testpmd got 3.98% performance gain.
> >
> > Signed-off-by: Phil Yang <phil.yang at arm.com>
> > Reviewed-by: Gavin Hu <gavin.hu at arm.com>

The patch is looking good, but 'MEMIF_VERSION_MAJOR' in memif.h needs to
be set to 3 as ring pointers are no longer volatile.


More information about the dev mailing list