From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: virtio balloon: do not call blocking ops when !TASK_RUNNING Date: Mon, 2 Mar 2015 12:13:58 +0100 Message-ID: <20150302111358.GA4954@redhat.com> References: <20150225111318.0040536b@oc7435384737.ibm.com> <87y4nllb85.fsf@rustcorp.com.au> <20150226083625.2520ecb6@oc7435384737.ibm.com> <8761akl0sh.fsf@rustcorp.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Thomas Huth , virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, Peter Zijlstra To: Rusty Russell Return-path: Received: from mx1.redhat.com ([209.132.183.28]:55816 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753894AbbCBLOd (ORCPT ); Mon, 2 Mar 2015 06:14:33 -0500 Content-Disposition: inline In-Reply-To: <8761akl0sh.fsf@rustcorp.com.au> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, Mar 02, 2015 at 10:37:26AM +1030, Rusty Russell wrote: > Thomas Huth writes: > > On Thu, 26 Feb 2015 11:50:42 +1030 > > Rusty Russell wrote: > > > >> Thomas Huth 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. > > > > AFAIK this is currently not a problem. According to > > http://lwn.net/Articles/627419/ these kmalloc calls never > > fail because they allocate less than a page. > > I strongly suggest you unlearn that fact. > The fix for this is in two parts: > > 1) Annotate using sched_annotate_sleep() and add a comment: we may spin > a few times in low memory situations, but this isn't a high > performance path. > > 2) Handle get_config (and other) failure in some more elegant way. > > Cheers, > Rusty. I agree, but I'd like to point out that even without kmalloc, on s390 get_config is blocking - it's waiting for a hardware interrupt. And it makes sense: config is not data path, I don't think we should spin there. So I think besides these two parts, we still need my two patches: virtio-balloon: do not call blocking ops when !TASK_RUNNING virtio_console: avoid config access from irq in 4.0. agree?