From: "Kovacevic, Marko" <marko.kovacevic@intel.com>
To: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"stephen@networkplumber.org" <stephen@networkplumber.org>,
"paulmck@linux.ibm.com" <paulmck@linux.ibm.com>,
"dev@dpdk.org" <dev@dpdk.org>
Cc: "gavin.hu@arm.com" <gavin.hu@arm.com>,
"dharmik.thakkar@arm.com" <dharmik.thakkar@arm.com>,
"malvika.gupta@arm.com" <malvika.gupta@arm.com>
Subject: Re: [dpdk-dev] [PATCH 3/3] doc/rcu: add lib_rcu documentation
Date: Mon, 25 Mar 2019 11:34:31 +0000 [thread overview]
Message-ID: <6DC05C7C5F25994B81B3F2F214251F66020AC33E@IRSMSX104.ger.corp.intel.com> (raw)
Message-ID: <20190325113431.fDT-s94cDlXpJVzSuN6qEZEQ_NA-d87JHEPigjUdIAw@z> (raw)
In-Reply-To: <20190319045228.46879-4-honnappa.nagarahalli@arm.com>
> Subject: [dpdk-dev] [PATCH 3/3] doc/rcu: add lib_rcu documentation
>
> Add lib_rcu QSBR API and programmer guide documentation.
>
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
>
> ---
> doc/api/doxy-api-index.md | 3 +-
> doc/api/doxy-api.conf.in | 1 +
> .../prog_guide/img/rcu_general_info.svg | 494 ++++++++++++++++++
> doc/guides/prog_guide/index.rst | 1 +
> doc/guides/prog_guide/rcu_lib.rst | 179 +++++++
> 5 files changed, 677 insertions(+), 1 deletion(-) create mode 100644
> doc/guides/prog_guide/img/rcu_general_info.svg
> create mode 100644 doc/guides/prog_guide/rcu_lib.rst
>
<...>
> diff --git a/doc/guides/prog_guide/index.rst
> b/doc/guides/prog_guide/index.rst index 6726b1e8d..6fb3fb921 100644
> --- a/doc/guides/prog_guide/index.rst
> +++ b/doc/guides/prog_guide/index.rst
> @@ -55,6 +55,7 @@ Programmer's Guide
> metrics_lib
> bpf_lib
> ipsec_lib
> + rcu_lib
> source_org
> dev_kit_build_system
> dev_kit_root_make_help
> diff --git a/doc/guides/prog_guide/rcu_lib.rst
> b/doc/guides/prog_guide/rcu_lib.rst
> new file mode 100644
> index 000000000..5155dd35c
> --- /dev/null
> +++ b/doc/guides/prog_guide/rcu_lib.rst
> @@ -0,0 +1,179 @@
> +.. SPDX-License-Identifier: BSD-3-Clause
> + Copyright(c) 2019 Arm Limited.
> +
> +.. _RCU_Library:
> +
> +RCU Library
> +============
> +
> +Lock-less data structures provide scalability and determinism.
> +They enable use cases where locking may not be allowed (for ex:
> +real-time applications).
> +
> +In the following paras, the term 'memory' refers to memory allocated by
> +typical APIs like malloc or anything that is representative of memory,
> +for ex: an index of a free element array.
> +
> +Since these data structures are lock less, the writers and readers are
> +accessing the data structures concurrently. Hence, while removing an
> +element from a data structure, the writers cannot return the memory to
> +the allocator, without knowing that the readers are not referencing
> +that element/memory anymore. Hence, it is required to separate the
> +operation of removing an element into 2 steps:
> +
> +Delete: in this step, the writer removes the reference to the element
> +from the data structure but does not return the associated memory to
> +the allocator. This will ensure that new readers will not get a
> +reference to the removed element. Removing the reference is an atomic
> operation.
> +
> +Free(Reclaim): in this step, the writer returns the memory to the
> +memory allocator, only after knowing that all the readers have stopped
> +referencing the deleted element.
> +
> +This library helps the writer determine when it is safe to free the
> +memory.
> +
> +This library makes use of thread Quiescent State (QS).
> +
> +What is Quiescent State
> +-----------------------
> +Quiescent State can be defined as 'any point in the thread execution
> +where the thread does not hold a reference to shared memory'. It is
> +upto the application to determine its quiescent state.
> +
> +Let us consider the following diagram:
> +
> +.. figure:: img/rcu_general_info.*
> +
> +
> +As shown, reader thread 1 acesses data structures D1 and D2. When it is
Spelling acesses / accesses
> +accessing D1, if the writer has to remove an element from D1, the
> +writer cannot free the memory associated with that element immediately.
> +The writer can return the memory to the allocator only after the reader
> +stops referencng D1. In other words, reader thread RT1 has to enter a
Spelling referencng / referencing
> +quiescent state.
> +
> +Similarly, since reader thread 2 is also accessing D1, writer has to
> +wait till thread 2 enters quiescent state as well.
> +
> +However, the writer does not need to wait for reader thread 3 to enter
> +quiescent state. Reader thread 3 was not accessing D1 when the delete
> +operation happened. So, reader thread 1 will not have a reference to
> +the deleted entry.
> +
> +It can be noted that, the critical sections for D2 is a quiescent state
> +for D1. i.e. for a given data structure Dx, any point in the thread
> +execution that does not reference Dx is a quiescent state.
> +
> +Since memory is not freed immediately, there might be a need for
> +provisioning of additional memory, depending on the application
> requirements.
> +
> +Factores affecting RCU mechanism
> +---------------------------------
Spelling Factores/ Factors
> +
> +It is important to make sure that this library keeps the over head of
Over head / overhead
> +identifying the end of grace period and subsequent freeing of memory,
> +to a minimum. The following paras explain how grace period and critical
> +section affect this overhead.
> +
> +The writer has to poll the readers to identify the end of grace period.
> +Polling introduces memory accesses and wastes CPU cycles. The memory is
> +not available for reuse during grace period. Longer grace periods
> +exasperate these conditions.
> +
> +The length of the critical section and the number of reader threads is
> +proportional to the duration of the grace period. Keeping the critical
> +sections smaller will keep the grace period smaller. However, keeping
> +the critical sections smaller requires additional CPU cycles(due to
> +additional
> +reporting) in the readers.
> +
> +Hence, we need the characteristics of small grace period and large
> +critical section. This library addresses this by allowing the writer to
> +do other work without having to block till the readers report their
> +quiescent state.
> +
> +RCU in DPDK
> +-----------
> +
> +For DPDK applications, the start and end of while(1) loop (where no
> +references to shared data structures are kept) act as perfect quiescent
> +states. This will combine all the shared data structure accesses into a
> +single, large critical section which helps keep the over head on the
Over head / overhead
> +reader side to a minimum.
> +
> +DPDK supports pipeline model of packet processing and service cores.
> +In these use cases, a given data structure may not be used by all the
> +workers in the application. The writer does not have to wait for all
> +the workers to report their quiescent state. To provide the required
> +flexibility, this library has a concept of QS variable. The application
> +can create one QS variable per data structure to help it track the end
> +of grace period for each data structure. This helps keep the grace
> +period to a minimum.
> +
> +How to use this library
> +-----------------------
> +
> +The application has to allocate memory and initialize a QS variable.
> +
Maybe instead of making the call below bold using `` `` might be better to use
**rte_rcu_qsbr_get_memsize**
``rte_rcu_qsbr_get_memsize``
For all of them below
> +Application can call **rte_rcu_qsbr_get_memsize** to calculate the size
> +of memory to allocate. This API takes maximum number of reader threads,
> +using this variable, as a parameter. Currently, a maximum of 1024
> +threads are supported.
> +
> +Further, the application can initialize a QS variable using the API
> +**rte_rcu_qsbr_init**.
> +
> +Each reader thread is assumed to have a unique thread ID. Currently,
> +the management of the thread ID (for ex: allocation/free) is left to
> +the application. The thread ID should be in the range of 0 to maximum
> +number of threads provided while creating the QS variable.
> +The application could also use lcore_id as the thread ID where applicable.
> +
> +**rte_rcu_qsbr_thread_register** API will register a reader thread to
> +report its quiescent state. This can be called from a reader thread.
> +A control plane thread can also call this on behalf of a reader thread.
> +The reader thread must call **rte_rcu_qsbr_thread_online** API to start
> +reporting its quiescent state.
> +
> +Some of the use cases might require the reader threads to make blocking
> +API calls (for ex: while using eventdev APIs). The writer thread should
> +not wait for such reader threads to enter quiescent state.
> +The reader thread must call **rte_rcu_qsbr_thread_offline** API, before
> +calling blocking APIs. It can call **rte_rcu_qsbr_thread_online** API
> +once the blocking API call returns.
> +
> +The writer thread can trigger the reader threads to report their
> +quiescent state by calling the API **rte_rcu_qsbr_start**. It is
> +possible for multiple writer threads to query the quiescent state
> +status simultaneously. Hence,
> +**rte_rcu_qsbr_start** returns a token to each caller.
> +
> +The writer thread has to call **rte_rcu_qsbr_check** API with the token
> +to get the current quiescent state status. Option to block till all the
> +reader threads enter the quiescent state is provided. If this API
> +indicates that all the reader threads have entered the quiescent state,
> +the application can free the deleted entry.
> +
> +The APIs **rte_rcu_qsbr_start** and **rte_rcu_qsbr_check** are lock
> free.
> +Hence, they can be called concurrently from multiple writers even while
> +running as worker threads.
> +
> +The separation of triggering the reporting from querying the status
> +provides the writer threads flexibility to do useful work instead of
> +blocking for the reader threads to enter the quiescent state or go
> +offline. This reduces the memory accesses due to continuous polling for the
> status.
> +
> +**rte_rcu_qsbr_synchronize** API combines the functionality of
> +**rte_rcu_qsbr_start** and blocking **rte_rcu_qsbr_check** into a single
> API.
> +This API triggers the reader threads to report their quiescent state
> +and polls till all the readers enter the quiescent state or go offline.
> +This API does not allow the writer to do useful work while waiting and
> +also introduces additional memory accesses due to continuous polling.
> +
> +The reader thread must call **rte_rcu_qsbr_thread_offline** and
> +**rte_rcu_qsbr_thread_unregister** APIs to remove itself from reporting
> +its quiescent state. The **rte_rcu_qsbr_check** API will not wait for
> +this reader thread to report the quiescent state status anymore.
> +
> +The reader threads should call **rte_rcu_qsbr_update** API to indicate
> +that they entered a quiescent state. This API checks if a writer has
> +triggered a quiescent state query and update the state accordingly.
> --
If it's possible to enlarge the image a bit it would be good to be able to read the lower text
I need to enlarge it to 175% maybe I'm just blind but if it's possible it would be great
Reviewed-by: Marko Kovacevic <marko.kovacevic@intel.com>
next prev parent reply other threads:[~2019-03-25 11:34 UTC|newest]
Thread overview: 260+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-22 3:30 [dpdk-dev] [RFC 0/3] tqs: add thread quiescent state library Honnappa Nagarahalli
2018-11-22 3:30 ` [dpdk-dev] [RFC 1/3] log: add TQS log type Honnappa Nagarahalli
2018-11-27 22:24 ` Stephen Hemminger
2018-11-28 5:58 ` Honnappa Nagarahalli
2018-11-22 3:30 ` [dpdk-dev] [RFC 2/3] tqs: add thread quiescent state library Honnappa Nagarahalli
2018-11-24 12:18 ` Ananyev, Konstantin
2018-11-27 21:32 ` Honnappa Nagarahalli
2018-11-28 15:25 ` Ananyev, Konstantin
2018-12-07 7:27 ` Honnappa Nagarahalli
2018-12-07 17:29 ` Stephen Hemminger
2018-12-11 6:40 ` Honnappa Nagarahalli
2018-12-13 12:26 ` Burakov, Anatoly
2018-12-18 4:30 ` Honnappa Nagarahalli
2018-12-18 6:31 ` Stephen Hemminger
2018-12-12 9:29 ` Ananyev, Konstantin
2018-12-13 7:39 ` Honnappa Nagarahalli
2018-12-17 13:14 ` Ananyev, Konstantin
2018-11-22 3:30 ` [dpdk-dev] [RFC 3/3] test/tqs: Add API and functional tests Honnappa Nagarahalli
[not found] ` <CGME20181122073110eucas1p17592400af6c0b807dc87e90d136575af@eucas1p1.samsung.com>
2018-11-22 7:31 ` [dpdk-dev] [RFC 0/3] tqs: add thread quiescent state library Ilya Maximets
2018-11-27 22:28 ` Stephen Hemminger
2018-11-27 22:49 ` Van Haaren, Harry
2018-11-28 5:31 ` Honnappa Nagarahalli
2018-11-28 23:23 ` Stephen Hemminger
2018-11-30 2:13 ` Honnappa Nagarahalli
2018-11-30 16:26 ` Luca Boccassi
2018-11-30 18:32 ` Stephen Hemminger
2018-11-30 20:20 ` Honnappa Nagarahalli
2018-11-30 20:56 ` Mattias Rönnblom
2018-11-30 23:44 ` Stephen Hemminger
2018-12-01 18:37 ` Honnappa Nagarahalli
2018-11-30 2:25 ` Honnappa Nagarahalli
2018-11-30 21:03 ` Mattias Rönnblom
2018-12-22 2:14 ` [dpdk-dev] [RFC v2 0/2] rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2018-12-22 2:14 ` [dpdk-dev] [RFC v2 1/2] " Honnappa Nagarahalli
2019-01-15 11:39 ` Ananyev, Konstantin
2019-01-15 20:43 ` Honnappa Nagarahalli
2019-01-16 15:56 ` Ananyev, Konstantin
2019-01-18 6:48 ` Honnappa Nagarahalli
2019-01-18 12:14 ` Ananyev, Konstantin
2019-01-24 17:15 ` Honnappa Nagarahalli
2019-01-24 18:05 ` Ananyev, Konstantin
2019-02-22 7:07 ` Honnappa Nagarahalli
2018-12-22 2:14 ` [dpdk-dev] [RFC v2 2/2] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2018-12-23 7:30 ` Stephen Hemminger
2018-12-23 16:25 ` Paul E. McKenney
2019-01-18 7:04 ` Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 0/5] rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 1/5] " Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 2/5] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 3/5] lib/rcu: add dynamic memory allocation capability Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 4/5] test/rcu_qsbr: modify test cases for dynamic memory allocation Honnappa Nagarahalli
2019-02-22 7:04 ` [dpdk-dev] [RFC v3 5/5] lib/rcu: fix the size of register thread ID array size Honnappa Nagarahalli
2019-03-19 4:52 ` [dpdk-dev] [PATCH 0/3] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-03-19 4:52 ` Honnappa Nagarahalli
2019-03-19 4:52 ` [dpdk-dev] [PATCH 1/3] rcu: " Honnappa Nagarahalli
2019-03-19 4:52 ` Honnappa Nagarahalli
2019-03-22 16:42 ` Ananyev, Konstantin
2019-03-22 16:42 ` Ananyev, Konstantin
2019-03-26 4:35 ` Honnappa Nagarahalli
2019-03-26 4:35 ` Honnappa Nagarahalli
2019-03-28 11:15 ` Ananyev, Konstantin
2019-03-28 11:15 ` Ananyev, Konstantin
2019-03-29 5:54 ` Honnappa Nagarahalli
2019-03-29 5:54 ` Honnappa Nagarahalli
2019-03-19 4:52 ` [dpdk-dev] [PATCH 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-03-19 4:52 ` Honnappa Nagarahalli
2019-03-19 4:52 ` [dpdk-dev] [PATCH 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-03-19 4:52 ` Honnappa Nagarahalli
2019-03-25 11:34 ` Kovacevic, Marko [this message]
2019-03-25 11:34 ` Kovacevic, Marko
2019-03-26 4:43 ` Honnappa Nagarahalli
2019-03-26 4:43 ` Honnappa Nagarahalli
2019-03-27 5:52 ` [dpdk-dev] [PATCH v2 0/3] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-03-27 5:52 ` Honnappa Nagarahalli
2019-03-27 5:52 ` [dpdk-dev] [PATCH v2 1/3] rcu: " Honnappa Nagarahalli
2019-03-27 5:52 ` Honnappa Nagarahalli
2019-03-27 5:52 ` [dpdk-dev] [PATCH v2 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-03-27 5:52 ` Honnappa Nagarahalli
2019-03-27 5:52 ` [dpdk-dev] [PATCH v2 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-03-27 5:52 ` Honnappa Nagarahalli
2019-04-01 17:10 ` [dpdk-dev] [PATCH v3 0/3] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-04-01 17:10 ` Honnappa Nagarahalli
2019-04-01 17:11 ` [dpdk-dev] [PATCH v3 1/3] rcu: " Honnappa Nagarahalli
2019-04-01 17:11 ` Honnappa Nagarahalli
2019-04-02 10:22 ` Ananyev, Konstantin
2019-04-02 10:22 ` Ananyev, Konstantin
2019-04-02 10:53 ` Ananyev, Konstantin
2019-04-02 10:53 ` Ananyev, Konstantin
2019-04-01 17:11 ` [dpdk-dev] [PATCH v3 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-01 17:11 ` Honnappa Nagarahalli
2019-04-02 10:55 ` Ananyev, Konstantin
2019-04-02 10:55 ` Ananyev, Konstantin
2019-04-01 17:11 ` [dpdk-dev] [PATCH v3 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-01 17:11 ` Honnappa Nagarahalli
2019-04-10 11:20 ` [dpdk-dev] [PATCH v4 0/3] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-04-10 11:20 ` Honnappa Nagarahalli
2019-04-10 11:20 ` [dpdk-dev] [PATCH v4 1/3] rcu: " Honnappa Nagarahalli
2019-04-10 11:20 ` Honnappa Nagarahalli
2019-04-10 18:14 ` Paul E. McKenney
2019-04-10 18:14 ` Paul E. McKenney
2019-04-11 4:35 ` Honnappa Nagarahalli
2019-04-11 4:35 ` Honnappa Nagarahalli
2019-04-11 15:26 ` Paul E. McKenney
2019-04-11 15:26 ` Paul E. McKenney
2019-04-12 20:21 ` Honnappa Nagarahalli
2019-04-12 20:21 ` Honnappa Nagarahalli
2019-04-15 16:51 ` Ananyev, Konstantin
2019-04-15 16:51 ` Ananyev, Konstantin
2019-04-15 19:46 ` Honnappa Nagarahalli
2019-04-15 19:46 ` Honnappa Nagarahalli
2019-04-10 11:20 ` [dpdk-dev] [PATCH v4 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-10 11:20 ` Honnappa Nagarahalli
2019-04-10 15:26 ` Stephen Hemminger
2019-04-10 15:26 ` Stephen Hemminger
2019-04-10 16:15 ` Honnappa Nagarahalli
2019-04-10 16:15 ` Honnappa Nagarahalli
2019-04-10 11:20 ` [dpdk-dev] [PATCH v4 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-10 11:20 ` Honnappa Nagarahalli
2019-04-12 20:20 ` [dpdk-dev] [PATCH v5 0/3] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-04-12 20:20 ` Honnappa Nagarahalli
2019-04-12 20:20 ` [dpdk-dev] [PATCH v5 1/3] rcu: " Honnappa Nagarahalli
2019-04-12 20:20 ` Honnappa Nagarahalli
2019-04-12 22:06 ` Stephen Hemminger
2019-04-12 22:06 ` Stephen Hemminger
2019-04-12 22:24 ` Honnappa Nagarahalli
2019-04-12 22:24 ` Honnappa Nagarahalli
2019-04-12 23:06 ` Stephen Hemminger
2019-04-12 23:06 ` Stephen Hemminger
2019-04-15 12:24 ` Ananyev, Konstantin
2019-04-15 12:24 ` Ananyev, Konstantin
2019-04-15 15:38 ` Stephen Hemminger
2019-04-15 15:38 ` Stephen Hemminger
2019-04-15 17:39 ` Ananyev, Konstantin
2019-04-15 17:39 ` Ananyev, Konstantin
2019-04-15 18:56 ` Honnappa Nagarahalli
2019-04-15 18:56 ` Honnappa Nagarahalli
2019-04-15 21:26 ` Stephen Hemminger
2019-04-15 21:26 ` Stephen Hemminger
2019-04-16 5:29 ` Honnappa Nagarahalli
2019-04-16 5:29 ` Honnappa Nagarahalli
2019-04-16 14:54 ` Stephen Hemminger
2019-04-16 14:54 ` Stephen Hemminger
2019-04-16 16:56 ` Honnappa Nagarahalli
2019-04-16 16:56 ` Honnappa Nagarahalli
2019-04-16 21:22 ` Stephen Hemminger
2019-04-16 21:22 ` Stephen Hemminger
2019-04-17 1:45 ` Honnappa Nagarahalli
2019-04-17 1:45 ` Honnappa Nagarahalli
2019-04-17 13:39 ` Ananyev, Konstantin
2019-04-17 13:39 ` Ananyev, Konstantin
2019-04-17 14:02 ` Honnappa Nagarahalli
2019-04-17 14:02 ` Honnappa Nagarahalli
2019-04-17 14:18 ` Thomas Monjalon
2019-04-17 14:18 ` Thomas Monjalon
2019-04-12 20:20 ` [dpdk-dev] [PATCH v5 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-12 20:20 ` Honnappa Nagarahalli
2019-04-12 20:20 ` [dpdk-dev] [PATCH v5 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-12 20:20 ` Honnappa Nagarahalli
2019-04-15 17:29 ` [dpdk-dev] [PATCH v5 0/3] lib/rcu: add RCU library supporting QSBR mechanism Ananyev, Konstantin
2019-04-15 17:29 ` Ananyev, Konstantin
2019-04-16 5:10 ` Honnappa Nagarahalli
2019-04-16 5:10 ` Honnappa Nagarahalli
2019-04-17 4:13 ` [dpdk-dev] [PATCH v6 " Honnappa Nagarahalli
2019-04-17 4:13 ` Honnappa Nagarahalli
2019-04-17 4:13 ` [dpdk-dev] [PATCH v6 1/3] rcu: " Honnappa Nagarahalli
2019-04-17 4:13 ` Honnappa Nagarahalli
2019-04-19 19:19 ` Paul E. McKenney
2019-04-19 19:19 ` Paul E. McKenney
2019-04-23 1:08 ` Honnappa Nagarahalli
2019-04-23 1:08 ` Honnappa Nagarahalli
2019-04-17 4:13 ` [dpdk-dev] [PATCH v6 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-17 4:13 ` Honnappa Nagarahalli
2019-04-17 4:13 ` [dpdk-dev] [PATCH v6 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-17 4:13 ` Honnappa Nagarahalli
2019-04-21 16:40 ` [dpdk-dev] [PATCH v6 0/3] lib/rcu: add RCU library supporting QSBR mechanism Thomas Monjalon
2019-04-21 16:40 ` Thomas Monjalon
2019-04-25 14:18 ` Honnappa Nagarahalli
2019-04-25 14:18 ` Honnappa Nagarahalli
2019-04-25 14:27 ` Honnappa Nagarahalli
2019-04-25 14:27 ` Honnappa Nagarahalli
2019-04-25 14:38 ` David Marchand
2019-04-25 14:38 ` David Marchand
2019-04-23 4:31 ` [dpdk-dev] [PATCH v7 " Honnappa Nagarahalli
2019-04-23 4:31 ` Honnappa Nagarahalli
2019-04-23 4:31 ` [dpdk-dev] [PATCH v7 1/3] rcu: " Honnappa Nagarahalli
2019-04-23 4:31 ` Honnappa Nagarahalli
2019-04-23 8:10 ` Paul E. McKenney
2019-04-23 8:10 ` Paul E. McKenney
2019-04-23 21:23 ` Honnappa Nagarahalli
2019-04-23 21:23 ` Honnappa Nagarahalli
2019-04-24 20:02 ` Jerin Jacob Kollanukkaran
2019-04-24 20:02 ` Jerin Jacob Kollanukkaran
2019-04-25 5:15 ` Honnappa Nagarahalli
2019-04-25 5:15 ` Honnappa Nagarahalli
2019-04-24 10:03 ` Ruifeng Wang (Arm Technology China)
2019-04-24 10:03 ` Ruifeng Wang (Arm Technology China)
2019-04-23 4:31 ` [dpdk-dev] [PATCH v7 2/3] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-23 4:31 ` Honnappa Nagarahalli
2019-04-23 4:31 ` [dpdk-dev] [PATCH v7 3/3] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-23 4:31 ` Honnappa Nagarahalli
2019-04-24 10:12 ` Ruifeng Wang (Arm Technology China)
2019-04-24 10:12 ` Ruifeng Wang (Arm Technology China)
2019-04-26 4:39 ` [dpdk-dev] [PATCH v8 0/4] lib/rcu: add RCU library supporting QSBR mechanism Honnappa Nagarahalli
2019-04-26 4:39 ` Honnappa Nagarahalli
2019-04-26 4:39 ` [dpdk-dev] [PATCH v8 1/4] rcu: " Honnappa Nagarahalli
2019-04-26 4:39 ` Honnappa Nagarahalli
2019-04-26 8:13 ` Jerin Jacob Kollanukkaran
2019-04-26 8:13 ` Jerin Jacob Kollanukkaran
2019-04-28 3:25 ` Ruifeng Wang (Arm Technology China)
2019-04-28 3:25 ` Ruifeng Wang (Arm Technology China)
2019-04-29 20:33 ` Thomas Monjalon
2019-04-29 20:33 ` Thomas Monjalon
2019-04-30 10:51 ` Hemant Agrawal
2019-04-30 10:51 ` Hemant Agrawal
2019-04-26 4:39 ` [dpdk-dev] [PATCH v8 2/4] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-04-26 4:39 ` Honnappa Nagarahalli
2019-04-29 20:35 ` Thomas Monjalon
2019-04-29 20:35 ` Thomas Monjalon
2019-04-30 4:20 ` Honnappa Nagarahalli
2019-04-30 4:20 ` Honnappa Nagarahalli
2019-04-30 7:58 ` Thomas Monjalon
2019-04-30 7:58 ` Thomas Monjalon
2019-04-26 4:39 ` [dpdk-dev] [PATCH v8 3/4] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-04-26 4:39 ` Honnappa Nagarahalli
2019-04-26 4:40 ` [dpdk-dev] [PATCH v8 4/4] doc: added RCU to the release notes Honnappa Nagarahalli
2019-04-26 4:40 ` Honnappa Nagarahalli
2019-04-26 12:04 ` [dpdk-dev] [PATCH v8 0/4] lib/rcu: add RCU library supporting QSBR mechanism Ananyev, Konstantin
2019-04-26 12:04 ` Ananyev, Konstantin
2019-05-01 3:54 ` [dpdk-dev] [PATCH v9 " Honnappa Nagarahalli
2019-05-01 3:54 ` Honnappa Nagarahalli
2019-05-01 3:54 ` [dpdk-dev] [PATCH v9 1/4] rcu: " Honnappa Nagarahalli
2019-05-01 3:54 ` Honnappa Nagarahalli
2019-05-01 3:54 ` [dpdk-dev] [PATCH v9 2/4] test/rcu_qsbr: add API and functional tests Honnappa Nagarahalli
2019-05-01 3:54 ` Honnappa Nagarahalli
2019-05-03 14:31 ` David Marchand
2019-05-03 14:31 ` David Marchand
2019-05-06 23:16 ` Honnappa Nagarahalli
2019-05-06 23:16 ` Honnappa Nagarahalli
2019-05-01 3:54 ` [dpdk-dev] [PATCH v9 3/4] doc/rcu: add lib_rcu documentation Honnappa Nagarahalli
2019-05-01 3:54 ` Honnappa Nagarahalli
2019-05-01 11:37 ` Mcnamara, John
2019-05-01 11:37 ` Mcnamara, John
2019-05-01 21:20 ` Honnappa Nagarahalli
2019-05-01 21:20 ` Honnappa Nagarahalli
2019-05-01 21:32 ` Thomas Monjalon
2019-05-01 21:32 ` Thomas Monjalon
2019-05-01 3:54 ` [dpdk-dev] [PATCH v9 4/4] doc: added RCU to the release notes Honnappa Nagarahalli
2019-05-01 3:54 ` Honnappa Nagarahalli
2019-05-01 11:31 ` Mcnamara, John
2019-05-01 11:31 ` Mcnamara, John
2019-05-01 12:15 ` [dpdk-dev] [PATCH v9 0/4] lib/rcu: add RCU library supporting QSBR mechanism Neil Horman
2019-05-01 12:15 ` Neil Horman
2019-05-01 14:56 ` Honnappa Nagarahalli
2019-05-01 14:56 ` Honnappa Nagarahalli
2019-05-01 18:05 ` Neil Horman
2019-05-01 18:05 ` Neil Horman
2019-05-01 21:18 ` Honnappa Nagarahalli
2019-05-01 21:18 ` Honnappa Nagarahalli
2019-05-01 23:36 ` Thomas Monjalon
2019-05-01 23:36 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6DC05C7C5F25994B81B3F2F214251F66020AC33E@IRSMSX104.ger.corp.intel.com \
--to=marko.kovacevic@intel.com \
--cc=dev@dpdk.org \
--cc=dharmik.thakkar@arm.com \
--cc=gavin.hu@arm.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=konstantin.ananyev@intel.com \
--cc=malvika.gupta@arm.com \
--cc=paulmck@linux.ibm.com \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).