Is the rte_kni kernel/user binary interface subject to backwards compatibility 
requirements? Or can we change it for a new DPDK release?

-- Ola

From: "Kokkilagadda, Kiran" <kiran.kokkilaga...@cavium.com>
Date: Wednesday, 29 August 2018 at 07:50
To: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>, Gavin Hu 
<gavin...@arm.com>, Ferruh Yigit <ferruh.yi...@intel.com>, "Jacob, Jerin" 
<jerin.jacobkollanukka...@cavium.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, nd <n...@arm.com>, Ola Liljedahl 
<ola.liljed...@arm.com>, Steve Capper <steve.cap...@arm.com>
Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization


Agreed. Please go a head and make the changes. You need to make same change in 
kernel side also. And please use c11 ring (see rte_ring) mechanism so that it 
won't impact other platforms like intel. We need this change just for arm and 
ppc.

________________________________
From: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
Sent: Wednesday, August 29, 2018 10:29 AM
To: Gavin Hu; Kokkilagadda, Kiran; Ferruh Yigit; Jacob, Jerin
Cc: dev@dpdk.org; nd; Ola Liljedahl; Steve Capper
Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization


External Email

I agree with Gavin here. Store to fifo->write and fifo->read can get hoisted 
resulting in accessing invalid buffer array entries or over writing of the 
buffer array entries.

IMO, we should solve this using c11 atomics. This will also help remove the use 
of ‘volatile’ from ‘rte_kni_fifo’ structure.



If you want us to put together a patch with this idea, please let us know.



Thank you,

Honnappa



From: Gavin Hu
Sent: Tuesday, August 28, 2018 2:31 PM
To: Kokkilagadda, Kiran <kiran.kokkilaga...@cavium.com>; Ferruh Yigit 
<ferruh.yi...@intel.com>; Jacob, Jerin <jerin.jacobkollanukka...@cavium.com>
Cc: dev@dpdk.org; Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>; nd 
<n...@arm.com>; Ola Liljedahl <ola.liljed...@arm.com>; Steve Capper 
<steve.cap...@arm.com>
Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization



Assuming reader and writer may execute on different CPU's, this become standard 
multithreaded programming.

We are concerned about that update the reader pointer too early(weak ordering 
may reorder it before reading from the slots), that means the slots are 
released and may immediately overwritten by the writer then you get “too new” 
data and get lost of the old data.



From: Kokkilagadda, Kiran 
<kiran.kokkilaga...@cavium.com<mailto:kiran.kokkilaga...@cavium.com>>
Sent: Tuesday, August 28, 2018 6:44 PM
To: Gavin Hu <gavin...@arm.com<mailto:gavin...@arm.com>>; Ferruh Yigit 
<ferruh.yi...@intel.com<mailto:ferruh.yi...@intel.com>>; Jacob, Jerin 
<jerin.jacobkollanukka...@cavium.com<mailto:jerin.jacobkollanukka...@cavium.com>>
Cc: dev@dpdk.org<mailto:dev@dpdk.org>; Honnappa Nagarahalli 
<honnappa.nagaraha...@arm.com<mailto:honnappa.nagaraha...@arm.com>>
Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization



In this instance there won't be any problem, as until the value of fifo->write 
changes, this loop won't get executed. As of now we didn't see any issue with 
it and for performance reasons, we don't want to keep read barrier.





________________________________

From: Gavin Hu <gavin...@arm.com<mailto:gavin...@arm.com>>
Sent: Monday, August 27, 2018 9:10 PM
To: Ferruh Yigit; Kokkilagadda, Kiran; Jacob, Jerin
Cc: dev@dpdk.org<mailto:dev@dpdk.org>; Honnappa Nagarahalli
Subject: RE: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization



External Email

This fix is not complete, kni_fifo_get requires a read fence also, otherwise it 
probably gets stale data on a weak ordering platform.

> -----Original Message-----
> From: dev <dev-boun...@dpdk.org<mailto:dev-boun...@dpdk.org>> On Behalf Of 
> Ferruh Yigit
> Sent: Monday, August 27, 2018 10:08 PM
> To: Kiran Kumar 
> <kkokkilaga...@caviumnetworks.com<mailto:kkokkilaga...@caviumnetworks.com>>;
> jerin.ja...@caviumnetworks.com<mailto:jerin.ja...@caviumnetworks.com>
> Cc: dev@dpdk.org<mailto:dev@dpdk.org>
> Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer
> synchronization
>
> On 8/16/2018 10:55 AM, Kiran Kumar wrote:
> > With existing code in kni_fifo_put, rx_q values are not being updated
> > before updating fifo_write. While reading rx_q in kni_net_rx_normal,
> > This is causing the sync issue on other core. So adding a write
> > barrier to make sure the values being synced before updating fifo_write.
> >
> > Fixes: 3fc5ca2f6352 ("kni: initial import")
> >
> > Signed-off-by: Kiran Kumar 
> > <kkokkilaga...@caviumnetworks.com<mailto:kkokkilaga...@caviumnetworks.com>>
> > Acked-by: Jerin Jacob 
> > <jerin.ja...@caviumnetworks.com<mailto:jerin.ja...@caviumnetworks.com>>
>
> Acked-by: Ferruh Yigit <ferruh.yi...@intel.com<mailto:ferruh.yi...@intel.com>>
IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

Reply via email to