Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
commit 340d3d6178f8081abe79549aed9056bc2888952c
Author: Tobin C. Harding <tobin(a)kernel.org>
AuthorDate: Fri Mar 29 10:01:23 2019 +1100
Commit: Stephen Rothwell <sfr(a)canb.auug.org.au>
CommitDate: Fri Mar 29 10:01:23 2019 +1100
mm/slob.c: respect list_head abstraction layer
Currently we reach inside the list_head. This is a violation of the layer
of abstraction provided by the list_head. It makes the code fragile.
More importantly it makes the code wicked hard to understand.
The code logic is based on the page in which an allocation was made, we
want to modify the slob_list we are working on to have this page at the
front. We already have a function to check if an entry is at the front of
the list. Recently a function was added to list.h to do the list
rotation. We can use these two functions to reduce line count, reduce
code fragility, and reduce cognitive load required to read the code.
Use list_head functions to interact with lists thereby maintaining the
abstraction provided by the list_head structure.
Link:
http://lkml.kernel.org/r/20190318000234.22049-3-tobin@kernel.org
Signed-off-by: Tobin C. Harding <tobin(a)kernel.org>
Cc: Christoph Lameter <cl(a)linux.com>
Cc: David Rientjes <rientjes(a)google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim(a)lge.com>
Cc: Pekka Enberg <penberg(a)kernel.org>
Cc: Roman Gushchin <guro(a)fb.com>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr(a)canb.auug.org.au>
5b605b7c0b include/linux/list.h: add list_rotate_to_front()
340d3d6178 mm/slob.c: respect list_head abstraction layer
e3ecb83ee7 Add linux-next specific files for 20190401
+----------------------------------------------------+------------+------------+---------------+
| | 5b605b7c0b | 340d3d6178 |
next-20190401 |
+----------------------------------------------------+------------+------------+---------------+
| boot_successes | 27 | 0 | 0
|
| boot_failures | 9 | 12 | 3
|
| BUG:kernel_hang_in_boot-around-mounting-root_stage | 8 | |
|
| Mem-Info | 1 | |
|
| kernel_BUG_at_lib/list_debug.c | 0 | 12 | 1
|
| invalid_opcode:#[##] | 0 | 12 | 1
|
| RIP:__list_add_valid | 0 | 12 | 1
|
| Kernel_panic-not_syncing:Fatal_exception | 0 | 12 | 3
|
| Oops:#[##] | 0 | 0 | 2
|
| RIP:load_elf_binary | 0 | 0 | 2
|
| BUG:unable_to_handle_kernel | 0 | 0 | 1
|
+----------------------------------------------------+------------+------------+---------------+
[ 0.523850] cpuidle: using governor menu
[ 0.525102] ACPI: bus type PCI registered
[ 0.526012] PCI: Using configuration type 1 for base access
[ 0.529071] list_add corruption. prev->next should be next (ffffffff83184dd0), but
was ffffea00007ac188. (prev=ffffea00007ab2c8).
[ 0.529696] ------------[ cut here ]------------
[ 0.529696] kernel BUG at lib/list_debug.c:31!
[ 0.529696] invalid opcode: 0000 [#1] SMP PTI
[ 0.529696] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.1.0-rc2-00288-g340d3d6 #2
[ 0.529696] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1
04/01/2014
[ 0.529696] RIP: 0010:__list_add_valid+0xee/0x110
[ 0.529696] Code: 4c 89 e1 4c 89 f6 48 c7 c7 d0 95 d0 82 e8 79 ad 97 ff 0f 0b 48 8b 55
00 48 89 e9 4c 89 e6 48 c7 c7 50 96 d0 82 e8 61 ad 97 ff <0f> 0b 4c 89 f1 48 89 ea
4c 89 ee 48 c7 c7 a8 96 d0 82 e8 4a ad 97
[ 0.529696] RSP: 0000:ffff88801e9cfca0 EFLAGS: 00010086
[ 0.529696] RAX: 0000000000000075 RBX: 0000000000000003 RCX: 0000000000000000
[ 0.529696] RDX: ffffffff830b2e78 RSI: 0000000000000000 RDI: ffffffff811c987b
[ 0.529696] RBP: ffffea00007ab2c8 R08: 0000000000000000 R09: 0000000000000001
[ 0.529696] R10: 00000000000000f8 R11: ffffffffffffff22 R12: ffffffff83184dd0
[ 0.529696] R13: ffffffff83184dd0 R14: ffffea00007ac188 R15: ffffea00007ab2c8
[ 0.529696] FS: 0000000000000000(0000) GS:ffff88801ee00000(0000)
knlGS:0000000000000000
[ 0.529696] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.529696] CR2: 0000000000000000 CR3: 000000000305c001 CR4: 00000000001606f0
[ 0.529696] Call Trace:
[ 0.529696] slob_alloc+0x2f4/0x3b0
[ 0.529696] ? add_sysfs_param+0x90/0x2b0
[ 0.529696] __kmalloc_track_caller+0x2f4/0x4a0
[ 0.529696] krealloc+0xa1/0x180
[ 0.529696] add_sysfs_param+0x90/0x2b0
[ 0.529696] param_sysfs_init+0x218/0x2b0
[ 0.529696] ? file_caps_disable+0x15/0x15
[ 0.529696] ? locate_module_kobject+0x117/0x117
[ 0.529696] do_one_initcall+0x184/0x5b0
[ 0.529696] ? do_early_param+0xb9/0xb9
[ 0.529696] kernel_init_freeable+0x723/0x7ff
[ 0.529696] ? rest_init+0x2a0/0x2a0
[ 0.529696] kernel_init+0xa/0x180
[ 0.529696] ret_from_fork+0x24/0x30
[ 0.529696] Modules linked in:
[ 0.529696] random: get_random_bytes called from init_oops_id+0x45/0x50 with
crng_init=0
[ 0.529696] ---[ end trace 869b9fe7b3a174b5 ]---
[ 0.529696] RIP: 0010:__list_add_valid+0xee/0x110
# HH:MM RESULT GOOD BAD
GOOD_BUT_DIRTY DIRTY_NOT_BAD
git bisect start 1baf02ec984b88b435e2fa065300179a3f48e7d2
8c2ffd9174779014c3fe1f96d9dc3641d9175f00 --
git bisect good df99e3d8a4f80c0c9310d56769f35476e3821697 # 13:50 G 11 0 8 8
Merge remote-tracking branch 'printk/for-next'
git bisect good a90861b7a4a58edf7e666b3add35f4d9a1b9e1c7 # 14:17 G 12 0 3 3
Merge remote-tracking branch 'spi/for-next'
git bisect good 9f21b7499a27030a1189f9a4a5d61ca8800dedfb # 17:30 G 11 0 11 11
Merge remote-tracking branch 'scsi/for-next'
git bisect good e99e72bceb949637fc5f5cdee0a7403498d7228e # 18:32 G 12 0 12 12
Merge remote-tracking branch 'rtc/rtc-next'
git bisect good a9dfd2f07c36500ae20a43adaf7cab85ea43a18a # 18:58 G 12 0 12 12
Merge remote-tracking branch 'nvmem/for-next'
git bisect good 2ed3a066995eb988c511dbac853da7d191d29b50 # 20:05 G 12 0 12 16
Merge remote-tracking branch 'devfreq/for-next'
git bisect bad c8ffae1657ab76cdd0c64236bee5eee7ed0ce6e5 # 20:33 B 0 5 22 2
Merge branch 'akpm-current/current'
git bisect bad a98778d9c7e355c2eaeccfac121917e5ff766d16 # 21:41 B 0 12 31 4
initramfs: fix a compilation error
git bisect bad 69b9e3e25724b51c295a95df61f851b52c7cbb19 # 22:25 B 0 11 26 0
mm/slub.c: add comments to endif pre-processor macros
git bisect good c0dfde872300dffdb72389bcee02ed3fb2b40c09 # 23:08 G 12 0 1 1
checkpatch: add %pt as a valid vsprintf extension
git bisect good e2a2be7656d99306969f43d472c5163ec50e54c4 # 11:56 G 12 0 2 8
mm/compaction.c: correct zone boundary handling when resetting pageblock skip hints
git bisect good bf1c2ed9686c247f4a73ac43dbf9e3ac4f23c6a5 # 12:53 G 12 0 6 6
ocfs2: wait for recovering done after direct unlock request
git bisect good 5b605b7c0b904df43d1f21f0ae7115f256cbb2f9 # 16:30 G 11 0 1 1
include/linux/list.h: add list_rotate_to_front()
git bisect bad f034a92650072fed6d4b2070c6eb1a8065d09985 # 17:39 B 0 4 19 0
mm/slob.c: use slab_list instead of lru
git bisect bad 340d3d6178f8081abe79549aed9056bc2888952c # 18:44 B 0 1 16 0
mm/slob.c: respect list_head abstraction layer
# first bad commit: [340d3d6178f8081abe79549aed9056bc2888952c] mm/slob.c: respect
list_head abstraction layer
git bisect good 5b605b7c0b904df43d1f21f0ae7115f256cbb2f9 # 19:15 G 35 0 8 10
include/linux/list.h: add list_rotate_to_front()
# extra tests with debug options
git bisect bad 340d3d6178f8081abe79549aed9056bc2888952c # 19:40 B 0 2 17 0
mm/slob.c: respect list_head abstraction layer
# extra tests on HEAD of linux-next/master
git bisect bad 1baf02ec984b88b435e2fa065300179a3f48e7d2 # 19:40 B 0 12 39 5
Add linux-next specific files for 20190329
# extra tests on tree/branch linux-next/master
git bisect bad e3ecb83ee707a3b2a4d12e19509ecbda7f793cc2 # 20:15 B 0 3 18 0
Add linux-next specific files for 20190401
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation