DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] ixgbe: fix check for split packets
@ 2015-07-21 15:25 Bruce Richardson
  2015-07-22  0:44 ` Lu, Wenzhuo
  2015-07-22  9:13 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
  0 siblings, 2 replies; 11+ messages in thread
From: Bruce Richardson @ 2015-07-21 15:25 UTC (permalink / raw)
  To: dev

The check for split packets to be reassembled in the vector ixgbe PMD
was incorrectly only checking the first 16 elements of the array instead
of all 32. This is fixed by changing the uint32_t values to be uint64_t
instead.

Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")

Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx_vec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
index 9f24849..cdad3e0 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
@@ -549,7 +549,7 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 		return 0;
 
 	/* happy day case, full burst + no packets to be joined */
-	const uint32_t *split_fl32 = (uint32_t *)split_flags;
+	const uint64_t *split_fl32 = (uint64_t *)split_flags;
 	if (rxq->pkt_first_seg == NULL &&
 			split_fl32[0] == 0 && split_fl32[1] == 0 &&
 			split_fl32[2] == 0 && split_fl32[3] == 0)
-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: fix check for split packets
  2015-07-21 15:25 [dpdk-dev] [PATCH] ixgbe: fix check for split packets Bruce Richardson
@ 2015-07-22  0:44 ` Lu, Wenzhuo
  2015-07-22  8:29   ` Bruce Richardson
  2015-07-22  9:13 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
  1 sibling, 1 reply; 11+ messages in thread
From: Lu, Wenzhuo @ 2015-07-22  0:44 UTC (permalink / raw)
  To: Richardson, Bruce, dev

Hi Bruce,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Tuesday, July 21, 2015 11:25 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] ixgbe: fix check for split packets
> 
> The check for split packets to be reassembled in the vector ixgbe PMD was
> incorrectly only checking the first 16 elements of the array instead of all 32. This
> is fixed by changing the uint32_t values to be uint64_t instead.
> 
> Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
> 
> Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx_vec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> index 9f24849..cdad3e0 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> @@ -549,7 +549,7 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct
> rte_mbuf **rx_pkts,
>  		return 0;
> 
>  	/* happy day case, full burst + no packets to be joined */
> -	const uint32_t *split_fl32 = (uint32_t *)split_flags;
> +	const uint64_t *split_fl32 = (uint64_t *)split_flags;
Why not change the name to split_fl64? I don't think it's appropriate to keep it be split_fl32.
Thanks.

>  	if (rxq->pkt_first_seg == NULL &&
>  			split_fl32[0] == 0 && split_fl32[1] == 0 &&
>  			split_fl32[2] == 0 && split_fl32[3] == 0)
> --
> 1.8.3.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH] ixgbe: fix check for split packets
  2015-07-22  0:44 ` Lu, Wenzhuo
@ 2015-07-22  8:29   ` Bruce Richardson
  0 siblings, 0 replies; 11+ messages in thread
From: Bruce Richardson @ 2015-07-22  8:29 UTC (permalink / raw)
  To: Lu, Wenzhuo; +Cc: dev

On Wed, Jul 22, 2015 at 01:44:14AM +0100, Lu, Wenzhuo wrote:
> Hi Bruce,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Tuesday, July 21, 2015 11:25 PM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH] ixgbe: fix check for split packets
> > 
> > The check for split packets to be reassembled in the vector ixgbe PMD was
> > incorrectly only checking the first 16 elements of the array instead of all 32. This
> > is fixed by changing the uint32_t values to be uint64_t instead.
> > 
> > Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
> > 
> > Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> >  drivers/net/ixgbe/ixgbe_rxtx_vec.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> > b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> > index 9f24849..cdad3e0 100644
> > --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> > +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> > @@ -549,7 +549,7 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct
> > rte_mbuf **rx_pkts,
> >  		return 0;
> > 
> >  	/* happy day case, full burst + no packets to be joined */
> > -	const uint32_t *split_fl32 = (uint32_t *)split_flags;
> > +	const uint64_t *split_fl32 = (uint64_t *)split_flags;
> Why not change the name to split_fl64? I don't think it's appropriate to keep it be split_fl32.
> Thanks.
> 
Quite right, that's the obvious change! I'll do a V2.

/Bruce

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-21 15:25 [dpdk-dev] [PATCH] ixgbe: fix check for split packets Bruce Richardson
  2015-07-22  0:44 ` Lu, Wenzhuo
