eventdev: fix alignment padding

Message ID 20230418104547.547084-1-sivaprasad.tummala@amd.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series eventdev: fix alignment padding |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build fail github build: failed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-abi-testing warning Testing issues
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/intel-Functional success Functional PASS

Commit Message

Sivaprasad Tummala April 18, 2023, 10:45 a.m. UTC
  fixed the padding required to align to cacheline size.

Fixes: 54f17843a887 ("eventdev: add port maintenance API")
Cc: mattias.ronnblom@ericsson.com

Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
---
 lib/eventdev/rte_eventdev_core.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Morten Brørup April 18, 2023, 11:06 a.m. UTC | #1
> From: Sivaprasad Tummala [mailto:sivaprasad.tummala@amd.com]
> Sent: Tuesday, 18 April 2023 12.46
> 
> fixed the padding required to align to cacheline size.
> 
> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> Cc: mattias.ronnblom@ericsson.com
> 
> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> ---
>  lib/eventdev/rte_eventdev_core.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/eventdev/rte_eventdev_core.h
> b/lib/eventdev/rte_eventdev_core.h
> index c328bdbc82..c27a52ccc0 100644
> --- a/lib/eventdev/rte_eventdev_core.h
> +++ b/lib/eventdev/rte_eventdev_core.h
> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
>  	/**< PMD Tx adapter enqueue same destination function. */
>  	event_crypto_adapter_enqueue_t ca_enqueue;
>  	/**< PMD Crypto adapter enqueue function. */
> -	uintptr_t reserved[6];
> +	uintptr_t reserved[5];
>  } __rte_cache_aligned;

This fix changes the size (reduces it by one cache line) of the elements in the public rte_event_fp_ops array, and thus breaks the ABI.

BTW, the patch it fixes, which was dated November 2021, also broke the ABI.

> 
>  extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> --
> 2.34.1
  
Mattias Rönnblom April 18, 2023, 12:30 p.m. UTC | #2
On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> fixed the padding required to align to cacheline size.
> 

What's the point in having this structure cache-line aligned? False 
sharing is a non-issue, since this is more or less a read only struct.

This is not so much a comment on your patch, but the __rte_cache_aligned 
attribute.

> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> Cc: mattias.ronnblom@ericsson.com
> 
> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> ---
>   lib/eventdev/rte_eventdev_core.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h
> index c328bdbc82..c27a52ccc0 100644
> --- a/lib/eventdev/rte_eventdev_core.h
> +++ b/lib/eventdev/rte_eventdev_core.h
> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
>   	/**< PMD Tx adapter enqueue same destination function. */
>   	event_crypto_adapter_enqueue_t ca_enqueue;
>   	/**< PMD Crypto adapter enqueue function. */
> -	uintptr_t reserved[6];
> +	uintptr_t reserved[5];
>   } __rte_cache_aligned;
>   
>   extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
  
Mattias Rönnblom April 18, 2023, 12:40 p.m. UTC | #3
On 2023-04-18 13:06, Morten Brørup wrote:
>> From: Sivaprasad Tummala [mailto:sivaprasad.tummala@amd.com]
>> Sent: Tuesday, 18 April 2023 12.46
>>
>> fixed the padding required to align to cacheline size.
>>
>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
>> Cc: mattias.ronnblom@ericsson.com
>>
>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
>> ---
>>   lib/eventdev/rte_eventdev_core.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/eventdev/rte_eventdev_core.h
>> b/lib/eventdev/rte_eventdev_core.h
>> index c328bdbc82..c27a52ccc0 100644
>> --- a/lib/eventdev/rte_eventdev_core.h
>> +++ b/lib/eventdev/rte_eventdev_core.h
>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
>>   	/**< PMD Tx adapter enqueue same destination function. */
>>   	event_crypto_adapter_enqueue_t ca_enqueue;
>>   	/**< PMD Crypto adapter enqueue function. */
>> -	uintptr_t reserved[6];
>> +	uintptr_t reserved[5];
>>   } __rte_cache_aligned;
> 
> This fix changes the size (reduces it by one cache line) of the elements in the public rte_event_fp_ops array, and thus breaks the ABI.
> 
> BTW, the patch it fixes, which was dated November 2021, also broke the ABI.

21.11 has a new ABI version, so that's not an issue.

> 
>>
>>   extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
>> --
>> 2.34.1
  
Morten Brørup April 18, 2023, 2:07 p.m. UTC | #4
> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> Sent: Tuesday, 18 April 2023 14.31
> 
> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> > fixed the padding required to align to cacheline size.
> >
> 
> What's the point in having this structure cache-line aligned? False
> sharing is a non-issue, since this is more or less a read only struct.
> 
> This is not so much a comment on your patch, but the __rte_cache_aligned
> attribute.

When the structure is cache aligned, an individual entry in the array does not unnecessarily cross a cache line border. With 16 pointers and aligned, it uses exactly two cache lines. If unaligned, it may span three cache lines.

> 
> > Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> > Cc: mattias.ronnblom@ericsson.com
> >
> > Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> > ---
> >   lib/eventdev/rte_eventdev_core.h | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/eventdev/rte_eventdev_core.h
> b/lib/eventdev/rte_eventdev_core.h
> > index c328bdbc82..c27a52ccc0 100644
> > --- a/lib/eventdev/rte_eventdev_core.h
> > +++ b/lib/eventdev/rte_eventdev_core.h
> > @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
> >   	/**< PMD Tx adapter enqueue same destination function. */
> >   	event_crypto_adapter_enqueue_t ca_enqueue;
> >   	/**< PMD Crypto adapter enqueue function. */
> > -	uintptr_t reserved[6];
> > +	uintptr_t reserved[5];
> >   } __rte_cache_aligned;
> >
> >   extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
  
Mattias Rönnblom April 18, 2023, 3:16 p.m. UTC | #5
On 2023-04-18 16:07, Morten Brørup wrote:
>> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
>> Sent: Tuesday, 18 April 2023 14.31
>>
>> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
>>> fixed the padding required to align to cacheline size.
>>>
>>
>> What's the point in having this structure cache-line aligned? False
>> sharing is a non-issue, since this is more or less a read only struct.
>>
>> This is not so much a comment on your patch, but the __rte_cache_aligned
>> attribute.
> 
> When the structure is cache aligned, an individual entry in the array does not unnecessarily cross a cache line border. With 16 pointers and aligned, it uses exactly two cache lines. If unaligned, it may span three cache lines.
> 
An *element* in the reserved uint64_t array won't span across two cache 
lines, regardless if __rte_cache_aligned is specified or not. You would 
need a packed struct for that to occur, plus the reserved array field 
being preceded by some appropriately-sized fields.

The only effect __rte_cache_aligned has on this particular struct is 
that if you instantiate the struct on the stack, or as a static 
variable, it will be cache-line aligned. That effect you can get by 
specifying the attribute when you define the variable, and you will save 
some space (by having smaller elements). In this case it doesn't matter 
if the array is compact or not, since an application is likely to only 
use one of the members in the array.

It also doesn't matter of the struct is two or three cache lines, as 
long as only the first two are used.

>>
>>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
>>> Cc: mattias.ronnblom@ericsson.com
>>>
>>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
>>> ---
>>>    lib/eventdev/rte_eventdev_core.h | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/lib/eventdev/rte_eventdev_core.h
>> b/lib/eventdev/rte_eventdev_core.h
>>> index c328bdbc82..c27a52ccc0 100644
>>> --- a/lib/eventdev/rte_eventdev_core.h
>>> +++ b/lib/eventdev/rte_eventdev_core.h
>>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
>>>    	/**< PMD Tx adapter enqueue same destination function. */
>>>    	event_crypto_adapter_enqueue_t ca_enqueue;
>>>    	/**< PMD Crypto adapter enqueue function. */
>>> -	uintptr_t reserved[6];
>>> +	uintptr_t reserved[5];
>>>    } __rte_cache_aligned;
>>>
>>>    extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
>
  
Morten Brørup April 19, 2023, 6:38 a.m. UTC | #6
> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> Sent: Tuesday, 18 April 2023 17.17
> 
> On 2023-04-18 16:07, Morten Brørup wrote:
> >> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> >> Sent: Tuesday, 18 April 2023 14.31
> >>
> >> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> >>> fixed the padding required to align to cacheline size.
> >>>
> >>
> >> What's the point in having this structure cache-line aligned? False
> >> sharing is a non-issue, since this is more or less a read only struct.
> >>
> >> This is not so much a comment on your patch, but the __rte_cache_aligned
> >> attribute.
> >
> > When the structure is cache aligned, an individual entry in the array does
> not unnecessarily cross a cache line border. With 16 pointers and aligned, it
> uses exactly two cache lines. If unaligned, it may span three cache lines.
> >
> An *element* in the reserved uint64_t array won't span across two cache
> lines, regardless if __rte_cache_aligned is specified or not. You would
> need a packed struct for that to occur, plus the reserved array field
> being preceded by some appropriately-sized fields.

What I wrote above made no sense, and I agree with everything in your response.

However, I meant to write "an individual entry in the rte_event_fp_ops[RTE_EVENT_MAX_DEVS] array", so please re-read my comment with that in mind.

There are similar arrays, e.g. for Ethdev, where the same alignment goal applies.

> 
> The only effect __rte_cache_aligned has on this particular struct is
> that if you instantiate the struct on the stack, or as a static
> variable, it will be cache-line aligned.

Or as elements in an array, such as rte_event_fp_ops[RTE_EVENT_MAX_DEVS].

> That effect you can get by
> specifying the attribute when you define the variable, and you will save
> some space (by having smaller elements). In this case it doesn't matter
> if the array is compact or not, since an application is likely to only
> use one of the members in the array.
> 
> It also doesn't matter of the struct is two or three cache lines, as
> long as only the first two are used.

I think the drivers are likely to use only one function pointer at a time, but they are likely to use the data pointer at the same time. So, when the struct is used in an array, cache aligning the struct prevents the data pointer from ending up as the last pointer in a preceding cache line.

> 
> >>
> >>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> >>> Cc: mattias.ronnblom@ericsson.com
> >>>
> >>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> >>> ---
> >>>    lib/eventdev/rte_eventdev_core.h | 2 +-
> >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/lib/eventdev/rte_eventdev_core.h
> >> b/lib/eventdev/rte_eventdev_core.h
> >>> index c328bdbc82..c27a52ccc0 100644
> >>> --- a/lib/eventdev/rte_eventdev_core.h
> >>> +++ b/lib/eventdev/rte_eventdev_core.h
> >>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
> >>>    	/**< PMD Tx adapter enqueue same destination function. */
> >>>    	event_crypto_adapter_enqueue_t ca_enqueue;
> >>>    	/**< PMD Crypto adapter enqueue function. */
> >>> -	uintptr_t reserved[6];
> >>> +	uintptr_t reserved[5];
> >>>    } __rte_cache_aligned;
> >>>
> >>>    extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> >
  
Jerin Jacob May 17, 2023, 1:20 p.m. UTC | #7
On Tue, Apr 18, 2023 at 8:46 PM Mattias Rönnblom
<mattias.ronnblom@ericsson.com> wrote:
>
> On 2023-04-18 16:07, Morten Brørup wrote:
> >> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> >> Sent: Tuesday, 18 April 2023 14.31
> >>
> >> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> >>> fixed the padding required to align to cacheline size.
> >>>
> >>
> >> What's the point in having this structure cache-line aligned? False
> >> sharing is a non-issue, since this is more or less a read only struct.
> >>
> >> This is not so much a comment on your patch, but the __rte_cache_aligned
> >> attribute.
> >
> > When the structure is cache aligned, an individual entry in the array does not unnecessarily cross a cache line border. With 16 pointers and aligned, it uses exactly two cache lines. If unaligned, it may span three cache lines.
> >
> An *element* in the reserved uint64_t array won't span across two cache
> lines, regardless if __rte_cache_aligned is specified or not. You would
> need a packed struct for that to occur, plus the reserved array field
> being preceded by some appropriately-sized fields.
>
> The only effect __rte_cache_aligned has on this particular struct is
> that if you instantiate the struct on the stack, or as a static
> variable, it will be cache-line aligned. That effect you can get by
> specifying the attribute when you define the variable, and you will save
> some space (by having smaller elements). In this case it doesn't matter
> if the array is compact or not, since an application is likely to only
> use one of the members in the array.
>
> It also doesn't matter of the struct is two or three cache lines, as
> long as only the first two are used.


Discussions stalled at this point.

Hi Shiva,

Marking this patch as rejected. If you think the other way, Please
change patchwork status and let's discuss more here.



>
> >>
> >>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> >>> Cc: mattias.ronnblom@ericsson.com
> >>>
> >>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> >>> ---
> >>>    lib/eventdev/rte_eventdev_core.h | 2 +-
> >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/lib/eventdev/rte_eventdev_core.h
> >> b/lib/eventdev/rte_eventdev_core.h
> >>> index c328bdbc82..c27a52ccc0 100644
> >>> --- a/lib/eventdev/rte_eventdev_core.h
> >>> +++ b/lib/eventdev/rte_eventdev_core.h
> >>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
> >>>     /**< PMD Tx adapter enqueue same destination function. */
> >>>     event_crypto_adapter_enqueue_t ca_enqueue;
> >>>     /**< PMD Crypto adapter enqueue function. */
> >>> -   uintptr_t reserved[6];
> >>> +   uintptr_t reserved[5];
> >>>    } __rte_cache_aligned;
> >>>
> >>>    extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> >
>
  
Morten Brørup May 17, 2023, 1:35 p.m. UTC | #8
> From: Jerin Jacob [mailto:jerinjacobk@gmail.com]
> Sent: Wednesday, 17 May 2023 15.20
> 
> On Tue, Apr 18, 2023 at 8:46 PM Mattias Rönnblom
> <mattias.ronnblom@ericsson.com> wrote:
> >
> > On 2023-04-18 16:07, Morten Brørup wrote:
> > >> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> > >> Sent: Tuesday, 18 April 2023 14.31
> > >>
> > >> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> > >>> fixed the padding required to align to cacheline size.
> > >>>
> > >>
> > >> What's the point in having this structure cache-line aligned? False
> > >> sharing is a non-issue, since this is more or less a read only struct.
> > >>
> > >> This is not so much a comment on your patch, but the __rte_cache_aligned
> > >> attribute.
> > >
> > > When the structure is cache aligned, an individual entry in the array does
> not unnecessarily cross a cache line border. With 16 pointers and aligned, it
> uses exactly two cache lines. If unaligned, it may span three cache lines.
> > >
> > An *element* in the reserved uint64_t array won't span across two cache
> > lines, regardless if __rte_cache_aligned is specified or not. You would
> > need a packed struct for that to occur, plus the reserved array field
> > being preceded by some appropriately-sized fields.
> >
> > The only effect __rte_cache_aligned has on this particular struct is
> > that if you instantiate the struct on the stack, or as a static
> > variable, it will be cache-line aligned. That effect you can get by
> > specifying the attribute when you define the variable, and you will save
> > some space (by having smaller elements). In this case it doesn't matter
> > if the array is compact or not, since an application is likely to only
> > use one of the members in the array.
> >
> > It also doesn't matter of the struct is two or three cache lines, as
> > long as only the first two are used.
> 
> 
> Discussions stalled at this point.

Not stalled at this point. You seem to have missed my follow-up email clarifying why cache aligning is relevant:
http://inbox.dpdk.org/dev/98CBD80474FA8B44BF855DF32C47DC35D87897@smartserver.smartshare.dk/

But the patch still breaks the ABI, and thus should be postponed to 23.11.

> 
> Hi Shiva,
> 
> Marking this patch as rejected. If you think the other way, Please
> change patchwork status and let's discuss more here.

I am not taking any action regarding the status of this patch. I will leave that decision to Jerin and Shiva.

> 
> 
> 
> >
> > >>
> > >>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> > >>> Cc: mattias.ronnblom@ericsson.com
> > >>>
> > >>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> > >>> ---
> > >>>    lib/eventdev/rte_eventdev_core.h | 2 +-
> > >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> > >>>
> > >>> diff --git a/lib/eventdev/rte_eventdev_core.h
> > >> b/lib/eventdev/rte_eventdev_core.h
> > >>> index c328bdbc82..c27a52ccc0 100644
> > >>> --- a/lib/eventdev/rte_eventdev_core.h
> > >>> +++ b/lib/eventdev/rte_eventdev_core.h
> > >>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
> > >>>     /**< PMD Tx adapter enqueue same destination function. */
> > >>>     event_crypto_adapter_enqueue_t ca_enqueue;
> > >>>     /**< PMD Crypto adapter enqueue function. */
> > >>> -   uintptr_t reserved[6];
> > >>> +   uintptr_t reserved[5];
> > >>>    } __rte_cache_aligned;
> > >>>
> > >>>    extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> > >
> >
  
Jerin Jacob May 23, 2023, 3:15 p.m. UTC | #9
Addressed
On Wed, May 17, 2023 at 7:05 PM Morten Brørup <mb@smartsharesystems.com> wrote:
>
> > From: Jerin Jacob [mailto:jerinjacobk@gmail.com]
> > Sent: Wednesday, 17 May 2023 15.20
> >
> > On Tue, Apr 18, 2023 at 8:46 PM Mattias Rönnblom
> > <mattias.ronnblom@ericsson.com> wrote:
> > >
> > > On 2023-04-18 16:07, Morten Brørup wrote:
> > > >> From: Mattias Rönnblom [mailto:mattias.ronnblom@ericsson.com]
> > > >> Sent: Tuesday, 18 April 2023 14.31
> > > >>
> > > >> On 2023-04-18 12:45, Sivaprasad Tummala wrote:
> > > >>> fixed the padding required to align to cacheline size.
> > > >>>
> > > >>
> > > >> What's the point in having this structure cache-line aligned? False
> > > >> sharing is a non-issue, since this is more or less a read only struct.
> > > >>
> > > >> This is not so much a comment on your patch, but the __rte_cache_aligned
> > > >> attribute.
> > > >
> > > > When the structure is cache aligned, an individual entry in the array does
> > not unnecessarily cross a cache line border. With 16 pointers and aligned, it
> > uses exactly two cache lines. If unaligned, it may span three cache lines.
> > > >
> > > An *element* in the reserved uint64_t array won't span across two cache
> > > lines, regardless if __rte_cache_aligned is specified or not. You would
> > > need a packed struct for that to occur, plus the reserved array field
> > > being preceded by some appropriately-sized fields.
> > >
> > > The only effect __rte_cache_aligned has on this particular struct is
> > > that if you instantiate the struct on the stack, or as a static
> > > variable, it will be cache-line aligned. That effect you can get by
> > > specifying the attribute when you define the variable, and you will save
> > > some space (by having smaller elements). In this case it doesn't matter
> > > if the array is compact or not, since an application is likely to only
> > > use one of the members in the array.
> > >
> > > It also doesn't matter of the struct is two or three cache lines, as
> > > long as only the first two are used.
> >
> >
> > Discussions stalled at this point.
>
> Not stalled at this point. You seem to have missed my follow-up email clarifying why cache aligning is relevant:
> http://inbox.dpdk.org/dev/98CBD80474FA8B44BF855DF32C47DC35D87897@smartserver.smartshare.dk/
>
> But the patch still breaks the ABI, and thus should be postponed to 23.11.

