[<prev] [next>] [day] [month] [year] [list]
Message-ID: <59ee0349.AAHkFdcy2bleIvnJ%fengguang.wu@intel.com>
Date: Mon, 23 Oct 2017 22:57:13 +0800
From: kernel test robot <fengguang.wu@...el.com>
To: "Anna-Maria Gleixner" <anna-maria@...utronix.de>
Cc: LKP <lkp@...org>, linux-kernel@...r.kernel.org,
Thomas Gleixner <tglx@...utronix.de>, wfg@...ux.intel.com
Subject: 7f6f735b72 ("hrtimer: Implement support for softirq based .."):
BUG: unable to handle kernel NULL pointer dereference at 000000000000003a
Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.timers
commit 7f6f735b72fb372668f6526167a7f6ae4b39ab87
Author: Anna-Maria Gleixner <anna-maria@...utronix.de>
AuthorDate: Sun Oct 22 23:14:28 2017 +0200
Commit: Thomas Gleixner <tglx@...utronix.de>
CommitDate: Sun Oct 22 23:17:59 2017 +0200
hrtimer: Implement support for softirq based hrtimers
hrtimer callbacks are always invoked in hard interrupt context. Several
users in tree require soft interrupt context for their callbacks and
achieve this by combining a hrtimer with a tasklet. The hrtimer schedules
the tasklet in hard interrupt context and the tasklet callback gets invoked
in softirq context later.
That's suboptimal and aside of that the real-time patch moves most of the
hrtimers into softirq context. So adding native support for hrtimers
expiring in softirq context is a valuable extension for both mainline and
the RT patch set.
Each valid hrtimer clock id has two associated hrtimer clock bases: one for
timers expiring in hardirq context and one for timers expiring in softirq
context.
Implement the functionality to associate a hrtimer with the hard or softirq
related clock bases and update the relevant functions to take them into
account when the next expiry time needs to be evaluated.
Add a check into the hard interrupt context handler functions to check
whether the first expiring softirq based timer has expired. If it's expired
the softirq is raised and the accounting of softirq based timers to
evaluate the next expiry time for programming the timer hardware is skipped
until the softirq processing has finished. At the end of the softirq
processing the regular processing is resumed.
Suggested-by: Thomas Gleixner <tglx@...utronix.de>
Suggested-by: Peter Zijlstra <peterz@...radead.org>
Signed-off-by: Anna-Maria Gleixner <anna-maria@...utronix.de>
Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
8c144a95e6 hrtimer: Prepare handling of hard and softirq based hrtimers
7f6f735b72 hrtimer: Implement support for softirq based hrtimers
0f0f9ec319 net/mvpp2: Replace tasklet with softirq hrtimer
c26fc87199 Merge branch 'x86/timers'
+------------------------------------------+------------+------------+------------+------------+
| | 8c144a95e6 | 7f6f735b72 | 0f0f9ec319 | c26fc87199 |
+------------------------------------------+------------+------------+------------+------------+
| boot_successes | 35 | 5 | 6 | 15 |
| boot_failures | 0 | 10 | 11 | |
| BUG:unable_to_handle_kernel | 0 | 10 | 11 | |
| Oops:#[##] | 0 | 10 | 11 | |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 10 | 11 | |
+------------------------------------------+------------+------------+------------+------------+
Kernel tests: Boot OK!
[ 70.624144] rcu-torture: rtc: ffffffff83032180 ver: 1 tfle: 0 rta: 1 rtaf: 0 rtf: 0 rtmbe: 0 rtbe: 0 rtbke: 0 rtbre: 0 rtbf: 0 rtb: 0 nt: 1 barrier: 0/0:0 cbflood: 1
[ 70.626619] rcu-torture: Reader Pipe: 2 0 0 0 0 0 0 0 0 0 0
[ 70.627561] rcu-torture: Reader Batch: 1 1 0 0 0 0 0 0 0 0 0
[ 70.628514] rcu-torture: Free-Block Circulation: 0 0 0 0 0 0 0 0 0 0 0
[ 82.290914] BUG: unable to handle kernel NULL pointer dereference at 000000000000003a
[ 82.292105] IP: __remove_hrtimer+0x57/0x78
[ 82.292703] PGD 1d89a067 P4D 1d89a067 PUD 1d89b067 PMD 0
[ 82.293520] Oops: 0000 [#1] SMP
[ 82.293976] CPU: 0 PID: 1 Comm: init Not tainted 4.14.0-rc5-00291-g7f6f735 #1
[ 82.295180] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 82.296432] task: ffff88001e82c000 task.stack: ffff88001e830000
[ 82.297292] RIP: 0010:__remove_hrtimer+0x57/0x78
[ 82.297999] RSP: 0018:ffff88001e833938 EFLAGS: 00010006
[ 82.298760] RAX: 7fffffffffffffff RBX: ffff88001fbd3480 RCX: 0000000000000000
[ 82.300336] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88001fbd3480
[ 82.301387] RBP: ffff88001e833990 R08: 0000000000000001 R09: 0000000000000001
[ 82.302434] R10: ffff88001ce4bf58 R11: 0000000000000000 R12: ffff88001fbd3500
[ 82.303459] R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000008
[ 82.304506] FS: 00007fa4f814b700(0000) GS:ffff88001fa00000(0000) knlGS:0000000000000000
[ 82.305765] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 82.306594] CR2: 000000000000003a CR3: 000000001d898003 CR4: 00000000000606b0
[ 82.307647] Call Trace:
[ 82.308023] ? hrtimer_try_to_cancel+0x5b/0x73
[ 82.308705] ? hrtimer_cancel+0xc/0x16
[ 82.309260] ? schedule_hrtimeout_range_clock+0xae/0xe0
[ 82.310189] ? __hrtimer_init+0x61/0x61
[ 82.310752] ? poll_schedule_timeout+0x49/0x6f
[ 82.311460] ? do_select+0x644/0x67f
[ 82.311975] ? poll_select_copy_remaining+0x102/0x102
[ 82.312729] ? kvm_clock_read+0x21/0x29
[ 82.313294] ? kvm_sched_clock_read+0x5/0xd
[ 82.313908] ? path_put+0xd/0x16
[ 82.314414] ? kvm_clock_read+0x21/0x29
[ 82.314970] ? kvm_sched_clock_read+0x5/0xd
[ 82.315602] ? core_sys_select+0x308/0x32a
[ 82.316243] ? core_sys_select+0x308/0x32a
[ 82.316846] ? kvm_clock_read+0x21/0x29
[ 82.317440] ? ktime_get_ts64+0xf0/0x1d2
[ 82.318041] ? timespec64_add_safe+0x21/0x53
[ 82.318664] ? SyS_select+0x87/0xac
[ 82.319213] ? entry_SYSCALL_64_fastpath+0x1a/0xaa
[ 82.319908] Code: 41 8b 4c 24 08 b8 fe ff ff ff d3 c0 21 43 4c 45 85 ed 74 31 48 3b 6b 60 75 2b be ff 00 00 00 48 89 df e8 4d ff ff ff 48 8b 53 60 <80> 7a 3a 00 74 0a f6 43 54 04 75 0e 48 89 43 68 48 3b 43 58 74
[ 82.322852] RIP: __remove_hrtimer+0x57/0x78 RSP: ffff88001e833938
[ 82.323756] CR2: 000000000000003a
[ 82.324241] ---[ end trace 6c46455e0ce2f4ae ]---
[ 82.324949] Kernel panic - not syncing: Fatal exception
# HH:MM RESULT GOOD BAD GOOD_BUT_DIRTY DIRTY_NOT_BAD
git bisect start bdec7d089bead958fc8c55dec042551c0e09d73f 33d930e59a98fa10a0db9f56c7fa2f21a4aef9b9 --
git bisect bad 5ac7b496116bfc62a6f298b5615c7446ee1eba8e # 13:22 B 0 11 23 0 Merge 'linux-review/Tony-Lindgren/ARM-omap2plus_defconfig-Enable-droid-4-USB-PHY/20171023-080619' into devel-catchup-201710231044
git bisect bad 20ac15b3391ed4edfa3ff0fac31435fe4298d571 # 13:54 B 0 8 21 0 Merge 'linuxtv-media/master' into devel-catchup-201710231044
git bisect good 6ba4995dc7db43bb3c2c47c67800e792fb36eb67 # 15:10 G 11 0 0 0 0day base guard for 'devel-catchup-201710231044'
git bisect bad 95c2294ec24ba4bdba124bb2d35d5efa2e4e5505 # 15:48 B 0 8 20 0 Merge 'tip/WIP.timers' into devel-catchup-201710231044
git bisect good e5f468b3f23313994c5e6c356135f9b0d76bcb94 # 16:33 G 11 0 0 0 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
git bisect good b4562ca7925a3bedada87a3dd072dd5bad043288 # 17:10 G 11 0 0 0 hv_sock: add locking in the open/close/release code paths
git bisect good 66bdede495c71da9c5ce18542976fae53642880b # 18:05 G 11 0 0 0 of_mdio: Fix broken PHY IRQ in case of probe deferral
git bisect good e17227efca7bdeb3b71307e00fe4115107546832 # 18:36 G 11 0 0 0 hrtimer: Make hrtimer_reprogramm() unconditional
git bisect good 8c144a95e66254473eddf3141a96fa9529e42c7a # 19:29 G 11 0 0 0 hrtimer: Prepare handling of hard and softirq based hrtimers
git bisect bad 6a9ff2bc8ac82caff982bdbc94b227078758f4e4 # 19:54 B 0 9 22 0 xfrm: Replace hrtimer tasklet with softirq hrtimer
git bisect bad d40d0a6d1e73e9139d4bd0d629e836a3249380e4 # 20:17 B 0 2 14 0 hrtimer: Implement SOFT/HARD clock base selection
git bisect bad 7f6f735b72fb372668f6526167a7f6ae4b39ab87 # 21:20 B 0 4 18 1 hrtimer: Implement support for softirq based hrtimers
# first bad commit: [7f6f735b72fb372668f6526167a7f6ae4b39ab87] hrtimer: Implement support for softirq based hrtimers
git bisect good 8c144a95e66254473eddf3141a96fa9529e42c7a # 21:44 G 31 0 0 0 hrtimer: Prepare handling of hard and softirq based hrtimers
# extra tests with CONFIG_DEBUG_INFO_REDUCED
git bisect bad 7f6f735b72fb372668f6526167a7f6ae4b39ab87 # 22:03 B 0 2 14 0 hrtimer: Implement support for softirq based hrtimers
# extra tests on HEAD of linux-devel/devel-catchup-201710231044
git bisect bad bdec7d089bead958fc8c55dec042551c0e09d73f # 22:08 B 0 17 37 4 0day head guard for 'devel-catchup-201710231044'
# extra tests on tree/branch tip/WIP.timers
git bisect bad 0f0f9ec319ea27dba44d16c643805821005f4955 # 22:24 B 0 10 22 0 net/mvpp2: Replace tasklet with softirq hrtimer
# extra tests with first bad commit reverted
# extra tests on tree/branch tip/master
git bisect good c26fc87199d8aacca16dfb2c297ee24ce9f74b2f # 22:56 G 11 0 0 0 Merge branch 'x86/timers'
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation
Download attachment "dmesg-yocto-vp-11:20171023203022:x86_64-randconfig-r0-10231140:4.14.0-rc5-00291-g7f6f735:1.gz" of type "application/gzip" (17003 bytes)
View attachment "reproduce-yocto-vp-11:20171023203022:x86_64-randconfig-r0-10231140:4.14.0-rc5-00291-g7f6f735:1" of type "text/plain" (903 bytes)
View attachment "config-4.14.0-rc5-00291-g7f6f735" of type "text/plain" (113920 bytes)
Powered by blists - more mailing lists