* [PATCH] table: fix table_array for incomplete bitmask @ 2014-12-04 14:24 Bruce Richardson [not found] ` <1417703052-32575-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Bruce Richardson @ 2014-12-04 14:24 UTC (permalink / raw) To: dev-VfR2kkLFssw When a lookup was done on a table_array structure with an incomplete bitmask, the results was always zero hits. This was because the pkts_mask value was cleared as we process each entry, and the result was assigned at the end of the loop, when pkts_mask was zero. Changing the assignment to occur at the start, before the pkts_mask gets cleared, fixes this issue. Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> --- lib/librte_table/rte_table_array.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_table/rte_table_array.c b/lib/librte_table/rte_table_array.c index 0b1d42a..4d3c05e 100644 --- a/lib/librte_table/rte_table_array.c +++ b/lib/librte_table/rte_table_array.c @@ -164,6 +164,8 @@ rte_table_array_lookup( { struct rte_table_array *t = (struct rte_table_array *) table; + *lookup_hit_mask = pkts_mask; + if ((pkts_mask & (pkts_mask + 1)) == 0) { uint64_t n_pkts = __builtin_popcountll(pkts_mask); uint32_t i; @@ -190,8 +192,6 @@ rte_table_array_lookup( } } - *lookup_hit_mask = pkts_mask; - return 0; } -- 1.9.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1417703052-32575-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] table: fix table_array for incomplete bitmask [not found] ` <1417703052-32575-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @ 2014-12-04 15:23 ` Dumitrescu, Cristian [not found] ` <3EB4FA525960D640B5BDFFD6A3D89126322DA654-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Dumitrescu, Cristian @ 2014-12-04 15:23 UTC (permalink / raw) To: Richardson, Bruce, dev-VfR2kkLFssw@public.gmane.org Acked by: <Cristian.Dumitrescu at intel.com> -----Original Message----- From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org] On Behalf Of Bruce Richardson Sent: Thursday, December 4, 2014 2:24 PM To: dev-VfR2kkLFssw@public.gmane.org Subject: [dpdk-dev] [PATCH] table: fix table_array for incomplete bitmask When a lookup was done on a table_array structure with an incomplete bitmask, the results was always zero hits. This was because the pkts_mask value was cleared as we process each entry, and the result was assigned at the end of the loop, when pkts_mask was zero. Changing the assignment to occur at the start, before the pkts_mask gets cleared, fixes this issue. Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> --- lib/librte_table/rte_table_array.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_table/rte_table_array.c b/lib/librte_table/rte_table_array.c index 0b1d42a..4d3c05e 100644 --- a/lib/librte_table/rte_table_array.c +++ b/lib/librte_table/rte_table_array.c @@ -164,6 +164,8 @@ rte_table_array_lookup( { struct rte_table_array *t = (struct rte_table_array *) table; + *lookup_hit_mask = pkts_mask; + if ((pkts_mask & (pkts_mask + 1)) == 0) { uint64_t n_pkts = __builtin_popcountll(pkts_mask); uint32_t i; @@ -190,8 +192,6 @@ rte_table_array_lookup( } } - *lookup_hit_mask = pkts_mask; - return 0; } -- 1.9.3 -------------------------------------------------------------- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <3EB4FA525960D640B5BDFFD6A3D89126322DA654-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>]
* Re: [PATCH] table: fix table_array for incomplete bitmask [not found] ` <3EB4FA525960D640B5BDFFD6A3D89126322DA654-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org> @ 2014-12-05 16:18 ` Thomas Monjalon 0 siblings, 0 replies; 5+ messages in thread From: Thomas Monjalon @ 2014-12-05 16:18 UTC (permalink / raw) To: Richardson, Bruce; +Cc: dev-VfR2kkLFssw > When a lookup was done on a table_array structure with an incomplete > bitmask, the results was always zero hits. This was because the > pkts_mask value was cleared as we process each entry, and the result > was assigned at the end of the loop, when pkts_mask was zero. > Changing the assignment to occur at the start, before the pkts_mask > gets cleared, fixes this issue. > > Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> > Acked by: <Cristian.Dumitrescu at intel.com> Applied Thanks -- Thomas ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] table: fix table_array for incomplete bitmask @ 2014-12-04 14:23 Bruce Richardson [not found] ` <1417703013-32480-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Bruce Richardson @ 2014-12-04 14:23 UTC (permalink / raw) To: dev-VfR2kkLFssw Hi Cristian, please review before I send out publically. Thanks. B. ------------------------- When a lookup was done on a table_array structure with an incomplete bitmask, the results was always zero hits. This was because the pkts_mask value was cleared as we process each entry, and the result was assigned at the end of the loop, when pkts_mask was zero. Changing the assignment to occur at the start, before the pkts_mask gets cleared, fixes this issue. Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> --- lib/librte_table/rte_table_array.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_table/rte_table_array.c b/lib/librte_table/rte_table_array.c index 0b1d42a..4d3c05e 100644 --- a/lib/librte_table/rte_table_array.c +++ b/lib/librte_table/rte_table_array.c @@ -164,6 +164,8 @@ rte_table_array_lookup( { struct rte_table_array *t = (struct rte_table_array *) table; + *lookup_hit_mask = pkts_mask; + if ((pkts_mask & (pkts_mask + 1)) == 0) { uint64_t n_pkts = __builtin_popcountll(pkts_mask); uint32_t i; @@ -190,8 +192,6 @@ rte_table_array_lookup( } } - *lookup_hit_mask = pkts_mask; - return 0; } -- 1.9.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1417703013-32480-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] table: fix table_array for incomplete bitmask [not found] ` <1417703013-32480-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @ 2014-12-04 14:25 ` Bruce Richardson 0 siblings, 0 replies; 5+ messages in thread From: Bruce Richardson @ 2014-12-04 14:25 UTC (permalink / raw) To: dev-VfR2kkLFssw On Thu, Dec 04, 2014 at 02:23:33PM +0000, Bruce Richardson wrote: > Hi Cristian, please review before I send out publically. Thanks. B. > ------------------------- > > When a lookup was done on a table_array structure with an incomplete > bitmask, the results was always zero hits. This was because the > pkts_mask value was cleared as we process each entry, and the result > was assigned at the end of the loop, when pkts_mask was zero. > Changing the assignment to occur at the start, before the pkts_mask > gets cleared, fixes this issue. > > Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Self-nak on this copy, please see follow-on without the review request to Cristian (who can hopefully ack this soon :-) ) > --- > lib/librte_table/rte_table_array.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_table/rte_table_array.c b/lib/librte_table/rte_table_array.c > index 0b1d42a..4d3c05e 100644 > --- a/lib/librte_table/rte_table_array.c > +++ b/lib/librte_table/rte_table_array.c > @@ -164,6 +164,8 @@ rte_table_array_lookup( > { > struct rte_table_array *t = (struct rte_table_array *) table; > > + *lookup_hit_mask = pkts_mask; > + > if ((pkts_mask & (pkts_mask + 1)) == 0) { > uint64_t n_pkts = __builtin_popcountll(pkts_mask); > uint32_t i; > @@ -190,8 +192,6 @@ rte_table_array_lookup( > } > } > > - *lookup_hit_mask = pkts_mask; > - > return 0; > } > > -- > 1.9.3 > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-12-05 16:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-12-04 14:24 [PATCH] table: fix table_array for incomplete bitmask Bruce Richardson [not found] ` <1417703052-32575-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 2014-12-04 15:23 ` Dumitrescu, Cristian [not found] ` <3EB4FA525960D640B5BDFFD6A3D89126322DA654-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org> 2014-12-05 16:18 ` Thomas Monjalon -- strict thread matches above, loose matches on Subject: below -- 2014-12-04 14:23 Bruce Richardson [not found] ` <1417703013-32480-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 2014-12-04 14:25 ` Bruce Richardson
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).