WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] Use GFP_NOIO to avoid allocations whi

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] Use GFP_NOIO to avoid allocations which swap on resume.
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 10 Jun 2008 08:50:16 -0700
Delivery-date: Tue, 10 Jun 2008 08:50:34 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1213084239 -3600
# Node ID 5db911a71eac6b0b19e74398f0750ce12fb1b94b
# Parent  8523584ffaa3b0f6ecce36b826a2c7b26aef61b7
Use GFP_NOIO to avoid allocations which swap on resume.

377:e8b49cfbdac0 and 497:fdb998e79aba added __GFP_HIGH to allocations
which could cause swap on resume. __GFP_HIGH actually only makes such
allocations less likely (by allowing access to the emergency pools of
memory).

See: http://marc.info/?l=linux-kernel&m=121222807617695&w=2

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 drivers/xen/blkfront/blkfront.c    |    4 ++--
 drivers/xen/netfront/netfront.c    |    4 ++--
 drivers/xen/xenbus/xenbus_client.c |    2 +-
 drivers/xen/xenbus/xenbus_xs.c     |   12 ++++++------
 4 files changed, 11 insertions(+), 11 deletions(-)

diff -r 8523584ffaa3 -r 5db911a71eac drivers/xen/blkfront/blkfront.c
--- a/drivers/xen/blkfront/blkfront.c   Tue Jun 10 08:35:59 2008 +0100
+++ b/drivers/xen/blkfront/blkfront.c   Tue Jun 10 08:50:39 2008 +0100
@@ -219,7 +219,7 @@ static int setup_blkring(struct xenbus_d
 
        info->ring_ref = GRANT_INVALID_REF;
 
-       sring = (blkif_sring_t *)__get_free_page(GFP_KERNEL|__GFP_HIGH);
+       sring = (blkif_sring_t *)__get_free_page(GFP_NOIO | __GFP_HIGH);
        if (!sring) {
                xenbus_dev_fatal(dev, -ENOMEM, "allocating shared ring");
                return -ENOMEM;
@@ -817,7 +817,7 @@ static void blkif_recover(struct blkfron
        int j;
 
        /* Stage 1: Make a safe copy of the shadow state. */
-       copy = kmalloc(sizeof(info->shadow), GFP_KERNEL | __GFP_NOFAIL | 
__GFP_HIGH);
+       copy = kmalloc(sizeof(info->shadow), GFP_NOIO | __GFP_NOFAIL | 
__GFP_HIGH);
        memcpy(copy, info->shadow, sizeof(info->shadow));
 
        /* Stage 2: Set up free list. */
diff -r 8523584ffaa3 -r 5db911a71eac drivers/xen/netfront/netfront.c
--- a/drivers/xen/netfront/netfront.c   Tue Jun 10 08:35:59 2008 +0100
+++ b/drivers/xen/netfront/netfront.c   Tue Jun 10 08:50:39 2008 +0100
@@ -478,7 +478,7 @@ static int setup_device(struct xenbus_de
        info->tx.sring = NULL;
        info->irq = 0;
 
-       txs = (struct netif_tx_sring *)get_zeroed_page(GFP_KERNEL|__GFP_HIGH);
+       txs = (struct netif_tx_sring *)get_zeroed_page(GFP_NOIO | __GFP_HIGH);
        if (!txs) {
                err = -ENOMEM;
                xenbus_dev_fatal(dev, err, "allocating tx ring page");
@@ -494,7 +494,7 @@ static int setup_device(struct xenbus_de
        }
        info->tx_ring_ref = err;
 
-       rxs = (struct netif_rx_sring *)get_zeroed_page(GFP_KERNEL|__GFP_HIGH);
+       rxs = (struct netif_rx_sring *)get_zeroed_page(GFP_NOIO | __GFP_HIGH);
        if (!rxs) {
                err = -ENOMEM;
                xenbus_dev_fatal(dev, err, "allocating rx ring page");
diff -r 8523584ffaa3 -r 5db911a71eac drivers/xen/xenbus/xenbus_client.c
--- a/drivers/xen/xenbus/xenbus_client.c        Tue Jun 10 08:35:59 2008 +0100
+++ b/drivers/xen/xenbus/xenbus_client.c        Tue Jun 10 08:50:39 2008 +0100
@@ -87,7 +87,7 @@ int xenbus_watch_path2(struct xenbus_dev
                                        const char **, unsigned int))
 {
        int err;
-       char *state = kasprintf(GFP_KERNEL|__GFP_HIGH, "%s/%s", path, path2);
+       char *state = kasprintf(GFP_NOIO | __GFP_HIGH, "%s/%s", path, path2);
        if (!state) {
                xenbus_dev_fatal(dev, -ENOMEM, "allocating path for watch");
                return -ENOMEM;
diff -r 8523584ffaa3 -r 5db911a71eac drivers/xen/xenbus/xenbus_xs.c
--- a/drivers/xen/xenbus/xenbus_xs.c    Tue Jun 10 08:35:59 2008 +0100
+++ b/drivers/xen/xenbus/xenbus_xs.c    Tue Jun 10 08:50:39 2008 +0100
@@ -291,9 +291,9 @@ static char *join(const char *dir, const
        char *buffer;
 
        if (strlen(name) == 0)
-               buffer = kasprintf(GFP_KERNEL|__GFP_HIGH, "%s", dir);
+               buffer = kasprintf(GFP_NOIO | __GFP_HIGH, "%s", dir);
        else
-               buffer = kasprintf(GFP_KERNEL|__GFP_HIGH, "%s/%s", dir, name);
+               buffer = kasprintf(GFP_NOIO | __GFP_HIGH, "%s/%s", dir, name);
        return (!buffer) ? ERR_PTR(-ENOMEM) : buffer;
 }
 
@@ -305,7 +305,7 @@ static char **split(char *strings, unsig
        *num = count_strings(strings, len) + 1;
 
        /* Transfer to one big alloc for easy freeing. */
-       ret = kmalloc(*num * sizeof(char *) + len, GFP_KERNEL|__GFP_HIGH);
+       ret = kmalloc(*num * sizeof(char *) + len, GFP_NOIO | __GFP_HIGH);
        if (!ret) {
                kfree(strings);
                return ERR_PTR(-ENOMEM);
@@ -507,7 +507,7 @@ int xenbus_printf(struct xenbus_transact
 #define PRINTF_BUFFER_SIZE 4096
        char *printf_buffer;
 
-       printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_KERNEL|__GFP_HIGH);
+       printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_NOIO | __GFP_HIGH);
        if (printf_buffer == NULL)
                return -ENOMEM;
 
@@ -791,7 +791,7 @@ static int process_msg(void)
        }
 
 
-       msg = kmalloc(sizeof(*msg), GFP_KERNEL|__GFP_HIGH);
+       msg = kmalloc(sizeof(*msg), GFP_NOIO | __GFP_HIGH);
        if (msg == NULL) {
                err = -ENOMEM;
                goto out;
@@ -803,7 +803,7 @@ static int process_msg(void)
                goto out;
        }
 
-       body = kmalloc(msg->hdr.len + 1, GFP_KERNEL|__GFP_HIGH);
+       body = kmalloc(msg->hdr.len + 1, GFP_NOIO | __GFP_HIGH);
        if (body == NULL) {
                kfree(msg);
                err = -ENOMEM;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] Use GFP_NOIO to avoid allocations which swap on resume., Xen patchbot-linux-2.6.18-xen <=