From patchwork Tue Apr 26 05:29:16 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dave Young X-Patchwork-Id: 731412 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p3Q5IpN0015406 for ; Tue, 26 Apr 2011 05:18:52 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752636Ab1DZFSa (ORCPT ); Tue, 26 Apr 2011 01:18:30 -0400 Received: from mail-pv0-f174.google.com ([74.125.83.174]:64806 "EHLO mail-pv0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752538Ab1DZFS3 (ORCPT ); Tue, 26 Apr 2011 01:18:29 -0400 Received: by pvg12 with SMTP id 12so214808pvg.19 for ; Mon, 25 Apr 2011 22:18:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:date:from:to:subject:message-id:mime-version :content-type:content-disposition:user-agent; bh=8G+g8bKD92CDdfVCjWgrwU0hC8oemc7EN50w7/iYmh8=; b=PQbGPsaMFr5lmyGpbrvmJWDlyeCWiyvctMWJ8fIhs/OaIRfLFMGDoOgo85Ezf9KS3L VBvxhN0KjZaUnxZDANUDtR6qCrgKoCVg5NOX7ZszZfU+LpVF7lU0YGL2COPE5zfL2Wy4 9cQPkyG7DAW3v/wNZa5QgL8eUrsxY9lY+CJnw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=J5AGvZrtH9KYLf1p5T6iZXFbdgAdz84mhWVoyLiAcmP0p8EdCBZUZ+2BMKCOkcUdVR GbxYXi8FXaa9hG1U3M+JkMWqtRYFzTPxY6GeZvQUqzCZNdrFhhkYBQf7TCvsh5vz4u2V ukybk71jOEDHAQZwE8r39RF1Zbu5GxhXFju44= Received: by 10.68.22.3 with SMTP id z3mr501519pbe.142.1303795109310; Mon, 25 Apr 2011 22:18:29 -0700 (PDT) Received: from localhost ([124.65.152.142]) by mx.google.com with ESMTPS id j7sm4315962pbg.65.2011.04.25.22.18.26 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 25 Apr 2011 22:18:28 -0700 (PDT) Date: Tue, 26 Apr 2011 13:29:16 +0800 From: Dave Young To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] virtio_balloon: disable oom killer when fill balloon Message-ID: <20110426052916.GA11933@darkstar> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 26 Apr 2011 05:18:53 +0000 (UTC) When memory pressure is high, virtio ballooning will probably cause oom killing. Even if alloc_page with GFP_NORETRY itself does not directly trigger oom it will make memory becoming low then memory alloc of other processes will trigger oom killing. It is not desired behaviour. Here disable oom killer in fill_balloon to address this issue. Signed-off-by: Dave Young --- drivers/virtio/virtio_balloon.c | 3 +++ 1 file changed, 3 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- linux-2.6.orig/drivers/virtio/virtio_balloon.c 2010-10-13 10:14:38.000000000 +0800 +++ linux-2.6/drivers/virtio/virtio_balloon.c 2011-04-26 11:38:43.979785141 +0800 @@ -25,6 +25,7 @@ #include #include #include +#include struct virtio_balloon { @@ -102,6 +103,7 @@ static void fill_balloon(struct virtio_b /* We can only do one array worth at a time. */ num = min(num, ARRAY_SIZE(vb->pfns)); + oom_killer_disable(); for (vb->num_pfns = 0; vb->num_pfns < num; vb->num_pfns++) { struct page *page = alloc_page(GFP_HIGHUSER | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN); @@ -119,6 +121,7 @@ static void fill_balloon(struct virtio_b vb->num_pages++; list_add(&page->lru, &vb->pages); } + oom_killer_enable(); /* Didn't get any? Oh well. */ if (vb->num_pfns == 0)