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)
commit7e6d72c15ff4cc0c27573901bb05f9eddbd71ed4
treeb9a2ea68e5455051856b3bf6693cd548d435a0ec
parent5cef29aa5227e6347145940a7bccde92fd9a1afa
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