[dpdk-dev] ethdev: fix ABI breakage in lro code

Message ID 1436783185-8279-1-git-send-email-john.mcnamara@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

John McNamara July 13, 2015, 10:26 a.m. UTC
  Fix for ABI breakage introduced in LRO addition. Moves
lro bitfield to the end of the struct/member.

Fixes: 8eecb3295aed (ixgbe: add LRO support)

Signed-off-by: John McNamara <john.mcnamara@intel.com>
---
 lib/librte_ether/rte_ethdev.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Neil Horman July 13, 2015, 10:42 a.m. UTC | #1
On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> Fix for ABI breakage introduced in LRO addition. Moves
> lro bitfield to the end of the struct/member.
> 
> Fixes: 8eecb3295aed (ixgbe: add LRO support)
> 
> Signed-off-by: John McNamara <john.mcnamara@intel.com>
> ---
>  lib/librte_ether/rte_ethdev.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 79bde89..1c3ace1 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
>  	uint8_t port_id;           /**< Device [external] port identifier. */
>  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
>  		scattered_rx : 1,  /**< RX of scattered packets is ON(1) / OFF(0) */
> -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
>  		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0). */
> -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
> +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
> +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
>  };
>  
>  /**
> -- 
> 1.8.1.4
> 
> 
I presume the ABI checker stopped complaining about this with the patch, yes?

Also, it would be great if someone could check this on ppc or a ppc cross
compile, as I recall bitfields follow endianess order.

Neil
  
Thomas Monjalon July 13, 2015, 10:46 a.m. UTC | #2
2015-07-13 06:42, Neil Horman:
> On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> > Fix for ABI breakage introduced in LRO addition. Moves
> > lro bitfield to the end of the struct/member.
> > 
> > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> > 
> > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> > ---
> >  lib/librte_ether/rte_ethdev.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> > index 79bde89..1c3ace1 100644
> > --- a/lib/librte_ether/rte_ethdev.h
> > +++ b/lib/librte_ether/rte_ethdev.h
> > @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
> >  	uint8_t port_id;           /**< Device [external] port identifier. */
> >  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
> >  		scattered_rx : 1,  /**< RX of scattered packets is ON(1) / OFF(0) */
> > -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
> >  		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0). */
> > -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
> > +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
> > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> >  };
> >  
> >  /**
> I presume the ABI checker stopped complaining about this with the patch, yes?
> 
> Also, it would be great if someone could check this on ppc or a ppc cross
> compile, as I recall bitfields follow endianess order.

+ Chao, IBM POWER maintainer.
  
John McNamara July 13, 2015, 10:47 a.m. UTC | #3
> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Monday, July 13, 2015 11:42 AM
> To: Mcnamara, John
> Cc: dev@dpdk.org; vladz@cloudius-systems.com
> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> 
> On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> > Fix for ABI breakage introduced in LRO addition. Moves lro bitfield to
> > the end of the struct/member.
> >
> > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> >
> > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> > ---
> >  lib/librte_ether/rte_ethdev.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/librte_ether/rte_ethdev.h
> > b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
> > --- a/lib/librte_ether/rte_ethdev.h
> > +++ b/lib/librte_ether/rte_ethdev.h
> > @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
> >  	uint8_t port_id;           /**< Device [external] port identifier.
> */
> >  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0).
> */
> >  		scattered_rx : 1,  /**< RX of scattered packets is ON(1) /
> OFF(0) */
> > -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
> >  		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0).
> */
> > -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0).
> */
> > +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0).
> */
> > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> >  };
> >
> >  /**
> > --
> > 1.8.1.4
> >
> >
> I presume the ABI checker stopped complaining about this with the patch,
> yes?

Hi Neil,

Yes, I replied about that in the previous thread.

John.
--
  
Neil Horman July 13, 2015, 1:59 p.m. UTC | #4
On Mon, Jul 13, 2015 at 10:47:03AM +0000, Mcnamara, John wrote:
> > -----Original Message-----
> > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > Sent: Monday, July 13, 2015 11:42 AM
> > To: Mcnamara, John
> > Cc: dev@dpdk.org; vladz@cloudius-systems.com
> > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> > 
> > On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> > > Fix for ABI breakage introduced in LRO addition. Moves lro bitfield to
> > > the end of the struct/member.
> > >
> > > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> > >
> > > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> > > ---
> > >  lib/librte_ether/rte_ethdev.h | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/lib/librte_ether/rte_ethdev.h
> > > b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
> > > --- a/lib/librte_ether/rte_ethdev.h
> > > +++ b/lib/librte_ether/rte_ethdev.h
> > > @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
> > >  	uint8_t port_id;           /**< Device [external] port identifier.
> > */
> > >  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0).
> > */
> > >  		scattered_rx : 1,  /**< RX of scattered packets is ON(1) /
> > OFF(0) */
> > > -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
> > >  		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0).
> > */
> > > -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0).
> > */
> > > +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0).
> > */
> > > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> > >  };
> > >
> > >  /**
> > > --
> > > 1.8.1.4
> > >
> > >
> > I presume the ABI checker stopped complaining about this with the patch,
> > yes?
> 
> Hi Neil,
> 
> Yes, I replied about that in the previous thread.
> 
Thank you, I'll ack as soon as Chao confirms its not a problem on ppc
Neil

> John.
> -- 
> 
>
  
Vladislav Zolotarov July 16, 2015, 10:22 p.m. UTC | #5
On 07/13/15 13:26, John McNamara wrote:
> Fix for ABI breakage introduced in LRO addition. Moves
> lro bitfield to the end of the struct/member.
>
> Fixes: 8eecb3295aed (ixgbe: add LRO support)
>
> Signed-off-by: John McNamara <john.mcnamara@intel.com>
> ---
>   lib/librte_ether/rte_ethdev.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 79bde89..1c3ace1 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
>   	uint8_t port_id;           /**< Device [external] port identifier. */
>   	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
>   		scattered_rx : 1,  /**< RX of scattered packets is ON(1) / OFF(0) */
> -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
>   		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0). */
> -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
> +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
> +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */

Acked-by: Vlad Zolotarov <vladz@cloudius-systems.com>

>   };
>   
>   /**
  
John McNamara July 17, 2015, 11:45 a.m. UTC | #6
> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Monday, July 13, 2015 3:00 PM
> To: Mcnamara, John
> Cc: dev@dpdk.org; vladz@cloudius-systems.com
> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> 
> > > > -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
> > > > +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
> > > > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> > > >
> > > >
> >
> Thank you, I'll ack as soon as Chao confirms its not a problem on ppc Neil

Hi,

Just pinging Chao Zhu on this again so that it isn't forgotten.

Neil, just to be clear, are you looking for a validate-abi.sh check on PPC?

Just for context, the lro flag doesn't seem to be used anywhere that would be affected by endianness:

    $ ag -w "\->lro"             
    drivers/net/ixgbe/ixgbe_rxtx.c
    3767:   if (dev->data->lro) {
    3967:   dev->data->lro = 1;

    drivers/net/ixgbe/ixgbe_ethdev.c
    1689:   dev->data->lro = 0;

John.
--
  
Neil Horman July 17, 2015, 12:25 p.m. UTC | #7
On Fri, Jul 17, 2015 at 11:45:10AM +0000, Mcnamara, John wrote:
> > -----Original Message-----
> > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > Sent: Monday, July 13, 2015 3:00 PM
> > To: Mcnamara, John
> > Cc: dev@dpdk.org; vladz@cloudius-systems.com
> > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> > 
> > > > > -		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
> > > > > +		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
> > > > > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> > > > >
> > > > >
> > >
> > Thank you, I'll ack as soon as Chao confirms its not a problem on ppc Neil
> 
> Hi,
> 
> Just pinging Chao Zhu on this again so that it isn't forgotten.
> 
> Neil, just to be clear, are you looking for a validate-abi.sh check on PPC?
> 
Yes, correct.
> Just for context, the lro flag doesn't seem to be used anywhere that would be affected by endianness:
> 
>     $ ag -w "\->lro"             
>     drivers/net/ixgbe/ixgbe_rxtx.c
>     3767:   if (dev->data->lro) {
>     3967:   dev->data->lro = 1;
> 
>     drivers/net/ixgbe/ixgbe_ethdev.c
>     1689:   dev->data->lro = 0;
> 
But this data is visible to the outside application, correct?  If so then we
can't rely on internal-only usage as a guide.  If it is only internally visible,
then yes, you are correct, endianess is not an issue then
neil

> John.
> -- 
> 
>
  
John McNamara July 31, 2015, 9:03 a.m. UTC | #8
> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Monday, July 13, 2015 3:00 PM
> To: Mcnamara, John
> Cc: dev@dpdk.org; vladz@cloudius-systems.com
> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> 
> On Mon, Jul 13, 2015 at 10:47:03AM +0000, Mcnamara, John wrote:
> > > -----Original Message-----
> > > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > > Sent: Monday, July 13, 2015 11:42 AM
> > > To: Mcnamara, John
> > > Cc: dev@dpdk.org; vladz@cloudius-systems.com
> > > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> > >
> > > On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> > > > Fix for ABI breakage introduced in LRO addition. Moves lro
> > > > bitfield to the end of the struct/member.
> > > >
> > > > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> > > >
> > > > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> > > > ---
> > > >  lib/librte_ether/rte_ethdev.h | 4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/lib/librte_ether/rte_ethdev.h
> > > > b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
> > > > --- a/lib/librte_ether/rte_ethdev.h
> > > > +++ b/lib/librte_ether/rte_ethdev.h
> > > > @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
> > > >  	uint8_t port_id;           /**< Device [external] port
> identifier.
> > > */
> > > >  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) /
> OFF(0).
> > > */
> > > >  		scattered_rx : 1,  /**< RX of scattered packets is ON(1)
> /
> > > OFF(0) */
> > > > -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
> > > >  		all_multicast : 1, /**< RX all multicast mode ON(1) /
> OFF(0).
> > > */
> > > > -		dev_started : 1;   /**< Device state: STARTED(1) /
> STOPPED(0).
> > > */
> > > > +		dev_started : 1,   /**< Device state: STARTED(1) /
> STOPPED(0).
> > > */
> > > > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> > > >  };
> > > >
> > > >  /**
> > > > --
> > > > 1.8.1.4
> > > >
> > > >
> > > I presume the ABI checker stopped complaining about this with the
> > > patch, yes?
> >
> > Hi Neil,
> >
> > Yes, I replied about that in the previous thread.
> >
> Thank you, I'll ack as soon as Chao confirms its not a problem on ppc Neil

Hi Chao,

Any reply on this.

Neil, if there is no reply to this from the PPC maintainer do you have any objection to this going in as is. 

It at least fixes the LRO ABI breakage on the platforms we can test on.

John
  
Neil Horman July 31, 2015, 10:34 a.m. UTC | #9
On Fri, Jul 31, 2015 at 09:03:45AM +0000, Mcnamara, John wrote:
> > -----Original Message-----
> > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > Sent: Monday, July 13, 2015 3:00 PM
> > To: Mcnamara, John
> > Cc: dev@dpdk.org; vladz@cloudius-systems.com
> > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> > 
> > On Mon, Jul 13, 2015 at 10:47:03AM +0000, Mcnamara, John wrote:
> > > > -----Original Message-----
> > > > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > > > Sent: Monday, July 13, 2015 11:42 AM
> > > > To: Mcnamara, John
> > > > Cc: dev@dpdk.org; vladz@cloudius-systems.com
> > > > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
> > > >
> > > > On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
> > > > > Fix for ABI breakage introduced in LRO addition. Moves lro
> > > > > bitfield to the end of the struct/member.
> > > > >
> > > > > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> > > > >
> > > > > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> > > > > ---
> > > > >  lib/librte_ether/rte_ethdev.h | 4 ++--
> > > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/lib/librte_ether/rte_ethdev.h
> > > > > b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
> > > > > --- a/lib/librte_ether/rte_ethdev.h
> > > > > +++ b/lib/librte_ether/rte_ethdev.h
> > > > > @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
> > > > >  	uint8_t port_id;           /**< Device [external] port
> > identifier.
> > > > */
> > > > >  	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) /
> > OFF(0).
> > > > */
> > > > >  		scattered_rx : 1,  /**< RX of scattered packets is ON(1)
> > /
> > > > OFF(0) */
> > > > > -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
> > > > >  		all_multicast : 1, /**< RX all multicast mode ON(1) /
> > OFF(0).
> > > > */
> > > > > -		dev_started : 1;   /**< Device state: STARTED(1) /
> > STOPPED(0).
> > > > */
> > > > > +		dev_started : 1,   /**< Device state: STARTED(1) /
> > STOPPED(0).
> > > > */
> > > > > +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
> > > > >  };
> > > > >
> > > > >  /**
> > > > > --
> > > > > 1.8.1.4
> > > > >
> > > > >
> > > > I presume the ABI checker stopped complaining about this with the
> > > > patch, yes?
> > >
> > > Hi Neil,
> > >
> > > Yes, I replied about that in the previous thread.
> > >
> > Thank you, I'll ack as soon as Chao confirms its not a problem on ppc Neil
> 
> Hi Chao,
> 
> Any reply on this.
> 
> Neil, if there is no reply to this from the PPC maintainer do you have any objection to this going in as is. 
> 
> It at least fixes the LRO ABI breakage on the platforms we can test on.
> 
> John
> 
Well, I suppose at this point the only thing its hurting is ppc, so no, no
objections.  But its pretty disheartening for an arch maintainer to dissappear
so soon after adding arch support.

Neil
  
Thomas Monjalon Aug. 2, 2015, 9:06 p.m. UTC | #10
2015-07-17 01:22, Vlad Zolotarov:
> On 07/13/15 13:26, John McNamara wrote:
> > Fix for ABI breakage introduced in LRO addition. Moves
> > lro bitfield to the end of the struct/member.
> >
> > Fixes: 8eecb3295aed (ixgbe: add LRO support)
> >
> > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> 
> Acked-by: Vlad Zolotarov <vladz@cloudius-systems.com>

Applied, thanks

We still don't know if POWER Big Endian ABI is broken.
  
Chao Zhu Aug. 3, 2015, 2:39 a.m. UTC | #11
Really sorry for the delay.
Originally, I thought the email was to asking the ABI checking tools on 
Power which I'm not so familiar with.  So this took me some time to find 
solution. For Power little endian, the build is OK. I'll give feedback 
when I tried Big  endian compilation.

On 2015/7/31 18:34, Neil Horman wrote:
> On Fri, Jul 31, 2015 at 09:03:45AM +0000, Mcnamara, John wrote:
>>> -----Original Message-----
>>> From: Neil Horman [mailto:nhorman@tuxdriver.com]
>>> Sent: Monday, July 13, 2015 3:00 PM
>>> To: Mcnamara, John
>>> Cc: dev@dpdk.org; vladz@cloudius-systems.com
>>> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
>>>
>>> On Mon, Jul 13, 2015 at 10:47:03AM +0000, Mcnamara, John wrote:
>>>>> -----Original Message-----
>>>>> From: Neil Horman [mailto:nhorman@tuxdriver.com]
>>>>> Sent: Monday, July 13, 2015 11:42 AM
>>>>> To: Mcnamara, John
>>>>> Cc: dev@dpdk.org; vladz@cloudius-systems.com
>>>>> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
>>>>>
>>>>> On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
>>>>>> Fix for ABI breakage introduced in LRO addition. Moves lro
>>>>>> bitfield to the end of the struct/member.
>>>>>>
>>>>>> Fixes: 8eecb3295aed (ixgbe: add LRO support)
>>>>>>
>>>>>> Signed-off-by: John McNamara <john.mcnamara@intel.com>
>>>>>> ---
>>>>>>   lib/librte_ether/rte_ethdev.h | 4 ++--
>>>>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/lib/librte_ether/rte_ethdev.h
>>>>>> b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
>>>>>> --- a/lib/librte_ether/rte_ethdev.h
>>>>>> +++ b/lib/librte_ether/rte_ethdev.h
>>>>>> @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
>>>>>>   	uint8_t port_id;           /**< Device [external] port
>>> identifier.
>>>>> */
>>>>>>   	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) /
>>> OFF(0).
>>>>> */
>>>>>>   		scattered_rx : 1,  /**< RX of scattered packets is ON(1)
>>> /
>>>>> OFF(0) */
>>>>>> -		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
>>>>>>   		all_multicast : 1, /**< RX all multicast mode ON(1) /
>>> OFF(0).
>>>>> */
>>>>>> -		dev_started : 1;   /**< Device state: STARTED(1) /
>>> STOPPED(0).
>>>>> */
>>>>>> +		dev_started : 1,   /**< Device state: STARTED(1) /
>>> STOPPED(0).
>>>>> */
>>>>>> +		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
>>>>>>   };
>>>>>>
>>>>>>   /**
>>>>>> --
>>>>>> 1.8.1.4
>>>>>>
>>>>>>
>>>>> I presume the ABI checker stopped complaining about this with the
>>>>> patch, yes?
>>>> Hi Neil,
>>>>
>>>> Yes, I replied about that in the previous thread.
>>>>
>>> Thank you, I'll ack as soon as Chao confirms its not a problem on ppc Neil
>> Hi Chao,
>>
>> Any reply on this.
>>
>> Neil, if there is no reply to this from the PPC maintainer do you have any objection to this going in as is.
>>
>> It at least fixes the LRO ABI breakage on the platforms we can test on.
>>
>> John
>>
> Well, I suppose at this point the only thing its hurting is ppc, so no, no
> objections.  But its pretty disheartening for an arch maintainer to dissappear
> so soon after adding arch support.
>
> Neil
>
  
Chao Zhu Aug. 3, 2015, 3:45 a.m. UTC | #12
Confirmed. It can compile on Power8 Big Endian.
Thank you!

On 2015/8/3 10:39, Chao Zhu wrote:
>
> Really sorry for the delay.
> Originally, I thought the email was to asking the ABI checking tools 
> on Power which I'm not so familiar with.  So this took me some time to 
> find solution. For Power little endian, the build is OK. I'll give 
> feedback when I tried Big  endian compilation.
>
> On 2015/7/31 18:34, Neil Horman wrote:
>> On Fri, Jul 31, 2015 at 09:03:45AM +0000, Mcnamara, John wrote:
>>>> -----Original Message-----
>>>> From: Neil Horman [mailto:nhorman@tuxdriver.com]
>>>> Sent: Monday, July 13, 2015 3:00 PM
>>>> To: Mcnamara, John
>>>> Cc: dev@dpdk.org; vladz@cloudius-systems.com
>>>> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
>>>>
>>>> On Mon, Jul 13, 2015 at 10:47:03AM +0000, Mcnamara, John wrote:
>>>>>> -----Original Message-----
>>>>>> From: Neil Horman [mailto:nhorman@tuxdriver.com]
>>>>>> Sent: Monday, July 13, 2015 11:42 AM
>>>>>> To: Mcnamara, John
>>>>>> Cc: dev@dpdk.org; vladz@cloudius-systems.com
>>>>>> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix ABI breakage in lro code
>>>>>>
>>>>>> On Mon, Jul 13, 2015 at 11:26:25AM +0100, John McNamara wrote:
>>>>>>> Fix for ABI breakage introduced in LRO addition. Moves lro
>>>>>>> bitfield to the end of the struct/member.
>>>>>>>
>>>>>>> Fixes: 8eecb3295aed (ixgbe: add LRO support)
>>>>>>>
>>>>>>> Signed-off-by: John McNamara <john.mcnamara@intel.com>
>>>>>>> ---
>>>>>>>   lib/librte_ether/rte_ethdev.h | 4 ++--
>>>>>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>>>
>>>>>>> diff --git a/lib/librte_ether/rte_ethdev.h
>>>>>>> b/lib/librte_ether/rte_ethdev.h index 79bde89..1c3ace1 100644
>>>>>>> --- a/lib/librte_ether/rte_ethdev.h
>>>>>>> +++ b/lib/librte_ether/rte_ethdev.h
>>>>>>> @@ -1578,9 +1578,9 @@ struct rte_eth_dev_data {
>>>>>>>       uint8_t port_id;           /**< Device [external] port
>>>> identifier.
>>>>>> */
>>>>>>>       uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) /
>>>> OFF(0).
>>>>>> */
>>>>>>>           scattered_rx : 1, /**< RX of scattered packets is ON(1)
>>>> /
>>>>>> OFF(0) */
>>>>>>> -        lro          : 1, /**< RX LRO is ON(1) / OFF(0) */
>>>>>>>           all_multicast : 1, /**< RX all multicast mode ON(1) /
>>>> OFF(0).
>>>>>> */
>>>>>>> -        dev_started : 1; /**< Device state: STARTED(1) /
>>>> STOPPED(0).
>>>>>> */
>>>>>>> +        dev_started : 1, /**< Device state: STARTED(1) /
>>>> STOPPED(0).
>>>>>> */
>>>>>>> +        lro         : 1; /**< RX LRO is ON(1) / OFF(0) */
>>>>>>>   };
>>>>>>>
>>>>>>>   /**
>>>>>>> -- 
>>>>>>> 1.8.1.4
>>>>>>>
>>>>>>>
>>>>>> I presume the ABI checker stopped complaining about this with the
>>>>>> patch, yes?
>>>>> Hi Neil,
>>>>>
>>>>> Yes, I replied about that in the previous thread.
>>>>>
>>>> Thank you, I'll ack as soon as Chao confirms its not a problem on 
>>>> ppc Neil
>>> Hi Chao,
>>>
>>> Any reply on this.
>>>
>>> Neil, if there is no reply to this from the PPC maintainer do you 
>>> have any objection to this going in as is.
>>>
>>> It at least fixes the LRO ABI breakage on the platforms we can test on.
>>>
>>> John
>>>
>> Well, I suppose at this point the only thing its hurting is ppc, so 
>> no, no
>> objections.  But its pretty disheartening for an arch maintainer to 
>> dissappear
>> so soon after adding arch support.
>>
>> Neil
>>
>
  
Thomas Monjalon Aug. 3, 2015, 8:41 a.m. UTC | #13
Chao,
The original need was to check with the ABI checker tool that the ABI
was not broken on POWER BE by this patch.


2015-08-03 11:45, Chao Zhu:
> Confirmed. It can compile on Power8 Big Endian.
> Thank you!
> 
> On 2015/8/3 10:39, Chao Zhu wrote:
> >
> > Really sorry for the delay.
> > Originally, I thought the email was to asking the ABI checking tools 
> > on Power which I'm not so familiar with.  So this took me some time to 
> > find solution. For Power little endian, the build is OK. I'll give 
> > feedback when I tried Big  endian compilation.

[...]

> >>>>>> I presume the ABI checker stopped complaining about this with the
> >>>>>> patch, yes?
> >>>>> Hi Neil,
> >>>>>
> >>>>> Yes, I replied about that in the previous thread.
> >>>>>
> >>>> Thank you, I'll ack as soon as Chao confirms its not a problem on 
> >>>> ppc Neil
  
Neil Horman Aug. 3, 2015, 12:53 p.m. UTC | #14
On Mon, Aug 03, 2015 at 10:41:47AM +0200, Thomas Monjalon wrote:
> Chao,
> The original need was to check with the ABI checker tool that the ABI
> was not broken on POWER BE by this patch.
> 
Yes, its not compilation thats the concern, its ABI compatibility.

Neil

> 
> 2015-08-03 11:45, Chao Zhu:
> > Confirmed. It can compile on Power8 Big Endian.
> > Thank you!
> > 
> > On 2015/8/3 10:39, Chao Zhu wrote:
> > >
> > > Really sorry for the delay.
> > > Originally, I thought the email was to asking the ABI checking tools 
> > > on Power which I'm not so familiar with.  So this took me some time to 
> > > find solution. For Power little endian, the build is OK. I'll give 
> > > feedback when I tried Big  endian compilation.
> 
> [...]
> 
> > >>>>>> I presume the ABI checker stopped complaining about this with the
> > >>>>>> patch, yes?
> > >>>>> Hi Neil,
> > >>>>>
> > >>>>> Yes, I replied about that in the previous thread.
> > >>>>>
> > >>>> Thank you, I'll ack as soon as Chao confirms its not a problem on 
> > >>>> ppc Neil
> 
>
  

Patch

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 79bde89..1c3ace1 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1578,9 +1578,9 @@  struct rte_eth_dev_data {
 	uint8_t port_id;           /**< Device [external] port identifier. */
 	uint8_t promiscuous   : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
 		scattered_rx : 1,  /**< RX of scattered packets is ON(1) / OFF(0) */
-		lro          : 1,  /**< RX LRO is ON(1) / OFF(0) */
 		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0). */
-		dev_started : 1;   /**< Device state: STARTED(1) / STOPPED(0). */
+		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
+		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
 };
 
 /**