current->alloc_tag not set WARNING: CPU: 0 PID: 31 at include/linux/alloc_tag.h:125 alloc_tag_add_check+0x86/0x96 when stressing VMM via stress-ng (kernel 6.10-rc1, i686)
From: Erhard Furtner
Date: Thu May 30 2024 - 10:39:51 EST
Greetings!
On kernel v6.10-rc1 with CONFIG_MEM_ALLOC_PROFILING_DEBUG enabled I get this
everytime I stress the VMM with "stress-ng --vm 2 --vm-bytes 1500M --mmap 2
--mmap-bytes 1500M --page-in":
------------[ cut here ]------------
current->alloc_tag not set
WARNING: CPU: 0 PID: 31 at include/linux/alloc_tag.h:125 alloc_tag_add_check+0x86/0x96
Modules linked in: ghash_generic gf128mul gcm ccm algif_aead crypto_null des_generic libdes ctr cbc ecb algif_skcipher aes_generic libaes cmac sha512_generic sha1_generic md5 md4 iwl3945 snd_hda_intel uhci_hcd radeon iwlegacy snd_intel_dspcfg snd_hda_codec ehci_pci thinkpad_acpi mac80211 ehci_hcd usbcore drm_suballoc_helper snd_hwdep nvram i2c_algo_bit snd_hda_core sparse_keymap snd_pcm drm_ttm_helper platform_profile ttm snd_timer libarc4 af_packet cfg80211 acpi_cpufreq drm_display_helper snd usb_common soundcore rfkill battery ac video wmi backlight thermal evdev processor joydev input_leds button pkcs8_key_parser coretemp hwmon dm_mod loop fuse configfs
CPU: 0 PID: 31 Comm: kcompactd0 Not tainted 6.10.0-rc1-P3-dirty #7
Hardware name: LENOVO 2007F2G/2007F2G, BIOS 79ETE7WW (2.27 ) 03/21/2011
EIP: alloc_tag_add_check+0x86/0x96
Code: 5d d1 80 fb 01 76 0d 0f b6 d3 b8 e8 e0 4e d1 e8 eb ec 2f 00 80 e3 01 75 14 c6 05 f9 16 5d d1 01 68 60 fa 33 d1 e8 a7 19 e6 ff <0f> 0b 58 8d 65 f8 5b 5e 5d 31 c0 31 d2 31 c9 c3 55 89 c1 89 e5 57
EAX: 00000000 EBX: f411b900 ECX: 00000000 EDX: 00000000
ESI: 00000000 EDI: 00000000 EBP: c12afde8 ESP: c12afdd8
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010246
CR0: 80050033 CR2: a1433000 CR3: 0650a000 CR4: 000006f0
Call Trace:
? show_regs+0x46/0x52
? alloc_tag_add_check+0x86/0x96
? __warn+0x8e/0x15a
? report_bug+0xb5/0x115
? alloc_tag_add_check+0x86/0x96
? exc_overflow+0x3d/0x3d
? handle_bug+0x2b/0x4b
? exc_invalid_op+0x17/0x54
? handle_exception+0x101/0x101
? __print_lock_name+0x2a/0x96
? exc_overflow+0x3d/0x3d
? alloc_tag_add_check+0x86/0x96
? exc_overflow+0x3d/0x3d
? alloc_tag_add_check+0x86/0x96
post_alloc_hook+0x173/0x1c6
release_free_list+0x4c/0x89
compact_zone+0xa90/0xb62
kcompactd_do_work+0x151/0x1d6
kcompactd+0x195/0x24d
? finish_swait+0x54/0x54
kthread+0xd4/0xd9
? kcompactd_do_work+0x1d6/0x1d6
? list_del_init+0x25/0x25
ret_from_fork+0x1c/0x35
? list_del_init+0x25/0x25
ret_from_fork_asm+0x12/0x18
entry_INT80_32+0xf0/0xf0
irq event stamp: 35785
hardirqs last enabled at (35795): [<d08ac4c1>] console_unlock+0xa1/0xe9
hardirqs last disabled at (35804): [<d08ac4a4>] console_unlock+0x84/0xe9
softirqs last enabled at (35714): [<d085b42d>] handle_softirqs+0x2f1/0x322
softirqs last disabled at (35695): [<d10461ee>] __do_softirq+0xa/0xe
---[ end trace 0000000000000000 ]---
------------[ cut here ]------------
alloc_tag was not set
WARNING: CPU: 0 PID: 31 at include/linux/alloc_tag.h:130 alloc_tag_sub_check+0x3b/0x4c
Modules linked in: ghash_generic gf128mul gcm ccm algif_aead crypto_null des_generic libdes ctr cbc ecb algif_skcipher aes_generic libaes cmac sha512_generic sha1_generic md5 md4 iwl3945 snd_hda_intel uhci_hcd radeon iwlegacy snd_intel_dspcfg snd_hda_codec ehci_pci thinkpad_acpi mac80211 ehci_hcd usbcore drm_suballoc_helper snd_hwdep nvram i2c_algo_bit snd_hda_core sparse_keymap snd_pcm drm_ttm_helper platform_profile ttm snd_timer libarc4 af_packet cfg80211 acpi_cpufreq drm_display_helper snd usb_common soundcore rfkill battery ac video wmi backlight thermal evdev processor joydev input_leds button pkcs8_key_parser coretemp hwmon dm_mod loop fuse configfs
CPU: 0 PID: 31 Comm: kcompactd0 Tainted: G W 6.10.0-rc1-P3-dirty #7
Hardware name: LENOVO 2007F2G/2007F2G, BIOS 79ETE7WW (2.27 ) 03/21/2011
EIP: alloc_tag_sub_check+0x3b/0x4c
Code: 5d d1 80 fb 01 76 0d 0f b6 d3 b8 d8 e0 4e d1 e8 22 ec 2f 00 80 e3 01 75 14 68 e4 fa 33 d1 c6 05 f8 16 5d d1 01 e8 de 18 e6 ff <0f> 0b 58 8b 5d fc c9 31 c0 31 d2 c3 31 c0 31 d2 c3 55 89 e5 57 56
EAX: 00000000 EBX: f4d77f00 ECX: 00000000 EDX: 00000000
ESI: 40000000 EDI: 00000000 EBP: c12afdec ESP: c12afde4
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010246
CR0: 80050033 CR2: a1433000 CR3: 0650a000 CR4: 000006f0
Call Trace:
? show_regs+0x46/0x52
? alloc_tag_sub_check+0x3b/0x4c
? __warn+0x8e/0x15a
? report_bug+0xb5/0x115
? alloc_tag_sub_check+0x3b/0x4c
? exc_overflow+0x3d/0x3d
? handle_bug+0x2b/0x4b
? exc_invalid_op+0x17/0x54
? handle_exception+0x101/0x101
? __print_lock_name+0x2a/0x96
? exc_overflow+0x3d/0x3d
? alloc_tag_sub_check+0x3b/0x4c
? exc_overflow+0x3d/0x3d
? alloc_tag_sub_check+0x3b/0x4c
__free_pages+0x2a/0xfb
release_free_list+0x56/0x89
compact_zone+0xa90/0xb62
kcompactd_do_work+0x151/0x1d6
kcompactd+0x195/0x24d
? finish_swait+0x54/0x54
kthread+0xd4/0xd9
? kcompactd_do_work+0x1d6/0x1d6
? list_del_init+0x25/0x25
ret_from_fork+0x1c/0x35
? list_del_init+0x25/0x25
ret_from_fork_asm+0x12/0x18
entry_INT80_32+0xf0/0xf0
irq event stamp: 36665
hardirqs last enabled at (36675): [<d08ac4c1>] console_unlock+0xa1/0xe9
hardirqs last disabled at (36684): [<d08ac4a4>] console_unlock+0x84/0xe9
softirqs last enabled at (35714): [<d085b42d>] handle_softirqs+0x2f1/0x322
softirqs last disabled at (35695): [<d10461ee>] __do_softirq+0xa/0xe
---[ end trace 0000000000000000 ]---
This is reproducible on my Thinkpad T60 (Intel Core Solo T1400, 3 GB RAM) and also on qemu (qemu-system-i386 -enable-kvm -cpu pentium3 -smp 2 -m 3G -drive file=Debian-VM_p3.img,if=virtio -append console='ttyS0 root=/dev/vda1' -kernel/boot/vmlinuz-6.10.0-rc1-P3-dirty).
It takes <3min to provoke the issue with stress-ng. Most of the time it happens in <30sec.
Kernel is patched with https://lore.kernel.org/lkml/20240527183007.1595037-1-cascardo@xxxxxxxxxx/T/ to avoid the CONFIG_MEM_ALLOC_PROFILING_DEBUG issue mentioned there.
Full dmesg and kernel .config attached.
Regards,
Erhard
Attachment:
dmesg_610-rc1_p3
Description: Binary data
Attachment:
config_610-rc1_p3
Description: Binary data