From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: David Hunt <david.hunt@intel.com>
Cc: <dev@dpdk.org>, <bruce.richardson@intel.com>
Subject: Re: [dpdk-dev] [PATCH v2 1/5] lib: distributor performance enhancements
Date: Thu, 22 Dec 2016 18:17:54 +0530 [thread overview]
Message-ID: <20161222124753.GB8778@localhost.localdomain> (raw)
In-Reply-To: <1482381428-148094-2-git-send-email-david.hunt@intel.com>
On Thu, Dec 22, 2016 at 04:37:04AM +0000, David Hunt wrote:
> Now sends bursts of up to 8 mbufs to each worker, and tracks
> the in-flight flow-ids (atomic scheduling)
>
> New file with a new api, similar to the old API except with _burst
> at the end of the function names
>
> Signed-off-by: David Hunt <david.hunt@intel.com>
> +
> +int
> +rte_distributor_get_pkt_burst(struct rte_distributor_burst *d,
> + unsigned int worker_id, struct rte_mbuf **pkts,
> + struct rte_mbuf **oldpkt, unsigned int return_count)
> +{
> + unsigned int count;
> + uint64_t retries = 0;
> +
> + rte_distributor_request_pkt_burst(d, worker_id, oldpkt, return_count);
> +
> + count = rte_distributor_poll_pkt_burst(d, worker_id, pkts);
> + while (count == 0) {
> + rte_pause();
> + retries++;
> + if (retries > 1000) {
> + retries = 0;
This retries write may not have any significance as it just before the
return
> + return 0;
> + }
> + uint64_t t = __rdtsc()+100;
Use rte_ version of __rdtsc.
> +
> + while (__rdtsc() < t)
> + rte_pause();
> +
> + count = rte_distributor_poll_pkt_burst(d, worker_id, pkts);
> + }
> + return count;
> +}
> +
> +int
> +rte_distributor_return_pkt_burst(struct rte_distributor_burst *d,
> + unsigned int worker_id, struct rte_mbuf **oldpkt, int num)
> +{
> + struct rte_distributor_buffer_burst *buf = &d->bufs[worker_id];
> + unsigned int i;
> +
> + for (i = 0; i < RTE_DIST_BURST_SIZE; i++)
> + /* Switch off the return bit first */
> + buf->retptr64[i] &= ~RTE_DISTRIB_RETURN_BUF;
> +
> + for (i = num; i-- > 0; )
> + buf->retptr64[i] = (((int64_t)(uintptr_t)oldpkt[i]) <<
> + RTE_DISTRIB_FLAG_BITS) | RTE_DISTRIB_RETURN_BUF;
> +
> + /* set the GET_BUF but even if we got no returns */
> + buf->retptr64[0] |= RTE_DISTRIB_GET_BUF;
> +
> + return 0;
> +}
> +
> +#if RTE_MACHINE_CPUFLAG_SSE2
> +static inline void
Move SSE version of the code to separate file so that later other SIMD arch
specific version like NEON can be incorporated.
> +find_match_sse2(struct rte_distributor_burst *d,
> + uint16_t *data_ptr,
> + uint16_t *output_ptr)
> +{
> + /* Setup */
> + __m128i incoming_fids;
> + __m128i inflight_fids;
> + __m128i preflight_fids;
> + __m128i wkr;
> + __m128i mask1;
> + __m128i mask2;
> + __m128i output;
> + struct rte_distributor_backlog *bl;
> +
> + /*
> + * Function overview:
> + * 2. Loop through all worker ID's
> + * 2a. Load the current inflights for that worker into an xmm reg
> + * 2b. Load the current backlog for that worker into an xmm reg
> + * 2c. use cmpestrm to intersect flow_ids with backlog and inflights
> + * 2d. Add any matches to the output
> + * 3. Write the output xmm (matching worker ids).
> + */
> +
> +
> + output = _mm_set1_epi16(0);
> + incoming_fids = _mm_load_si128((__m128i *)data_ptr);
> +
> + for (uint16_t i = 0; i < d->num_workers; i++) {
> + bl = &d->backlog[i];
> +
> + inflight_fids =
> + _mm_load_si128((__m128i *)&(d->in_flight_tags[i]));
> + preflight_fids =
> + _mm_load_si128((__m128i *)(bl->tags));
> +
> + /*
> + * Any incoming_fid that exists anywhere in inflight_fids will
> + * have 0xffff in same position of the mask as the incoming fid
> + * Example (shortened to bytes for brevity):
> + * incoming_fids 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
> + * inflight_fids 0x03 0x05 0x07 0x00 0x00 0x00 0x00 0x00
> + * mask 0x00 0x00 0xff 0x00 0xff 0x00 0xff 0x00
> + */
> +
> + mask1 = _mm_cmpestrm(inflight_fids, 8, incoming_fids, 8,
> + _SIDD_UWORD_OPS |
> + _SIDD_CMP_EQUAL_ANY |
> + _SIDD_UNIT_MASK);
> + mask2 = _mm_cmpestrm(preflight_fids, 8, incoming_fids, 8,
> + _SIDD_UWORD_OPS |
> + _SIDD_CMP_EQUAL_ANY |
> + _SIDD_UNIT_MASK);
> +
> + mask1 = _mm_or_si128(mask1, mask2);
> + /*
> + * Now mask contains 0xffff where there's a match.
> + * Next we need to store the worker_id in the relevant position
> + * in the output.
> + */
> +
> + wkr = _mm_set1_epi16(i+1);
> + mask1 = _mm_and_si128(mask1, wkr);
> + output = _mm_or_si128(mask1, output);
> + }
> +
> +/* process a set of packets to distribute them to workers */
> +int
> +rte_distributor_process_burst(struct rte_distributor_burst *d,
> + struct rte_mbuf **mbufs, unsigned int num_mbufs)
> +{
> + unsigned int next_idx = 0;
> + static unsigned int wkr;
> + struct rte_mbuf *next_mb = NULL;
> + int64_t next_value = 0;
> + uint16_t new_tag = 0;
> + uint16_t flows[8] __rte_cache_aligned;
The const 8 has been used down in the function also. Please replace with macro
> + //static int iter=0;
Please remove the test-code with // across the patch.
> +
> + if (unlikely(num_mbufs == 0)) {
> + /* Flush out all non-full cache-lines to workers. */
> + for (unsigned int wid = 0 ; wid < d->num_workers; wid++) {
> + if ((d->bufs[wid].bufptr64[0] & RTE_DISTRIB_GET_BUF)) {
> + release(d, wid);
> + handle_returns(d, wid);
> + }
> + }
> + return 0;
> + }
> +
> + while (next_idx < num_mbufs) {
> + uint16_t matches[8];
> + int pkts;
> +
> + if (d->bufs[wkr].bufptr64[0] & RTE_DISTRIB_GET_BUF)
> + d->bufs[wkr].count = 0;
> +
> + for (unsigned int i = 0; i < RTE_DIST_BURST_SIZE; i++) {
> + if (mbufs[next_idx + i]) {
> + /* flows have to be non-zero */
> + flows[i] = mbufs[next_idx + i]->hash.usr | 1;
> + } else
> + flows[i] = 0;
> + }
> +
> + switch (d->dist_match_fn) {
> +#ifdef RTE_MACHINE_CPUFLAG_SSE2
Is this conditional compilation flag is really required ? i.e
RTE_DIST_MATCH_SSE will not enabled in non SSE case
> + case RTE_DIST_MATCH_SSE:
> + find_match_sse2(d, &flows[0], &matches[0]);
> + break;
> +#endif
> + default:
> + find_match_scalar(d, &flows[0], &matches[0]);
> + }
> +
> + /*
> + * Matches array now contain the intended worker ID (+1) of
> + * the incoming packets. Any zeroes need to be assigned
> + * workers.
> + */
> +
> + if ((num_mbufs - next_idx) < RTE_DIST_BURST_SIZE)
> + pkts = num_mbufs - next_idx;
> + else
> + pkts = RTE_DIST_BURST_SIZE;
> +
> + for (int j = 0; j < pkts; j++) {
> +
> + next_mb = mbufs[next_idx++];
> + next_value = (((int64_t)(uintptr_t)next_mb) <<
> + RTE_DISTRIB_FLAG_BITS);
> + /*
> + * User is advocated to set tag vaue for each
> + * mbuf before calling rte_distributor_process.
> + * User defined tags are used to identify flows,
> + * or sessions.
> + */
> + /* flows MUST be non-zero */
> + new_tag = (uint16_t)(next_mb->hash.usr) | 1;
> +
> + /*
> + * Using the next line will cause the find_match
> + * function to be optimised out, making this function
> + * do parallel (non-atomic) distribution
> + */
> + //matches[j] = 0;
test code with //
next prev parent reply other threads:[~2016-12-22 12:48 UTC|newest]
Thread overview: 202+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-01 4:50 [dpdk-dev] [PATCH v1 1/2] distributor lib " David Hunt
2016-12-01 4:50 ` [dpdk-dev] [PATCH v1 1/2] lib: distributor " David Hunt
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 0/5] distributor library " David Hunt
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 1/5] lib: distributor " David Hunt
2016-12-22 12:47 ` Jerin Jacob [this message]
2016-12-22 16:14 ` Hunt, David
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 0/6] distributor-performance-improvements David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 1/6] lib: distributor performance enhancements David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 2/6] lib: add distributor vector flow matching David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 3/6] test: unit tests for new distributor burst api David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 4/6] test: add distributor_perf autotest David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 5/6] example: distributor app showing burst api David Hunt
2017-01-02 10:22 ` [dpdk-dev] [WARNING: A/V UNSCANNABLE][PATCH v3 6/6] doc: distributor library changes for new " David Hunt
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 0/6] distributor library performance enhancements David Hunt
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 1/6] lib: distributor " David Hunt
2017-01-13 15:19 ` Bruce Richardson
2017-01-19 14:58 ` Hunt, David
2017-01-16 16:36 ` Bruce Richardson
2017-01-19 12:07 ` Hunt, David
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 0/6] distributor library " David Hunt
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 1/6] lib: distributor " David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 0/6] distributor library " David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 1/6] lib: distributor " David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 0/17] distributor library " David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 01/17] lib: rename legacy distributor lib files David Hunt
2017-02-21 10:27 ` Hunt, David
2017-02-24 14:03 ` Bruce Richardson
2017-03-01 9:55 ` Hunt, David
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 0/18] distributor library performance enhancements David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 01/18] lib: rename legacy distributor lib files David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 00/18] distributor lib performance enhancements David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 01/18] lib: rename legacy distributor lib files David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 0/18] distributor library performance enhancements David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 01/18] lib: rename legacy distributor lib files David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 0/18] distributor lib performance enhancements David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 01/18] lib: rename legacy distributor lib files David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 02/18] lib: create private header file David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 03/18] lib: add new distributor code David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 04/18] lib: add SIMD flow matching to distributor David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 05/18] test/distributor: extra params for autotests David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 06/18] lib: switch distributor over to new API David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 07/18] lib: make v20 header file private David Hunt
2017-03-27 13:10 ` Thomas Monjalon
2017-03-28 8:47 ` Hunt, David
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 08/18] lib: add symbol versioning to distributor David Hunt
2017-03-27 13:02 ` Thomas Monjalon
2017-03-28 8:25 ` Hunt, David
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 09/18] test: test single and burst distributor API David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 10/18] test: add perf test for distributor burst mode David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 11/18] examples/distributor: allow for extra stats David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 12/18] examples/distributor: wait for ports to come up David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 13/18] examples/distributor: add dedicated core for dist David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 14/18] examples/distributor: tweaks for performance David Hunt
2017-03-27 13:04 ` Thomas Monjalon
2017-03-28 8:45 ` Hunt, David
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 15/18] examples/distributor: give Rx thread a core David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 16/18] doc: distributor library changes for new burst API David Hunt
2017-03-24 14:49 ` Mcnamara, John
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 17/18] doc: distributor app " David Hunt
2017-03-20 10:08 ` [dpdk-dev] [PATCH v11 18/18] maintainers: add to distributor lib maintainers David Hunt
2017-03-27 13:06 ` [dpdk-dev] [PATCH v11 0/18] distributor lib performance enhancements Thomas Monjalon
2017-03-29 14:48 ` Thomas Monjalon
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 02/18] lib: create private header file David Hunt
2017-03-15 17:18 ` Thomas Monjalon
2017-03-16 10:43 ` Hunt, David
2017-03-16 15:40 ` Thomas Monjalon
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 03/18] lib: add new distributor code David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 04/18] lib: add SIMD flow matching to distributor David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 05/18] test/distributor: extra params for autotests David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 06/18] lib: switch distributor over to new API David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 07/18] lib: make v20 header file private David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 08/18] lib: add symbol versioning to distributor David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 09/18] test: test single and burst distributor API David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 10/18] test: add perf test for distributor burst mode David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 11/18] examples/distributor: allow for extra stats David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 12/18] examples/distributor: wait for ports to come up David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 13/18] examples/distributor: add dedicated core for dist David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 14/18] examples/distributor: tweaks for performance David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 15/18] examples/distributor: give Rx thread a core David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 16/18] doc: distributor library changes for new burst API David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 17/18] doc: distributor app " David Hunt
2017-03-15 6:19 ` [dpdk-dev] [PATCH v10 18/18] maintainers: add to distributor lib maintainers David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 02/18] lib: create private header file David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 03/18] lib: add new burst oriented distributor structs David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 04/18] lib: add new distributor code David Hunt
2017-03-10 16:03 ` Bruce Richardson
2017-03-14 10:43 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 05/18] lib: add SIMD flow matching to distributor David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 06/18] test/distributor: extra params for autotests David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 07/18] lib: switch distributor over to new API David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 08/18] lib: make v20 header file private David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 09/18] lib: add symbol versioning to distributor David Hunt
2017-03-10 16:22 ` Bruce Richardson
2017-03-13 10:17 ` Hunt, David
2017-03-13 10:28 ` Hunt, David
2017-03-13 11:01 ` Van Haaren, Harry
2017-03-13 11:02 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 10/18] test: test single and burst distributor API David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 11/18] test: add perf test for distributor burst mode David Hunt
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 12/18] examples/distributor: allow for extra stats David Hunt
2017-03-10 16:46 ` Bruce Richardson
2017-03-14 10:44 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 13/18] sample: distributor: wait for ports to come up David Hunt
2017-03-10 16:48 ` Bruce Richardson
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 14/18] examples/distributor: give distributor a core David Hunt
2017-03-10 16:49 ` Bruce Richardson
2017-03-14 10:48 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 15/18] examples/distributor: limit number of Tx rings David Hunt
2017-03-10 16:50 ` Bruce Richardson
2017-03-14 10:50 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 16/18] examples/distributor: give Rx thread a core David Hunt
2017-03-10 16:51 ` Bruce Richardson
2017-03-14 9:34 ` Hunt, David
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 17/18] doc: distributor library changes for new burst API David Hunt
2017-03-07 17:25 ` Mcnamara, John
2017-03-06 9:10 ` [dpdk-dev] [PATCH v9 18/18] maintainers: add to distributor lib maintainers David Hunt
2017-03-10 16:54 ` [dpdk-dev] [PATCH v9 00/18] distributor lib performance enhancements Bruce Richardson
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 02/18] lib: create private header file David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 03/18] lib: add new burst oriented distributor structs David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 04/18] lib: add new distributor code David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 05/18] lib: add SIMD flow matching to distributor David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 06/18] test/distributor: extra params for autotests David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 07/18] lib: switch distributor over to new API David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 08/18] lib: make v20 header file private David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 09/18] lib: add symbol versioning to distributor David Hunt
2017-03-01 14:50 ` Hunt, David
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 10/18] test: test single and burst distributor API David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 11/18] test: add perf test for distributor burst mode David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 12/18] examples/distributor: allow for extra stats David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 13/18] sample: distributor: wait for ports to come up David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 14/18] examples/distributor: give distributor a core David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 15/18] examples/distributor: limit number of Tx rings David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 16/18] examples/distributor: give Rx thread a core David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 17/18] doc: distributor library changes for new burst API David Hunt
2017-03-01 7:47 ` [dpdk-dev] [PATCH v8 18/18] maintainers: add to distributor lib maintainers David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 02/17] lib: symbol versioning of functions in distributor David Hunt
2017-02-24 14:05 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 03/17] lib: create rte_distributor_private.h David Hunt
2017-02-24 14:07 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 04/17] lib: add new burst oriented distributor structs David Hunt
2017-02-24 14:08 ` Bruce Richardson
2017-03-01 9:57 ` Hunt, David
2017-02-24 14:09 ` Bruce Richardson
2017-03-01 9:58 ` Hunt, David
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 05/17] lib: add new distributor code David Hunt
2017-02-24 14:11 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 06/17] lib: add SIMD flow matching to distributor David Hunt
2017-02-24 14:11 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 07/17] lib: apply symbol versioning to distibutor lib David Hunt
2017-02-21 11:50 ` Hunt, David
2017-02-24 14:12 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 08/17] test: change params to distributor autotest David Hunt
2017-02-24 14:14 ` Bruce Richardson
2017-03-01 10:06 ` Hunt, David
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 09/17] test: switch distributor test over to burst API David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 10/17] test: test single and burst distributor API David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 11/17] test: add perf test for distributor burst mode David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 12/17] example: add extra stats to distributor sample David Hunt
2017-02-24 14:16 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 13/17] sample: distributor: wait for ports to come up David Hunt
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 14/17] sample: switch to new distributor API David Hunt
2017-02-24 14:16 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 15/17] lib: make v20 header file private David Hunt
2017-02-24 14:18 ` Bruce Richardson
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 16/17] doc: distributor library changes for new burst api David Hunt
2017-02-21 16:18 ` Mcnamara, John
2017-02-21 3:17 ` [dpdk-dev] [PATCH v7 17/17] maintainers: add to distributor lib maintainers David Hunt
2017-02-24 14:01 ` [dpdk-dev] [PATCH v7 0/17] distributor library performance enhancements Bruce Richardson
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 2/6] lib: add distributor vector flow matching David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 3/6] test: unit tests for new distributor burst API David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 4/6] test: add distributor perf autotest David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 5/6] examples/distributor_app: showing burst API David Hunt
2017-01-23 9:24 ` [dpdk-dev] [PATCH v6 6/6] doc: distributor library changes for new " David Hunt
2017-01-23 17:02 ` [dpdk-dev] [PATCH v6 0/6] distributor library performance enhancements Bruce Richardson
2017-01-24 8:56 ` Liu, Yong
2017-01-23 12:26 ` [dpdk-dev] [PATCH v5 1/6] lib: distributor " Bruce Richardson
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 2/6] lib: add distributor vector flow matching David Hunt
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 3/6] test: unit tests for new distributor burst API David Hunt
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 4/6] test: add distributor perf autotest David Hunt
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 5/6] examples/distributor_app: showing burst API David Hunt
2017-01-23 12:31 ` Bruce Richardson
2017-01-20 9:18 ` [dpdk-dev] [PATCH v5 6/6] doc: distributor library changes for new " David Hunt
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 2/6] lib: add distributor vector flow matching David Hunt
2017-01-13 15:26 ` Bruce Richardson
2017-01-19 14:59 ` Hunt, David
2017-01-16 16:40 ` Bruce Richardson
2017-01-19 12:11 ` Hunt, David
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 3/6] test: unit tests for new distributor burst api David Hunt
2017-01-13 15:33 ` Bruce Richardson
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 4/6] test: add distributor_perf autotest David Hunt
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 5/6] example: distributor app showing burst api David Hunt
2017-01-13 15:36 ` Bruce Richardson
2017-01-13 15:38 ` Bruce Richardson
2017-01-09 7:50 ` [dpdk-dev] [PATCH v4 6/6] doc: distributor library changes for new " David Hunt
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 2/5] test: unit tests for new distributor " David Hunt
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 3/5] test: add distributor_perf autotest David Hunt
2016-12-22 12:19 ` Jerin Jacob
2017-01-02 16:24 ` Hunt, David
2017-01-04 13:09 ` Jerin Jacob
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 4/5] example: distributor app showing burst api David Hunt
2016-12-22 4:37 ` [dpdk-dev] [PATCH v2 5/5] doc: distributor library changes for new " David Hunt
2016-12-01 4:50 ` [dpdk-dev] [PATCH v1 2/2] example: distributor app modified to use burstAPI David Hunt
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=20161222124753.GB8778@localhost.localdomain \
--to=jerin.jacob@caviumnetworks.com \
--cc=bruce.richardson@intel.com \
--cc=david.hunt@intel.com \
--cc=dev@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
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).