virtio_balloon: don't softlockup on huge balloon changes.
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 13 Mar 2014 00:53:38 +0000 (11:23 +1030)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 May 2014 11:59:41 +0000 (13:59 +0200)
commit16440b5497cb3882d45b291147dbd61eb4951015
treec028e012f4ca306537f406d4dc21146b7f22cf7f
parenta93daee35a6d511e71f19c7227c64a9dc2c3e273
virtio_balloon: don't softlockup on huge balloon changes.

commit 1f74ef0f2d7d692fcd615621e0e734c3e7771413 upstream.

When adding or removing 100G from a balloon:

    BUG: soft lockup - CPU#0 stuck for 22s! [vballoon:367]

We have a wait_event_interruptible(), but the condition is always true
(more ballooning to do) so we don't ever sleep.  We also have a
wait_event() for the host to ack, but that is also always true as QEMU
is synchronous for balloon operations.

Reported-by: Gopesh Kumar Chaudhary <gopchaud@in.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/virtio/virtio_balloon.c