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 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 ]---