Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
git://internal_merge_and_test_tree devel-catchup-201509260834
commit d23117244a466b3821824a9daf6c42cc4c90b12b
Author: Al Stone <al.stone(a)linaro.org>
AuthorDate: Wed Sep 16 17:26:41 2015 -0600
Commit: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
CommitDate: Sat Sep 26 00:56:07 2015 +0200
ACPI / tables: add in a bad_madt_entry() function to eventually replace the macro
The existing BAD_MADT_ENTRY macro only checks that the size of the data
structure for an MADT subtable matches the length entry in the subtable.
This is, unfortunately, not reliable. Nor, as it turns out, does it have
anything to do with what the length should be in any particular table.
We introduce the bad_madt_entry() function that uses a data set to
do some basic sanity checks on any given MADT subtable. Over time, as
the spec changes, we should just be able to add entries to the data set
to reflect the changes.
What the data set captures is the allowed MADT subtable length for each
type of subtable, for each revision of the specification. While there
is a revision number in the MADT that we should be able to use to figure
out the proper subtable length, it was not changed when subtables did.
And, while there is a major and minor revision in the FADT that could
also help, it was not always changed as the subtables changed either.
So, the data set captures for each published version of the ACPI spec
what the FADT revisions numbers should be, the corresponding MADT
revision number, and the subtable types and lengths that were defined
at that time.
The sanity checks done are:
-- is the length non-zero?
-- is the subtable type defined/allowed for the revision of
the FADT we're using?
-- is the subtable type defined/allowed for the revision of
the MADT we're using?
-- is the length entry what it should be for this revision
of the MADT and FADT?
These checks are more thorough than the previous macro provided, and
are now insulated from data structure size changes by ACPICA, which
have been the source of other patches in the past.
Now that the bad_madt_entry() function is available, we add code to
also invoke it before any subtable handlers are called to use the
info in the subtable. Subsequent patches will remove the use of the
BAD_MADT_ENTRY macro which is now redundant as a result. Any ACPI
functions that use acpi_parse_madt_entries() will always have all of
the MADT subtables checked from now on.
Signed-off-by: Al Stone <al.stone(a)linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
+----------------------------------------------------------------+------------+------------+------------+
| | 899320877f | d23117244a
| 9512080157 |
+----------------------------------------------------------------+------------+------------+------------+
| boot_successes | 66 | 0
| 0 |
| boot_failures | 0 | 22
| 13 |
| WARNING:at_arch/x86/kernel/apic/apic_noop.c:#noop_apic_read() | 0 | 22
| 13 |
| WARNING:at_arch/x86/kernel/apic/apic_noop.c:#noop_apic_write() | 0 | 22
| 13 |
| BUG:kernel_boot_hang | 0 | 22
| 11 |
| backtrace:read_apic_id | 0 | 22
| 13 |
| backtrace:init_apic_mappings | 0 | 22
| 13 |
| WARNING:at_kernel/time/clockevents.c:#cev_delta2ns() | 0 | 0
| 2 |
| backtrace:apic_bsp_setup | 0 | 0
| 2 |
| backtrace:APIC_init_uniprocessor | 0 | 0
| 2 |
| backtrace:up_late_init | 0 | 0
| 2 |
| backtrace:kernel_init_freeable | 0 | 0
| 2 |
+----------------------------------------------------------------+------------+------------+------------+
[ 0.000000] APIC: disable apic facility
[ 0.000000] APIC: switched to apic NOOP
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: CPU: 0 PID: 0 at arch/x86/kernel/apic/apic_noop.c:102
noop_apic_read+0x31/0x3c()
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.3.0-rc1-00004-gd231172 #1
[ 0.000000] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Debian-1.8.2-1
04/01/2014
[ 0.000000] 00000000 00000000 ce2fbf38 cdf46fcb ce2fbf50 cde20c35 cde109aa ce2fbfb4
[ 0.000000] ce2fbfbc ce2fbfbc ce2fbf60 cde20cb0 00000009 00000000 ce2fbf68 cde109aa
[ 0.000000] ce2fbf70 cde0f7e4 ce2fbf78 cde0f819 ce2fbf84 ce49af31 ce2fbfb4 ce2fbfd0
[ 0.000000] Call Trace:
[ 0.000000] [<cdf46fcb>] dump_stack+0x16/0x18
[ 0.000000] [<cde20c35>] warn_slowpath_common+0x72/0x89
[ 0.000000] [<cde109aa>] ? noop_apic_read+0x31/0x3c
[ 0.000000] [<cde20cb0>] warn_slowpath_null+0xf/0x13
[ 0.000000] [<cde109aa>] noop_apic_read+0x31/0x3c
[ 0.000000] [<cde0f7e4>] apic_read+0xc/0xe
[ 0.000000] [<cde0f819>] read_apic_id+0xd/0x18
[ 0.000000] [<ce49af31>] init_apic_mappings+0xcc/0x11a
[ 0.000000] [<ce495597>] setup_arch+0xaaf/0xaec
[ 0.000000] [<cde44905>] ? vprintk_emit+0x420/0x456
[ 0.000000] [<ce4927d5>] start_kernel+0x76/0x32c
[ 0.000000] [<ce4922c6>] i386_start_kernel+0x90/0x94
[ 0.000000] ---[ end trace cd917931db448d26 ]---
[ 0.000000] KVM setup async PF for cpu 0
git bisect start 9512080157c222ca1482c9da2e0510cbab3ddadb
1f93e4a96c9109378204c147b3eec0d0e8100fde --
git bisect bad 8a5c4232fc8302d914169989924f3a2960e81fdc # 19:26 0- 14 Merge
'linux-review/Grigoryev-Denis-20150925183953-PATCH-v4-mfd-tps6105x-Fix-possible-NULL-pointer-access-'
into devel-spot-201509260830
git bisect bad 6cc5f49f2236087f1d71e5b4c7bf3b86cb9bf305 # 19:34 0- 22 Merge
'stblinux/devicetree/next' into devel-spot-201509260830
git bisect bad 1f752d9471175b8e70ce82122bc70c77cceea5ad # 19:42 0- 22 Merge
'pci/for-linus' into devel-spot-201509260830
git bisect good 9c3c556f0df288a882cab0018f9dab15b17e07b5 # 19:52 22+ 0 Merge
'slave-dma/next' into devel-spot-201509260830
git bisect bad 91b101d2e800c36f701e82d5a8d040aa04e13005 # 19:58 0- 22 Merge
'pm/bleeding-edge' into devel-spot-201509260830
git bisect good 173a0a62e0322998149837c379060386130e3a4d # 20:06 22+ 0 Merge
'renesas-drivers/topic/scif-dma-v4' into devel-spot-201509260830
git bisect good f2cd8cee155d6533aca1162d13114a876107c491 # 20:12 22+ 0 Merge
'renesas-drivers/topic/r8a7795-pfc-sound-v2' into devel-spot-201509260830
git bisect good 9a32c2f6d22e764c8d214a27f2c4f691e54dee6e # 20:21 22+ 0 Merge
'pm/linux-next' into devel-spot-201509260830
git bisect good 90d159f945a3ffc912d897fa140fefd68ecacb7d # 20:31 22+ 0 Merge
branch 'pm-cpufreq' into bleeding-edge
git bisect bad b15cbffb00298991dbbdfe731724a98cc10ef02d # 20:39 0- 22 Merge
branch 'acpi-tables' into bleeding-edge
git bisect bad 8f479a8794fda0d69e2c79153e36a44bf9ec7732 # 20:42 0- 2 ACPI /
IA64: remove usage of BAD_MADT_ENTRY
git bisect bad 0fde2bd6108d7cba4ec49342a0bf72b3d531a87d # 20:47 0- 16 ACPI /
ARM64: remove usage of BAD_MADT_ENTRY/BAD_MADT_GICC_ENTRY
git bisect bad d23117244a466b3821824a9daf6c42cc4c90b12b # 20:54 0- 12 ACPI /
tables: add in a bad_madt_entry() function to eventually replace the macro
# first bad commit: [d23117244a466b3821824a9daf6c42cc4c90b12b] ACPI / tables: add in a
bad_madt_entry() function to eventually replace the macro
git bisect good 899320877f67d75e88102c784e6c6c32ea3d3f6a # 21:02 66+ 0 ACPI /
tables: test the correct variable
# extra tests with DEBUG_INFO
git bisect bad d23117244a466b3821824a9daf6c42cc4c90b12b # 21:07 0- 9 ACPI /
tables: add in a bad_madt_entry() function to eventually replace the macro
# extra tests on HEAD of linux-devel/devel-spot-201509260830
git bisect bad 9512080157c222ca1482c9da2e0510cbab3ddadb # 21:07 0- 13 0day
head guard for 'devel-spot-201509260830'
# extra tests on tree/branch linux-devel/devel-catchup-201509260834
# extra tests with first bad commit reverted
# extra tests on tree/branch linus/master
git bisect good 518a7cb6980cd640c7f979d29021ad870f60d7d7 # 22:19 66+ 0 Merge
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
# extra tests on tree/branch linux-next/master
git bisect good 9f292a5f0b353b494f3b8d2da16754a3b312c8c7 # 22:24 66+ 0 Add
linux-next specific files for 20150925
This script may reproduce the error.
----------------------------------------------------------------------------
#!/bin/bash
kernel=$1
kvm=(
qemu-system-x86_64
-enable-kvm
-cpu Haswell,+smep,+smap
-kernel $kernel
-m 256
-smp 1
-device e1000,netdev=net0
-netdev user,id=net0
-boot order=nc
-no-reboot
-watchdog i6300esb
-rtc base=localtime
-serial stdio
-display none
-monitor null
)
append=(
hung_task_panic=1
earlyprintk=ttyS0,115200
systemd.log_level=err
debug
apic=debug
sysrq_always_enabled
rcupdate.rcu_cpu_stall_timeout=100
panic=-1
softlockup_panic=1
nmi_watchdog=panic
oops=panic
load_ramdisk=2
prompt_ramdisk=0
console=ttyS0,115200
console=tty0
vga=normal
root=/dev/ram0
rw
drbd.minor_count=8
)
"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation