patches for DPDK stable branches
 help / color / Atom feed
From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
To: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>,
	David Hunt <david.hunt@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"stable@dpdk.org" <stable@dpdk.org>, nd <nd@arm.com>,
	David Marchand <david.marchand@redhat.com>,
	Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,
	nd <nd@arm.com>
Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH v4 2/8] test/distributor: synchronize lcores statistics
Date: Fri, 16 Oct 2020 15:42:45 +0000
Message-ID: <DBAPR08MB5814987268C5DAAE66D9A64598030@DBAPR08MB5814.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <572a9ba1-3141-ff11-b283-74a81c7ddc89@partner.samsung.com>

<snip>

> 
> W dniu 16.10.2020 o 14:43, Lukasz Wojciechowski pisze:
> > Hi Honnappa,
> >
> > Thank you for your answer.
> > In the current v7 version I followed your advise and used RELAXED memory
> model.
> > And it works without any issues. I guess after fixing other issues found
> since v4 the distributor works more stable.
> > I didn't have time to rearrange all tests in the way I proposed, but I guess if
> they work like this it's not a top priority.
Agree, not a top priority.

> >
> > Can you give an ack on the series? I believe David Marchand is waiting for
> your opinion to process it.
> I'm sorry I didn't see your other comments. I'll try to fix them them today.
No problem, I can review the next series quickly.

> >
> > Best regards
> > Lukasz
> >
> > W dniu 16.10.2020 o 07:43, Honnappa Nagarahalli pisze:
> >> <snip>
> >>
> >>> Hi Honnappa,
> >>>
> >>> Many thanks for the review!
> >>>
> >>> I'll write my answers here not inline as it would be easier to read
> >>> them in one place, I think.
> >>> So first of all I agree with you in 2 things:
> >>> 1) all uses of statistics must be atomic and lack of that caused
> >>> most of the problems
> >>> 2) it would be better to replace barrier and memset in
> >>> clear_packet_count() with atomic stores as you suggested
> >>>
> >>> So I will apply both of above.
> >>>
> >>> However I wasn't not fully convinced on changing acquire/release to
> relaxed.
> >>> It wood be perfectly ok if it would look like in this Herb Sutter's example:
> >>> https://youtu.be/KeLBd2[]  EJLOU?t=4170 But in his case the counters
> >>> are cleared before worker threads start and are printout after they
> >>> are completed.
> >>>
> >>> In case of the dpdk distributor tests both worker and main cores are
> >>> running at the same time. In the sanity_test, the statistics are
> >>> cleared and verified few times for different hashes of packages. The
> >>> worker cores are not stopped at this time and they continue their loops
> in handle procedure.
> >>> Verification made in main core is an exchange of data as the current
> >>> statistics indicate how the test will result.
> >> Agree. The key point we have to note is that the data that is exchanged
> between the two threads is already atomic (handled_packets is atomic).
> >>
> >>> So as I wasn't convinced, I run some tests with both both relaxed
> >>> and acquire/release modes and they both fail :( The failures caused
> >>> by statistics errors to number of tests ratio for
> >>> 200000 tests was:
> >>> for relaxed: 0,000790562
> >>> for acq/rel: 0,000091321
> >>>
> >>>
> >>> That's why I'm going to modify tests in such way, that they would:
> >>> 1) clear statistics
> >>> 2) launch worker threads
> >>> 3) run test
> >>> 4) wait for workers procedures to complete
> >>> 5) check stats, verify results and print them out
> >>>
> >>> This way worker main core will use (clear or verify) stats only when
> >>> there are no worker threads. This would make things simpler and
> >>> allowing to focus on testing the distributor not tests. And of
> >>> course relaxed mode would be enough!
> >> Agree, this would be the only way to ensure that the main thread sees
> >> the correct statistics (just like in the video)
> >>
> >>> Best regards
> >>> Lukasz
> >>>
> >>>
> >>> W dniu 29.09.2020 o 07:49, Honnappa Nagarahalli pisze:
> >>>> <snip>
> >>>>
> >>>>> Statistics of handled packets are cleared and read on main lcore,
> >>>>> while they are increased in workers handlers on different lcores.
> >>>>>
> >>>>> Without synchronization occasionally showed invalid values.
> >>>>> This patch uses atomic acquire/release mechanisms to synchronize.
> >>>> In general, load-acquire and store-release memory orderings are
> >>>> required
> >>> while synchronizing data (that cannot be updated atomically) between
> >>> threads. In the situation, making counters atomic is enough.
> >>>>> Fixes: c3eabff124e6 ("distributor: add unit tests")
> >>>>> Cc: bruce.richardson@intel.com
> >>>>> Cc: stable@dpdk.org
> >>>>>
> >>>>> Signed-off-by: Lukasz Wojciechowski
> >>>>> <l.wojciechow@partner.samsung.com>
> >>>>> Acked-by: David Hunt <david.hunt@intel.com>
> >>>>> ---
> >>>>>     app/test/test_distributor.c | 39
> >>>>> ++++++++++++++++++++++++-----------
> >>> --
> >>>>>     1 file changed, 26 insertions(+), 13 deletions(-)
> >>>>>
> >>>>> diff --git a/app/test/test_distributor.c
> >>>>> b/app/test/test_distributor.c index
> >>>>> 35b25463a..0e49e3714 100644
> >>>>> --- a/app/test/test_distributor.c
> >>>>> +++ b/app/test/test_distributor.c
> >>>>> @@ -43,7 +43,8 @@ total_packet_count(void)  {
> >>>>>     	unsigned i, count = 0;
> >>>>>     	for (i = 0; i < worker_idx; i++)
> >>>>> -		count += worker_stats[i].handled_packets;
> >>>>> +		count +=
> >>>>> __atomic_load_n(&worker_stats[i].handled_packets,
> >>>>> +				__ATOMIC_ACQUIRE);
> >>>> RELAXED memory order is sufficient. For ex: the worker threads are
> >>>> not
> >>> 'releasing' any data that is not atomically updated to the main thread.
> >>>>>     	return count;
> >>>>>     }
> >>>>>
> >>>>> @@ -52,6 +53,7 @@ static inline void
> >>>>>     clear_packet_count(void)
> >>>>>     {
> >>>>>     	memset(&worker_stats, 0, sizeof(worker_stats));
> >>>>> +	rte_atomic_thread_fence(__ATOMIC_RELEASE);
> >>>> Ideally, the counters should be set to 0 atomically rather than
> >>>> using a
> >>> memset.
> >>>>>     }
> >>>>>
> >>>>>     /* this is the basic worker function for sanity test @@ -72,13
> >>>>> +74,13 @@ handle_work(void *arg)
> >>>>>     	num = rte_distributor_get_pkt(db, id, buf, buf, num);
> >>>>>     	while (!quit) {
> >>>>>
> 	__atomic_fetch_add(&worker_stats[id].handled_packets,
> >>>>> num,
> >>>>> -				__ATOMIC_RELAXED);
> >>>>> +				__ATOMIC_ACQ_REL);
> >>>> Using the __ATOMIC_ACQ_REL order does not mean anything to the
> main
> >>> thread. The main thread might still see the updates from different
> >>> threads in different order.
> >>>>>     		count += num;
> >>>>>     		num = rte_distributor_get_pkt(db, id,
> >>>>>     				buf, buf, num);
> >>>>>     	}
> >>>>>     	__atomic_fetch_add(&worker_stats[id].handled_packets,
> num,
> >>>>> -			__ATOMIC_RELAXED);
> >>>>> +			__ATOMIC_ACQ_REL);
> >>>> Same here, do not see why this change is required.
> >>>>
> >>>>>     	count += num;
> >>>>>     	rte_distributor_return_pkt(db, id, buf, num);
> >>>>>     	return 0;
> >>>>> @@ -134,7 +136,8 @@ sanity_test(struct worker_params *wp, struct
> >>>>> rte_mempool *p)
> >>>>>
> >>>>>     	for (i = 0; i < rte_lcore_count() - 1; i++)
> >>>>>     		printf("Worker %u handled %u packets\n", i,
> >>>>> -				worker_stats[i].handled_packets);
> >>>>> +
> 	__atomic_load_n(&worker_stats[i].handled_packets,
> >>>>> +					__ATOMIC_ACQUIRE));
> >>>> __ATOMIC_RELAXED is enough.
> >>>>
> >>>>>     	printf("Sanity test with all zero hashes done.\n");
> >>>>>
> >>>>>     	/* pick two flows and check they go correctly */ @@ -159,7
> >>>>> +162,9 @@ sanity_test(struct worker_params *wp, struct
> rte_mempool
> >>>>> *p)
> >>>>>
> >>>>>     		for (i = 0; i < rte_lcore_count() - 1; i++)
> >>>>>     			printf("Worker %u handled %u packets\n", i,
> >>>>> -
> 	worker_stats[i].handled_packets);
> >>>>> +				__atomic_load_n(
> >>>>> +
> 	&worker_stats[i].handled_packets,
> >>>>> +					__ATOMIC_ACQUIRE));
> >>>> __ATOMIC_RELAXED is enough
> >>>>
> >>>>>     		printf("Sanity test with two hash values done\n");
> >>>>>     	}
> >>>>>
> >>>>> @@ -185,7 +190,8 @@ sanity_test(struct worker_params *wp, struct
> >>>>> rte_mempool *p)
> >>>>>
> >>>>>     	for (i = 0; i < rte_lcore_count() - 1; i++)
> >>>>>     		printf("Worker %u handled %u packets\n", i,
> >>>>> -				worker_stats[i].handled_packets);
> >>>>> +
> 	__atomic_load_n(&worker_stats[i].handled_packets,
> >>>>> +					__ATOMIC_ACQUIRE));
> >>>> __ATOMIC_RELAXED is enough
> >>>>
> >>>>>     	printf("Sanity test with non-zero hashes done\n");
> >>>>>
> >>>>>     	rte_mempool_put_bulk(p, (void *)bufs, BURST); @@ -280,15
> >>>>> +286,17 @@ handle_work_with_free_mbufs(void *arg)
> >>>>>     		buf[i] = NULL;
> >>>>>     	num = rte_distributor_get_pkt(d, id, buf, buf, num);
> >>>>>     	while (!quit) {
> >>>>> -		worker_stats[id].handled_packets += num;
> >>>>>     		count += num;
> >>>>> +
> 	__atomic_fetch_add(&worker_stats[id].handled_packets,
> >>>>> num,
> >>>>> +				__ATOMIC_ACQ_REL);
> >>>> IMO, the problem would be the non-atomic update of the statistics.
> >>>> So, __ATOMIC_RELAXED is enough
> >>>>
> >>>>>     		for (i = 0; i < num; i++)
> >>>>>     			rte_pktmbuf_free(buf[i]);
> >>>>>     		num = rte_distributor_get_pkt(d,
> >>>>>     				id, buf, buf, num);
> >>>>>     	}
> >>>>> -	worker_stats[id].handled_packets += num;
> >>>>>     	count += num;
> >>>>> +	__atomic_fetch_add(&worker_stats[id].handled_packets,
> num,
> >>>>> +			__ATOMIC_ACQ_REL);
> >>>> Same here, the problem is non-atomic update of the statistics,
> >>> __ATOMIC_RELAXED is enough.
> >>>> Similarly, for changes below, __ATOMIC_RELAXED is enough.
> >>>>
> >>>>>     	rte_distributor_return_pkt(d, id, buf, num);
> >>>>>     	return 0;
> >>>>>     }
> >>>>> @@ -363,8 +371,9 @@ handle_work_for_shutdown_test(void *arg)
> >>>>>     	/* wait for quit single globally, or for worker zero, wait
> >>>>>     	 * for zero_quit */
> >>>>>     	while (!quit && !(id == zero_id && zero_quit)) {
> >>>>> -		worker_stats[id].handled_packets += num;
> >>>>>     		count += num;
> >>>>> +
> 	__atomic_fetch_add(&worker_stats[id].handled_packets,
> >>>>> num,
> >>>>> +				__ATOMIC_ACQ_REL);
> >>>>>     		for (i = 0; i < num; i++)
> >>>>>     			rte_pktmbuf_free(buf[i]);
> >>>>>     		num = rte_distributor_get_pkt(d, @@ -379,10
> +388,11 @@
> >>>>> handle_work_for_shutdown_test(void *arg)
> >>>>>
> >>>>>     		total += num;
> >>>>>     	}
> >>>>> -	worker_stats[id].handled_packets += num;
> >>>>>     	count += num;
> >>>>>     	returned = rte_distributor_return_pkt(d, id, buf, num);
> >>>>>
> >>>>> +	__atomic_fetch_add(&worker_stats[id].handled_packets,
> num,
> >>>>> +			__ATOMIC_ACQ_REL);
> >>>>>     	if (id == zero_id) {
> >>>>>     		/* for worker zero, allow it to restart to pick up last
> packet
> >>>>>     		 * when all workers are shutting down.
> >>>>> @@ -394,10 +404,11 @@ handle_work_for_shutdown_test(void *arg)
> >>>>>     				id, buf, buf, num);
> >>>>>
> >>>>>     		while (!quit) {
> >>>>> -			worker_stats[id].handled_packets += num;
> >>>>>     			count += num;
> >>>>>     			rte_pktmbuf_free(pkt);
> >>>>>     			num = rte_distributor_get_pkt(d, id, buf, buf,
> num);
> >>>>> +
> >>>>> 	__atomic_fetch_add(&worker_stats[id].handled_packets,
> >>>>> +					num, __ATOMIC_ACQ_REL);
> >>>>>     		}
> >>>>>     		returned = rte_distributor_return_pkt(d,
> >>>>>     				id, buf, num);
> >>>>> @@ -461,7 +472,8 @@ sanity_test_with_worker_shutdown(struct
> >>>>> worker_params *wp,
> >>>>>
> >>>>>     	for (i = 0; i < rte_lcore_count() - 1; i++)
> >>>>>     		printf("Worker %u handled %u packets\n", i,
> >>>>> -				worker_stats[i].handled_packets);
> >>>>> +
> 	__atomic_load_n(&worker_stats[i].handled_packets,
> >>>>> +					__ATOMIC_ACQUIRE));
> >>>>>
> >>>>>     	if (total_packet_count() != BURST * 2) {
> >>>>>     		printf("Line %d: Error, not all packets flushed. "
> >>>>> @@ -514,7 +526,8 @@ test_flush_with_worker_shutdown(struct
> >>>>> worker_params *wp,
> >>>>>     	zero_quit = 0;
> >>>>>     	for (i = 0; i < rte_lcore_count() - 1; i++)
> >>>>>     		printf("Worker %u handled %u packets\n", i,
> >>>>> -				worker_stats[i].handled_packets);
> >>>>> +
> 	__atomic_load_n(&worker_stats[i].handled_packets,
> >>>>> +					__ATOMIC_ACQUIRE));
> >>>>>
> >>>>>     	if (total_packet_count() != BURST) {
> >>>>>     		printf("Line %d: Error, not all packets flushed. "
> >>>>> --
> >>>>> 2.17.1
> >>> --
> >>> Lukasz Wojciechowski
> >>> Principal Software Engineer
> >>>
> >>> Samsung R&D Institute Poland
> >>> Samsung Electronics
> >>> Office +48 22 377 88 25
> >>> l.wojciechow@partner.samsung.com
> 
> --
> Lukasz Wojciechowski
> Principal Software Engineer
> 
> Samsung R&D Institute Poland
> Samsung Electronics
> Office +48 22 377 88 25
> l.wojciechow@partner.samsung.com


  reply index

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200915193449.13310-1-l.wojciechow@partner.samsung.com>
     [not found] ` <CGME20200915193457eucas1p2adbe25c41a0e4ef16c029e7bff104503@eucas1p2.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 1/6] app/test: fix deadlock in distributor test Lukasz Wojciechowski
2020-09-17 11:21     ` David Hunt
2020-09-17 14:01       ` Lukasz Wojciechowski
     [not found] ` <CGME20200915193457eucas1p2321d28b6abf69f244cd7c1e61ed0620e@eucas1p2.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 2/6] app/test: synchronize statistics between lcores Lukasz Wojciechowski
2020-09-17 11:50     ` David Hunt
     [not found] ` <CGME20200915193458eucas1p1d9308e63063eda28f96eedba3a361a2b@eucas1p1.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 3/6] app/test: fix freeing mbufs in distributor tests Lukasz Wojciechowski
2020-09-17 12:34     ` David Hunt
2020-09-22 12:42     ` [dpdk-stable] [dpdk-dev] " David Marchand
2020-09-23  1:55       ` Lukasz Wojciechowski
     [not found] ` <CGME20200915193459eucas1p19f5d1cbea87d7dc3bbd2638cdb96a31b@eucas1p1.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 4/6] app/test: collect return mbufs in distributor test Lukasz Wojciechowski
2020-09-17 12:37     ` David Hunt
     [not found] ` <CGME20200915193500eucas1p2b079e1dcfd2d54e01a5630609b82b370@eucas1p2.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 5/6] distributor: fix missing handshake synchronization Lukasz Wojciechowski
2020-09-17 13:22     ` David Hunt
     [not found] ` <CGME20200915193501eucas1p2333f0b08077c06ba04b89ce192072f9a@eucas1p2.samsung.com>
2020-09-15 19:34   ` [dpdk-stable] [PATCH v1 6/6] distributor: fix handshake deadlock Lukasz Wojciechowski
2020-09-17 13:28     ` David Hunt
     [not found] ` <20200923014713.16932-1-l.wojciechow@partner.samsung.com>
     [not found]   ` <CGME20200923014718eucas1p11fdcd774fef7b9e077e14e01c9f951d5@eucas1p1.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 1/8] app/test: fix deadlock in distributor test Lukasz Wojciechowski
     [not found]   ` <CGME20200923014719eucas1p2f26000109e86a649796e902c30e58bf0@eucas1p2.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 2/8] app/test: synchronize statistics between lcores Lukasz Wojciechowski
2020-09-23  4:30       ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-09-23 12:47         ` Lukasz Wojciechowski
     [not found]   ` <CGME20200923014719eucas1p165c419cff4f265cff8add8cc818210ff@eucas1p1.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 3/8] app/test: fix freeing mbufs in distributor tests Lukasz Wojciechowski
     [not found]   ` <CGME20200923014720eucas1p2bd5887c96c24839f364810a1bbe840da@eucas1p2.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 4/8] app/test: collect return mbufs in distributor test Lukasz Wojciechowski
     [not found]   ` <CGME20200923014721eucas1p1d22ac56c9b9e4fb49ac73d72d51a7a23@eucas1p1.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 5/8] distributor: fix missing handshake synchronization Lukasz Wojciechowski
     [not found]   ` <CGME20200923014722eucas1p2c2ef63759f4b800c1b5a80094e07e384@eucas1p2.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 6/8] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]   ` <CGME20200923014723eucas1p2a7c7210a55289b3739faff4f5ed72e30@eucas1p2.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 7/8] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]   ` <CGME20200923014724eucas1p13d3c0428a15bea26def7a4343251e4e4@eucas1p1.samsung.com>
2020-09-23  1:47     ` [dpdk-stable] [PATCH v2 8/8] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]   ` <20200923132541.21417-1-l.wojciechow@partner.samsung.com>
     [not found]     ` <CGME20200923132545eucas1p10db12d91121c9afdbab338bb60c8ed37@eucas1p1.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 1/8] app/test: fix deadlock in distributor test Lukasz Wojciechowski
     [not found]     ` <CGME20200923132546eucas1p212b6eede801514b544d82d41f5b7e4b8@eucas1p2.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 2/8] app/test: synchronize statistics between lcores Lukasz Wojciechowski
     [not found]     ` <CGME20200923132547eucas1p130620b0d5f3080a7a57234838a992e0e@eucas1p1.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 3/8] app/test: fix freeing mbufs in distributor tests Lukasz Wojciechowski
     [not found]     ` <CGME20200923132548eucas1p2a54328cddb79ae5e876eb104217d585f@eucas1p2.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 4/8] app/test: collect return mbufs in distributor test Lukasz Wojciechowski
     [not found]     ` <CGME20200923132549eucas1p29fc391c3f236fa704ff800774ab851f0@eucas1p2.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 5/8] distributor: fix missing handshake synchronization Lukasz Wojciechowski
     [not found]     ` <CGME20200923132550eucas1p2ce158dd81ccc04abcab4130d8cb391f4@eucas1p2.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 6/8] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]     ` <CGME20200923132550eucas1p1ce21011562d0a00cccfd4ae3f0be4ff9@eucas1p1.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 7/8] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]     ` <CGME20200923132551eucas1p214a5f78c61e891c5e7b6cddc038d0e2e@eucas1p2.samsung.com>
2020-09-23 13:25       ` [dpdk-stable] [PATCH v3 8/8] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]     ` <20200925224209.12173-1-l.wojciechow@partner.samsung.com>
     [not found]       ` <CGME20200925224216eucas1p1e8e1d0ecab4bbbf6e43b117c1d210649@eucas1p1.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 1/8] test/distributor: fix deadlock with freezed worker Lukasz Wojciechowski
2020-09-27 23:34           ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-09-30 20:22             ` Lukasz Wojciechowski
     [not found]       ` <CGME20200925224217eucas1p1bb5f73109b4aeed8f2badf311fa8dfb5@eucas1p1.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 2/8] test/distributor: synchronize lcores statistics Lukasz Wojciechowski
2020-09-29  5:49           ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-10-02 11:25             ` Lukasz Wojciechowski
2020-10-08 20:47               ` Lukasz Wojciechowski
2020-10-16  5:43               ` Honnappa Nagarahalli
2020-10-16 12:43                 ` Lukasz Wojciechowski
2020-10-16 12:58                   ` Lukasz Wojciechowski
2020-10-16 15:42                     ` Honnappa Nagarahalli [this message]
2020-10-17  3:34                       ` Lukasz Wojciechowski
     [not found]       ` <CGME20200925224218eucas1p2383ff0ebdaee18b581f5f731476f05ab@eucas1p2.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 3/8] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]       ` <CGME20200925224218eucas1p221c1af87b0e4547547106503cd336afd@eucas1p2.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 4/8] test/distributor: fix freeing mbufs Lukasz Wojciechowski
     [not found]       ` <CGME20200925224219eucas1p2d61447fef421573d653d2376423ecce0@eucas1p2.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 5/8] test/distributor: collect return mbufs Lukasz Wojciechowski
     [not found]       ` <CGME20200925224220eucas1p1a44e99a1d7750d37d5aefa61f329209b@eucas1p1.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 6/8] distributor: fix missing handshake synchronization Lukasz Wojciechowski
     [not found]       ` <CGME20200925224221eucas1p151297834da32a0f7cfdffc120f57ab3a@eucas1p1.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 7/8] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]       ` <CGME20200925224222eucas1p1b10891c21bfef6784777526af4443dde@eucas1p1.samsung.com>
2020-09-25 22:42         ` [dpdk-stable] [PATCH v4 8/8] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]       ` <20201008052323.11547-1-l.wojciechow@partner.samsung.com>
     [not found]         ` <CGME20201008052337eucas1p22b9e89987caf151ba8771442385fec16@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 01/15] distributor: fix missing handshake synchronization Lukasz Wojciechowski
     [not found]         ` <CGME20201008052338eucas1p2d26a8705b17d07fd24056f0aeaf3504e@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 02/15] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]         ` <CGME20201008052339eucas1p1a4e571cc3f5a277badff9d352ad7da8e@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 03/15] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
2020-10-08  8:13             ` David Hunt
     [not found]         ` <CGME20201008052339eucas1p15697f457b8b96809d04f737e041af08a@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 04/15] distributor: handle worker shutdown in burst mode Lukasz Wojciechowski
2020-10-08 14:26             ` David Hunt
2020-10-08 21:07               ` Lukasz Wojciechowski
2020-10-09 12:13                 ` David Hunt
2020-10-09 20:43                   ` Lukasz Wojciechowski
     [not found]         ` <CGME20201008052340eucas1p1451f2bf1b6475067491753274547b837@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 05/15] test/distributor: fix shutdown of busy worker Lukasz Wojciechowski
     [not found]         ` <CGME20201008052341eucas1p2379b186206e5bf481e3c680de46e5c16@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 06/15] test/distributor: synchronize lcores statistics Lukasz Wojciechowski
     [not found]         ` <CGME20201008052342eucas1p2376e75d9ac38f5054ca393b0ef7e663d@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 07/15] distributor: fix return pkt calls in single mode Lukasz Wojciechowski
2020-10-08 14:32             ` David Hunt
     [not found]         ` <CGME20201008052342eucas1p19e8474360d1f7dacd4164b3e21e54290@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 08/15] test/distributor: fix freeing mbufs Lukasz Wojciechowski
     [not found]         ` <CGME20201008052343eucas1p1649655353d6c76cdf6320a04e8d43f32@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 09/15] test/distributor: collect return mbufs Lukasz Wojciechowski
     [not found]         ` <CGME20201008052344eucas1p270b04ad2c4346e6beb5f5ef844827085@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 10/15] distributor: align API documentation with code Lukasz Wojciechowski
2020-10-08 14:35             ` David Hunt
     [not found]         ` <CGME20201008052345eucas1p29e14456610d4ed48c09b8cf7bd338e18@eucas1p2.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 11/15] test/distributor: replace delays with spin locks Lukasz Wojciechowski
2020-10-09 12:23             ` David Hunt
     [not found]         ` <CGME20201008052345eucas1p17a05f99986032885a0316d3419cdea2d@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 12/15] distributor: fix scalar matching Lukasz Wojciechowski
2020-10-09 12:31             ` David Hunt
2020-10-09 12:35               ` David Hunt
2020-10-09 21:02                 ` Lukasz Wojciechowski
     [not found]         ` <CGME20201008052347eucas1p1570239523104a0d609c928d8b149ebdf@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 14/15] distributor: fix flushing in flight packets Lukasz Wojciechowski
2020-10-09 13:10             ` David Hunt
     [not found]         ` <CGME20201008052348eucas1p183cfbe10d10bd98c7a63a34af98b80df@eucas1p1.samsung.com>
2020-10-08  5:23           ` [dpdk-stable] [PATCH v5 15/15] distributor: fix clearing returns buffer Lukasz Wojciechowski
2020-10-09 13:12             ` David Hunt
     [not found]         ` <20201009220202.20834-1-l.wojciechow@partner.samsung.com>
     [not found]           ` <CGME20201009220229eucas1p17ad627f31005ed506c5422b93ad6d112@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 01/15] distributor: fix missing handshake synchronization Lukasz Wojciechowski
     [not found]           ` <CGME20201009220231eucas1p217c48d880aaa7f15e4351f92eede01b6@eucas1p2.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 02/15] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]           ` <CGME20201009220232eucas1p201d3b81574b7ec42ff3fb18f4bbfcbea@eucas1p2.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 03/15] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]           ` <CGME20201009220233eucas1p285b4d01402c0c8bcfd018673afeb05eb@eucas1p2.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 04/15] distributor: handle worker shutdown in burst mode Lukasz Wojciechowski
     [not found]           ` <CGME20201009220235eucas1p17ded8b5bb42f2fef159a5715ef6fbca7@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 05/15] test/distributor: fix shutdown of busy worker Lukasz Wojciechowski
     [not found]           ` <CGME20201009220236eucas1p192e34b3bbf00681ec90de296abd1a6b5@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 06/15] test/distributor: synchronize lcores statistics Lukasz Wojciechowski
     [not found]           ` <CGME20201009220238eucas1p2e86c0026064774e5b494c16c7fd384ec@eucas1p2.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 07/15] distributor: fix return pkt calls in single mode Lukasz Wojciechowski
     [not found]           ` <CGME20201009220246eucas1p1283b16f1f54c572b5952ca9334d667da@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 08/15] test/distributor: fix freeing mbufs Lukasz Wojciechowski
     [not found]           ` <CGME20201009220247eucas1p1a783663e586127cbfd406a61e13c40eb@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 09/15] test/distributor: collect return mbufs Lukasz Wojciechowski
     [not found]           ` <CGME20201009220248eucas1p156346857c1aab2340ccd7549abdce966@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 10/15] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]           ` <CGME20201009220250eucas1p18587737171d82a9bde52c767ee8ed24b@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 11/15] test/distributor: replace delays with spin locks Lukasz Wojciechowski
     [not found]           ` <CGME20201009220253eucas1p14078ab159186d2c26e787b3b2ed68062@eucas1p1.samsung.com>
2020-10-09 22:01             ` [dpdk-stable] [PATCH v6 12/15] distributor: fix scalar matching Lukasz Wojciechowski
     [not found]           ` <CGME20201009220254eucas1p187bad9a066f00ee4c05ec6ca7fb4decd@eucas1p1.samsung.com>
2020-10-09 22:02             ` [dpdk-stable] [PATCH v6 14/15] distributor: fix flushing in flight packets Lukasz Wojciechowski
     [not found]           ` <CGME20201009220255eucas1p1e7a286684291e586ebb22cb0a2117e50@eucas1p1.samsung.com>
2020-10-09 22:02             ` [dpdk-stable] [PATCH v6 15/15] distributor: fix clearing returns buffer Lukasz Wojciechowski
     [not found]           ` <20201010160508.19709-1-l.wojciechow@partner.samsung.com>
     [not found]             ` <CGME20201010160515eucas1p18003d01d8217cdf04be3cba2e32f969f@eucas1p1.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 01/16] distributor: fix missing handshake synchronization Lukasz Wojciechowski
2020-10-15 23:47                 ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-10-17  3:13                   ` Lukasz Wojciechowski
     [not found]             ` <CGME20201010160517eucas1p2141c0bb6097a05aa99ed8efdf5fb7512@eucas1p2.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 02/16] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]             ` <CGME20201010160523eucas1p19287c5bf3b7e2818c730ae23f514853f@eucas1p1.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 03/16] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]             ` <CGME20201010160525eucas1p2314810086b9dd1c8cddf90eabe800363@eucas1p2.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 04/16] distributor: handle worker shutdown in burst mode Lukasz Wojciechowski
     [not found]             ` <CGME20201010160527eucas1p2f55cb0fc45bf3647234cdfa251e542fc@eucas1p2.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 05/16] test/distributor: fix shutdown of busy worker Lukasz Wojciechowski
     [not found]             ` <CGME20201010160528eucas1p2b9b8189aef51c18d116f97ccebf5719c@eucas1p2.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 06/16] test/distributor: synchronize lcores statistics Lukasz Wojciechowski
2020-10-16  5:13                 ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-10-17  3:23                   ` Lukasz Wojciechowski
     [not found]             ` <CGME20201010160530eucas1p15baba6fba44a7caee8b4b0ff778a961d@eucas1p1.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 07/16] distributor: fix return pkt calls in single mode Lukasz Wojciechowski
     [not found]             ` <CGME20201010160536eucas1p2b20e729b90d66eddd03618e98d38c179@eucas1p2.samsung.com>
2020-10-10 16:04               ` [dpdk-stable] [PATCH v7 08/16] test/distributor: fix freeing mbufs Lukasz Wojciechowski
2020-10-16  5:12                 ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-10-17  3:28                   ` Lukasz Wojciechowski
     [not found]             ` <CGME20201010160538eucas1p19298667f236209cfeaa4745f9bb3aae6@eucas1p1.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 09/16] test/distributor: collect return mbufs Lukasz Wojciechowski
2020-10-16  4:53                 ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
2020-10-16  5:13                 ` Honnappa Nagarahalli
2020-10-17  3:29                   ` Lukasz Wojciechowski
     [not found]             ` <CGME20201010160540eucas1p2d942834b4749672c433a37a8fe520bd1@eucas1p2.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 10/16] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]             ` <CGME20201010160541eucas1p11d079bad2b7500f9ab927463e1eeac04@eucas1p1.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 11/16] test/distributor: replace delays with spin locks Lukasz Wojciechowski
     [not found]             ` <CGME20201010160548eucas1p193e4f234da1005b91f22a8e7cb1d3226@eucas1p1.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 12/16] distributor: fix scalar matching Lukasz Wojciechowski
     [not found]             ` <CGME20201010160551eucas1p171642aa2d451e501287915824bfe7c24@eucas1p1.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 14/16] distributor: fix flushing in flight packets Lukasz Wojciechowski
     [not found]             ` <CGME20201010160552eucas1p2efdec872c4aea2b63af29c84e9a5b52d@eucas1p2.samsung.com>
2020-10-10 16:05               ` [dpdk-stable] [PATCH v7 15/16] distributor: fix clearing returns buffer Lukasz Wojciechowski
     [not found]             ` <20201017030701.16134-1-l.wojciechow@partner.samsung.com>
     [not found]               ` <CGME20201017030710eucas1p17fb6129fd3414b4b6b70dcd593c01a40@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 01/17] distributor: fix missing handshake synchronization Lukasz Wojciechowski
2020-10-17 21:05                   ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
     [not found]               ` <CGME20201017030711eucas1p1b70f13e4636ad7c3e842b48726ae1845@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 02/17] distributor: fix handshake deadlock Lukasz Wojciechowski
     [not found]               ` <CGME20201017030711eucas1p14855de461cd9d6a4fd3e4bac031b53e5@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 03/17] distributor: do not use oldpkt when not needed Lukasz Wojciechowski
     [not found]               ` <CGME20201017030712eucas1p1ce19efadc60ed2888dc615cbb2549bdc@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 04/17] distributor: handle worker shutdown in burst mode Lukasz Wojciechowski
     [not found]               ` <CGME20201017030713eucas1p1173c2178e647be341db2da29078c8d5d@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 05/17] test/distributor: fix shutdown of busy worker Lukasz Wojciechowski
     [not found]               ` <CGME20201017030714eucas1p292bd71a85ea6d638256c21d279c8d533@eucas1p2.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 06/17] distributor: fix return pkt calls in single mode Lukasz Wojciechowski
     [not found]               ` <CGME20201017030715eucas1p2366d1f0ce16a219b21542bb26e4588a6@eucas1p2.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 07/17] test/distributor: fix freeing mbufs Lukasz Wojciechowski
     [not found]               ` <CGME20201017030716eucas1p2911112ee3c9e0a3f3dd9a811cbafe77b@eucas1p2.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 08/17] test/distributor: synchronize lcores statistics Lukasz Wojciechowski
2020-10-17 21:11                   ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli
     [not found]               ` <CGME20201017030717eucas1p1ae327494575f851af4bdf77f3e8c83ae@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 09/17] test/distributor: collect return mbufs Lukasz Wojciechowski
     [not found]               ` <CGME20201017030718eucas1p256e1f934af12af2a6b07640c9de7a766@eucas1p2.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 10/17] distributor: align API documentation with code Lukasz Wojciechowski
     [not found]               ` <CGME20201017030719eucas1p13b13db1fbc3715e19e81bb4be4635b7d@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 11/17] test/distributor: replace delays with spin locks Lukasz Wojciechowski
     [not found]               ` <CGME20201017030720eucas1p1fe683996638c3692cae530e67271b79b@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 12/17] distributor: fix scalar matching Lukasz Wojciechowski
     [not found]               ` <CGME20201017030721eucas1p2a1032e6c78d99f903ea539e49f057a83@eucas1p2.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 14/17] distributor: fix flushing in flight packets Lukasz Wojciechowski
     [not found]               ` <CGME20201017030721eucas1p1f3307c1e4e69c65186ad8f2fb18f5f74@eucas1p1.samsung.com>
2020-10-17  3:06                 ` [dpdk-stable] [PATCH v8 15/17] distributor: fix clearing returns buffer Lukasz Wojciechowski
     [not found]               ` <CGME20201017030722eucas1p107dc8d3eb2d9ef620065deba31cf08ed@eucas1p1.samsung.com>
2020-10-17  3:07                 ` [dpdk-stable] [PATCH v8 16/17] test/distributor: ensure all packets are delivered Lukasz Wojciechowski
     [not found]               ` <CGME20201017030723eucas1p16904cabfd94afa4fe751c072077e09ae@eucas1p1.samsung.com>
2020-10-17  3:07                 ` [dpdk-stable] [PATCH v8 17/17] test/distributor: fix quitting workers Lukasz Wojciechowski
2020-10-17 21:15                   ` [dpdk-stable] [dpdk-dev] " Honnappa Nagarahalli

Reply instructions:

You may reply publically 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=DBAPR08MB5814987268C5DAAE66D9A64598030@DBAPR08MB5814.eurprd08.prod.outlook.com \
    --to=honnappa.nagarahalli@arm.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.hunt@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=l.wojciechow@partner.samsung.com \
    --cc=nd@arm.com \
    --cc=stable@dpdk.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

patches for DPDK stable branches

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/ public-inbox