mbuf: remove unused next member

Message ID 20200609052955.59196-1-xiaolong.ye@intel.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series mbuf: remove unused next member |

Checks

Context Check Description
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/checkpatch success coding style OK

Commit Message

Xiaolong Ye June 9, 2020, 5:29 a.m. UTC
  TAILQ_ENTRY next is not needed in struct mbuf_dynfield_elt and
mbuf_dynflag_elt, since they are actually chained by rte_tailq_entry's
next field when calling TAILQ_INSERT_TAIL(mbuf_dynfield/dynflag_list, te,
next).

Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
Cc: stable@dpdk.org

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
---

I found this issue when reading the mbuf dynfiled/dynflag feature code,
mbuf_autotest is passed with this change, though I may miss something or
this filed has some special design purpose, please correct me if I am
wrong.

 lib/librte_mbuf/rte_mbuf_dyn.c | 2 --
 1 file changed, 2 deletions(-)
  

Comments

Xiaolong Ye June 9, 2020, 7:15 a.m. UTC | #1
On 06/09, Olivier Matz wrote:
>Hi Xialong,
>
>On Tue, Jun 09, 2020 at 01:29:55PM +0800, Xiaolong Ye wrote:
>> TAILQ_ENTRY next is not needed in struct mbuf_dynfield_elt and
>> mbuf_dynflag_elt, since they are actually chained by rte_tailq_entry's
>> next field when calling TAILQ_INSERT_TAIL(mbuf_dynfield/dynflag_list, te,
>> next).
>> 
>> Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
>> Cc: stable@dpdk.org
>> 
>> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
>
>Good catch, I forgot to remove this field which was used in former
>implementations. Thanks!
>
>I suggest to update the title to highlight it's about dynamic mbuf:
>  mbuf: remove unused next member in dyn flag/field
>
>Apart from this:
>Acked-by: Olivier Matz <olivier.matz@6wind.com>

Thanks for the ack, I'll submit V2 with suggested subject.

Thanks,
Xiaolong

>
>> ---
>> 
>> I found this issue when reading the mbuf dynfiled/dynflag feature code,
>> mbuf_autotest is passed with this change, though I may miss something or
>> this filed has some special design purpose, please correct me if I am
>> wrong.
>> 
>>  lib/librte_mbuf/rte_mbuf_dyn.c | 2 --
>>  1 file changed, 2 deletions(-)
>> 
>> diff --git a/lib/librte_mbuf/rte_mbuf_dyn.c b/lib/librte_mbuf/rte_mbuf_dyn.c
>> index d6931f847..953e3ec31 100644
>> --- a/lib/librte_mbuf/rte_mbuf_dyn.c
>> +++ b/lib/librte_mbuf/rte_mbuf_dyn.c
>> @@ -19,7 +19,6 @@
>>  #define RTE_MBUF_DYN_MZNAME "rte_mbuf_dyn"
>>  
>>  struct mbuf_dynfield_elt {
>> -	TAILQ_ENTRY(mbuf_dynfield_elt) next;
>>  	struct rte_mbuf_dynfield params;
>>  	size_t offset;
>>  };
>> @@ -31,7 +30,6 @@ static struct rte_tailq_elem mbuf_dynfield_tailq = {
>>  EAL_REGISTER_TAILQ(mbuf_dynfield_tailq);
>>  
>>  struct mbuf_dynflag_elt {
>> -	TAILQ_ENTRY(mbuf_dynflag_elt) next;
>>  	struct rte_mbuf_dynflag params;
>>  	unsigned int bitnum;
>>  };
>> -- 
>> 2.17.1
>>
  
Olivier Matz June 9, 2020, 7:17 a.m. UTC | #2
Hi Xialong,

On Tue, Jun 09, 2020 at 01:29:55PM +0800, Xiaolong Ye wrote:
> TAILQ_ENTRY next is not needed in struct mbuf_dynfield_elt and
> mbuf_dynflag_elt, since they are actually chained by rte_tailq_entry's
> next field when calling TAILQ_INSERT_TAIL(mbuf_dynfield/dynflag_list, te,
> next).
> 
> Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>

Good catch, I forgot to remove this field which was used in former
implementations. Thanks!

I suggest to update the title to highlight it's about dynamic mbuf:
  mbuf: remove unused next member in dyn flag/field

Apart from this:
Acked-by: Olivier Matz <olivier.matz@6wind.com>

> ---
> 
> I found this issue when reading the mbuf dynfiled/dynflag feature code,
> mbuf_autotest is passed with this change, though I may miss something or
> this filed has some special design purpose, please correct me if I am
> wrong.
> 
>  lib/librte_mbuf/rte_mbuf_dyn.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/lib/librte_mbuf/rte_mbuf_dyn.c b/lib/librte_mbuf/rte_mbuf_dyn.c
> index d6931f847..953e3ec31 100644
> --- a/lib/librte_mbuf/rte_mbuf_dyn.c
> +++ b/lib/librte_mbuf/rte_mbuf_dyn.c
> @@ -19,7 +19,6 @@
>  #define RTE_MBUF_DYN_MZNAME "rte_mbuf_dyn"
>  
>  struct mbuf_dynfield_elt {
> -	TAILQ_ENTRY(mbuf_dynfield_elt) next;
>  	struct rte_mbuf_dynfield params;
>  	size_t offset;
>  };
> @@ -31,7 +30,6 @@ static struct rte_tailq_elem mbuf_dynfield_tailq = {
>  EAL_REGISTER_TAILQ(mbuf_dynfield_tailq);
>  
>  struct mbuf_dynflag_elt {
> -	TAILQ_ENTRY(mbuf_dynflag_elt) next;
>  	struct rte_mbuf_dynflag params;
>  	unsigned int bitnum;
>  };
> -- 
> 2.17.1
>
  
Stephen Hemminger June 9, 2020, 3:29 p.m. UTC | #3
On Tue, 9 Jun 2020 15:15:33 +0800
Ye Xiaolong <xiaolong.ye@intel.com> wrote:

> On 06/09, Olivier Matz wrote:
> >Hi Xialong,
> >
> >On Tue, Jun 09, 2020 at 01:29:55PM +0800, Xiaolong Ye wrote:  
> >> TAILQ_ENTRY next is not needed in struct mbuf_dynfield_elt and
> >> mbuf_dynflag_elt, since they are actually chained by rte_tailq_entry's
> >> next field when calling TAILQ_INSERT_TAIL(mbuf_dynfield/dynflag_list, te,
> >> next).
> >> 
> >> Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
> >> Cc: stable@dpdk.org
> >> 
> >> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>  
> >
> >Good catch, I forgot to remove this field which was used in former
> >implementations. Thanks!
> >
> >I suggest to update the title to highlight it's about dynamic mbuf:
> >  mbuf: remove unused next member in dyn flag/field
> >
> >Apart from this:
> >Acked-by: Olivier Matz <olivier.matz@6wind.com>  
> 
> Thanks for the ack, I'll submit V2 with suggested subject.
> 
> Thanks,
> Xiaolong

Is the field visible in ABI?
  
Xiaolong Ye June 10, 2020, 12:54 a.m. UTC | #4
On 06/09, Stephen Hemminger wrote:
>On Tue, 9 Jun 2020 15:15:33 +0800
>Ye Xiaolong <xiaolong.ye@intel.com> wrote:
>
>> On 06/09, Olivier Matz wrote:
>> >Hi Xialong,
>> >
>> >On Tue, Jun 09, 2020 at 01:29:55PM +0800, Xiaolong Ye wrote:  
>> >> TAILQ_ENTRY next is not needed in struct mbuf_dynfield_elt and
>> >> mbuf_dynflag_elt, since they are actually chained by rte_tailq_entry's
>> >> next field when calling TAILQ_INSERT_TAIL(mbuf_dynfield/dynflag_list, te,
>> >> next).
>> >> 
>> >> Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
>> >> Cc: stable@dpdk.org
>> >> 
>> >> Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>  
>> >
>> >Good catch, I forgot to remove this field which was used in former
>> >implementations. Thanks!
>> >
>> >I suggest to update the title to highlight it's about dynamic mbuf:
>> >  mbuf: remove unused next member in dyn flag/field
>> >
>> >Apart from this:
>> >Acked-by: Olivier Matz <olivier.matz@6wind.com>  
>> 
>> Thanks for the ack, I'll submit V2 with suggested subject.
>> 
>> Thanks,
>> Xiaolong
>
>Is the field visible in ABI?

I don't think so, the touched structs in this patch mbuf_dynfield_elt and
mbuf_dynflag_elt are internal structures used in rte_mbuf_dyn.c, and structures
exposed to user are struct rte_mbuf_dynfield and rte_mbuf_dynflag in
rte_mbuf_dyn.h, and they still keep the same as before, so there should be no
ABI break in this patch.

Thanks,
Xiaolong
  

Patch

diff --git a/lib/librte_mbuf/rte_mbuf_dyn.c b/lib/librte_mbuf/rte_mbuf_dyn.c
index d6931f847..953e3ec31 100644
--- a/lib/librte_mbuf/rte_mbuf_dyn.c
+++ b/lib/librte_mbuf/rte_mbuf_dyn.c
@@ -19,7 +19,6 @@ 
 #define RTE_MBUF_DYN_MZNAME "rte_mbuf_dyn"
 
 struct mbuf_dynfield_elt {
-	TAILQ_ENTRY(mbuf_dynfield_elt) next;
 	struct rte_mbuf_dynfield params;
 	size_t offset;
 };
@@ -31,7 +30,6 @@  static struct rte_tailq_elem mbuf_dynfield_tailq = {
 EAL_REGISTER_TAILQ(mbuf_dynfield_tailq);
 
 struct mbuf_dynflag_elt {
-	TAILQ_ENTRY(mbuf_dynflag_elt) next;
 	struct rte_mbuf_dynflag params;
 	unsigned int bitnum;
 };