[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150112232217.GA5277@wfg-t540p.sh.intel.com>
Date: Mon, 12 Jan 2015 15:22:17 -0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Thomas Graf <tgraf@...g.ch>
Cc: LKP <lkp@...org>, linux-kernel@...r.kernel.org,
netfilter-devel@...r.kernel.org, coreteam@...filter.org,
netdev@...r.kernel.org
Subject: [rhashtable] WARNING: CPU: 0 PID: 1 at lib/debugobjects.c:301
__debug_object_init()
Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
commit 97defe1ecf868b8127f8e62395499d6a06e4c4b1
Author: Thomas Graf <tgraf@...g.ch>
AuthorDate: Fri Jan 2 23:00:20 2015 +0100
Commit: David S. Miller <davem@...emloft.net>
CommitDate: Sat Jan 3 14:32:57 2015 -0500
rhashtable: Per bucket locks & deferred expansion/shrinking
Introduces an array of spinlocks to protect bucket mutations. The number
of spinlocks per CPU is configurable and selected based on the hash of
the bucket. This allows for parallel insertions and removals of entries
which do not share a lock.
The patch also defers expansion and shrinking to a worker queue which
allows insertion and removal from atomic context. Insertions and
deletions may occur in parallel to it and are only held up briefly
while the particular bucket is linked or unzipped.
Mutations of the bucket table pointer is protected by a new mutex, read
access is RCU protected.
In the event of an expansion or shrinking, the new bucket table allocated
is exposed as a so called future table as soon as the resize process
starts. Lookups, deletions, and insertions will briefly use both tables.
The future table becomes the main table after an RCU grace period and
initial linking of the old to the new table was performed. Optimization
of the chains to make use of the new number of buckets follows only the
new table is in use.
The side effect of this is that during that RCU grace period, a bucket
traversal using any rht_for_each() variant on the main table will not see
any insertions performed during the RCU grace period which would at that
point land in the future table. The lookup will see them as it searches
both tables if needed.
Having multiple insertions and removals occur in parallel requires nelems
to become an atomic counter.
Signed-off-by: Thomas Graf <tgraf@...g.ch>
Signed-off-by: David S. Miller <davem@...emloft.net>
+------------------------------------------------------------+------------+------------+------------+
| | 113948d841 | 97defe1ecf | 8612706f4f |
+------------------------------------------------------------+------------+------------+------------+
| boot_successes | 60 | 0 | 0 |
| boot_failures | 0 | 20 | 14 |
| WARNING:at_lib/debugobjects.c:#__debug_object_init() | 0 | 20 | 14 |
| BUG:spinlock_recursion_on_CPU | 0 | 20 | 10 |
| backtrace:__debug_object_init | 0 | 20 | 14 |
| backtrace:warn_slowpath_null | 0 | 20 | 14 |
| backtrace:debug_object_init | 0 | 20 | 14 |
| backtrace:__init_work | 0 | 20 | 14 |
| backtrace:rhashtable_init | 0 | 20 | 14 |
| backtrace:test_rht_init | 0 | 20 | 14 |
| backtrace:kernel_init_freeable | 0 | 20 | 14 |
| backtrace:rhashtable_shrink | 0 | 20 | 10 |
| WARNING:at_kernel/locking/mutex.c:#__mutex_lock_slowpath() | 0 | 0 | 4 |
| BUG:unable_to_handle_kernel | 0 | 0 | 4 |
| Oops | 0 | 0 | 4 |
| EIP_is_at__mutex_lock_slowpath | 0 | 0 | 4 |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 0 | 4 |
| backtrace:__alloc_workqueue_key | 0 | 0 | 4 |
| backtrace:devfreq_init | 0 | 0 | 4 |
+------------------------------------------------------------+------------+------------+------------+
[ 0.085212] Running resizable hashtable tests...
[ 0.086011] ODEBUG: object is on stack, but not annotated
[ 0.087000] ------------[ cut here ]------------
[ 0.087000] WARNING: CPU: 0 PID: 1 at lib/debugobjects.c:301 __debug_object_init+0x360/0x800()
[ 0.087000] Modules linked in:
[ 0.087000] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-rc2-g97defe1 #165
[ 0.087000] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
[ 0.087000] c1a32d38 d345bd78 c190a4cf 00000000 d345bd94 c10ad67f 0000012d c1573500
[ 0.087000] d340f8b8 00020ff8 00000000 d345bda4 c10ad71b 00000009 00000000 d345bdf4
[ 0.087000] c1573500 00000000 c1f2e178 00020ff8 c1af0404 00000246 c1f2e17c d3401b80
[ 0.087000] Call Trace:
[ 0.087000] [<c190a4cf>] dump_stack+0xb8/0x108
[ 0.087000] [<c10ad67f>] warn_slowpath_common+0xbf/0x130
[ 0.087000] [<c1573500>] ? __debug_object_init+0x360/0x800
[ 0.087000] [<c10ad71b>] warn_slowpath_null+0x2b/0x40
[ 0.087000] [<c1573500>] __debug_object_init+0x360/0x800
[ 0.087000] [<c1573b08>] debug_object_init+0x38/0x50
[ 0.087000] [<c10d063f>] __init_work+0x1f/0x60
[ 0.087000] [<c156a742>] rhashtable_init+0x182/0x320
[ 0.087000] [<c1c57df1>] test_rht_init+0x98/0x5ac
[ 0.087000] [<c1569890>] ? percpu_ida_alloc+0x790/0x790
[ 0.087000] [<c1569ac0>] ? jhash+0x230/0x230
[ 0.087000] [<c1569af0>] ? rht_grow_above_75+0x30/0x30
[ 0.087000] [<c1569890>] ? percpu_ida_alloc+0x790/0x790
[ 0.087000] [<c1569ac0>] ? jhash+0x230/0x230
[ 0.087000] [<c1569af0>] ? rht_grow_above_75+0x30/0x30
[ 0.087000] [<c1c57d59>] ? test_rht_lookup+0x14e/0x14e
[ 0.087000] [<c1002216>] do_one_initcall+0x156/0x370
[ 0.087000] [<c1c13973>] kernel_init_freeable+0x250/0x3be
[ 0.087000] [<c1c13973>] ? kernel_init_freeable+0x250/0x3be
[ 0.087000] [<c1902626>] kernel_init+0x16/0x1f0
[ 0.087000] [<c191aac1>] ret_from_kernel_thread+0x21/0x30
[ 0.087000] [<c1902610>] ? rest_init+0x110/0x110
[ 0.087000] ---[ end trace 45e4f826b261d700 ]---
[ 0.087020] Adding 2048 keys
git bisect start 8612706f4f900bcc81f501f1d13bb941f51582fc eaa27f34e91a14cdceed26ed6c6793ec1d186115 --
git bisect good 5325f692af09eeda50cb631780f94664ff7d04a5 # 12:00 20+ 0 Merge 'shawnguo/for-next' into devel-cairo-smoke-201501121104
git bisect good 448b0537d597c640b00c31d9b6abcca6e8118697 # 12:44 20+ 0 Merge 'net/master' into devel-cairo-smoke-201501121104
git bisect bad 31fe3755784634a274e3ca7a599c36b4aab6a03f # 13:08 0- 20 Merge 'net-next/master' into devel-cairo-smoke-201501121104
git bisect good 3adc0becfec27cd582506b778df65d7c237e3215 # 14:06 20+ 0 net: ethernet: cisco: enic: enic_dev: Remove some unused functions
git bisect bad d4253c6258912057b33190a113d490f295c93352 # 14:17 0- 20 Merge branch 'ip_cmsg_csum'
git bisect good dd9553988879a3ff71a86323b88409e7631c4e5d # 15:12 20+ 0 Merge branch 'timecounter-next'
git bisect bad 3f255dcc970aede74463d863c9cf3cd9fb9146e3 # 15:33 0- 3 enic: reconfigure resources for kdump crash kernel
git bisect bad f89bd6f87a53ce5a7d60662429591ebac2745c10 # 15:48 0- 5 rhashtable: Supports for nulls marker
git bisect good b8e1943e9f754219bcfb40bac4a605b5348acb25 # 16:19 20+ 0 rhashtable: Factor out bucket_tail() function
git bisect good 113948d841e8d78039e5dbbb5248f5b73e99eafa # 16:54 20+ 0 spinlock: Add spin_lock_bh_nested()
git bisect bad 97defe1ecf868b8127f8e62395499d6a06e4c4b1 # 17:16 0- 20 rhashtable: Per bucket locks & deferred expansion/shrinking
# first bad commit: [97defe1ecf868b8127f8e62395499d6a06e4c4b1] rhashtable: Per bucket locks & deferred expansion/shrinking
git bisect good 113948d841e8d78039e5dbbb5248f5b73e99eafa # 17:18 60+ 0 spinlock: Add spin_lock_bh_nested()
# extra tests with DEBUG_INFO
git bisect bad 97defe1ecf868b8127f8e62395499d6a06e4c4b1 # 17:25 0- 60 rhashtable: Per bucket locks & deferred expansion/shrinking
# extra tests on HEAD of linux-devel/devel-cairo-smoke-201501121104
git bisect bad 8612706f4f900bcc81f501f1d13bb941f51582fc # 17:25 0- 14 0day head guard for 'devel-cairo-smoke-201501121104'
# extra tests on tree/branch next/master
git bisect bad 442e3e668110eb2590df305463856ba6553dbd24 # 17:58 0- 52 Add linux-next specific files for 20150112
# extra tests on tree/branch linus/master
git bisect good eaa27f34e91a14cdceed26ed6c6793ec1d186115 # 17:59 60+ 0 linux 3.19-rc4
# extra tests on tree/branch next/master
git bisect bad 442e3e668110eb2590df305463856ba6553dbd24 # 17:59 0- 60 Add linux-next specific files for 20150112
This script may reproduce the error.
----------------------------------------------------------------------------
#!/bin/bash
kernel=$1
kvm=(
qemu-system-x86_64
-cpu kvm64
-enable-kvm
-kernel $kernel
-m 320
-smp 1
-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-yocto-ivb41-62:20150112171501:i386-randconfig-c0-01120918:3.19.0-rc2-g97defe1:165" of type "text/plain" (32260 bytes)
View attachment "config-3.19.0-rc2-g97defe1" of type "text/plain" (74212 bytes)
_______________________________________________
LKP mailing list
LKP@...ux.intel.com
Powered by blists - more mailing lists