Re: prepare_slab_obj_exts_hook, zs_handle-zram2: Failed to create slab extension vector! (v6.12.28, amd64)

Suren Baghdasaryan
2025-05-13T15:48:12Z

On Tue, May 13, 2025 at 6:12 AM Harry Yoo <harry.yoo@oracle.com> wrote:
>
> On Tue, May 13, 2025 at 02:01:26PM +0200, Erhard Furtner wrote:
> > Greetings!
> >
> > Got that during building on my Thinkpad T495 on following zram disk:
> > NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
> > /dev/zram2 lz4 32G 138.7M 16.1M 41.2M 8 /var/tmp
> >
> > [...]
> > ------------[ cut here ]------------
> > prepare_slab_obj_exts_hook, zs_handle-zram2: Failed to create slab extension vector!
> > WARNING: CPU: 6 PID: 17975 at mm/slub.c:2076 prepare_slab_obj_exts_hook+0x152/0x190
>
> Hi, thanks for the report!
>
> I think there is not much the kernel can do when it failed to allocate
> the slab extension vector. Memory allocations can fail under pressure.
>
> In this case, the memory is not accounted by memory cgroup or memory
> allocation profiling subsystems.
>
> But it's not the end of world and I think this is not a bug.
>
> Maybe WARN() is too much here?

Yeah, perhaps pr_warn() is more appropriate. Having a call stack
serves no purpose here IMO. If others agree I'll add that to my TODO
list.

>
> > Modules linked in: cifs dns_resolver cifs_arc4 nls_ucs2_utils cifs_md4 snd_hrtimer snd_seq snd_seq_device rfcomm fuse zram lz4_decompress lz4_compress af_packet ccm algif_aead crypto_null des3_ede_x86_64 cbc des_generic libdes md5 cmac bnep nls_iso8859_15 nls_cp437 vfat fat dm_crypt nhpoly1305_avx2 nhpoly1305 chacha_generic chacha_x86_64 libchacha adiantum libpoly1305 algif_skcipher dm_mod btusb btrtl btmtk think_lmi btbcm btintel joydev edac_mce_amd wmi_bmof firmware_attributes_class snd_ctl_led bluetooth amdgpu input_leds evdev iwlmvm snd_hda_codec_realtek thinkpad_acpi mfd_core snd_hda_codec_generic mac80211 snd_hda_scodec_component drm_buddy libarc4 kvm_amd pkcs8_key_parser nvram drm_suballoc_helper platform_profile acpi_cpufreq sparse_keymap snd_hda_codec_hdmi led_class drm_exec battery k10temp i2c_algo_bit video snd_hda_intel ac drm_display_helper snd_intel_dspcfg iwlwifi snd_hda_codec backlight snd_hwdep gpu_sched snd_hda_core amdxcp snd_pcm drm_ttm_helper i2c_scmi snd_timer ttm cfg80211 wmi snd
> > soundcore hwmon rfkill button processor efivarfs hid_generic usbhid hid sha512_ssse3 sha256_ssse3 sha1_ssse3 xhci_pci sha1_generic ehci_pci aesni_intel xhci_hcd ehci_hcd gf128mul crypto_simd cryptd ccp usbcore ucsi_acpi typec_ucsi roles typec usb_common
> > CPU: 6 UID: 0 PID: 17975 Comm: kworker/u32:11 Not tainted 6.12.28-gentoo-Zen1 #1
> > Hardware name: LENOVO 20NKS2PE00/20NKS2PE00, BIOS R12ET64W(1.34 ) 02/23/2024
> > Workqueue: writeback wb_workfn (flush-252:2)
> > RIP: 0010:prepare_slab_obj_exts_hook+0x152/0x190
> > Code: 31 f6 e9 51 49 75 00 cc 48 ff ca 48 89 d0 e9 3b ff ff ff 49 8b 56 58 48 c7 c7 c9 6f ea a0 48 c7 c6 d2 1b f4 a0 e8 46 7c e4 ff <0f> 0b e9 c8 fe ff ff 48 89 c1 48 c1 e1 34 0f 85 10 ff ff ff 48 f7
> > RSP: 0018:ffffaa7728fb33a0 EFLAGS: 00010246
> > RAX: 0000000000000000 RBX: ffff99a3e8ec67c8 RCX: 0000000000000000
> > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
> > RBP: 0000000000002800 R08: 0000000000000000 R09: 0000000000000000
> > R10: 0000000000000000 R11: 0000000000000000 R12: ffff99a3e8ec67c8
> > R13: ffffffffa029dbe8 R14: ffff99a490b5b800 R15: ffffe7c681a3b180
> > FS: 0000000000000000(0000) GS:ffff99a76fd00000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00007f288f146000 CR3: 0000000104f8f000 CR4: 00000000003506f0
> > Call Trace:
> > <TASK>
> > kmem_cache_alloc_noprof+0x141/0x278
> > zs_malloc+0x50/0x1e8
> > zram_submit_bio+0x1b9/0x898 [zram]
> > __submit_bio+0x122/0x1a0
> > submit_bio_noacct_nocheck+0x19b/0x2d8
> > ext4_io_submit+0x23/0x38
> > ext4_bio_write_folio+0x313/0x348
> > mpage_submit_folio+0x63/0x90
> > mpage_process_page_bufs+0x10a/0x160
> > mpage_prepare_extent_to_map+0x2fb/0x410
> > ext4_do_writepages+0x2bc/0xaf0
> > ? zram_submit_bio+0x81f/0x898 [zram]
> > ? srso_return_thunk+0x5/0x5f
> > ? xas_load+0x9/0xf8
> > ? srso_return_thunk+0x5/0x5f
> > ? filemap_get_entry+0x160/0x178
> > ? srso_return_thunk+0x5/0x5f
> > ? __filemap_get_folio+0x22a/0x2b8
> > ? srso_return_thunk+0x5/0x5f
> > ? srso_return_thunk+0x5/0x5f
> > ? __find_get_block+0x262/0x2a8
> > ext4_writepages+0x91/0x148
> > do_writepages+0xe3/0x2a8
> > ? srso_return_thunk+0x5/0x5f
> > ? __ext4_get_inode_loc_noinmem+0x22/0x70
> > ? srso_return_thunk+0x5/0x5f
> > ? ext4_write_inode+0x115/0x148
> > __writeback_single_inode+0x2c/0x180
> > writeback_sb_inodes+0x223/0x430
> > __writeback_inodes_wb+0x59/0xf0
> > wb_writeback+0x117/0x1a0
> > wb_workfn+0x230/0x318
> > process_scheduled_works+0x215/0x380
> > worker_thread+0x1bf/0x288
> > ? __cfi_worker_thread+0x8/0x8
> > kthread+0xf4/0x118
> > ? __cfi_kthread+0x8/0x8
> > ret_from_fork+0x48/0x58
> > ? __cfi_kthread+0x8/0x8
> > ret_from_fork_asm+0x11/0x20
> > </TASK>
> > ---[ end trace 0000000000000000 ]---
> >
> >
> > Apart from that the machine kept running. So far that also occured once only.
> >
> > Kernel .config and full dmesg attached.
> >
> > Regards,
> > Erhard
>
> --
> Cheers,
> Harry / Hyeonggon