Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git x86/pcid
commit 5a39d495551dd87143f13895fa4523ab87742fd5
Author: Andy Lutomirski <luto(a)kernel.org>
AuthorDate: Mon Jul 24 13:29:41 2017 -0700
Commit: Andy Lutomirski <luto(a)kernel.org>
CommitDate: Mon Jul 24 22:50:29 2017 -0700
x86/mm: Dedeplicate TLB flush propagation code
We currently have two copies of almost the same code: disable preemption,
check if we need to flush locally, flush if needed, and then propapate
the flush to other CPUs.
Merge all of this into a single function. The "do we flush locally"
conditions in the callers were different, so the new code checks
both conditions, which makes more sense anyway.
Signed-off-by: Andy Lutomirski <luto(a)kernel.org>
6338c76fbd x86/mm: Delay disabling preemption in flush_tlb_mm_range()
5a39d49555 x86/mm: Dedeplicate TLB flush propagation code
5a39d49555 x86/mm: Dedeplicate TLB flush propagation code
+--------------------------------------------+------------+------------+------------+
| | 6338c76fbd | 5a39d49555 | 5a39d49555 |
+--------------------------------------------+------------+------------+------------+
| boot_successes | 37 | 0 | 0 |
| boot_failures | 0 | 19 | 19 |
| WARNING:at_arch/x86/mm/tlb.c:#do_tlb_flush | 0 | 19 | 19 |
| EIP:do_tlb_flush | 0 | 19 | 19 |
+--------------------------------------------+------------+------------+------------+
[ 53.554203] Write protecting the kernel text: 15688k
[ 53.555507] Write protecting the kernel read-only data: 6440k
[ 53.556696] NX-protecting the kernel data: 10936k
[ 53.558156] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 53.559504] ------------[ cut here ]------------
[ 53.560462] WARNING: CPU: 0 PID: 1 at arch/x86/mm/tlb.c:248 do_tlb_flush+0x4a0/0x5f0
[ 53.562559] CPU: 0 PID: 1 Comm: swapper Not tainted 4.13.0-rc1-00087-g5a39d49 #1
[ 53.564074] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.9.3-20161025_171302-gandalf 04/01/2014
[ 53.566134] task: d50cc080 task.stack: d50d0000
[ 53.567069] EIP: do_tlb_flush+0x4a0/0x5f0
[ 53.568019] EFLAGS: 00210202 CPU: 0
[ 53.568772] EAX: 00000001 EBX: d50d1ea0 ECX: 00000000 EDX: 00000001
[ 53.570061] ESI: 00000001 EDI: 00000001 EBP: d50d1e98 ESP: d50d1e74
[ 53.571326] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 53.572424] CR0: 80050033 CR2: 00000000 CR3: 028b2000 CR4: 000006b0
[ 53.573699] Call Trace:
[ 53.574211] flush_tlb_mm_range+0x66/0xa0
[ 53.575040] ? native_set_ldt+0xb0/0xd0
[ 53.575821] pud_populate+0xcd/0xf0
[ 53.576669] pgd_alloc+0x1f7/0x2a0
[ 53.577642] mm_init+0x10c/0x1a0
[ 53.578521] mm_alloc+0x37/0x50
[ 53.579173] do_execveat_common+0x21c/0x680
[ 53.580023] ? getname_kernel+0x27/0x120
[ 53.580813] ? rest_init+0xa0/0xa0
[ 53.581511] do_execve+0x19/0x20
[ 53.582188] run_init_process+0x21/0x30
[ 53.582980] kernel_init+0x46/0xf0
[ 53.584016] ret_from_fork+0x19/0x30
[ 53.584757] Code: 00 ff d6 8b 33 85 f6 75 ea ff 0d 38 c1 5a c2 e9 ef fe ff ff 8d b4 26
00 00 00 00 31 f6 e9 49 fe ff ff 90 31 f6 e9 e9 fd ff ff 90 <0f> ff e9 d7 fb ff ff
90 0f 0b 8d b6 00 00 00 00 0f ff e9 3d fc
[ 53.588590] ---[ end trace b0db27585f82e7e0 ]---
[ 53.589878] ------------[ cut here ]------------
[ 53.589878] ------------[ cut here ]------------
[ 53.590823] WARNING: CPU: 0 PID: 1 at arch/x86/mm/tlb.c:248 do_tlb_flush+0x4a0/0x5f0
[ 53.592914] CPU: 0 PID: 1 Comm: swapper Tainted: G W
4.13.0-rc1-00087-g5a39d49 #1
[ 53.594671] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.9.3-20161025_171302-gandalf 04/01/2014
[ 53.596734] task: d50cc080 task.stack: d50d0000
[ 53.597668] EIP: do_tlb_flush+0x4a0/0x5f0
[ 53.598616] EFLAGS: 00210202 CPU: 0
[ 53.599335] EAX: 00000001 EBX: d50d1ea0 ECX: 00000000 EDX: 00000001
[ 53.600609] ESI: 00000001 EDI: 00000001 EBP: d50d1e98 ESP: d50d1e74
[ 53.601897] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 53.603002] CR0: 80050033 CR2: 00000000 CR3: 028b2000 CR4: 000006b0
[ 53.604293] Call Trace:
[ 53.604797] flush_tlb_mm_range+0x66/0xa0
[ 53.605623] ? native_set_ldt+0xb0/0xd0
[ 53.606417] pud_populate+0xcd/0xf0
[ 53.607136] pgd_alloc+0x1f7/0x2a0
[ 53.607840] mm_init+0x10c/0x1a0
[ 53.608676] mm_alloc+0x37/0x50
[ 53.609337] do_execveat_common+0x21c/0x680
[ 53.610195] ? getname_kernel+0x27/0x120
[ 53.610999] ? rest_init+0xa0/0xa0
[ 53.611697] do_execve+0x19/0x20
[ 53.612369] run_init_process+0x21/0x30
[ 53.613157] kernel_init+0x46/0xf0
[ 53.613856] ret_from_fork+0x19/0x30
[ 53.614585] Code: 00 ff d6 8b 33 85 f6 75 ea ff 0d 38 c1 5a c2 e9 ef fe ff ff 8d b4 26
00 00 00 00 31 f6 e9 49 fe ff ff 90 31 f6 e9 e9 fd ff ff 90 <0f> ff e9 d7 fb ff ff
90 0f 0b 8d b6 00 00 00 00 0f ff e9 3d fc
[ 53.618391] ---[ end trace b0db27585f82e7e1 ]---
[ 53.619343] ------------[ cut here ]------------
[ 53.619343] ------------[ cut here ]------------
[ 53.620306] WARNING: CPU: 0 PID: 1 at arch/x86/mm/tlb.c:248 do_tlb_flush+0x4a0/0x5f0
[ 53.622910] CPU: 0 PID: 1 Comm: swapper Tainted: G W
4.13.0-rc1-00087-g5a39d49 #1
[ 53.624649] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.9.3-20161025_171302-gandalf 04/01/2014
[ 53.626972] task: d50cc080 task.stack: d50d0000
[ 53.627901] EIP: do_tlb_flush+0x4a0/0x5f0
[ 53.628878] EFLAGS: 00210202 CPU: 0
[ 53.630012] EAX: 00000001 EBX: d50d1ea0 ECX: 00000000 EDX: 00000001
[ 53.631349] ESI: 00000001 EDI: 00000001 EBP: d50d1e98 ESP: d50d1e74
[ 53.632628] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 53.633739] CR0: 80050033 CR2: 00000000 CR3: 028b2000 CR4: 000006b0
[ 53.635014] Call Trace:
[ 53.635521] flush_tlb_mm_range+0x66/0xa0
[ 53.636342] ? native_set_ldt+0xb0/0xd0
[ 53.637130] pud_populate+0xcd/0xf0
[ 53.637842] pgd_alloc+0x1f7/0x2a0
[ 53.638537] mm_init+0x10c/0x1a0
[ 53.639344] mm_alloc+0x37/0x50
[ 53.639990] do_execveat_common+0x21c/0x680
[ 53.640841] ? getname_kernel+0x27/0x120
[ 53.641639] ? rest_init+0xa0/0xa0
[ 53.642342] do_execve+0x19/0x20
[ 53.643012] run_init_process+0x21/0x30
[ 53.643793] kernel_init+0x46/0xf0
[ 53.644491] ret_from_fork+0x19/0x30
[ 53.645226] Code: 00 ff d6 8b 33 85 f6 75 ea ff 0d 38 c1 5a c2 e9 ef fe ff ff 8d b4 26
00 00 00 00 31 f6 e9 49 fe ff ff 90 31 f6 e9 e9 fd ff ff 90 <0f> ff e9 d7 fb ff ff
90 0f 0b 8d b6 00 00 00 00 0f ff e9 3d fc
[ 53.649054] ---[ end trace b0db27585f82e7e2 ]---
[ 53.658547] grep (129) used greatest stack depth: 7044 bytes left
# HH:MM RESULT GOOD BAD
GOOD_BUT_DIRTY DIRTY_NOT_BAD
git bisect start c12e14d4ea9d435674498329bdd072fb74cfd5f8
520eccdfe187591a51ea9ab4c1a024ae4d0f68d9 --
git bisect bad 222a458f334d25a5fe02b7606d9786ed9fc4b367 # 09:14 B 0 5 17 0
Merge 'powerpc/merge' into devel-catchup-201707270801
git bisect good 0dc9d53a98f934f5b3197505c8e8c529246b62a1 # 09:30 G 10 0 0 0
Merge 'padovan/v4l2-fences' into devel-catchup-201707270801
git bisect good 28e2b26e2b656a834e4012f23b4c49e7f861cef9 # 09:41 G 11 0 0 0
Merge 'userns/for-next' into devel-catchup-201707270801
git bisect bad 535d8b5320ab6a479a89cc3ec40a44bdda453222 # 09:54 B 0 4 16 0
Merge 'luto/x86/pcid' into devel-catchup-201707270801
git bisect good 1de328628cd06b5efff9195b57bdc1a64680814d # 10:10 G 11 0 0 0
x86/mm: Add support to access persistent memory in the clear
git bisect good 7375ae3a0b79ea072f4c672039f08f5db633b9e1 # 10:22 G 10 0 0 0
compiler-gcc.h: Introduce __nostackprotector function attribute
git bisect good b569bab78d8df157a6f91070af827753e4d1787c # 10:33 G 11 0 0 0
x86/mm: Prepare to expose larger address space to userspace
git bisect good 5be11a3f9bd58862c5daf5eb2fa02c15ec391968 # 10:47 G 10 0 0 0
x86/mm: Improve TLB flush documentation
git bisect good 6338c76fbd8eb35603777cb66b0be2b2adb3febc # 11:03 G 11 0 0 0
x86/mm: Delay disabling preemption in flush_tlb_mm_range()
git bisect bad 5a39d495551dd87143f13895fa4523ab87742fd5 # 11:23 B 0 11 23 0
x86/mm: Dedeplicate TLB flush propagation code
# first bad commit: [5a39d495551dd87143f13895fa4523ab87742fd5] x86/mm: Dedeplicate TLB
flush propagation code
git bisect good 6338c76fbd8eb35603777cb66b0be2b2adb3febc # 11:26 G 30 0 0 0
x86/mm: Delay disabling preemption in flush_tlb_mm_range()
# extra tests with CONFIG_DEBUG_INFO_REDUCED
git bisect bad 5a39d495551dd87143f13895fa4523ab87742fd5 # 11:37 B 0 11 23 0
x86/mm: Dedeplicate TLB flush propagation code
# extra tests on HEAD of linux-devel/devel-catchup-201707270801
git bisect bad c12e14d4ea9d435674498329bdd072fb74cfd5f8 # 11:37 B 0 13 28 0
0day head guard for 'devel-catchup-201707270801'
# extra tests on tree/branch luto/x86/pcid
git bisect bad 5a39d495551dd87143f13895fa4523ab87742fd5 # 11:41 B 0 19 31 0
x86/mm: Dedeplicate TLB flush propagation code
# extra tests with first bad commit reverted
git bisect good 5db370945cb3f6fa014f199d50775357ae2be76b # 11:56 G 11 0 0 0
Revert "x86/mm: Dedeplicate TLB flush propagation code"
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation