Messages in this thread |  | | From | Roman Pen <> | | Subject | [PATCH 0/3] [RFC] mm/vmalloc: fix possible exhaustion of vmalloc space | | Date | Fri, 13 Mar 2015 21:12:54 +0900 |
| |
Hello all.
Recently I came across high fragmentation of vm_map_ram allocator: vmap_block has free space, but still new blocks continue to appear. Further investigation showed that certain mapping/unmapping sequence can exhaust vmalloc space. On small 32bit systems that's not a big problem, cause purging will be called soon on a first allocation failure (alloc_vmap_area), but on 64bit machines, e.g. x86_64 has 45 bits of vmalloc space, that can be a disaster.
Fixing this I also did some tweaks in allocation logic of a new vmap block and replaced dirty bitmap with min/max dirty range values to make the logic simpler.
I would like to receive comments on the following three patches.
Thanks.
Roman Pen (3): mm/vmalloc: fix possible exhaustion of vmalloc space caused by vm_map_ram allocator mm/vmalloc: occupy newly allocated vmap block just after allocation mm/vmalloc: get rid of dirty bitmap inside vmap_block structure
mm/vmalloc.c | 94 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 40 deletions(-)
Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Nick Piggin <npiggin@kernel.dk> Cc: Eric Dumazet <edumazet@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: David Rientjes <rientjes@google.com> Cc: WANG Chao <chaowang@redhat.com> Cc: Fabian Frederick <fabf@skynet.be> Cc: Christoph Lameter <cl@linux.com> Cc: Gioh Kim <gioh.kim@lge.com> Cc: Rob Jones <rob.jones@codethink.co.uk> Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org -- 1.9.3
|  |