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, 6 May 2012 08:38:14 -0700
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	linux-kernel@...r.kernel.org
Cc:	tj@...nel.org
Subject: Warning in worker_enter_idle()

Hello!

The worker_enter_idle() is complaining that there all workers are idle,
but that there is work remaining:

	/* sanity check nr_running */
	WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle &&
		     atomic_read(get_gcwq_nr_running(gcwq->cpu)));

This is running on Power, .config attached.  I must confess that I don't
see any sort of synchronization or memory barriers that would keep the
counts straight on a weakly ordered system.  Or is there some clever
design constraint that prevents worker_enter_idle() from accessing other
CPUs' gcwq_nr_running variables?

							Thanx, Paul

[ 1773.881934] ------------[ cut here ]------------
[ 1773.881954] WARNING: at kernel/workqueue.c:1215
[ 1773.881963] Modules linked in: rcutorture ipv6 dm_mirror dm_region_hash dm_log ses enclosure ehea ext3 jbd mbcache sg sd_mod crc_t10dif ipr radeon drm_kms_helper ttm drm hwmon i2c_algo_bit i2c_core power_supply dm_mod [last unloaded: scsi_wait_scan]
[ 1773.882068] NIP: c00000000009b0f8 LR: c00000000009b124 CTR: c0000000000621b0
[ 1773.882083] REGS: c0000003cacf7b00 TRAP: 0700   Not tainted  (3.4.0-rc4-autokern1)
[ 1773.882095] MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI>  CR: 28000044  XER: 00000020
[ 1773.882135] SOFTE: 0
[ 1773.882142] CFAR: c00000000009b068
[ 1773.882151] TASK = c0000003c6fdcff0[30348] 'kworker/5:1' THREAD: c0000003cacf4000 CPU: 5
[ 1773.882166] GPR00: 0000000000000001 c0000003cacf7d80 c000000000e7e7e8 0000000000000000 
[ 1773.882193] GPR04: 0000000000000000 c0000001d609f798 0000000000000000 0000000000000000 
[ 1773.882220] GPR08: 0000000000000000 c000000000dc6c04 0000000000000002 c0000000011b5b00 
[ 1773.882247] GPR12: 0000000000000002 c00000000f550f00 0000000001a5fa78 00000000020c9400 
[ 1773.882274] GPR16: 0000000003300000 000000000021eeef 000000000021f19b 000000000021f064 
[ 1773.882301] GPR20: 0000000000220000 c0000003c94cfbd0 0000000000000000 0000000000000000 
[ 1773.882327] GPR24: 0000000000000001 0000000000000001 0000000000000000 c0000000011a4208 
[ 1773.882354] GPR28: c000000000ec2580 c0000003c9fe4900 c000000000e09430 c0000000011a4200 
[ 1773.882391] NIP [c00000000009b0f8] .worker_enter_idle+0x158/0x1b0
[ 1773.882404] LR [c00000000009b124] .worker_enter_idle+0x184/0x1b0
[ 1773.882415] Call Trace:
[ 1773.882424] [c0000003cacf7d80] [c00000000009b124] .worker_enter_idle+0x184/0x1b0 (unreliable)
[ 1773.882444] [c0000003cacf7e10] [c00000000009fb08] .worker_thread+0x238/0x460
[ 1773.882462] [c0000003cacf7ed0] [c0000000000a992c] .kthread+0xbc/0xd0
[ 1773.882479] [c0000003cacf7f90] [c0000000000216e4] .kernel_thread+0x54/0x70
[ 1773.882493] Instruction dump:
[ 1773.882502] e97e8010 78091f24 e81e8008 7d2b482a 7c004a14 7c0b0378 800b0000 2f800000 
[ 1773.882536] 419eff88 e93e8030 88090003 68000001 <0b000000> 2fa00000 41feff70 38000001 
[ 1773.882569] ---[ end trace 5e41f99db128c10a ]---

View attachment ".config" of type "text/plain" (86246 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