From: Dave Young <hidave.darkstar@gmail.com>
To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 1/2] virtio_balloon: disable oom killer when fill balloon
Date: Tue, 26 Apr 2011 13:29:16 +0800 [thread overview]
Message-ID: <20110426052916.GA11933@darkstar> (raw)
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 <hidave.darkstar@gmail.com>
---
drivers/virtio/virtio_balloon.c | 3 +++
1 file changed, 3 insertions(+)
--- 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 <linux/freezer.h>
#include <linux/delay.h>
#include <linux/slab.h>
+#include <linux/oom.h>
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)
next reply other threads:[~2011-04-26 5:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-26 5:29 Dave Young [this message]
2011-04-26 6:38 ` [PATCH 1/2] virtio_balloon: disable oom killer when fill balloon KOSAKI Motohiro
2011-04-26 7:09 ` Dave Young
2011-04-26 7:22 ` KOSAKI Motohiro
2011-04-26 8:47 ` Dave Young
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110426052916.GA11933@darkstar \
--to=hidave.darkstar@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.