@ 2015-07-22  9:13 ` Bruce Richardson
  2015-07-22  9:47   ` Zoltan Kiss
  2015-07-26 12:41   ` Thomas Monjalon
  1 sibling, 2 replies; 11+ messages in thread
From: Bruce Richardson @ 2015-07-22  9:13 UTC (permalink / raw)
  To: dev

The check for split packets to be reassembled in the vector ixgbe PMD
was incorrectly only checking the first 16 elements of the array instead
of all 32. This is fixed by changing the uint32_t values to be uint64_t
instead.

Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")

Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

---
V2: Rename variable from split_fl32 to split_fl64 to match type change.
---
 drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
index d3ac74a..f2052c6 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
@@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 		return 0;
 
 	/* happy day case, full burst + no packets to be joined */
-	const uint32_t *split_fl32 = (uint32_t *)split_flags;
+	const uint64_t *split_fl64 = (uint64_t *)split_flags;
 	if (rxq->pkt_first_seg == NULL &&
-			split_fl32[0] == 0 && split_fl32[1] == 0 &&
-			split_fl32[2] == 0 && split_fl32[3] == 0)
+			split_fl64[0] == 0 && split_fl64[1] == 0 &&
+			split_fl64[2] == 0 && split_fl64[3] == 0)
 		return nb_bufs;
 
 	/* reassemble any packets that need reassembly*/
-- 
2.4.3

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22  9:13 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
@ 2015-07-22  9:47   ` Zoltan Kiss
  2015-07-22  9:59     ` Bruce Richardson
  2015-07-26 12:41   ` Thomas Monjalon
  1 sibling, 1 reply; 11+ messages in thread
From: Zoltan Kiss @ 2015-07-22  9:47 UTC (permalink / raw)
  To: Bruce Richardson, dev

Hi,

And what happens if someone changes RTE_IXGBE_VPMD_RX_BURST to something 
else than 32? I guess this bug were introduced when someone raised it 
from 16 to 32
I think you are better off with a for loop which uses this value. Or at 
least make a comment around RTE_IXGBE_VPMD_RX_BURST that if you change 
that value this check should be modified as well.

Regards,

Zoltan

On 22/07/15 10:13, Bruce Richardson wrote:
> The check for split packets to be reassembled in the vector ixgbe PMD
> was incorrectly only checking the first 16 elements of the array instead
> of all 32. This is fixed by changing the uint32_t values to be uint64_t
> instead.
>
> Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
>
> Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>
> ---
> V2: Rename variable from split_fl32 to split_fl64 to match type change.
> ---
>   drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> index d3ac74a..f2052c6 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> @@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
>   		return 0;
>
>   	/* happy day case, full burst + no packets to be joined */
> -	const uint32_t *split_fl32 = (uint32_t *)split_flags;
> +	const uint64_t *split_fl64 = (uint64_t *)split_flags;
>   	if (rxq->pkt_first_seg == NULL &&
> -			split_fl32[0] == 0 && split_fl32[1] == 0 &&
> -			split_fl32[2] == 0 && split_fl32[3] == 0)
> +			split_fl64[0] == 0 && split_fl64[1] == 0 &&
> +			split_fl64[2] == 0 && split_fl64[3] == 0)
>   		return nb_bufs;
>
>   	/* reassemble any packets that need reassembly*/
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22  9:47   ` Zoltan Kiss
@ 2015-07-22  9:59     ` Bruce Richardson
  2015-07-22 13:19       ` Zoltan Kiss
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Richardson @ 2015-07-22  9:59 UTC (permalink / raw)
  To: Zoltan Kiss; +Cc: dev

On Wed, Jul 22, 2015 at 10:47:34AM +0100, Zoltan Kiss wrote:
> Hi,
> 
> And what happens if someone changes RTE_IXGBE_VPMD_RX_BURST to something
> else than 32? I guess this bug were introduced when someone raised it from
> 16 to 32

Actually, no, this bug is purely due to me getting my maths wrong when I 
wrote this function. The vector PMD has always worked in bursts of 32 at a
time.

> I think you are better off with a for loop which uses this value. Or at
> least make a comment around RTE_IXGBE_VPMD_RX_BURST that if you change that
> value this check should be modified as well.

The vector PMD always works off a fixed 32 burst size. Any change to that will
lead to many changes in the code, so I don't believe a loop is necessary.

Regards,
/Bruce

> 
> Regards,
> 
> Zoltan
> 
> On 22/07/15 10:13, Bruce Richardson wrote:
> >The check for split packets to be reassembled in the vector ixgbe PMD
> >was incorrectly only checking the first 16 elements of the array instead
> >of all 32. This is fixed by changing the uint32_t values to be uint64_t
> >instead.
> >
> >Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
> >
> >Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> >Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> >
> >---
> >V2: Rename variable from split_fl32 to split_fl64 to match type change.
> >---
> >  drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> >diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >index d3ac74a..f2052c6 100644
> >--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >@@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
> >  		return 0;
> >
> >  	/* happy day case, full burst + no packets to be joined */
> >-	const uint32_t *split_fl32 = (uint32_t *)split_flags;
> >+	const uint64_t *split_fl64 = (uint64_t *)split_flags;
> >  	if (rxq->pkt_first_seg == NULL &&
> >-			split_fl32[0] == 0 && split_fl32[1] == 0 &&
> >-			split_fl32[2] == 0 && split_fl32[3] == 0)
> >+			split_fl64[0] == 0 && split_fl64[1] == 0 &&
> >+			split_fl64[2] == 0 && split_fl64[3] == 0)
> >  		return nb_bufs;
> >
> >  	/* reassemble any packets that need reassembly*/
> >

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22  9:59     ` Bruce Richardson
@ 2015-07-22 13:19       ` Zoltan Kiss
  2015-07-22 13:22         ` Zoltan Kiss
  2015-07-22 13:35         ` Richardson, Bruce
  0 siblings, 2 replies; 11+ messages in thread
From: Zoltan Kiss @ 2015-07-22 13:19 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev



On 22/07/15 10:59, Bruce Richardson wrote:
> On Wed, Jul 22, 2015 at 10:47:34AM +0100, Zoltan Kiss wrote:
>> Hi,
>>
>> And what happens if someone changes RTE_IXGBE_VPMD_RX_BURST to something
>> else than 32? I guess this bug were introduced when someone raised it from
>> 16 to 32
>
> Actually, no, this bug is purely due to me getting my maths wrong when I
> wrote this function. The vector PMD has always worked in bursts of 32 at a
> time.
>
>> I think you are better off with a for loop which uses this value. Or at
>> least make a comment around RTE_IXGBE_VPMD_RX_BURST that if you change that
>> value this check should be modified as well.
>
> The vector PMD always works off a fixed 32 burst size. Any change to that will
> lead to many changes in the code, so I don't believe a loop is necessary.

Ok, then I suggest to make a comment around RTE_IXGBE_VPMD_RX_BURST that 
changing it needs a lot of other changes in the code elsewhere, e.g in 
this split_flags check.
Btw. vPMD was a bit misleading abbreviation for me, it took me a while 
until I realized 'v' stands for 'vector', not 'virtualization' as in 
most cases nowadays.

>
> Regards,
> /Bruce
>
>>
>> Regards,
>>
>> Zoltan
>>
>> On 22/07/15 10:13, Bruce Richardson wrote:
>>> The check for split packets to be reassembled in the vector ixgbe PMD
>>> was incorrectly only checking the first 16 elements of the array instead
>>> of all 32. This is fixed by changing the uint32_t values to be uint64_t
>>> instead.
>>>
>>> Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
>>>
>>> Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
>>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>>>
>>> ---
>>> V2: Rename variable from split_fl32 to split_fl64 to match type change.
>>> ---
>>>   drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
>>> index d3ac74a..f2052c6 100644
>>> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
>>> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
>>> @@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
>>>   		return 0;
>>>
>>>   	/* happy day case, full burst + no packets to be joined */
>>> -	const uint32_t *split_fl32 = (uint32_t *)split_flags;
>>> +	const uint64_t *split_fl64 = (uint64_t *)split_flags;
>>>   	if (rxq->pkt_first_seg == NULL &&
>>> -			split_fl32[0] == 0 && split_fl32[1] == 0 &&
>>> -			split_fl32[2] == 0 && split_fl32[3] == 0)
>>> +			split_fl64[0] == 0 && split_fl64[1] == 0 &&
>>> +			split_fl64[2] == 0 && split_fl64[3] == 0)
>>>   		return nb_bufs;
>>>
>>>   	/* reassemble any packets that need reassembly*/
>>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22 13:19       ` Zoltan Kiss
@ 2015-07-22 13:22         ` Zoltan Kiss
  2015-07-22 13:35         ` Richardson, Bruce
  1 sibling, 0 replies; 11+ messages in thread
From: Zoltan Kiss @ 2015-07-22 13:22 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev



On 22/07/15 14:19, Zoltan Kiss wrote:
> Btw. vPMD was a bit misleading abbreviation for me, it took me a while
> until I realized 'v' stands for 'vector', not 'virtualization' as in
> most cases nowadays.
>

Though that's mostly my fault to not to check the documentation :)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22 13:19       ` Zoltan Kiss
  2015-07-22 13:22         ` Zoltan Kiss
@ 2015-07-22 13:35         ` Richardson, Bruce
  2015-07-22 13:47           ` Thomas Monjalon
  1 sibling, 1 reply; 11+ messages in thread
From: Richardson, Bruce @ 2015-07-22 13:35 UTC (permalink / raw)
  To: Zoltan Kiss; +Cc: dev



> -----Original Message-----
> From: Zoltan Kiss [mailto:zoltan.kiss@linaro.org]
> Sent: Wednesday, July 22, 2015 2:20 PM
> To: Richardson, Bruce
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
> 
> 
> 
> On 22/07/15 10:59, Bruce Richardson wrote:
> > On Wed, Jul 22, 2015 at 10:47:34AM +0100, Zoltan Kiss wrote:
> >> Hi,
> >>
> >> And what happens if someone changes RTE_IXGBE_VPMD_RX_BURST to
> >> something else than 32? I guess this bug were introduced when someone
> >> raised it from
> >> 16 to 32
> >
> > Actually, no, this bug is purely due to me getting my maths wrong when
> > I wrote this function. The vector PMD has always worked in bursts of
> > 32 at a time.
> >
> >> I think you are better off with a for loop which uses this value. Or
> >> at least make a comment around RTE_IXGBE_VPMD_RX_BURST that if you
> >> change that value this check should be modified as well.
> >
> > The vector PMD always works off a fixed 32 burst size. Any change to
> > that will lead to many changes in the code, so I don't believe a loop is
> necessary.
> 
> Ok, then I suggest to make a comment around RTE_IXGBE_VPMD_RX_BURST that
> changing it needs a lot of other changes in the code elsewhere, e.g in
> this split_flags check.
> Btw. vPMD was a bit misleading abbreviation for me, it took me a while
> until I realized 'v' stands for 'vector', not 'virtualization' as in most
> cases nowadays.

Good idea. I'll try to submit a patch to add a comment if I get the chance - otherwise feel free to do so yourself.

As for the naming, yes, I suppose it can be confusing. :-) We possibly need to start calling these pieces of code SSE or AVX rather than just vector, since for some we may end up with multiple vector versions.

/Bruce

> 
> >
> > Regards,
> > /Bruce
> >
> >>
> >> Regards,
> >>
> >> Zoltan
> >>
> >> On 22/07/15 10:13, Bruce Richardson wrote:
> >>> The check for split packets to be reassembled in the vector ixgbe
> >>> PMD was incorrectly only checking the first 16 elements of the array
> >>> instead of all 32. This is fixed by changing the uint32_t values to
> >>> be uint64_t instead.
> >>>
> >>> Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector
> >>> scattered Rx")
> >>>
> >>> Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> >>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> >>>
> >>> ---
> >>> V2: Rename variable from split_fl32 to split_fl64 to match type
> change.
> >>> ---
> >>>   drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
> >>>   1 file changed, 3 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >>> b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >>> index d3ac74a..f2052c6 100644
> >>> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >>> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> >>> @@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue,
> struct rte_mbuf **rx_pkts,
> >>>   		return 0;
> >>>
> >>>   	/* happy day case, full burst + no packets to be joined */
> >>> -	const uint32_t *split_fl32 = (uint32_t *)split_flags;
> >>> +	const uint64_t *split_fl64 = (uint64_t *)split_flags;
> >>>   	if (rxq->pkt_first_seg == NULL &&
> >>> -			split_fl32[0] == 0 && split_fl32[1] == 0 &&
> >>> -			split_fl32[2] == 0 && split_fl32[3] == 0)
> >>> +			split_fl64[0] == 0 && split_fl64[1] == 0 &&
> >>> +			split_fl64[2] == 0 && split_fl64[3] == 0)
> >>>   		return nb_bufs;
> >>>
> >>>   	/* reassemble any packets that need reassembly*/
> >>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22 13:35         ` Richardson, Bruce
@ 2015-07-22 13:47           ` Thomas Monjalon
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Monjalon @ 2015-07-22 13:47 UTC (permalink / raw)
  To: Richardson, Bruce; +Cc: dev

2015-07-22 13:35, Richardson, Bruce:
> From: Zoltan Kiss [mailto:zoltan.kiss@linaro.org]
> > On 22/07/15 10:59, Bruce Richardson wrote:
> > > The vector PMD always works off a fixed 32 burst size. Any change to
> > > that will lead to many changes in the code, so I don't believe a loop is
> > necessary.
> > 
> > Ok, then I suggest to make a comment around RTE_IXGBE_VPMD_RX_BURST that
> > changing it needs a lot of other changes in the code elsewhere, e.g in
> > this split_flags check.
> > Btw. vPMD was a bit misleading abbreviation for me, it took me a while
> > until I realized 'v' stands for 'vector', not 'virtualization' as in most
> > cases nowadays.
> 
> Good idea. I'll try to submit a patch to add a comment if I get the chance
> - otherwise feel free to do so yourself.

Why not do it in this patch?
Is it not enough related?

> As for the naming, yes, I suppose it can be confusing. :-) We possibly need
> to start calling these pieces of code SSE or AVX rather than just vector,
> since for some we may end up with multiple vector versions.

+1 for SSE/AVX naming

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] [PATCH v2] ixgbe: fix check for split packets
  2015-07-22  9:13 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
  2015-07-22  9:47   ` Zoltan Kiss
@ 2015-07-26 12:41   ` Thomas Monjalon
  1 sibling, 0 replies; 11+ messages in thread
From: Thomas Monjalon @ 2015-07-26 12:41 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

> The check for split packets to be reassembled in the vector ixgbe PMD
> was incorrectly only checking the first 16 elements of the array instead
> of all 32. This is fixed by changing the uint32_t values to be uint64_t
> instead.
> 
> Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")
> 
> Reported-by: Zoltan Kiss <zoltan.kiss@linaro.org>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> ---
> V2: Rename variable from split_fl32 to split_fl64 to match type change.

Applied, thanks

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-07-26 12:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-21 15:25 [dpdk-dev] [PATCH] ixgbe: fix check for split packets Bruce Richardson
2015-07-22  0:44 ` Lu, Wenzhuo
2015-07-22  8:29   ` Bruce Richardson
2015-07-22  9:13 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
2015-07-22  9:47   ` Zoltan Kiss
2015-07-22  9:59     ` Bruce Richardson
2015-07-22 13:19       ` Zoltan Kiss
2015-07-22 13:22         ` Zoltan Kiss
2015-07-22 13:35         ` Richardson, Bruce
2015-07-22 13:47           ` Thomas Monjalon
2015-07-26 12:41   ` Thomas Monjalon

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).