[dpdk-stable] [PATCH v2 2/2] net/i40e: fix risk in Rx descriptor read in scalar path

Ruifeng Wang Ruifeng.Wang at arm.com
Fri Nov 5 07:57:46 CET 2021


> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang at intel.com>
> Sent: Tuesday, October 19, 2021 7:15 PM
> To: Yigit, Ferruh <ferruh.yigit at intel.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli at arm.com>; Ruifeng Wang
> <Ruifeng.Wang at arm.com>; dev at dpdk.org; Min Hu (Connor)
> <humin29 at huawei.com>; Yisen Zhuang <yisen.zhuang at huawei.com>; Lijun
> Ou <oulijun at huawei.com>
> Cc: Xing, Beilei <beilei.xing at intel.com>; Richardson, Bruce
> <bruce.richardson at intel.com>; jerinj at marvell.com;
> hemant.agrawal at nxp.com; drc at linux.vnet.ibm.com; stable at dpdk.org; nd
> <nd at arm.com>; humin29 at huawei.com
> Subject: RE: [dpdk-stable] [PATCH v2 2/2] net/i40e: fix risk in Rx descriptor
> read in scalar path
> 
> 
> 
> > -----Original Message-----
> > From: Yigit, Ferruh <ferruh.yigit at intel.com>
> > Sent: Tuesday, October 12, 2021 12:27 AM
> > To: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>; Ruifeng
> Wang
> > <Ruifeng.Wang at arm.com>; dev at dpdk.org; Min Hu (Connor)
> > <humin29 at huawei.com>; Yisen Zhuang <yisen.zhuang at huawei.com>;
> Lijun Ou
> > <oulijun at huawei.com>
> > Cc: Xing, Beilei <beilei.xing at intel.com>; Zhang, Qi Z
> > <qi.z.zhang at intel.com>; Richardson, Bruce
> > <bruce.richardson at intel.com>; jerinj at marvell.com;
> > hemant.agrawal at nxp.com; drc at linux.vnet.ibm.com; stable at dpdk.org; nd
> > <nd at arm.com>; humin29 at huawei.com
> > Subject: Re: [dpdk-stable] [PATCH v2 2/2] net/i40e: fix risk in Rx
> > descriptor read in scalar path
> >
> > On 9/29/2021 4:29 PM, Honnappa Nagarahalli wrote:
> > > <snip>
> > >>
> > >> On 9/15/2021 9:33 AM, Ruifeng Wang wrote:
> > >>> Rx descriptor is 16B/32B in size. If the DD bit is set, it
> > >>> indicates that the rest of the descriptor words have valid values.
> > >>> Hence, the word containing DD bit must be read first before
> > >>> reading the rest of the descriptor words.
> > >>>
> > >>> Since the entire descriptor is not read atomically, on relaxed
> > >>> memory ordered systems like Aarch64, read of the word containing
> > >>> DD field could be reordered after read of other words.
> > >>>
> > >>> Read barrier is inserted between read of the word with DD field
> > >>> and read of other words. The barrier ensures that the fetched data
> > >>> is correct.
> > >>>
> > >>> Testpmd single core test showed no performance drop on x86 or
> N1SDP.
> > >>> On ThunderX2, 22% performance regression was observed.
> > >>>
> > >>
> > >> Is 22% performance drop value correct? That is a big drop, is it
> acceptable?
> > > Agree, it is a big drop. Fixing it will require using the barrier less frequently.
> > For ex: read 4 descriptors (4 words containing the DD bits) before
> > using the barrier.
> > >
> > >>
> > >> Is this performance drop valid for all Arm scalar datapath, or is
> > >> it specific to ThunderX2?
> > > This is specific to ThunderX2. N1 CPU does not see any impact. A72
> > > is not
> > tested. Considering that the ThunderXx line of CPUs are not in further
> > development, and it is scalar path, I would not suggest to make
> > further changes to the code.
> > >
> > > It would be good to test this on Kunpeng servers and get some feedback.
> >
> > Hi Connor, Yisen, Lijun,
> >
> > Can you please check this patch? I don't know if you are using i40e
> > nic on your platform but if you do can you please test it?
> >
> > Overall this patch cause a big performance drop on Arm for i40e, I
> > just want to be sure this is not impacting any user negatively.
> 
> Folks:
> 	This patch has been dropped from dpdk-next-net-intel, as still
> waiting for your confirm.
> 	Btw Patch 1/2 was still in dpdk-next-net-intel.
> Thanks
> Qi
> 
Hi Qi, Ferruh,

Do you have any suggestion on how to progress this patch?
It is fixing possible violation of hardware access from architecture point of view.
Negative performance impact may happen because barriers are added.
I don't think we received objections until now.

Thanks,
Ruifeng
> >
> > >
> > >>
> > >>> Fixes: 7b0cf70135d1 ("net/i40e: support ARM platform")
> > >>> Cc: stable at dpdk.org
> > >>>
> > >>> Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
> > >>> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> > >



More information about the stable mailing list