Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
git://git.collabora.co.uk/git/user/tomeu/linux.git ordered-probing-v2
commit 023fb61323466c3c4727dc0e798ec4184034bbb1
Author: Tomeu Vizoso <tomeu.vizoso(a)collabora.com>
AuthorDate: Tue Jun 30 17:21:49 2015 +0200
Commit: Tomeu Vizoso <tomeu.vizoso(a)collabora.com>
CommitDate: Tue Jun 30 17:21:49 2015 +0200
driver-core: probe dependencies before probing
Before actually probing a device, find out what dependencies it has and
do our best to ensure that they are available at this point.
This is accomplished by finding out what platform devices need to be
probed so the dependencies are available.
If any dependencies are still unavailable after that (most probably a
missing driver or an error in the HW description from the firmware), we
print a nice error message so that people don't have to add a zillion of
printks to find out why a device asked for its probe to be deferred.
Dependencies are discovered with the help of the code that is already
implementing the specification of the firmware bindings, via the
callbacks registered with fwnode_add_dependency_parser().
Currently the dependencies list is discarded but it could be stored for
later usage.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso(a)collabora.com>
Series-version: 2
Cover-letter:
Discover and probe dependencies
Hi,
this is version 2 of a series that probes devices in dependency order so
as to avoid deferred probes. While deferred probing is a powerful
solution that makes sure that you eventually get a working system at the
end of the boot, can make it very time consuming to find out why a
device didn't probe and can also introduce big delays in when a device
actually probes by sending it to the end of the queue.
Thanks,
Tomeu
END
+------------------------------------------+------------+------------+------------+
| | 288e8018e3 | 023fb61323 | 21fd29990b |
+------------------------------------------+------------+------------+------------+
| boot_successes | 63 | 0 | 0 |
| boot_failures | 0 | 22 | 13 |
| BUG:unable_to_handle_kernel | 0 | 22 | 13 |
| Oops | 0 | 22 | 13 |
| EIP_is_at_strlen | 0 | 22 | 13 |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 22 | 13 |
| backtrace:driver_register | 0 | 22 | 13 |
| backtrace:acpi_processor_driver_init | 0 | 22 | 13 |
| backtrace:kernel_init_freeable | 0 | 22 | 13 |
+------------------------------------------+------------+------------+------------+
[ 12.911918] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[ 12.924105] ACPI: Power Button [PWRF]
[ 12.924105] ACPI: Power Button [PWRF]
[ 12.925941] BUG: unable to handle kernel
[ 12.925941] BUG: unable to handle kernel NULL pointer dereferenceNULL pointer
dereference at (null)
at (null)
[ 12.926673] IP:
[ 12.926673] IP: [<4ea20cf5>] strlen+0xb/0x17
[<4ea20cf5>] strlen+0xb/0x17
[ 12.926673] *pde = 00000000
[ 12.926673] *pde = 00000000
[ 12.926673] Oops: 0000 [#1]
[ 12.926673] Oops: 0000 [#1]
[ 12.926673] Modules linked in:
[ 12.926673] Modules linked in:
[ 12.926673] CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-next-20150629-00024-g023fb61
#1
[ 12.926673] CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-next-20150629-00024-g023fb61
#1
[ 12.926673] task: 50ca8040 ti: 50caa000 task.ti: 50caa000
[ 12.926673] task: 50ca8040 ti: 50caa000 task.ti: 50caa000
[ 12.926673] EIP: 0060:[<4ea20cf5>] EFLAGS: 00010246 CPU: 0
[ 12.926673] EIP: 0060:[<4ea20cf5>] EFLAGS: 00010246 CPU: 0
[ 12.926673] EIP is at strlen+0xb/0x17
[ 12.926673] EIP is at strlen+0xb/0x17
[ 12.926673] EAX: 00000000 EBX: 50d1dc00 ECX: ffffffff EDX: 50cabea0
[ 12.926673] EAX: 00000000 EBX: 50d1dc00 ECX: ffffffff EDX: 50cabea0
[ 12.926673] ESI: 50d44c08 EDI: 00000000 EBP: 50cabe60 ESP: 50cabe5c
[ 12.926673] ESI: 50d44c08 EDI: 00000000 EBP: 50cabe60 ESP: 50cabe5c
[ 12.926673] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 12.926673] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 12.926673] CR0: 8005003b CR2: 00000000 CR3: 0f0d2000 CR4: 00000690
[ 12.926673] CR0: 8005003b CR2: 00000000 CR3: 0f0d2000 CR4: 00000690
[ 12.926673] Stack:
[ 12.926673] Stack:
[ 12.926673] 50d44bf8
[ 12.926673] 50d44bf8 50cabe7c 50cabe7c 4eac8d2c 4eac8d2c 50cabea0 50cabea0 00000000
00000000 50c96e00 50c96e00 50d44c08 50d44c08 50cabea0 50cabea0
[ 12.926673] 50cabe90
[ 12.926673] 50cabe90 4eb07093 4eb07093 50cabea0 50cabea0 4eeced28 4eeced28 00000000
00000000 50cabeb4 50cabeb4 4eb01bfe 4eb01bfe 00000000 00000000
[ 12.926673] 4ef04a40
[ 12.926673] 4ef04a40 50cabea0 50cabea0 50cabea0 50cabea0 4eeced28 4eeced28 4ef04a40
4ef04a40 4eeced5c 4eeced5c 50cabec8 50cabec8 4eb01ff1 4eb01ff1
[ 12.926673] Call Trace:
[ 12.926673] Call Trace:
[ 12.926673] [<4eac8d2c>] regulator_get_dependencies+0x4f/0xfc
[ 12.926673] [<4eac8d2c>] regulator_get_dependencies+0x4f/0xfc
[ 12.926673] [<4eb07093>] fwnode_get_dependencies+0x1f/0x60
[ 12.926673] [<4eb07093>] fwnode_get_dependencies+0x1f/0x60
[ 12.926673] [<4eb01bfe>] driver_probe_device+0x185/0x4e3
[ 12.926673] [<4eb01bfe>] driver_probe_device+0x185/0x4e3
[ 12.926673] [<4eb01ff1>] __driver_attach+0x95/0xca
[ 12.926673] [<4eb01ff1>] __driver_attach+0x95/0xca
[ 12.926673] [<4eaffc0d>] bus_for_each_dev+0x65/0x79
[ 12.926673] [<4eaffc0d>] bus_for_each_dev+0x65/0x79
[ 12.926673] [<4eb017f3>] driver_attach+0x14/0x16
[ 12.926673] [<4eb017f3>] driver_attach+0x14/0x16
[ 12.926673] [<4eb01f5c>] ? driver_probe_device+0x4e3/0x4e3
[ 12.926673] [<4eb01f5c>] ? driver_probe_device+0x4e3/0x4e3
[ 12.926673] [<4eb0101d>] bus_add_driver+0x119/0x292
[ 12.926673] [<4eb0101d>] bus_add_driver+0x119/0x292
[ 12.926673] [<4e94d700>] ? kfree+0x3a1/0x3d9
[ 12.926673] [<4e94d700>] ? kfree+0x3a1/0x3d9
[ 12.926673] [<4eb02729>] driver_register+0xd2/0x133
[ 12.926673] [<4eb02729>] driver_register+0xd2/0x133
[ 12.926673] [<4f09b0c2>] acpi_processor_driver_init+0x30/0x57
[ 12.926673] [<4f09b0c2>] acpi_processor_driver_init+0x30/0x57
[ 12.926673] [<4e8004e6>] do_one_initcall+0x13b/0x234
[ 12.926673] [<4e8004e6>] do_one_initcall+0x13b/0x234
[ 12.926673] [<4f09b092>] ? acpi_fan_driver_init+0x11/0x11
[ 12.926673] [<4f09b092>] ? acpi_fan_driver_init+0x11/0x11
[ 12.926673] [<4e860a82>] ? parse_args+0x342/0x40a
[ 12.926673] [<4e860a82>] ? parse_args+0x342/0x40a
[ 12.926673] [<4f06af29>] kernel_init_freeable+0xfc/0x1b9
[ 12.926673] [<4f06af29>] kernel_init_freeable+0xfc/0x1b9
[ 12.926673] [<4ec0813e>] kernel_init+0x9/0x139
[ 12.926673] [<4ec0813e>] kernel_init+0x9/0x139
[ 12.926673] [<4ec158e0>] ret_from_kernel_thread+0x20/0x30
[ 12.926673] [<4ec158e0>] ret_from_kernel_thread+0x20/0x30
[ 12.926673] [<4ec08135>] ? rest_init+0x12a/0x12a
[ 12.926673] [<4ec08135>] ? rest_init+0x12a/0x12a
[ 12.926673] Code:
[ 12.926673] Code: 5d 5d c3 c3 55 55 89 89 e5 e5 56 56 89 89 c6 c6 89 89 d0 d0 88 88 c4
c4 ac ac 38 38 e0 e0 74 74 09 09 84 84 c0 c0 75 75 f7 f7 be be 01 01 00 00 00 00 00 00 89
89 f0 f0 48 48 5e 5e 5d 5d c3 c3 55 55 83 83 c9 c9 ff ff 89 89 e5 e5 57 57 89 89 c7 c7 31
31 c0 c0 <f2> <f2> ae ae 5f 5f b8 b8 fe fe ff ff ff ff ff ff 29 29 c8 c8 5d 5d
c3 c3 55 55 89 89 c1 c1 89 89 e5 e5 89 89 c8 c8 eb eb 06 06
[ 12.926673] EIP: [<4ea20cf5>]
[ 12.926673] EIP: [<4ea20cf5>] strlen+0xb/0x17strlen+0xb/0x17 SS:ESP
0068:50cabe5c
SS:ESP 0068:50cabe5c
[ 12.926673] CR2: 0000000000000000
[ 12.926673] CR2: 0000000000000000
[ 12.926673] ---[ end trace 3771acc4c7ff42ec ]---
[ 12.926673] ---[ end trace 3771acc4c7ff42ec ]---
git bisect start 21fd29990bd1fa53d13cce04e2cff6c518d03079
e3984319760987beee59b1d017416671ebb89b4c --
git bisect good b4b91db002ad96151714d7faf4c5a2e83508a56c # 04:31 22+ 0 device:
property: delay device-driver matches
git bisect good 326e3928f06f14c526d9da99447ecc2d4b0bea9b # 05:33 20+ 0 USB:
EHCI: register dependency parser for firmware nodes
git bisect good 288e8018e3dd11e561247f4c43b092ead377dfbd # 06:41 21+ 0 ASoC:
tegra: register dependency parser for firmware nodes
git bisect bad 9ae95e0bfcf3df8f376917aca3874226c0159e55 # 06:45 0- 1 TMP: Add
some debug helpers to dd.c
git bisect bad 023fb61323466c3c4727dc0e798ec4184034bbb1 # 06:48 0- 3
driver-core: probe dependencies before probing
# first bad commit: [023fb61323466c3c4727dc0e798ec4184034bbb1] driver-core: probe
dependencies before probing
git bisect good 288e8018e3dd11e561247f4c43b092ead377dfbd # 07:53 60+ 0 ASoC:
tegra: register dependency parser for firmware nodes
# extra tests with DEBUG_INFO
git bisect bad 023fb61323466c3c4727dc0e798ec4184034bbb1 # 08:38 0- 1
driver-core: probe dependencies before probing
# extra tests on HEAD of tomeu/ordered-probing-v2
git bisect bad 21fd29990bd1fa53d13cce04e2cff6c518d03079 # 08:38 0- 13 pinctrl:
tegra: Only set the gpio range if needed
# extra tests on tree/branch tomeu/ordered-probing-v2
git bisect bad 21fd29990bd1fa53d13cce04e2cff6c518d03079 # 08:38 0- 13 pinctrl:
tegra: Only set the gpio range if needed
# extra tests on tree/branch linus/master
git bisect good 6aaf0da8728c55ff627619f933ed161cc89057c6 # 11:04 60+ 0 Merge
tag 'md/4.2' of git://neil.brown.name/md
# extra tests on tree/branch next/master
git bisect good 87dd3f17d47090b0ea00fecd50187eaf9f1b914c # 14:15 62+ 0 Add
linux-next specific files for 20150630
This script may reproduce the error.
----------------------------------------------------------------------------
#!/bin/bash
kernel=$1
initrd=quantal-core-i386.cgz
wget --no-clobber
https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd
kvm=(
qemu-system-x86_64
-enable-kvm
-cpu kvm64
-kernel $kernel
-initrd $initrd
-m 300
-smp 2
-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