Yes.

>
> >
> > Hi Shiva,
> >
> > Marking this patch as rejected. If you think the other way, Please
> > change patchwork status and let's discuss more here.
>
> I am not taking any action regarding the status of this patch. I will leave that decision to Jerin and Shiva.

It is good to merge.

Shiva,

Please send ABI change notice for this for 23.11 NOW.
Once it is Acked and merged. I will merge the patch for 23.11 release.

I am marking the patch as DEFERRED in patchwork and next release
window it will come as NEW in patchwork.

>
> >
> >
> >
> > >
> > > >>
> > > >>> Fixes: 54f17843a887 ("eventdev: add port maintenance API")
> > > >>> Cc: mattias.ronnblom@ericsson.com
> > > >>>
> > > >>> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
> > > >>> ---
> > > >>>    lib/eventdev/rte_eventdev_core.h | 2 +-
> > > >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> > > >>>
> > > >>> diff --git a/lib/eventdev/rte_eventdev_core.h
> > > >> b/lib/eventdev/rte_eventdev_core.h
> > > >>> index c328bdbc82..c27a52ccc0 100644
> > > >>> --- a/lib/eventdev/rte_eventdev_core.h
> > > >>> +++ b/lib/eventdev/rte_eventdev_core.h
> > > >>> @@ -65,7 +65,7 @@ struct rte_event_fp_ops {
> > > >>>     /**< PMD Tx adapter enqueue same destination function. */
> > > >>>     event_crypto_adapter_enqueue_t ca_enqueue;
> > > >>>     /**< PMD Crypto adapter enqueue function. */
> > > >>> -   uintptr_t reserved[6];
> > > >>> +   uintptr_t reserved[5];
> > > >>>    } __rte_cache_aligned;
> > > >>>
> > > >>>    extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> > > >
> > >
  
Jerin Jacob Aug. 2, 2023, 4:19 p.m. UTC | #10
Addressed
On Tue, May 23, 2023 at 8:45 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Wed, May 17, 2023 at 7:05 PM Morten Brørup <mb@smartsharesystems.com> wrote:
> >

> Shiva,
>
> Please send ABI change notice for this for 23.11 NOW.
> Once it is Acked and merged. I will merge the patch for 23.11 release.
>
> I am marking the patch as DEFERRED in patchwork and next release
> window it will come as NEW in patchwork.


Any objection to merge this?
  
Jerin Jacob Aug. 8, 2023, 10:24 a.m. UTC | #11
On Wed, Aug 2, 2023 at 9:49 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Tue, May 23, 2023 at 8:45 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> >
> > On Wed, May 17, 2023 at 7:05 PM Morten Brørup <mb@smartsharesystems.com> wrote:
> > >
>
> > Shiva,
> >
> > Please send ABI change notice for this for 23.11 NOW.
> > Once it is Acked and merged. I will merge the patch for 23.11 release.
> >
> > I am marking the patch as DEFERRED in patchwork and next release
> > window it will come as NEW in patchwork.
>
>
> Any objection to merge this?


pahole output after the change,

[for-main]dell[dpdk-next-eventdev] $ pahole build/app/test/dpdk-test
-C rte_event_fp_ops
struct rte_event_fp_ops {
        void * *                   data;                 /*     0     8 */
        event_enqueue_t            enqueue;              /*     8     8 */
        event_enqueue_burst_t      enqueue_burst;        /*    16     8 */
        event_enqueue_burst_t      enqueue_new_burst;    /*    24     8 */
        event_enqueue_burst_t      enqueue_forward_burst; /*    32     8 */
        event_dequeue_t            dequeue;              /*    40     8 */
        event_dequeue_burst_t      dequeue_burst;        /*    48     8 */
        event_maintain_t           maintain;             /*    56     8 */
        /* --- cacheline 1 boundary (64 bytes) --- */
        event_tx_adapter_enqueue_t txa_enqueue;          /*    64     8 */
        event_tx_adapter_enqueue_t txa_enqueue_same_dest; /*    72     8 */
        event_crypto_adapter_enqueue_t ca_enqueue;       /*    80     8 */
        uintptr_t                  reserved[5];          /*    88    40 */

        /* size: 128, cachelines: 2, members: 12 */
} __attribute__((__aligned__(64)));

Acked-by: Jerin Jacob <jerinj@marvell.com>
  
Jerin Jacob Aug. 8, 2023, 10:25 a.m. UTC | #12
On Tue, Aug 8, 2023 at 3:54 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> On Wed, Aug 2, 2023 at 9:49 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> >
> > On Tue, May 23, 2023 at 8:45 PM Jerin Jacob <jerinjacobk@gmail.com> wrote:
> > >
> > > On Wed, May 17, 2023 at 7:05 PM Morten Brørup <mb@smartsharesystems.com> wrote:
> > > >
> >
> > > Shiva,
> > >
> > > Please send ABI change notice for this for 23.11 NOW.
> > > Once it is Acked and merged. I will merge the patch for 23.11 release.
> > >
> > > I am marking the patch as DEFERRED in patchwork and next release
> > > window it will come as NEW in patchwork.
> >
> >
> > Any objection to merge this?
>
>
> pahole output after the change,
>
> [for-main]dell[dpdk-next-eventdev] $ pahole build/app/test/dpdk-test
> -C rte_event_fp_ops
> struct rte_event_fp_ops {
>         void * *                   data;                 /*     0     8 */
>         event_enqueue_t            enqueue;              /*     8     8 */
>         event_enqueue_burst_t      enqueue_burst;        /*    16     8 */
>         event_enqueue_burst_t      enqueue_new_burst;    /*    24     8 */
>         event_enqueue_burst_t      enqueue_forward_burst; /*    32     8 */
>         event_dequeue_t            dequeue;              /*    40     8 */
>         event_dequeue_burst_t      dequeue_burst;        /*    48     8 */
>         event_maintain_t           maintain;             /*    56     8 */
>         /* --- cacheline 1 boundary (64 bytes) --- */
>         event_tx_adapter_enqueue_t txa_enqueue;          /*    64     8 */
>         event_tx_adapter_enqueue_t txa_enqueue_same_dest; /*    72     8 */
>         event_crypto_adapter_enqueue_t ca_enqueue;       /*    80     8 */
>         uintptr_t                  reserved[5];          /*    88    40 */
>
>         /* size: 128, cachelines: 2, members: 12 */
> } __attribute__((__aligned__(64)));
>
> Acked-by: Jerin Jacob <jerinj@marvell.com>


Applied to dpdk-next-net-eventdev/for-main. Thanks
  

Patch

diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h
index c328bdbc82..c27a52ccc0 100644
--- a/lib/eventdev/rte_eventdev_core.h
+++ b/lib/eventdev/rte_eventdev_core.h
@@ -65,7 +65,7 @@  struct rte_event_fp_ops {
 	/**< PMD Tx adapter enqueue same destination function. */
 	event_crypto_adapter_enqueue_t ca_enqueue;
 	/**< PMD Crypto adapter enqueue function. */
-	uintptr_t reserved[6];
+	uintptr_t reserved[5];
 } __rte_cache_aligned;
 
 extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];