]> git.baikalelectronics.ru Git - kernel.git/commit
vgacon.c: add cond reschedule points in vgacon_do_font_op
authorMarcelo Tosatti <mtosatti@redhat.com>
Thu, 20 Jun 2013 21:05:56 +0000 (18:05 -0300)
committerDave Airlie <airlied@redhat.com>
Wed, 26 Jun 2013 06:27:55 +0000 (16:27 +1000)
commite42923efe39e0847ed6e5bb7e6cd23aa2f45d08d
treeb9a2ea68e5455051856b3bf6693cd548d435a0ec
parent049b1fa64c50f76c56e8df17e5ae608d6ba741de
vgacon.c: add cond reschedule points in vgacon_do_font_op

Booting a 64-vcpu KVM guest, with CONFIG_PREEMPT_VOLUNTARY,
can result in a soft lockup:

BUG: soft lockup - CPU#41 stuck for 67s! [setfont:1505]
 RIP: 0010:[<ffffffff812c48da>]
[<ffffffff812c48da>] vgacon_do_font_op.clone.0+0x1ba/0x550

This is due to the 8192 (cmapsz) IO operations taking longer than expected
due to lock contention in QEMU.

Add conditional resched points in between writes allowing other tasks to
execute.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/video/console/vgacon.c