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@xxxxxxxxxxxxxxxxxxxx> Cc: Nick Piggin <npiggin@xxxxxxxxx> Cc: Eric Dumazet <edumazet@xxxxxxxxxx> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: WANG Chao <chaowang@xxxxxxxxxx> Cc: Fabian Frederick <fabf@xxxxxxxxx> Cc: Christoph Lameter <cl@xxxxxxxxx> Cc: Gioh Kim <gioh.kim@xxxxxxx> Cc: Rob Jones <rob.jones@xxxxxxxxxxxxxxx> Cc: linux-mm@xxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Cc: stable@xxxxxxxxxxxxxxx -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html