Web lists-archives.com

Re: [sched/core] 8a8c69c327: WARNING: CPU: 0 PID: 8 at kernel/locking/lockdep.c:3548 lock_release




2017-03-17 21:02 GMT+08:00 Wanpeng Li <kernellwp@xxxxxxxxx>:
> 2017-03-17 4:02 GMT+08:00 kernel test robot <fengguang.wu@xxxxxxxxx>:
>> 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 sched/core
>>
>> commit 8a8c69c32778865affcedc2111bb5d938b50516f
>> Author:     Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>> AuthorDate: Tue Oct 4 16:04:35 2016 +0200
>> Commit:     Ingo Molnar <mingo@xxxxxxxxxx>
>> CommitDate: Thu Mar 16 09:46:22 2017 +0100
>>
>>     sched/core: Add rq->lock wrappers
>>
>>     The missing update_rq_clock() check can work with partial rq->lock
>>     wrappery, since a missing wrapper can cause the warning to not be
>>     emitted when it should have, but cannot cause the warning to trigger
>>     when it should not have.
>>
>>     The duplicate update_rq_clock() check however can cause false warnings
>>     to trigger. Therefore add more comprehensive rq->lock wrappery.
>>
>>     Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
>>     Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>>     Cc: Mike Galbraith <efault@xxxxxx>
>>     Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>>     Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>     Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>
> Please refer to: https://lkml.org/lkml/2017/3/16/1131

I have another version of patch which utilizes raw_spin_lock_irqsave()
instead of rq_lock_irqsave() in __balance_callback() as before, which
one do you like, Peterz?

Regards,
Wanpeng Li

>
> Regards,
> Wanpeng Li
>
>>
>> 26ae58d23b  sched/core: Add WARNING for multiple update_rq_clock() calls
>> 8a8c69c327  sched/core: Add rq->lock wrappers
>> 15ff991e80  sched/core: Avoid double update_rq_clock() in move_queued_task()
>> 69f0dcef5b  Merge branch 'timers/urgent'
>> +------------------------------------------------------+------------+------------+------------+------------+
>> |                                                      | 26ae58d23b | 8a8c69c327 | 15ff991e80 | 69f0dcef5b |
>> +------------------------------------------------------+------------+------------+------------+------------+
>> | boot_successes                                       | 39         | 6          | 7          | 5          |
>> | boot_failures                                        | 0          | 10         | 9          | 9          |
>> | WARNING:at_kernel/locking/lockdep.c:#lock_release    | 0          | 10         | 9          | 9          |
>> | WARNING:at_kernel/locking/lockdep.c:#lock_unpin_lock | 0          | 10         | 9          | 9          |
>> +------------------------------------------------------+------------+------------+------------+------------+
>>
>> [main] Setsockopt(1 28 68b000 4) on fd 376 [16:3:0]
>> [main] Setsockopt(1 b 68b000 fc) on fd 377 [1:2:1]
>> [main] Setsockopt(1 e 68b000 f2) on fd 381 [1:2:1]
>> [main] 375 sockets created based on info from socket cachefile.
>> [   17.557099] ------------[ cut here ]------------
>> [   17.557589] WARNING: CPU: 0 PID: 8 at kernel/locking/lockdep.c:3548 lock_release+0x302/0x550
>> [   17.558684] releasing a pinned lock
>> [   17.559073] Modules linked in:
>> [   17.559412] CPU: 0 PID: 8 Comm: rcu_sched Not tainted 4.11.0-rc2-00217-g8a8c69c #5
>> [   17.560228] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
>> [   17.561316] Call Trace:
>> [   17.561590]  dump_stack+0x86/0xc1
>> [   17.561946]  __warn+0xbb/0xe0
>> [   17.562259]  ? push_rt_task+0xec/0x2b0
>> [   17.562649]  warn_slowpath_fmt+0x4a/0x50
>> [   17.563062]  ? sched_clock+0x9/0x10
>> [   17.563426]  lock_release+0x302/0x550
>> [   17.563807]  _raw_spin_unlock+0x1a/0x40
>> [   17.564213]  push_rt_task+0xec/0x2b0
>> [   17.564585]  push_rt_tasks+0x10/0x20
>> [   17.564969]  __balance_callback+0x7e/0x90
>> [   17.565403]  __schedule+0x55d/0x660
>> [   17.565784]  schedule+0x23/0x40
>> [   17.566136]  rcu_gp_kthread+0xae/0xa50
>> [   17.566544]  kthread+0x125/0x130
>> [   17.566904]  ? force_qs_rnp+0x1f0/0x1f0
>> [   17.567320]  ? __kthread_bind_mask+0x70/0x70
>> [   17.567780]  ret_from_fork+0x31/0x40
>> [   17.568190] ---[ end trace a3dc39f9b76a0708 ]---
>> [   17.568764] ------------[ cut here ]------------
>> [   17.568764] ------------[ cut here ]------------
>> [   17.569251] WARNING: CPU: 0 PID: 8 at kernel/locking/lockdep.c:3670 lock_unpin_lock+0xcd/0x140
>> [   17.570311] unpinning an unpinned lock
>> [   17.570696] Modules linked in:
>> [   17.571022] CPU: 0 PID: 8 Comm: rcu_sched Tainted: G        W       4.11.0-rc2-00217-g8a8c69c #5
>> [   17.571933] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
>> [   17.573011] Call Trace:
>> [   17.573284]  dump_stack+0x86/0xc1
>> [   17.573644]  __warn+0xbb/0xe0
>> [   17.573975]  warn_slowpath_fmt+0x4a/0x50
>> [   17.574398]  lock_unpin_lock+0xcd/0x140
>> [   17.574811]  __balance_callback+0x55/0x90
>> [   17.575241]  __schedule+0x55d/0x660
>> [   17.575604]  schedule+0x23/0x40
>> [   17.575939]  rcu_gp_kthread+0xae/0xa50
>> [   17.576327]  kthread+0x125/0x130
>> [   17.576663]  ? force_qs_rnp+0x1f0/0x1f0
>> [   17.577064]  ? __kthread_bind_mask+0x70/0x70
>> [   17.577503]  ret_from_fork+0x31/0x40
>> [   17.577885] ---[ end trace a3dc39f9b76a0709 ]---
>> [main] Generating file descriptors
>>
>>                                                          # HH:MM RESULT GOOD BAD GOOD_BUT_DIRTY DIRTY_NOT_BAD
>> git bisect start 6b636a485c6caff6e9b24011298eafba3ca2a8ee 4495c08e84729385774601b5146d51d9e5849f81 --
>> git bisect  bad 55bc6d7f980cff4f3c64a8bb68dbcc8f21bf6c6d  # 01:11  B      0    12   23   0  Merge 'input/master' into devel-spot-201703162058
>> git bisect  bad b5a68e900a6fef3d4bfba66492870fc8a9716b29  # 01:31  B      0     1   12   0  Merge 'usb/usb-testing' into devel-spot-201703162058
>> git bisect  bad fc33633bf286c6dd7034b68da01d29734b597494  # 01:41  B      3     8    0   2  Merge 'pza/imx-drm/next' into devel-spot-201703162058
>> git bisect  bad 90e002d71f66656e07086db304de3cc47db8f648  # 02:00  B      3     9    0   0  Merge 'tip/sched/core' into devel-spot-201703162058
>> git bisect good 656fda9ce4b5c22bc3dc0d5f02d49413aa8b6d13  # 02:10  G     12     0    0   0  Merge 'tip/locking/urgent' into devel-spot-201703162058
>> git bisect good 501434c37e631976e649a83a7c931e0f326ce580  # 02:20  G     12     0    0   0  Merge 'tip/x86/mm' into devel-spot-201703162058
>> git bisect good a911686589f1804905e99a290e7505e2b77b57d5  # 02:34  G     12     0    0   0  Merge 'tip/sched/urgent' into devel-spot-201703162058
>> git bisect  bad 7134b3e941613dcb959b4b178cc4a35e45cbbc0d  # 02:46  B      3     9    0   0  sched/core: Add ENQUEUE_NOCLOCK to ENQUEUE_RESTORE
>> git bisect good 26ae58d23b94a075ae724fd18783a3773131cfbc  # 02:57  G     12     0    0   0  sched/core: Add WARNING for multiple update_rq_clock() calls
>> git bisect  bad 0a67d1ee30ef1efe6a412b3590e08734902aed43  # 03:09  B      0     8   19   0  sched/core: Add {EN,DE}QUEUE_NOCLOCK flags
>> git bisect  bad 8a8c69c32778865affcedc2111bb5d938b50516f  # 03:18  B      3     4    0   1  sched/core: Add rq->lock wrappers
>> # first bad commit: [8a8c69c32778865affcedc2111bb5d938b50516f] sched/core: Add rq->lock wrappers
>> git bisect good 26ae58d23b94a075ae724fd18783a3773131cfbc  # 03:26  G     33     0    0   0  sched/core: Add WARNING for multiple update_rq_clock() calls
>> # extra tests with CONFIG_DEBUG_INFO_REDUCED
>> git bisect  bad 8a8c69c32778865affcedc2111bb5d938b50516f  # 03:38  B      2     7    0   0  sched/core: Add rq->lock wrappers
>> # extra tests on HEAD of linux-devel/devel-spot-201703162058
>> git bisect  bad 6b636a485c6caff6e9b24011298eafba3ca2a8ee  # 03:38  B      2    13    0   2  0day head guard for 'devel-spot-201703162058'
>> # extra tests on tree/branch tip/sched/core
>> git bisect  bad 15ff991e8047561bb4a4e800ec60f60939be5fd4  # 03:50  B      5     7    0   1  sched/core: Avoid double update_rq_clock() in move_queued_task()
>> # extra tests on tree/branch tip/master
>> git bisect  bad 69f0dcef5b048e05c7dd0818dd746cc2a6840aa1  # 04:02  B      5     9    0   0  Merge branch 'timers/urgent'
>>
>> ---
>> 0-DAY kernel test infrastructure                Open Source Technology Center
>> https://lists.01.org/pipermail/lkp                          Intel Corporation