[BUG] initcall qxl_init+0x0/0x47 returned with preemption imbalance

From: Dhaval Giani
Date: Mon Apr 28 2014 - 16:06:25 EST


Hi,

I seem to be hitting this on my VM (every reboot).

[ 0.681589] ------------[ cut here ]------------
[ 0.681600] WARNING: CPU: 1 PID: 1 at init/main.c:708
do_one_initcall+0x175/0x180()
[ 0.681617] initcall qxl_init+0x0/0x47 returned with preemption imbalance
[ 0.681618] Modules linked in:
[ 0.681625] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.15.0-rc3+ #3
[ 0.681627] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 0.681629] 0000000000000009 ffff880119a75dc0 ffffffff81856f5c
ffff880119a75e08
[ 0.681632] ffff880119a75df8 ffffffff8108285d 0000000000000000
ffffffff81f9337b
[ 0.681635] 0000000000000000 0000000000000000 0000000000000000
ffff880119a75e58
[ 0.681638] Call Trace:
[ 0.681646] [<ffffffff81856f5c>] dump_stack+0x45/0x56
[ 0.681656] [<ffffffff8108285d>] warn_slowpath_common+0x7d/0xa0
[ 0.681660] [<ffffffff81f9337b>] ? ttm_init+0x67/0x67
[ 0.681664] [<ffffffff810828cc>] warn_slowpath_fmt+0x4c/0x50
[ 0.681667] [<ffffffff81f9337b>] ? ttm_init+0x67/0x67
[ 0.681670] [<ffffffff81f9337b>] ? ttm_init+0x67/0x67
[ 0.681673] [<ffffffff810021e5>] do_one_initcall+0x175/0x180
[ 0.681683] [<ffffffff81f4c0d8>] kernel_init_freeable+0x19b/0x223
[ 0.681687] [<ffffffff81f4b8e5>] ? do_early_param+0x88/0x88
[ 0.681699] [<ffffffff8184ced0>] ? rest_init+0x80/0x80
[ 0.681703] [<ffffffff8184cede>] kernel_init+0xe/0xf0
[ 0.681708] [<ffffffff8186747c>] ret_from_fork+0x7c/0xb0
[ 0.681711] [<ffffffff8184ced0>] ? rest_init+0x80/0x80
[ 0.681717] ---[ end trace 73502b4ce9e2c5a6 ]---

along with
[ 0.688590] BUG: workqueue leaked lock or atomic: kworker/1:1/0x00000003/41
last function: qxl_fb_work
[ 0.688613] CPU: 1 PID: 41 Comm: kworker/1:1 Tainted: G W
3.15.0-rc3+ #3
[ 0.688615] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 0.688618] Workqueue: events qxl_fb_work
[ 0.688620] ffff8800db4e4580 ffff8800db505e20 ffffffff81856f5c
ffff8800d9973b48
[ 0.688623] ffff8800db505e68 ffffffff8109c7e6 000000001fc93b80
0000000000000000
[ 0.688625] ffff88011fc93b80 ffff88011fc93b98 ffff8800db4e45b0
ffff880119542540
[ 0.688628] Call Trace:
[ 0.688634] [<ffffffff81856f5c>] dump_stack+0x45/0x56
[ 0.688639] [<ffffffff8109c7e6>] process_one_work+0x346/0x430
[ 0.688642] [<ffffffff8109d22b>] worker_thread+0x11b/0x3a0
[ 0.688644] [<ffffffff8109d110>] ? rescuer_thread+0x340/0x340
[ 0.688648] [<ffffffff810a3982>] kthread+0xd2/0xf0
[ 0.688652] [<ffffffff810a38b0>] ? insert_kthread_work+0x40/0x40
[ 0.688655] [<ffffffff8186747c>] ret_from_fork+0x7c/0xb0
[ 0.688658] [<ffffffff810a38b0>] ? insert_kthread_work+0x40/0x40

(At least it seems to be a direct result of the premption imbalance earlier)

I have seen this for at least 3.14 as well but I was not paying too
much attention to it.

Attached are dmesg and config.

Thanks!
Dhaval

Attachment: vm.config
Description: Binary data

Attachment: dmesg-wq
Description: Binary data