|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Ping: [PATCH v2 8/8] Arm/optee: don't open-code xzalloc_flex_struct()
Volodymyr,
On 21.04.2021 16:59, Jan Beulich wrote:
> The current use of xzalloc_bytes() in optee is nearly an open-coded
> version of xzalloc_flex_struct(), which was introduced after the driver
> was merged.
>
> The main difference is xzalloc_bytes() will also force the allocation to
> be SMP_CACHE_BYTES aligned and therefore avoid sharing the cache line.
> While sharing the cache line can have an impact on the performance, this
> is also true for most of the other users of x*alloc(), x*alloc_array(),
> and x*alloc_flex_struct(). So if we want to prevent sharing cache lines,
> arranging for this should be done in the allocator itself.
>
> In this case, we don't need stricter alignment than what the allocator
> provides. Hence replace the call to xzalloc_bytes() with one of
> xzalloc_flex_struct().
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> Signed-off-by: Julien Grall <julien@xxxxxxx>
> ---
> v2: Use commit message very close to what was suggested by Julien.
I realize I forgot to Cc you on the v2 submission, but I didn't hear
back on v1 from you either. May I ask for an ack or otherwise?
Thanks, Jan
> --- a/xen/arch/arm/tee/optee.c
> +++ b/xen/arch/arm/tee/optee.c
> @@ -529,8 +529,7 @@ static struct optee_shm_buf *allocate_op
> while ( unlikely(old != atomic_cmpxchg(&ctx->optee_shm_buf_pages,
> old, new)) );
>
> - optee_shm_buf = xzalloc_bytes(sizeof(struct optee_shm_buf) +
> - pages_cnt * sizeof(struct page *));
> + optee_shm_buf = xzalloc_flex_struct(struct optee_shm_buf, pages,
> pages_cnt);
> if ( !optee_shm_buf )
> {
> err_code = -ENOMEM;
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |