lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 1 Feb 2015 20:22:35 -0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	Kirill Tkhai <ktkhai@...allels.com>
Cc:	Ingo Molnar <mingo@...nel.org>, LKP <lkp@...org>,
	linux-kernel@...r.kernel.org
Subject: [sched] [ INFO: suspicious RCU usage. ]

Hi Kirill,

FYI the RCU warning shows up since this commit, however there are
several other BUGs, so it's not necessarily a problem of this patch.

commit eeb61e53ea19be0c4015b00b2e8b3b2185436f2b
Author:     Kirill Tkhai <ktkhai@...allels.com>
AuthorDate: Mon Oct 27 14:18:25 2014 +0400
Commit:     Ingo Molnar <mingo@...nel.org>
CommitDate: Tue Oct 28 10:45:59 2014 +0100

    sched: Fix race between task_group and sched_task_group
    
    The race may happen when somebody is changing task_group of a forking task.
    Child's cgroup is the same as parent's after dup_task_struct() (there just
    memory copying). Also, cfs_rq and rt_rq are the same as parent's.
    
    But if parent changes its task_group before it's called cgroup_post_fork(),
    we do not reflect this situation on child. Child's cfs_rq and rt_rq remain
    the same, while child's task_group changes in cgroup_post_fork().
    
    To fix this we introduce fork() method, which calls sched_move_task() directly.
    This function changes sched_task_group on appropriate (also its logic has
    no problem with freshly created tasks, so we shouldn't introduce something
    special; we are able just to use it).
    
    Possibly, this decides the Burke Libbey's problem: https://lkml.org/lkml/2014/10/24/456
    
    Signed-off-by: Kirill Tkhai <ktkhai@...allels.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
    Cc: Linus Torvalds <torvalds@...ux-foundation.org>
    Link: http://lkml.kernel.org/r/1414405105.19914.169.camel@tkhai
    Signed-off-by: Ingo Molnar <mingo@...nel.org>

===================================================
PARENT COMMIT NOT CLEAN. LOOK OUT FOR WRONG BISECT!
===================================================

Attached dmesg for the parent commit, too, to help confirm whether it is a noise error.

+--------------------------------------------------------+------------+------------+------------+
|                                                        | xfs-for-li | eeb61e53ea | 28ff344e1d |
+--------------------------------------------------------+------------+------------+------------+
| boot_successes                                         | 0          | 0          | 0          |
| boot_failures                                          | 60         | 20         | 11         |
| WARNING:at_include/linux/kref.h:#kobject_get()         | 60         | 20         | 11         |
| WARNING:at_fs/kernfs/dir.c:#kernfs_remove_by_name_ns() | 1          | 1          | 1          |
| BUG:unable_to_handle_kernel                            | 59         | 20         | 11         |
| Oops                                                   | 59         | 20         | 11         |
| RIP:string                                             | 1          | 1          | 1          |
| Kernel_panic-not_syncing:Fatal_exception               | 59         | 20         | 11         |
| backtrace:platform_driver_unregister                   | 60         | 20         | 11         |
| backtrace:init_mac80211_hwsim                          | 60         | 20         | 11         |
| backtrace:kernel_init_freeable                         | 60         | 20         | 11         |
| backtrace:bus_register                                 | 1          | 1          | 1          |
| backtrace:i2o_driver_init                              | 1          | 1          | 1          |
| backtrace:i2o_iop_init                                 | 1          | 1          | 1          |
| INFO:trying_to_register_non-static_key                 | 59         | 18         | 10         |
| RIP:mutex_lock_nested                                  | 58         | 18         | 10         |
| INFO:rcu_sched_detected_stalls_on_CPUs/tasks           | 1          |            |            |
| INFO:task_blocked_for_more_than#seconds                | 1          |            |            |
| INFO:lockdep_is_turned_off                             | 1          |            |            |
| RIP:native_apic_mem_write                              | 1          |            |            |
| RIP:rep_nop                                            | 1          |            |            |
| Kernel_panic-not_syncing:hung_task:blocked_tasks       | 1          |            |            |
| backtrace:ring_buffer_producer_thread                  | 1          |            |            |
| backtrace:watchdog                                     | 1          |            |            |
| INFO:suspicious_RCU_usage                              | 0          | 20         | 11         |
| WARNING:at_kernel/locking/lockdep.c:#__bfs()           | 0          | 1          |            |
| RIP:__bfs                                              | 0          | 1          |            |
| backtrace:do_fork                                      | 0          | 20         | 11         |
+--------------------------------------------------------+------------+------------+------------+

[    0.014295] debug: unmapping init [mem 0xffffffff82820000-0xffffffff82823fff]
[    0.017254] 
[    0.017433] ===============================
[    0.017885] [ INFO: suspicious RCU usage. ]
[    0.018000] 3.18.0-rc2-00001-geeb61e5 #6 Not tainted
[    0.018000] -------------------------------
[    0.018000] kernel/sched/core.c:7408 suspicious rcu_dereference_check() usage!
[    0.018000] 
[    0.018000] other info that might help us debug this:
[    0.018000] 
[    0.018000] 
[    0.018000] rcu_scheduler_active = 1, debug_locks = 1
[    0.018000] 2 locks held by swapper/0/0:
[    0.018000]  #0:  (&p->pi_lock){......}, at: [<ffffffff810dbbdf>] task_rq_lock+0x38/0xe7
[    0.018000]  #1:  (&rq->lock){-.....}, at: [<ffffffff810dbbfa>] task_rq_lock+0x53/0xe7
[    0.018000] 
[    0.018000] stack backtrace:
[    0.018000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-rc2-00001-geeb61e5 #6
[    0.018000] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.018000]  0000000000000001 ffffffff82403cc8 ffffffff81b9e83f ffffffff82425580
[    0.018000]  0000000000000001 ffffffff82403cf8 ffffffff810f3d12 ffff880012068000
[    0.018000]  ffff880012422040 0000000000000000 0000000000000000 ffffffff82403d58
[    0.018000] Call Trace:
[    0.018000]  [<ffffffff81b9e83f>] dump_stack+0x51/0xaa
[    0.018000]  [<ffffffff810f3d12>] lockdep_rcu_suspicious+0xfa/0x103
[    0.018000]  [<ffffffff810e2c04>] sched_move_task+0xe5/0x153
[    0.018000]  [<ffffffff810e2c8f>] cpu_cgroup_fork+0x9/0xb
[    0.018000]  [<ffffffff81131f85>] cgroup_post_fork+0x9b/0xaa
[    0.018000]  [<ffffffff810ba1f0>] copy_process+0x178a/0x18bf
[    0.018000]  [<ffffffff81b9776c>] ? rest_init+0x130/0x130
[    0.018000]  [<ffffffff8119f86c>] ? vm_unmap_aliases+0x196/0x1a5
[    0.018000]  [<ffffffff810ba4ff>] do_fork+0xec/0x3e1
[    0.018000]  [<ffffffff81b9776c>] ? rest_init+0x130/0x130
[    0.018000]  [<ffffffff810ba815>] kernel_thread+0x21/0x23
[    0.018000]  [<ffffffff81b9765a>] rest_init+0x1e/0x130
[    0.018000]  [<ffffffff82728f3c>] start_kernel+0x433/0x440
[    0.018000]  [<ffffffff82728120>] ? early_idt_handlers+0x120/0x120
[    0.018000]  [<ffffffff827284cb>] x86_64_start_reservations+0x2a/0x2c
[    0.018000]  [<ffffffff82728608>] x86_64_start_kernel+0x13b/0x14a
[    0.018079] Getting VERSION: 1050014
[    0.019012] Getting VERSION: 1050014
[    0.019403] Getting ID: 0

git bisect start 5e62863aea463c9bf24538315327d0922be35d64 v3.17 --
git bisect good f207671f402b9aa7367ee21dbab2e450d16c9d7e  # 01:43     20+     20  staging: unisys: refactor ULTRA_DIAG_CHANNEL_PROTOCOL
git bisect good 7c0496d19159df8b5a537154194a75dcdfca873a  # 01:50     20+     20  staging: vt6655: mac80211 conversion: s_vFillRTSHead convert to using struct ieee80211_hdr
git bisect  bad 33192fa1d173b91ba98c29cb8ab414c76ae3ff0b  # 01:53      0-     20  staging: unisys: refactor VISORCHIPSET_BUS_INFO
git bisect good 146761058f63d8530d150bef00c1d3daaa53dbba  # 01:58     20+     20  staging: vt6655: struct vnt_private remove dead members
git bisect good 037a449ac71fc5c70d2b0af28ce6792065daae55  # 02:04     20+     20  staging: rtl8188eu: os_dep: Remove useless cast on void pointer
git bisect good 425ebd0aa35dcfc5fe2449ef3e1194e422f6f9b4  # 02:14     20+     20  staging: unisys: virtpci: Add a blank line after the definition of driver_private
git bisect good 9056be30542bfff51190bdda67088f319cf4c9f5  # 02:20     20+     20  Staging: lustre: lnet: lnet: Better cookie gen
git bisect  bad 2c683cde06c1d57a9ecbacc484540e259e7255fa  # 02:26      0-     20  staging: unisys: refactor CRASH_OBJ_TYPE
git bisect  bad 37951dabd899587afc31ddd508b9cdddc9c24524  # 02:33      0-     20  staging: unisys: get rid of VISORCHIPSET_STATE typedef
git bisect  bad 7cbe010a5ea728d7c4440b11a1a3997faca0e46d  # 02:40      0-     20  Merge 3.18-rc3 into staging-next
git bisect good f7e87a44ef60ad379e39b45437604141453bf0ec  # 02:48     20+     20  Merge tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
git bisect  bad 89453379aaf0608253124057df6cd8ac63948135  # 02:56      0-     20  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
git bisect  bad 19e0d5f16ad9759d92f5739b53acdebfe22fa2a2  # 03:04      0-     20  Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good 94712927d06c19b785bae92db07ef84b89f156c8  # 03:11     20+     20  Merge tag 'sound-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect good aea4869f68b5869afbb308bfb7d777d725df8900  # 03:14     20+     20  Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good 5656b408ff2696551c0f572689edcad3113e3a32  # 03:17     20+     20  Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good d1cd1210834649ce1ca6bafe5ac25d2f40331343  # 03:31     20+     20  x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE
git bisect  bad 2847c90e1b3ae95379af24894fc4f98e7f2fd705  # 03:34      0-     20  sched/fair: Care divide error in update_task_scan_period()
git bisect  bad 64be6f1f5f710f5995d41caf8a1767fe6d2b5a87  # 03:37      0-     20  sched/deadline: Don't replenish from a !SCHED_DEADLINE entity
git bisect  bad eeb61e53ea19be0c4015b00b2e8b3b2185436f2b  # 03:39      0-     20  sched: Fix race between task_group and sched_task_group
# first bad commit: [eeb61e53ea19be0c4015b00b2e8b3b2185436f2b] sched: Fix race between task_group and sched_task_group
git bisect good cac7f2429872d3733dc3f9915857b1691da2eb2f  # 03:45     60+     60  Linux 3.18-rc2
# extra tests with DEBUG_INFO
git bisect good eeb61e53ea19be0c4015b00b2e8b3b2185436f2b  # 03:52     60+     49  sched: Fix race between task_group and sched_task_group
# extra tests on HEAD of next/master
git bisect good 827e3bdf1bb2401c1a1e5586eb3977d228d298b2  # 03:59     60+      0  Add linux-next specific files for 20150130
# extra tests on tree/branch linus/master
git bisect  bad 788807d7ca3821b5ea835a588a52d55631c17e18  # 04:01     58-      3  Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
# extra tests with first bad commit reverted
# extra tests on tree/branch linus/master
git bisect  bad 788807d7ca3821b5ea835a588a52d55631c17e18  # 04:03      0-      3  Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
# extra tests on tree/branch next/master
git bisect  bad 827e3bdf1bb2401c1a1e5586eb3977d228d298b2  # 04:07    295-     40  Add linux-next specific files for 20150130


This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1
initrd=quantal-core-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 320
	-smp 2
	-net nic,vlan=1,model=e1000
	-net user,vlan=1
	-boot order=nc
	-no-reboot
	-watchdog i6300esb
	-rtc base=localtime
	-serial stdio
	-display none
	-monitor null 
)

append=(
	hung_task_panic=1
	earlyprintk=ttyS0,115200
	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[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

View attachment "dmesg-quantal-kbuild-26:20150202033610:x86_64-randconfig-c2-0201:3.18.0-rc2-00001-geeb61e5:6" of type "text/plain" (51742 bytes)

View attachment "dmesg-quantal-ivb41-102:20150202034009:x86_64-randconfig-c2-0201:3.18.0-rc2:7" of type "text/plain" (51038 bytes)

View attachment "config-3.18.0-rc2-00001-geeb61e5" of type "text/plain" (85583 bytes)

_______________________________________________
LKP mailing list
LKP@...ux.intel.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