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-v3 commit 240d94dae48c0e526898bb54639622ca897323c9 Author: Tomeu Vizoso AuthorDate: Tue Jun 30 17:21:49 2015 +0200 Commit: Tomeu Vizoso CommitDate: Mon Jul 13 09:14:59 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 and probing them. Non-platform devices will be probed when the closest ancestor that is a platform device is probed. 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 Series-version: 2 Series-cc: rafael, broonie, acpi, alsa, pwm, dri, dt, gpio, fbdev, tegra, kernel, usb 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 deferred queue. So far I have only tested on a Tegra124 Chromebook. Thanks, Tomeu END Series-changes: 2 - Allocate the list of dependencies and pass it to the function that fills it. +------------------------------------------------+------------+------------+------------+ | | 19a4ff36c0 | 240d94dae4 | ac88d9d7d0 | +------------------------------------------------+------------+------------+------------+ | boot_successes | 88 | 0 | 0 | | boot_failures | 2 | 24 | 13 | | IP-Config:Auto-configuration_of_network_failed | 2 | | | | BUG:unable_to_handle_kernel | 0 | 24 | 13 | | Oops | 0 | 24 | 13 | | RIP:strlen | 0 | 24 | 13 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 24 | 13 | | backtrace:driver_register | 0 | 24 | | | backtrace:acpi_processor_driver_init | 0 | 24 | | | backtrace:kernel_init_freeable | 0 | 24 | 13 | | backtrace:acpi_bus_scan | 0 | 0 | 13 | | backtrace:acpi_scan_init | 0 | 0 | 13 | | backtrace:acpi_init | 0 | 0 | 13 | +------------------------------------------------+------------+------------+------------+ [ 1.365945] Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot. [ 1.367731] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 [ 1.369367] ACPI: Power Button [PWRF] [ 1.370267] BUG: unable to handle kernel NULL pointer dereference at (null) [ 1.372153] IP: [] strlen+0x0/0x20 [ 1.373209] PGD 0 [ 1.373957] Oops: 0000 [#1] [ 1.374824] CPU: 0 PID: 1 Comm: swapper Not tainted 4.2.0-rc1-next-20150709-00030-g240d94d #5 [ 1.376556] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014 [ 1.378477] task: ffff88000f86ab80 ti: ffff88000f86c000 task.ti: ffff88000f86c000 [ 1.380155] RIP: 0010:[] [] strlen+0x0/0x20 [ 1.381883] RSP: 0018:ffff88000f86fce0 EFLAGS: 00010286 [ 1.382940] RAX: 0000000000000000 RBX: ffff88000f926800 RCX: 0000000000000001 [ 1.384152] RDX: 0000000000000001 RSI: ffff88000f86fd68 RDI: 0000000000000000 [ 1.385366] RBP: ffff88000f86fd18 R08: 0000000000000006 R09: 0000000000000f00 [ 1.386607] R10: ffffffff81ef33a1 R11: 000000000000018c R12: 0000000000000000 [ 1.387862] R13: 0000000000000008 R14: ffff88000f86fd68 R15: ffff88000f95b7f0 [ 1.389082] FS: 0000000000000000(0000) GS:ffffffff8221c000(0000) knlGS:0000000000000000 [ 1.390864] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1.391926] CR2: 0000000000000000 CR3: 000000000e195000 CR4: 00000000001407f0 [ 1.393139] Stack: [ 1.393816] ffffffff81530640 ffff88000f86fd18 ffff88000f859c60 ffff88000f95b810 [ 1.395765] ffff88000f86fd68 ffffffff82265b80 0000000000000000 ffff88000f86fd48 [ 1.397674] ffffffff81598f7c ffffffff81f69ddc ffffffff82217388 ffffffff82217388 [ 1.399630] Call Trace: [ 1.400322] [] ? regulator_get_dependencies+0x40/0xa0 [ 1.401498] [] fwnode_get_dependencies+0x2c/0x80 [ 1.402649] [] driver_probe_device+0x91/0x390 [ 1.403774] [] __driver_attach+0x8b/0x90 [ 1.404844] [] ? driver_probe_device+0x390/0x390 [ 1.405969] [] bus_for_each_dev+0x5f/0x90 [ 1.407052] [] driver_attach+0x19/0x20 [ 1.408087] [] bus_add_driver+0x19f/0x220 [ 1.409156] [] ? acpi_fan_driver_init+0x14/0x14 [ 1.410281] [] driver_register+0x5b/0xe0 [ 1.411387] [] acpi_processor_driver_init+0x1c/0x38 [ 1.412733] [] do_one_initcall+0xe6/0x176 [ 1.413954] [] kernel_init_freeable+0x11a/0x1a2 [ 1.415097] [] ? rest_init+0x80/0x80 [ 1.416119] [] kernel_init+0x9/0xe0 [ 1.417137] [] ret_from_fork+0x3f/0x70 [ 1.418498] [] ? rest_init+0x80/0x80 [ 1.419817] Code: f6 81 c0 1a ce 81 20 75 eb c6 42 01 00 0f b6 10 f6 82 c0 1a ce 81 20 74 10 48 83 c0 01 0f b6 10 f6 82 c0 1a ce 81 20 75 f0 5d c3 <80> 3f 00 55 48 89 e5 74 11 48 89 f8 48 83 c0 01 80 38 00 75 f7 [ 1.427642] RIP [] strlen+0x0/0x20 [ 1.428818] RSP [ 1.430067] CR2: 0000000000000000 [ 1.431426] ---[ end trace 28b7a0eec161cbd6 ]--- [ 1.433101] Kernel panic - not syncing: Fatal exception git bisect start ac88d9d7d03289e6eed00aacb150be2006440613 d770e558e21961ad6cfdf0ff7df0eb5d7d4f0754 -- git bisect bad c22ab4ff1cde7fff6310e73b56577e6600332756 # 03:55 0- 22 Merge 'asoc/topic/sti-sas' into devel-catchup-201507132204 git bisect bad d28b5211e1e1a083f4da2b89b37387efc26e12ba # 04:00 0- 24 Merge 'amirv/for-upstream' into devel-catchup-201507132204 git bisect good 61d57c2425ceb47f590bce11cfa8971d6f6bcc7c # 04:04 22+ 0 0day base guard for 'devel-catchup-201507132204' git bisect bad eacd810bfdb7b26bfa4505962ecf6dffa4791070 # 04:09 0- 22 Merge 'tomeu/ordered-probing-v3' into devel-catchup-201507132204 git bisect good 7cac38d31c07d3956069826d7b09982f0fa96709 # 04:14 22+ 0 Merge remote-tracking branch 'crypto/master' git bisect good 5b9297ef5b989c5953300bf2436dc91878744cff # 04:19 22+ 0 Merge remote-tracking branch 'spi/for-next' git bisect good 8b663bdf57db00902f1dd75437642fc0307ffe09 # 04:25 22+ 0 Merge remote-tracking branch 'vhost/linux-next' git bisect good cf0e4cc63804a86ee1b5b8afcce573916aec33fa # 04:37 22+ 3 ipc/msg.c: use freezable blocking call git bisect good a3aa7cdc2e95a936ba8dd5b00ebfadb35a4e4c1b # 04:45 22+ 2 Merge remote-tracking branch 'livepatching/for-next' git bisect good 0b3190184e0d555c9c00b0cb5a7dc0ede7083386 # 05:25 22+ 4 i2c: core: Have clients point to their firmware nodes git bisect good 19a4ff36c057acf4a1ce1e4ccbccfbb500b976e2 # 05:35 22+ 0 ASoC: tegra: register dependency parser for firmware nodes git bisect bad 46a31d43e6a6605b98701e54878e631f9d590cb3 # 05:38 0- 22 get_deps: add locking git bisect bad 0feb05fe8f72af493547562f754f228843cda97b # 05:43 0- 22 dd.c: move check_dependencies out of critical area git bisect bad 4cbaa3b798e10e931cb30e3ce6327e226d778f8c # 05:46 0- 24 dd.c: don't check for dependencies to self git bisect bad 240d94dae48c0e526898bb54639622ca897323c9 # 05:49 0- 22 driver-core: probe dependencies before probing # first bad commit: [240d94dae48c0e526898bb54639622ca897323c9] driver-core: probe dependencies before probing git bisect good 19a4ff36c057acf4a1ce1e4ccbccfbb500b976e2 # 05:51 66+ 2 ASoC: tegra: register dependency parser for firmware nodes # extra tests with DEBUG_INFO git bisect bad 240d94dae48c0e526898bb54639622ca897323c9 # 05:54 0- 66 driver-core: probe dependencies before probing # extra tests on HEAD of linux-devel/devel-catchup-201507132204 git bisect bad ac88d9d7d03289e6eed00aacb150be2006440613 # 05:55 0- 13 0day head guard for 'devel-catchup-201507132204' # extra tests on tree/branch tomeu/ordered-probing-v3 git bisect bad 0d5684a2c08daec5870ebf0ca7e50307d6a9c6e1 # 08:09 0- 66 fwnode_remove_dependency_parser # extra tests on tree/branch linus/master git bisect good f760b87f8f12eb262f14603e65042996fe03720e # 08:19 66+ 0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net # extra tests on tree/branch next/master git bisect good 2eb62d762a2112579f259903e62ba18d16c51f66 # 08:27 66+ 0 Add linux-next specific files for 20150713 This script may reproduce the error. ---------------------------------------------------------------------------- #!/bin/bash kernel=$1 initrd=yocto-minimal-x86_64.cgz wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd kvm=( qemu-system-x86_64 -enable-kvm -cpu Haswell,+smep,+smap -kernel $kernel -initrd $initrd -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