From: npiggin@suse.de
From: Glauber Costa <glommer@redhat.com>
To: akpm@linux-foundation.org
Cc: linux-mm@kvack.org, glommer@redhat.com
Subject: [patch 3/7] mm: vmalloc search restart fix
Date: Tue, 11 Nov 2008 00:35:18 +1100 [thread overview]
Message-ID: <20081110133840.769889000@suse.de> (raw)
In-Reply-To: <20081110133515.011510000@suse.de>
[-- Attachment #1: mm-vmalloc-restart-search-fix.patch --]
[-- Type: text/plain, Size: 1577 bytes --]
Current vmalloc restart search for a free area in case we can't find one. The
reason is there are areas which are lazily freed, and could be possibly freed
now. However, current implementation start searching the tree from the last
failing address, which is pretty much by definition at the end of address
space. So, we fail.
The proposal of this patch is to restart the search from the beginning of the
requested vstart address. This fixes the regression in running KVM virtual
machines for me, described in http://lkml.org/lkml/2008/10/28/349, caused by
commit db64fe02258f1507e13fe5212a989922323685ce.
Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Nick Piggin <npiggin@suse.de>
---
mm/vmalloc.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Index: linux-2.6/mm/vmalloc.c
===================================================================
--- linux-2.6.orig/mm/vmalloc.c
+++ linux-2.6/mm/vmalloc.c
@@ -324,14 +324,14 @@ static struct vmap_area *alloc_vmap_area
BUG_ON(size & ~PAGE_MASK);
- addr = ALIGN(vstart, align);
-
va = kmalloc_node(sizeof(struct vmap_area),
gfp_mask & GFP_RECLAIM_MASK, node);
if (unlikely(!va))
return ERR_PTR(-ENOMEM);
retry:
+ addr = ALIGN(vstart, align);
+
spin_lock(&vmap_area_lock);
/* XXX: could have a last_hole cache */
n = vmap_area_root.rb_node;
--
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-11-10 13:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-10 13:35 [patch 0/7] vmalloc fixes and improvements #2 npiggin
2008-11-10 13:35 ` [patch 1/7] mm: vmalloc allocator off by one npiggin, Nick Piggin
2008-11-10 13:35 ` [patch 2/7] mm: vmalloc failure flush fix npiggin, Nick Piggin
2008-11-10 13:35 ` npiggin, Glauber Costa [this message]
2008-11-10 13:35 ` [patch 4/7] mm: vmalloc tweak failure printk npiggin, Glauber Costa
2008-11-10 13:35 ` [patch 5/7] mm: vmalloc improve vmallocinfo npiggin, Glauber Costa
2008-11-10 13:35 ` [patch 6/7] mm: vmalloc use mutex for purge npiggin, Nick Piggin
2008-11-10 13:35 ` [patch 7/7] mm: vmalloc make lazy unmapping configurable npiggin, Nick Piggin
2008-11-11 18:25 ` [patch 0/7] vmalloc fixes and improvements #2 Glauber Costa
2008-11-12 3:45 ` Nick Piggin
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=20081110133840.769889000@suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=glommer@redhat.com \
--cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox