Re: + stackdepot-rename-pool_index-to-pool_index_plus_1.patch added to mm-unstable branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/4/24 3:55 AM, Andrew Morton wrote:
> The patch titled
>      Subject: stackdepot: rename pool_index to pool_index_plus_1
> has been added to the -mm mm-unstable branch.  Its filename is
>      stackdepot-rename-pool_index-to-pool_index_plus_1.patch
> 
> This patch will shortly appear at
>      https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/stackdepot-rename-pool_index-to-pool_index_plus_1.patch
> 
> This patch will later appear in the mm-unstable branch at
>     git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> 
> Before you just go and hit "reply", please:
>    a) Consider who else should be cc'ed
>    b) Prefer to cc a suitable mailing list as well
>    c) Ideally: find the original patch on the mailing list and do a
>       reply-to-all to that, adding suitable additional cc's
> 
> *** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
> 
> The -mm tree is included into linux-next via the mm-everything
> branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> and is updated there every 2-3 working days
> 
> ------------------------------------------------------
> From: Peter Collingbourne <pcc@xxxxxxxxxx>
> Subject: stackdepot: rename pool_index to pool_index_plus_1
> Date: Mon, 1 Apr 2024 17:14:58 -0700
> 
> Commit 3ee34eabac2a ("lib/stackdepot: fix first entry having a 0-handle")
> changed the meaning of the pool_index field to mean "the pool index plus
> 1".  This made the code accessing this field less self-documenting, as
> well as causing debuggers such as drgn to not be able to easily remain
> compatible with both old and new kernels, because they typically do that
> by testing for presence of the new field.  Because stackdepot is a
> debugging tool, we should make sure that it is debugger friendly. 
> Therefore, give the field a different name to improve readability as well
> as enabling debugger backwards compatibility.

Can we please move this to mm-hotfixes-unstable otherwise 6.9 would become
an odd release with the new semantics and old name so debuggers wouldnt't
recognize the new semantics there.

> Link: https://lkml.kernel.org/r/20240402001500.53533-1-pcc@xxxxxxxxxx
> Link: https://linux-review.googlesource.com/id/Ib3e70c36c1d230dd0a118dc22649b33e768b9f88
> Signed-off-by: Peter Collingbourne <pcc@xxxxxxxxxx>
> Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
> Reviewed-by: Alexander Potapenko <glider@xxxxxxxxxx>
> Acked-by: Marco Elver <elver@xxxxxxxxxx>
> Acked-by: Oscar Salvador <osalvador@xxxxxxx>
> Cc: Andrey Konovalov <andreyknvl@xxxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxx>
> Cc: Omar Sandoval <osandov@xxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
> 
>  include/linux/stackdepot.h |    7 +++----
>  lib/stackdepot.c           |    4 ++--
>  2 files changed, 5 insertions(+), 6 deletions(-)
> 
> --- a/include/linux/stackdepot.h~stackdepot-rename-pool_index-to-pool_index_plus_1
> +++ a/include/linux/stackdepot.h
> @@ -44,10 +44,9 @@ typedef u32 depot_stack_handle_t;
>  union handle_parts {
>  	depot_stack_handle_t handle;
>  	struct {
> -		/* pool_index is offset by 1 */
> -		u32 pool_index	: DEPOT_POOL_INDEX_BITS;
> -		u32 offset	: DEPOT_OFFSET_BITS;
> -		u32 extra	: STACK_DEPOT_EXTRA_BITS;
> +		u32 pool_index_plus_1	: DEPOT_POOL_INDEX_BITS;
> +		u32 offset		: DEPOT_OFFSET_BITS;
> +		u32 extra		: STACK_DEPOT_EXTRA_BITS;
>  	};
>  };
>  
> --- a/lib/stackdepot.c~stackdepot-rename-pool_index-to-pool_index_plus_1
> +++ a/lib/stackdepot.c
> @@ -330,7 +330,7 @@ static struct stack_record *depot_pop_fr
>  	stack = current_pool + pool_offset;
>  
>  	/* Pre-initialize handle once. */
> -	stack->handle.pool_index = pool_index + 1;
> +	stack->handle.pool_index_plus_1 = pool_index + 1;
>  	stack->handle.offset = pool_offset >> DEPOT_STACK_ALIGN;
>  	stack->handle.extra = 0;
>  	INIT_LIST_HEAD(&stack->hash_list);
> @@ -441,7 +441,7 @@ static struct stack_record *depot_fetch_
>  	const int pools_num_cached = READ_ONCE(pools_num);
>  	union handle_parts parts = { .handle = handle };
>  	void *pool;
> -	u32 pool_index = parts.pool_index - 1;
> +	u32 pool_index = parts.pool_index_plus_1 - 1;
>  	size_t offset = parts.offset << DEPOT_STACK_ALIGN;
>  	struct stack_record *stack;
>  
> _
> 
> Patches currently in -mm which might be from pcc@xxxxxxxxxx are
> 
> stackdepot-rename-pool_index-to-pool_index_plus_1.patch
> 





[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux