> > > > <snip> > > > > > > > > > > Hi, > > > > > > > > > > > > > > Lock-free mode is supported by hash library and LPM library. > > > > > Now we add an option for l3fwd example to enable the lock-free > mode. > > > > > Necessary preparation steps are added to use lock-free LPM mode. > > > > > > > > Can I ask about the purpose of these changes? > > > > Right now in l3fwd both lpm and hash tables are static and hard-coded. > > > > we initialize them at startup and then just do read from them. > > > > Do you plan to enhance l3fwd with ability to dynamically update > > > > tables contents? > > > > Though fir that we first have to get rid of hard-coded values > > > > (config file or > > > so). > > > > Konstantin > > > > > > > Thanks for your questions. > > > Currently, we have no plan to enhance l3fwd with ability to > > > dynamically update table contents. > > > Lock-free method is being integrated into Hash library and LPM > > > library. Lock- free algorithms are not only about control plane > > > (adding or deleting routes), they affect the data path performance as > > > well. > > > Since l3fwd application is showcasing data path performance, we need > > > to show the impact of including the quiescent state reporting on data > path. > > > This change also serves as an example of using the RCU APIs. > > > > > Without the dynamic deletes the quiescent state reporting overhead is > > not captured completely. > > I suggest that we add and delete a small set of unrelated routes (the > > routes that are not used currently) on a regular basis. > > > Add and delete unrelated routes on a regular basis will simulate overhead on > control path. However, control path performance is not a l3fwd showcase, > and it is covered by LPM performance unit test. > On data path, quiescent state reporting overhead is constant (calling of > rte_rcu_qsbr_quiescent). > It will not be impacted by route addition / deletion. The recent changes to RCU [1] are such that the reader threads avoid a write if there are no deletes. So, without the deletion, the impact on readers is complete.
[1] https://patchwork.dpdk.org/patch/58961/ > > > > > > > > > > > Patch 2/2 has dependency on RCU QSBR integration with LPM library: > > > > > http://patches.dpdk.org/project/dpdk/list/?series=6288 > > > > > > > > > > > > > > > Ruifeng Wang (2): > > > > > examples/l3fwd: add lock-free option for l3fwd > > > > > examples/l3fwd: integrate RCU QSBR for LPM mode > > > > > > > > > > doc/guides/sample_app_ug/l3_forward.rst | 3 ++ > > > > > examples/l3fwd/Makefile | 1 + > > > > > examples/l3fwd/l3fwd.h | 4 +- > > > > > examples/l3fwd/l3fwd_em.c | 10 +++- > > > > > examples/l3fwd/l3fwd_lpm.c | 72 > > +++++++++++++++++++++++-- > > > > > examples/l3fwd/main.c | 27 ++++++++-- > > > > > examples/l3fwd/meson.build | 1 + > > > > > 7 files changed, 108 insertions(+), 10 deletions(-) > > > > > > > > > > -- > > > > > 2.17.1 > > > > > >