Re: [PATCH 1/1] mm, slub: Restore initial kmem_cache flags

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

 



On 9/30/20 1:26 PM, Eric Farman wrote:
> The routine that applies debug flags to the kmem_cache slabs
> inadvertantly prevents non-debug flags from being applied to
> those same objects. That is, if slub_debug=<flag>,<slab> is
> specified, non-debugged slabs will end up having flags of zero,
> and the slabs will be unusable. Fix this by returning the input
> flags for non-matching slabs as was done previously.

Thanks a lot for debugging this and sorry for the trouble!

> Fixes: e17f1dfba37b ("mm, slub: extend slub_debug syntax for multiple blocks")
> Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

But with a small adjustment below:

> ---
>  mm/slub.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/slub.c b/mm/slub.c
> index d4177aecedf6..3d7c95fd6a08 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -1450,7 +1450,7 @@ slab_flags_t kmem_cache_flags(unsigned int object_size,
>  		}
>  	}
>  
> -	return slub_debug;
> +	return flags;

To keep supporting the case of "debug flags set for all caches, with exceptions
for listed caches", i.e. "slub_debug=FZ;-,zs_handle,zspage", we should return
here this:

return flags | slub_debug;

Thanks again!

>  }
>  #else /* !CONFIG_SLUB_DEBUG */
>  static inline void setup_object_debug(struct kmem_cache *s,
> 





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux