DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] ethdev: fix Tx queue mask endianness
@ 2023-06-29 13:58 David Marchand
  2023-06-29 14:48 ` Ferruh Yigit
  2023-06-29 15:31 ` Thomas Monjalon
  0 siblings, 2 replies; 8+ messages in thread
From: David Marchand @ 2023-06-29 13:58 UTC (permalink / raw)
  To: dev
  Cc: Ori Kam, Thomas Monjalon, Ferruh Yigit, Andrew Rybchenko, Kiran Kumar K

Even if harmless, this endianness tag is incorrect as the tx_queue field
is declared as a host integer.
Additionally, this breaks OVS compilation with sparse.

Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 lib/ethdev/rte_flow.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 3fe57140f9..86ed98c562 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
 /** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
 #ifndef __cplusplus
 static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
-	.tx_queue = RTE_BE16(0xffff),
+	.tx_queue = 0xffff,
 };
 #endif
 
-- 
2.40.1


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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
@ 2023-06-29 14:48 ` Ferruh Yigit
  2023-06-29 15:31 ` Thomas Monjalon
  1 sibling, 0 replies; 8+ messages in thread
From: Ferruh Yigit @ 2023-06-29 14:48 UTC (permalink / raw)
  To: David Marchand, dev
  Cc: Ori Kam, Thomas Monjalon, Andrew Rybchenko, Kiran Kumar K

On 6/29/2023 2:58 PM, David Marchand wrote:
> Even if harmless, this endianness tag is incorrect as the tx_queue field
> is declared as a host integer.
> Additionally, this breaks OVS compilation with sparse.
> 
> Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
>

Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>

Applied to dpdk-next-net/main, thanks.

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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
  2023-06-29 14:48 ` Ferruh Yigit
@ 2023-06-29 15:31 ` Thomas Monjalon
  2023-06-29 15:40   ` David Marchand
  1 sibling, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2023-06-29 15:31 UTC (permalink / raw)
  To: David Marchand, Ferruh Yigit, Kiran Kumar K
  Cc: dev, Ori Kam, Andrew Rybchenko

29/06/2023 15:58, David Marchand:
> Even if harmless, this endianness tag is incorrect as the tx_queue field
> is declared as a host integer.
> Additionally, this breaks OVS compilation with sparse.
> 
> Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  lib/ethdev/rte_flow.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> index 3fe57140f9..86ed98c562 100644
> --- a/lib/ethdev/rte_flow.h
> +++ b/lib/ethdev/rte_flow.h
> @@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
>  /** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
>  #ifndef __cplusplus
>  static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
> -	.tx_queue = RTE_BE16(0xffff),
> +	.tx_queue = 0xffff,

As I said in an earlier comment about the same issue,
UINT16_MAX would be better.




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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 15:31 ` Thomas Monjalon
@ 2023-06-29 15:40   ` David Marchand
  2023-06-29 15:42     ` Thomas Monjalon
  0 siblings, 1 reply; 8+ messages in thread
From: David Marchand @ 2023-06-29 15:40 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Ferruh Yigit, Kiran Kumar K, dev, Ori Kam, Andrew Rybchenko

On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 29/06/2023 15:58, David Marchand:
> > Even if harmless, this endianness tag is incorrect as the tx_queue field
> > is declared as a host integer.
> > Additionally, this breaks OVS compilation with sparse.
> >
> > Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> >  lib/ethdev/rte_flow.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> > index 3fe57140f9..86ed98c562 100644
> > --- a/lib/ethdev/rte_flow.h
> > +++ b/lib/ethdev/rte_flow.h
> > @@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
> >  /** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
> >  #ifndef __cplusplus
> >  static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
> > -     .tx_queue = RTE_BE16(0xffff),
> > +     .tx_queue = 0xffff,
>
> As I said in an earlier comment about the same issue,
> UINT16_MAX would be better.

I don't mind updating (or maybe Ferruh can squash this directly ?) but
there are lots of uint16_t fields initialised with 0xffff in this same
file.


-- 
David Marchand


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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 15:40   ` David Marchand
@ 2023-06-29 15:42     ` Thomas Monjalon
  2023-06-29 16:14       ` Ferruh Yigit
  0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2023-06-29 15:42 UTC (permalink / raw)
  To: David Marchand, Ferruh Yigit, Ori Kam, Andrew Rybchenko
  Cc: Kiran Kumar K, dev

29/06/2023 17:40, David Marchand:
> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > 29/06/2023 15:58, David Marchand:
> > > -     .tx_queue = RTE_BE16(0xffff),
> > > +     .tx_queue = 0xffff,
> >
> > As I said in an earlier comment about the same issue,
> > UINT16_MAX would be better.
> 
> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> there are lots of uint16_t fields initialised with 0xffff in this same
> file.

It can be made in a separate patch for all occurences.
First I would like to get some comments, what do you prefer
between 0xffff and UINT16_MAX?




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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 15:42     ` Thomas Monjalon
@ 2023-06-29 16:14       ` Ferruh Yigit
  2023-06-30  7:00         ` David Marchand
  0 siblings, 1 reply; 8+ messages in thread
From: Ferruh Yigit @ 2023-06-29 16:14 UTC (permalink / raw)
  To: Thomas Monjalon, David Marchand, Ori Kam, Andrew Rybchenko
  Cc: Kiran Kumar K, dev

On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> 29/06/2023 17:40, David Marchand:
>> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>>> 29/06/2023 15:58, David Marchand:
>>>> -     .tx_queue = RTE_BE16(0xffff),
>>>> +     .tx_queue = 0xffff,
>>>
>>> As I said in an earlier comment about the same issue,
>>> UINT16_MAX would be better.
>>
>> I don't mind updating (or maybe Ferruh can squash this directly ?) but
>> there are lots of uint16_t fields initialised with 0xffff in this same
>> file.
> 
> It can be made in a separate patch for all occurences.
> First I would like to get some comments, what do you prefer
> between 0xffff and UINT16_MAX?
> 

Both works, no strong opinion, I am OK with 0xffff,

The variable we are setting is '*_mask', and main point of the value
used is to have all bits set, and 0xff.. usage highlights it.

Not for UINT16_MAX, but for wider variables, it is easier to make
mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
prevent this mistake, this is a benefit.


And I think consistency matters more, so if you prefer 'UINTxx_MAX',
lets stick to it.

I can update above in next-net, but as far as I understand we can have a
patch to fix all occurrences.


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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-29 16:14       ` Ferruh Yigit
@ 2023-06-30  7:00         ` David Marchand
  2023-06-30  7:13           ` David Marchand
  0 siblings, 1 reply; 8+ messages in thread
From: David Marchand @ 2023-06-30  7:00 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Thomas Monjalon, Ori Kam, Andrew Rybchenko, Kiran Kumar K, dev

On Thu, Jun 29, 2023 at 6:14 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
> On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> > 29/06/2023 17:40, David Marchand:
> >> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >>> 29/06/2023 15:58, David Marchand:
> >>>> -     .tx_queue = RTE_BE16(0xffff),
> >>>> +     .tx_queue = 0xffff,
> >>>
> >>> As I said in an earlier comment about the same issue,
> >>> UINT16_MAX would be better.
> >>
> >> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> >> there are lots of uint16_t fields initialised with 0xffff in this same
> >> file.
> >
> > It can be made in a separate patch for all occurences.
> > First I would like to get some comments, what do you prefer
> > between 0xffff and UINT16_MAX?
> >
>
> Both works, no strong opinion, I am OK with 0xffff,
>
> The variable we are setting is '*_mask', and main point of the value
> used is to have all bits set, and 0xff.. usage highlights it.
>
> Not for UINT16_MAX, but for wider variables, it is easier to make
> mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
> prevent this mistake, this is a benefit.
>
>
> And I think consistency matters more, so if you prefer 'UINTxx_MAX',
> lets stick to it.
>
> I can update above in next-net, but as far as I understand we can have a
> patch to fix all occurrences.

Given that we are considering unsigned integers, is there something
wrong with using (typeof(var)) -1 ?
We could define a new macro to hide this ugly detail.


-- 
David Marchand


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

* Re: [PATCH] ethdev: fix Tx queue mask endianness
  2023-06-30  7:00         ` David Marchand
@ 2023-06-30  7:13           ` David Marchand
  0 siblings, 0 replies; 8+ messages in thread
From: David Marchand @ 2023-06-30  7:13 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Thomas Monjalon, Ori Kam, Andrew Rybchenko, Kiran Kumar K, dev

On Fri, Jun 30, 2023 at 9:00 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Thu, Jun 29, 2023 at 6:14 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> >
> > On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> > > 29/06/2023 17:40, David Marchand:
> > >> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >>> 29/06/2023 15:58, David Marchand:
> > >>>> -     .tx_queue = RTE_BE16(0xffff),
> > >>>> +     .tx_queue = 0xffff,
> > >>>
> > >>> As I said in an earlier comment about the same issue,
> > >>> UINT16_MAX would be better.
> > >>
> > >> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> > >> there are lots of uint16_t fields initialised with 0xffff in this same
> > >> file.
> > >
> > > It can be made in a separate patch for all occurences.
> > > First I would like to get some comments, what do you prefer
> > > between 0xffff and UINT16_MAX?
> > >
> >
> > Both works, no strong opinion, I am OK with 0xffff,
> >
> > The variable we are setting is '*_mask', and main point of the value
> > used is to have all bits set, and 0xff.. usage highlights it.
> >
> > Not for UINT16_MAX, but for wider variables, it is easier to make
> > mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
> > prevent this mistake, this is a benefit.
> >
> >
> > And I think consistency matters more, so if you prefer 'UINTxx_MAX',
> > lets stick to it.
> >
> > I can update above in next-net, but as far as I understand we can have a
> > patch to fix all occurrences.
>
> Given that we are considering unsigned integers, is there something
> wrong with using (typeof(var)) -1 ?

Or maybe get inspiration from what the Linux kernel does :-)
Like GENMASK().


-- 
David Marchand


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

end of thread, other threads:[~2023-06-30  7:13 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
2023-06-29 14:48 ` Ferruh Yigit
2023-06-29 15:31 ` Thomas Monjalon
2023-06-29 15:40   ` David Marchand
2023-06-29 15:42     ` Thomas Monjalon
2023-06-29 16:14       ` Ferruh Yigit
2023-06-30  7:00         ` David Marchand
2023-06-30  7:13           ` David Marchand

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