linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] slab updates for 6.13
@ 2024-11-15 14:22 Vlastimil Babka
  2024-11-16 15:32 ` Sasha Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Vlastimil Babka @ 2024-11-15 14:22 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: David Rientjes, Christoph Lameter, Andrew Morton, linux-mm, LKML,
	Roman Gushchin, Hyeonggon Yoo

Hi Linus,

please pull the latest slab updates from:

  git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.13

One new feature and non-critical fixes (mostly related to debugging).
No conflicts to be expected, AFAIK.

Thanks,
Vlastimil

======================================

- Add new slab_strict_numa boot parameter to enforce per-object memory policies
  on top of slab folio policies, for systems where saving cost of remote
  accesses is more important than minimizing slab allocation overhead
  (Christoph Lameter)

- krealloc() fixes for not violating __GFP_ZERO guarantees on krealloc() when
  slub_debug (redzone and object tracking) is enabled (Feng Tang)

- Fix a memory leak in case sysfs registration fails for a slab cache, and also
  no longer fail to create the cache in that case (Hyeonggon Yoo)

- Fix handling of detected consistency problems (due to buggy slab user) with
  slub_debug enabled, so that it does not cause further list corruption bugs
  (yuan.gao)

- Code cleanup and kerneldocs polishing (Zhen Lei, Vlastimil Babka)

----------------------------------------------------------------
Christoph Lameter (1):
      SLUB: Add support for per object memory policies

Feng Tang (5):
      mm/kasan: Don't store metadata inside kmalloc object when slub_debug_orig_size is on
      mm/slub: Move krealloc() and related code to slub.c
      mm/slub: Consider kfence case for get_orig_size()
      mm/slub: Improve redzone check and zeroing for krealloc()
      mm/slub, kunit: Add testcase for krealloc redzone and zeroing

Hyeonggon Yoo (1):
      mm/slab: Allow cache creation to proceed even if sysfs registration fails

Vlastimil Babka (2):
      mm, slab: add kerneldocs for common SLAB_ flags
      Merge branch 'slab/for-6.13/features' into slab/for-next

Zhen Lei (1):
      mm/slab: remove duplicate check in create_cache()

yuan.gao (1):
      mm/slub: Avoid list corruption when removing a slab from the full list

 Documentation/admin-guide/kernel-parameters.txt |  10 ++
 Documentation/mm/slub.rst                       |   9 +
 include/linux/slab.h                            |  60 ++++---
 lib/slub_kunit.c                                |  42 +++++
 mm/kasan/generic.c                              |   7 +-
 mm/slab.h                                       |  11 ++
 mm/slab_common.c                                | 101 ++---------
 mm/slub.c                                       | 212 +++++++++++++++++++++---
 8 files changed, 320 insertions(+), 132 deletions(-)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-15 14:22 [GIT PULL] slab updates for 6.13 Vlastimil Babka
@ 2024-11-16 15:32 ` Sasha Levin
  2024-11-16 15:35   ` Sasha Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Sasha Levin @ 2024-11-16 15:32 UTC (permalink / raw)
  To: Vlastimil Babka
  Cc: Linus Torvalds, David Rientjes, Christoph Lameter, Andrew Morton,
	linux-mm, LKML, Roman Gushchin, Hyeonggon Yoo

[ Adding Christian and Al ]

On Fri, Nov 15, 2024 at 03:22:30PM +0100, Vlastimil Babka wrote:
>Hi Linus,
>
>please pull the latest slab updates from:
>
>  git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.13
>
>One new feature and non-critical fixes (mostly related to debugging).
>No conflicts to be expected, AFAIK.

After merging the last batch of pull requests which included VFS and
SLAB into my linus-next[1] tree I've started seeing consistent boot and
runtime failures both on LKFT[2] and KernelCI[3]. I'm going to start
bisection, but given the amount of content that went in it might take a
day or two.

It seems that this is something in the interaction between VFS and SLAB:

Boot failures:

[    4.600870] __kmem_cache_create_args(ext4_groupinfo_4k) failed with error -22
[    4.602001] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-rc7 #1
[    4.602644] Hardware name: linux,dummy-virt (DT)
[    4.603346] Call trace:
[    4.603594]  dump_backtrace+0x108/0x190
[    4.604831]  show_stack+0x24/0x38
[    4.605104]  dump_stack_lvl+0x40/0xa0
[    4.605472]  dump_stack+0x18/0x28
[    4.605842]  __kmem_cache_create_args+0x21c/0x248
[    4.606235]  ext4_mb_init+0x118/0x720
[    4.606572]  ext4_fill_super+0x1550/0x17d8
[    4.606890]  get_tree_bdev_flags+0x138/0x1d8
[    4.607279]  get_tree_bdev+0x20/0x38
[    4.607643]  ext4_get_tree+0x24/0x38
[    4.608013]  vfs_get_tree+0x3c/0x108
[    4.608260]  do_new_mount+0x154/0x398
[    4.608622]  path_mount+0x258/0x4d0
[    4.609030]  init_mount+0x78/0xc8
[    4.609434]  do_mount_root+0xd4/0x1b0
[    4.609887]  mount_root_generic+0x110/0x308
[    4.610177]  mount_block_root+0x5c/0x78
[    4.610428]  mount_root+0x74/0xa8
[    4.610662]  prepare_namespace+0x8c/0xd8
[    4.610922]  kernel_init_freeable+0x10c/0x160
[    4.611197]  kernel_init+0x2c/0x1c0
[    4.611437]  ret_from_fork+0x10/0x20
[    4.612106] EXT4-fs: no memory for groupinfo slab cache
[    4.612757] EXT4-fs (vda): failed to initialize mballoc (-12)

Runtime failures:

__kmem_cache_create_args(ext4_groupinfo_1k) failed with error -22
CPU: 0 UID: 0 PID: 76 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
Tainted: [N]=TEST
Hardware name: ARM-Versatile (Device Tree Support)
Call trace:
  unwind_backtrace from show_stack+0x10/0x14
  show_stack from dump_stack_lvl+0x34/0x3c
  dump_stack_lvl from __kmem_cache_create_args+0x24c/0x2c4
  __kmem_cache_create_args from ext4_mb_init+0xf4/0x690
  ext4_mb_init from mbt_kunit_init+0x394/0x474
  mbt_kunit_init from kunit_try_run_case+0x40/0x1d4
  kunit_try_run_case from kunit_generic_run_threadfn_adapter+0x1c/0x34
  kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
  kthread from ret_from_fork+0x14/0x28
Exception stack(0xd0981fb0 to 0xd0981ff8)
1fa0:                                     00000000 00000000 00000000 00000000
1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
EXT4-fs: no memory for groupinfo slab cache
     # test_new_blocks_simple: failed to initialize: -12
------------[ cut here ]------------
kernel BUG at fs/ext4/mballoc.c:3283!
Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
Modules linked in:
CPU: 0 UID: 0 PID: 77 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
Tainted: [N]=TEST
Hardware name: ARM-Versatile (Device Tree Support)
PC is at ext4_mb_release+0x2f4/0x31c
LR is at mbt_kunit_exit+0x10/0x80
pc : [<c02239d4>]    lr : [<c022e758>]    psr: 60000113
sp : d0985f18  ip : d0985f30  fp : 00000000
r10: 00000000  r9 : d0811d50  r8 : c17cc000
r7 : c17cc000  r6 : c16be240  r5 : c1c761c0  r4 : d0811d44
r3 : ffff0fff  r2 : 00000000  r1 : c12d3fc0  r0 : 00000000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
Control: 00093177  Table: 00004000  DAC: 00000053
Register r0 information: NULL pointer
Register r1 information: non-slab/vmalloc memory
Register r2 information: NULL pointer
Register r3 information: non-paged memory
Register r4 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
Register r5 information: slab task_struct start c1c761c0 pointer offset 0 size 1728
Register r6 information: slab kmalloc-64 start c16be240 pointer offset 0 size 64
Register r7 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
Register r8 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
Register r9 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
Register r10 information: NULL pointer
Register r11 information: NULL pointer
Register r12 information: 2-page vmalloc region starting at 0xd0984000 allocated at copy_process+0x170/0xdd4
Process kunit_try_catch (pid: 77, stack limit = 0x(ptrval))
Stack: (0xd0985f18 to 0xd0986000)
5f00:                                                       c1440000 00000000
5f20: c102e680 c1c76638 d0985f68 c0c21734 00000003 00000000 00000004 d0811d44
5f40: c1c761c0 c16be240 d0811c88 c17cc000 d0811d50 00000000 00000000 c022e758
5f60: d0811d44 c1c761c0 c16be240 d0811c88 c039be9c d0811d50 00000000 c0399c0c
5f80: d0811d50 c039beb8 c16bf160 c0044a4c c16bf160 c004496c 00000000 00000000
5fa0: 00000000 00000000 00000000 c000854c 00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
Call trace:
  ext4_mb_release from mbt_kunit_exit+0x10/0x80
  mbt_kunit_exit from kunit_try_run_case_cleanup+0x30/0x3c
  kunit_try_run_case_cleanup from kunit_generic_run_threadfn_adapter+0x1c/0x34
  kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
  kthread from ret_from_fork+0x14/0x28
Exception stack(0xd0985fb0 to 0xd0985ff8)
5fa0:                                     00000000 00000000 00000000 00000000
5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
Code: e3a010c9 e3811c0e eb278c81 eaffff5d (e7f001f2)
---[ end trace 0000000000000000 ]---


[1] https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linus-next.git/log/?h=linus-next
[2] https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-15430-gc12cd257292c/testrun/25849362/suite/boot/test/clang-19-lkftconfig/log
[3] https://kciapistagingstorage1.file.core.windows.net/early-access/baseline-x86-kcidebug-amd-6738b3dc1a48e7821930a51b/log.txt.gz?sv=2022-11-02&ss=f&srt=sco&sp=r&se=2026-10-18T13:36:18Z&st=2024-10-17T05:36:18Z&spr=https&sig=xFxYOOh5uXJWeN9I3YKAUvpGGQivo89HKZbD78gcxvc%3D

-- 
Thanks,
Sasha


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-16 15:32 ` Sasha Levin
@ 2024-11-16 15:35   ` Sasha Levin
  2024-11-16 20:43     ` Vlastimil Babka
  0 siblings, 1 reply; 7+ messages in thread
From: Sasha Levin @ 2024-11-16 15:35 UTC (permalink / raw)
  To: Vlastimil Babka, brauner, viro
  Cc: Linus Torvalds, David Rientjes, Christoph Lameter, Andrew Morton,
	linux-mm, LKML, Roman Gushchin, Hyeonggon Yoo

[ Obviously I fat-fingered it and didn't add Christian or Al ]

On Sat, Nov 16, 2024 at 10:32:23AM -0500, Sasha Levin wrote:
>[ Adding Christian and Al ]
>
>On Fri, Nov 15, 2024 at 03:22:30PM +0100, Vlastimil Babka wrote:
>>Hi Linus,
>>
>>please pull the latest slab updates from:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.13
>>
>>One new feature and non-critical fixes (mostly related to debugging).
>>No conflicts to be expected, AFAIK.
>
>After merging the last batch of pull requests which included VFS and
>SLAB into my linus-next[1] tree I've started seeing consistent boot and
>runtime failures both on LKFT[2] and KernelCI[3]. I'm going to start
>bisection, but given the amount of content that went in it might take a
>day or two.
>
>It seems that this is something in the interaction between VFS and SLAB:
>
>Boot failures:
>
>[    4.600870] __kmem_cache_create_args(ext4_groupinfo_4k) failed with error -22
>[    4.602001] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-rc7 #1
>[    4.602644] Hardware name: linux,dummy-virt (DT)
>[    4.603346] Call trace:
>[    4.603594]  dump_backtrace+0x108/0x190
>[    4.604831]  show_stack+0x24/0x38
>[    4.605104]  dump_stack_lvl+0x40/0xa0
>[    4.605472]  dump_stack+0x18/0x28
>[    4.605842]  __kmem_cache_create_args+0x21c/0x248
>[    4.606235]  ext4_mb_init+0x118/0x720
>[    4.606572]  ext4_fill_super+0x1550/0x17d8
>[    4.606890]  get_tree_bdev_flags+0x138/0x1d8
>[    4.607279]  get_tree_bdev+0x20/0x38
>[    4.607643]  ext4_get_tree+0x24/0x38
>[    4.608013]  vfs_get_tree+0x3c/0x108
>[    4.608260]  do_new_mount+0x154/0x398
>[    4.608622]  path_mount+0x258/0x4d0
>[    4.609030]  init_mount+0x78/0xc8
>[    4.609434]  do_mount_root+0xd4/0x1b0
>[    4.609887]  mount_root_generic+0x110/0x308
>[    4.610177]  mount_block_root+0x5c/0x78
>[    4.610428]  mount_root+0x74/0xa8
>[    4.610662]  prepare_namespace+0x8c/0xd8
>[    4.610922]  kernel_init_freeable+0x10c/0x160
>[    4.611197]  kernel_init+0x2c/0x1c0
>[    4.611437]  ret_from_fork+0x10/0x20
>[    4.612106] EXT4-fs: no memory for groupinfo slab cache
>[    4.612757] EXT4-fs (vda): failed to initialize mballoc (-12)
>
>Runtime failures:
>
>__kmem_cache_create_args(ext4_groupinfo_1k) failed with error -22
>CPU: 0 UID: 0 PID: 76 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
>Tainted: [N]=TEST
>Hardware name: ARM-Versatile (Device Tree Support)
>Call trace:
> unwind_backtrace from show_stack+0x10/0x14
> show_stack from dump_stack_lvl+0x34/0x3c
> dump_stack_lvl from __kmem_cache_create_args+0x24c/0x2c4
> __kmem_cache_create_args from ext4_mb_init+0xf4/0x690
> ext4_mb_init from mbt_kunit_init+0x394/0x474
> mbt_kunit_init from kunit_try_run_case+0x40/0x1d4
> kunit_try_run_case from kunit_generic_run_threadfn_adapter+0x1c/0x34
> kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
> kthread from ret_from_fork+0x14/0x28
>Exception stack(0xd0981fb0 to 0xd0981ff8)
>1fa0:                                     00000000 00000000 00000000 00000000
>1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
>EXT4-fs: no memory for groupinfo slab cache
>    # test_new_blocks_simple: failed to initialize: -12
>------------[ cut here ]------------
>kernel BUG at fs/ext4/mballoc.c:3283!
>Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
>Modules linked in:
>CPU: 0 UID: 0 PID: 77 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
>Tainted: [N]=TEST
>Hardware name: ARM-Versatile (Device Tree Support)
>PC is at ext4_mb_release+0x2f4/0x31c
>LR is at mbt_kunit_exit+0x10/0x80
>pc : [<c02239d4>]    lr : [<c022e758>]    psr: 60000113
>sp : d0985f18  ip : d0985f30  fp : 00000000
>r10: 00000000  r9 : d0811d50  r8 : c17cc000
>r7 : c17cc000  r6 : c16be240  r5 : c1c761c0  r4 : d0811d44
>r3 : ffff0fff  r2 : 00000000  r1 : c12d3fc0  r0 : 00000000
>Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
>Control: 00093177  Table: 00004000  DAC: 00000053
>Register r0 information: NULL pointer
>Register r1 information: non-slab/vmalloc memory
>Register r2 information: NULL pointer
>Register r3 information: non-paged memory
>Register r4 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
>Register r5 information: slab task_struct start c1c761c0 pointer offset 0 size 1728
>Register r6 information: slab kmalloc-64 start c16be240 pointer offset 0 size 64
>Register r7 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
>Register r8 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
>Register r9 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
>Register r10 information: NULL pointer
>Register r11 information: NULL pointer
>Register r12 information: 2-page vmalloc region starting at 0xd0984000 allocated at copy_process+0x170/0xdd4
>Process kunit_try_catch (pid: 77, stack limit = 0x(ptrval))
>Stack: (0xd0985f18 to 0xd0986000)
>5f00:                                                       c1440000 00000000
>5f20: c102e680 c1c76638 d0985f68 c0c21734 00000003 00000000 00000004 d0811d44
>5f40: c1c761c0 c16be240 d0811c88 c17cc000 d0811d50 00000000 00000000 c022e758
>5f60: d0811d44 c1c761c0 c16be240 d0811c88 c039be9c d0811d50 00000000 c0399c0c
>5f80: d0811d50 c039beb8 c16bf160 c0044a4c c16bf160 c004496c 00000000 00000000
>5fa0: 00000000 00000000 00000000 c000854c 00000000 00000000 00000000 00000000
>5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
>Call trace:
> ext4_mb_release from mbt_kunit_exit+0x10/0x80
> mbt_kunit_exit from kunit_try_run_case_cleanup+0x30/0x3c
> kunit_try_run_case_cleanup from kunit_generic_run_threadfn_adapter+0x1c/0x34
> kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
> kthread from ret_from_fork+0x14/0x28
>Exception stack(0xd0985fb0 to 0xd0985ff8)
>5fa0:                                     00000000 00000000 00000000 00000000
>5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
>Code: e3a010c9 e3811c0e eb278c81 eaffff5d (e7f001f2)
>---[ end trace 0000000000000000 ]---
>
>
>[1] https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linus-next.git/log/?h=linus-next
>[2] https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-15430-gc12cd257292c/testrun/25849362/suite/boot/test/clang-19-lkftconfig/log
>[3] https://kciapistagingstorage1.file.core.windows.net/early-access/baseline-x86-kcidebug-amd-6738b3dc1a48e7821930a51b/log.txt.gz?sv=2022-11-02&ss=f&srt=sco&sp=r&se=2026-10-18T13:36:18Z&st=2024-10-17T05:36:18Z&spr=https&sig=xFxYOOh5uXJWeN9I3YKAUvpGGQivo89HKZbD78gcxvc%3D
>
>-- 
>Thanks,
>Sasha
>

-- 
Thanks,
Sasha


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-16 15:35   ` Sasha Levin
@ 2024-11-16 20:43     ` Vlastimil Babka
  2024-11-17  3:41       ` Sasha Levin
  0 siblings, 1 reply; 7+ messages in thread
From: Vlastimil Babka @ 2024-11-16 20:43 UTC (permalink / raw)
  To: Sasha Levin, brauner, viro
  Cc: Linus Torvalds, David Rientjes, Christoph Lameter, Andrew Morton,
	linux-mm, LKML, Roman Gushchin, Hyeonggon Yoo

On 11/16/24 16:35, Sasha Levin wrote:
> [ Obviously I fat-fingered it and didn't add Christian or Al ]

I have found the problem and looks like I managed to force push an older
broken version of a branch, possibly due to switching between two computers.
Serves me well for amending in some last minute R-b tags. Doing git diff
@{u} to check for unexpected suprirses before pushing the result didn't help
this time, either I forgot or was blind.

I have deleted the slab-for-6.13 signed tag and pushed the fixed branch only
to -next. Thanks a lot Sasha for catching this early and please drop the
merge from the for-linus tree.

Thanks,
Vlastimil

> On Sat, Nov 16, 2024 at 10:32:23AM -0500, Sasha Levin wrote:
>>[ Adding Christian and Al ]
>>
>>On Fri, Nov 15, 2024 at 03:22:30PM +0100, Vlastimil Babka wrote:
>>>Hi Linus,
>>>
>>>please pull the latest slab updates from:
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.13
>>>
>>>One new feature and non-critical fixes (mostly related to debugging).
>>>No conflicts to be expected, AFAIK.
>>
>>After merging the last batch of pull requests which included VFS and
>>SLAB into my linus-next[1] tree I've started seeing consistent boot and
>>runtime failures both on LKFT[2] and KernelCI[3]. I'm going to start
>>bisection, but given the amount of content that went in it might take a
>>day or two.
>>
>>It seems that this is something in the interaction between VFS and SLAB:
>>
>>Boot failures:
>>
>>[    4.600870] __kmem_cache_create_args(ext4_groupinfo_4k) failed with error -22
>>[    4.602001] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-rc7 #1
>>[    4.602644] Hardware name: linux,dummy-virt (DT)
>>[    4.603346] Call trace:
>>[    4.603594]  dump_backtrace+0x108/0x190
>>[    4.604831]  show_stack+0x24/0x38
>>[    4.605104]  dump_stack_lvl+0x40/0xa0
>>[    4.605472]  dump_stack+0x18/0x28
>>[    4.605842]  __kmem_cache_create_args+0x21c/0x248
>>[    4.606235]  ext4_mb_init+0x118/0x720
>>[    4.606572]  ext4_fill_super+0x1550/0x17d8
>>[    4.606890]  get_tree_bdev_flags+0x138/0x1d8
>>[    4.607279]  get_tree_bdev+0x20/0x38
>>[    4.607643]  ext4_get_tree+0x24/0x38
>>[    4.608013]  vfs_get_tree+0x3c/0x108
>>[    4.608260]  do_new_mount+0x154/0x398
>>[    4.608622]  path_mount+0x258/0x4d0
>>[    4.609030]  init_mount+0x78/0xc8
>>[    4.609434]  do_mount_root+0xd4/0x1b0
>>[    4.609887]  mount_root_generic+0x110/0x308
>>[    4.610177]  mount_block_root+0x5c/0x78
>>[    4.610428]  mount_root+0x74/0xa8
>>[    4.610662]  prepare_namespace+0x8c/0xd8
>>[    4.610922]  kernel_init_freeable+0x10c/0x160
>>[    4.611197]  kernel_init+0x2c/0x1c0
>>[    4.611437]  ret_from_fork+0x10/0x20
>>[    4.612106] EXT4-fs: no memory for groupinfo slab cache
>>[    4.612757] EXT4-fs (vda): failed to initialize mballoc (-12)
>>
>>Runtime failures:
>>
>>__kmem_cache_create_args(ext4_groupinfo_1k) failed with error -22
>>CPU: 0 UID: 0 PID: 76 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
>>Tainted: [N]=TEST
>>Hardware name: ARM-Versatile (Device Tree Support)
>>Call trace:
>> unwind_backtrace from show_stack+0x10/0x14
>> show_stack from dump_stack_lvl+0x34/0x3c
>> dump_stack_lvl from __kmem_cache_create_args+0x24c/0x2c4
>> __kmem_cache_create_args from ext4_mb_init+0xf4/0x690
>> ext4_mb_init from mbt_kunit_init+0x394/0x474
>> mbt_kunit_init from kunit_try_run_case+0x40/0x1d4
>> kunit_try_run_case from kunit_generic_run_threadfn_adapter+0x1c/0x34
>> kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
>> kthread from ret_from_fork+0x14/0x28
>>Exception stack(0xd0981fb0 to 0xd0981ff8)
>>1fa0:                                     00000000 00000000 00000000 00000000
>>1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>>1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
>>EXT4-fs: no memory for groupinfo slab cache
>>    # test_new_blocks_simple: failed to initialize: -12
>>------------[ cut here ]------------
>>kernel BUG at fs/ext4/mballoc.c:3283!
>>Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
>>Modules linked in:
>>CPU: 0 UID: 0 PID: 77 Comm: kunit_try_catch Tainted: G                 N 6.12.0-rc7 #1
>>Tainted: [N]=TEST
>>Hardware name: ARM-Versatile (Device Tree Support)
>>PC is at ext4_mb_release+0x2f4/0x31c
>>LR is at mbt_kunit_exit+0x10/0x80
>>pc : [<c02239d4>]    lr : [<c022e758>]    psr: 60000113
>>sp : d0985f18  ip : d0985f30  fp : 00000000
>>r10: 00000000  r9 : d0811d50  r8 : c17cc000
>>r7 : c17cc000  r6 : c16be240  r5 : c1c761c0  r4 : d0811d44
>>r3 : ffff0fff  r2 : 00000000  r1 : c12d3fc0  r0 : 00000000
>>Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
>>Control: 00093177  Table: 00004000  DAC: 00000053
>>Register r0 information: NULL pointer
>>Register r1 information: non-slab/vmalloc memory
>>Register r2 information: NULL pointer
>>Register r3 information: non-paged memory
>>Register r4 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
>>Register r5 information: slab task_struct start c1c761c0 pointer offset 0 size 1728
>>Register r6 information: slab kmalloc-64 start c16be240 pointer offset 0 size 64
>>Register r7 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
>>Register r8 information: slab kmalloc-1k start c17cc000 pointer offset 0 size 1024
>>Register r9 information: 2-page vmalloc region starting at 0xd0810000 allocated at copy_process+0x170/0xdd4
>>Register r10 information: NULL pointer
>>Register r11 information: NULL pointer
>>Register r12 information: 2-page vmalloc region starting at 0xd0984000 allocated at copy_process+0x170/0xdd4
>>Process kunit_try_catch (pid: 77, stack limit = 0x(ptrval))
>>Stack: (0xd0985f18 to 0xd0986000)
>>5f00:                                                       c1440000 00000000
>>5f20: c102e680 c1c76638 d0985f68 c0c21734 00000003 00000000 00000004 d0811d44
>>5f40: c1c761c0 c16be240 d0811c88 c17cc000 d0811d50 00000000 00000000 c022e758
>>5f60: d0811d44 c1c761c0 c16be240 d0811c88 c039be9c d0811d50 00000000 c0399c0c
>>5f80: d0811d50 c039beb8 c16bf160 c0044a4c c16bf160 c004496c 00000000 00000000
>>5fa0: 00000000 00000000 00000000 c000854c 00000000 00000000 00000000 00000000
>>5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>>5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
>>Call trace:
>> ext4_mb_release from mbt_kunit_exit+0x10/0x80
>> mbt_kunit_exit from kunit_try_run_case_cleanup+0x30/0x3c
>> kunit_try_run_case_cleanup from kunit_generic_run_threadfn_adapter+0x1c/0x34
>> kunit_generic_run_threadfn_adapter from kthread+0xe0/0x10c
>> kthread from ret_from_fork+0x14/0x28
>>Exception stack(0xd0985fb0 to 0xd0985ff8)
>>5fa0:                                     00000000 00000000 00000000 00000000
>>5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>>5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
>>Code: e3a010c9 e3811c0e eb278c81 eaffff5d (e7f001f2)
>>---[ end trace 0000000000000000 ]---
>>
>>
>>[1] https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linus-next.git/log/?h=linus-next
>>[2] https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-15430-gc12cd257292c/testrun/25849362/suite/boot/test/clang-19-lkftconfig/log
>>[3] https://kciapistagingstorage1.file.core.windows.net/early-access/baseline-x86-kcidebug-amd-6738b3dc1a48e7821930a51b/log.txt.gz?sv=2022-11-02&ss=f&srt=sco&sp=r&se=2026-10-18T13:36:18Z&st=2024-10-17T05:36:18Z&spr=https&sig=xFxYOOh5uXJWeN9I3YKAUvpGGQivo89HKZbD78gcxvc%3D
>>
>>-- 
>>Thanks,
>>Sasha
>>
> 



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-16 20:43     ` Vlastimil Babka
@ 2024-11-17  3:41       ` Sasha Levin
  2024-11-17 12:56         ` Xiongwei Song
  0 siblings, 1 reply; 7+ messages in thread
From: Sasha Levin @ 2024-11-17  3:41 UTC (permalink / raw)
  To: Vlastimil Babka
  Cc: brauner, viro, Linus Torvalds, David Rientjes, Christoph Lameter,
	Andrew Morton, linux-mm, LKML, Roman Gushchin, Hyeonggon Yoo

On Sat, Nov 16, 2024 at 09:43:07PM +0100, Vlastimil Babka wrote:
>On 11/16/24 16:35, Sasha Levin wrote:
>> [ Obviously I fat-fingered it and didn't add Christian or Al ]
>
>I have found the problem and looks like I managed to force push an older
>broken version of a branch, possibly due to switching between two computers.
>Serves me well for amending in some last minute R-b tags. Doing git diff
>@{u} to check for unexpected suprirses before pushing the result didn't help
>this time, either I forgot or was blind.
>
>I have deleted the slab-for-6.13 signed tag and pushed the fixed branch only
>to -next. Thanks a lot Sasha for catching this early and please drop the
>merge from the for-linus tree.

I've dropped the merge and tests are passing now, thanks!

-- 
Thanks,
Sasha


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-17  3:41       ` Sasha Levin
@ 2024-11-17 12:56         ` Xiongwei Song
  2024-11-17 21:01           ` Vlastimil Babka
  0 siblings, 1 reply; 7+ messages in thread
From: Xiongwei Song @ 2024-11-17 12:56 UTC (permalink / raw)
  To: Sasha Levin
  Cc: Vlastimil Babka, brauner, viro, Linus Torvalds, David Rientjes,
	Christoph Lameter, Andrew Morton, linux-mm, LKML, Roman Gushchin,
	Hyeonggon Yoo

It seems there is a conflict between fc0eac57d08c ("slab: pull kmem_cache_open()
into do_kmem_cache_create()") and 543c5bde72e9 ("mm/slab: Allow cache creation
to proceed even if sysfs registration fails"). The err is initialized
to -EINVAL in
the entry of do_kmem_cache_create(), sysfs_slab_add() call can assign
a value to
err normally,  but the assignment to err variable has been removed in
Hyeonggon's
patch, so do_kmem_cache_create() returns -EINVAL normally. We probably can do
the following fix:

diff --git a/mm/slub.c b/mm/slub.c
index 73eea67a306b..19630a2da8e1 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -6199,9 +6199,11 @@ int do_kmem_cache_create(struct kmem_cache *s,
const char *name,
        if (!alloc_kmem_cache_cpus(s))
                goto out;

+       /* The error code is not needed any more. */
+       err = 0;
+
        /* Mutex is not taken during early boot */
        if (slab_state <= UP) {
-               err = 0;
                goto out;
        }

Regards,
Xiongwei

On Sun, Nov 17, 2024 at 11:42 AM Sasha Levin <sashal@kernel.org> wrote:
>
> On Sat, Nov 16, 2024 at 09:43:07PM +0100, Vlastimil Babka wrote:
> >On 11/16/24 16:35, Sasha Levin wrote:
> >> [ Obviously I fat-fingered it and didn't add Christian or Al ]
> >
> >I have found the problem and looks like I managed to force push an older
> >broken version of a branch, possibly due to switching between two computers.
> >Serves me well for amending in some last minute R-b tags. Doing git diff
> >@{u} to check for unexpected suprirses before pushing the result didn't help
> >this time, either I forgot or was blind.
> >
> >I have deleted the slab-for-6.13 signed tag and pushed the fixed branch only
> >to -next. Thanks a lot Sasha for catching this early and please drop the
> >merge from the for-linus tree.
>
> I've dropped the merge and tests are passing now, thanks!
>
> --
> Thanks,
> Sasha
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] slab updates for 6.13
  2024-11-17 12:56         ` Xiongwei Song
@ 2024-11-17 21:01           ` Vlastimil Babka
  0 siblings, 0 replies; 7+ messages in thread
From: Vlastimil Babka @ 2024-11-17 21:01 UTC (permalink / raw)
  To: Xiongwei Song, Sasha Levin
  Cc: brauner, viro, Linus Torvalds, David Rientjes, Christoph Lameter,
	Andrew Morton, linux-mm, LKML, Roman Gushchin, Hyeonggon Yoo

On 11/17/24 13:56, Xiongwei Song wrote:
> It seems there is a conflict between fc0eac57d08c ("slab: pull kmem_cache_open()
> into do_kmem_cache_create()") and 543c5bde72e9 ("mm/slab: Allow cache creation
> to proceed even if sysfs registration fails"). The err is initialized

No conflict, commit fc0eac57d08c is from 6.12-rc1, there's no merge here.
I've introduced the bug by trying to improve Hyeonggon's patch and he
quickly corrected me [1] so the buggy version never even made it to -next.
But here I managed to resurrect it before the git pull.

[1] https://lore.kernel.org/all/195242b4-5471-419a-a350-08fd246973f0@suse.cz/

> to -EINVAL in
> the entry of do_kmem_cache_create(), sysfs_slab_add() call can assign
> a value to
> err normally,  but the assignment to err variable has been removed in
> Hyeonggon's
> patch, so do_kmem_cache_create() returns -EINVAL normally. We probably can do
> the following fix:
> 
> diff --git a/mm/slub.c b/mm/slub.c
> index 73eea67a306b..19630a2da8e1 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -6199,9 +6199,11 @@ int do_kmem_cache_create(struct kmem_cache *s,
> const char *name,
>         if (!alloc_kmem_cache_cpus(s))
>                 goto out;
> 
> +       /* The error code is not needed any more. */
> +       err = 0;
> +
>         /* Mutex is not taken during early boot */
>         if (slab_state <= UP) {
> -               err = 0;

That was indeed the fix.

>                 goto out;
>         }
> 
> Regards,
> Xiongwei
> 
> On Sun, Nov 17, 2024 at 11:42 AM Sasha Levin <sashal@kernel.org> wrote:
>>
>> On Sat, Nov 16, 2024 at 09:43:07PM +0100, Vlastimil Babka wrote:
>> >On 11/16/24 16:35, Sasha Levin wrote:
>> >> [ Obviously I fat-fingered it and didn't add Christian or Al ]
>> >
>> >I have found the problem and looks like I managed to force push an older
>> >broken version of a branch, possibly due to switching between two computers.
>> >Serves me well for amending in some last minute R-b tags. Doing git diff
>> >@{u} to check for unexpected suprirses before pushing the result didn't help
>> >this time, either I forgot or was blind.
>> >
>> >I have deleted the slab-for-6.13 signed tag and pushed the fixed branch only
>> >to -next. Thanks a lot Sasha for catching this early and please drop the
>> >merge from the for-linus tree.
>>
>> I've dropped the merge and tests are passing now, thanks!
>>
>> --
>> Thanks,
>> Sasha
>>



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-11-17 21:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-15 14:22 [GIT PULL] slab updates for 6.13 Vlastimil Babka
2024-11-16 15:32 ` Sasha Levin
2024-11-16 15:35   ` Sasha Levin
2024-11-16 20:43     ` Vlastimil Babka
2024-11-17  3:41       ` Sasha Levin
2024-11-17 12:56         ` Xiongwei Song
2024-11-17 21:01           ` Vlastimil Babka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox