virtio balloon: do not call blocking ops when !TASK_RUNNING

Michael S. Tsirkin
Thu, 26 Feb 2015 08:30:31 -0000

On Thu, Feb 26, 2015 at 11:50:42AM +1030, Rusty Russell
wrote:
> Thomas Huth <thuth at linux.vnet.ibm.com> writes:
> >  Hi all,
> >
> > with the recent kernel 3.19, I get a kernel warning when I start my
> > KVM guest on s390 with virtio balloon enabled:
>
> The deeper problem is that virtio_ccw_get_config just silently fails on
> OOM.
>
> Neither get_config nor set_config are expected to fail.
>
> Cornelia, I think ccw and config_area should be allocated inside vcdev.
> You could either use pointers, or simply allocate vcdev with GDP_DMA.
>
> This would avoid the kmalloc inside these calls.
>
> Thanks,
> Rusty.

But it won't solve the problem of nested sleepers
with ccw: ATM is invokes ccw_io_helper to execute
commands, and that one calls wait_event
to wait for an interrupt.

Might be fixable but I think my patch looks like a safer
solution for 4.0/3.19, no?

--
MST