Hi Stephen,

Please see inline.

Thanks,
Anoob

> -----Original Message-----
> From: Stephen Hemminger <[email protected]>
> Sent: Thursday, May 25, 2023 12:02 AM
> To: Anoob Joseph <[email protected]>
> Cc: Thomas Monjalon <[email protected]>; Akhil Goyal
> <[email protected]>; Jerin Jacob Kollanukkaran <[email protected]>;
> Konstantin Ananyev <[email protected]>; Bernard
> Iremonger <[email protected]>; Volodymyr Fialko
> <[email protected]>; Hemant Agrawal <[email protected]>;
> Mattias Rönnblom <[email protected]>; Kiran Kumar
> Kokkilagadda <[email protected]>; [email protected]; Olivier Matz
> <[email protected]>
> Subject: [EXT] Re: [PATCH v3 21/22] pdcp: add thread safe processing
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Wed, 24 May 2023 21:31:15 +0530
> Anoob Joseph <[email protected]> wrote:
> 
> > From: Volodymyr Fialko <[email protected]>
> >
> > PDCP state has to be guarded for:
> >
> > - Uplink pre_process:
> >     - tx_next atomic increment
> >
> > - Downlink pre_process:
> >     - rx_deliv - read
> >
> > - Downlink post_process:
> >     - rx_deliv, rx_reorder, rx_next - read/write
> >     - bitmask/reorder buffer - read/write
> >
> > When application requires thread safe processing, the state variables
> > need to be updated atomically. Add config option to select this option
> > per entity.
> >
> > Signed-off-by: Anoob Joseph <[email protected]>
> > Signed-off-by: Volodymyr Fialko <[email protected]>
> 
> NAK
> Conditional locking is a bad design pattern.
> It leads to lots of problems, and makes it almost impossible for analysis 
> tools.

[Anoob] With PDCP (& most other protocols), we have to update the states 
atomically. Application designers would have a choice of either use single 
thread or do multi-thread processing. If the library is designed for 
multi-thread and if application uses only single thread, then there would be 
unnecessary overheads from library. If library sticks to single-thread and if 
application needs more threads for scaling, then again it would become a 
library issue.

Is your issue with providing such an option or is it about how it is 
implemented? IPsec also has a similar challenge and similar per SA 
configuration is provided in lib IPsec as well.

Reply via email to