Revision 62e252eeefda62eb8cae9f4286270317ab8d5a42 authored by Steven Whitehouse on 30 July 2012, 10:06:08 UTC, committed by Steven Whitehouse on 13 September 2012, 09:30:58 UTC
The claim_reserved_blks() function was not taking account of the possibility of "blockages" while performing allocation. This can be caused by another node allocating something in the same extent which has been reserved locally. This patch tests for this condition and then skips the remainder of the reservation in this case. This is a relatively rare event, so that it should not affect the general performance improvement which the block reservations provide. The claim_reserved_blks() function also appears not to be able to deal with reservations which cross bitmap boundaries, but that can be dealt with in a future patch since we don't generate boundary crossing reservations currently. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Reported-by: David Teigland <teigland@redhat.com> Cc: Bob Peterson <rpeterso@redhat.com>
1 parent 645b2cc
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 13.6 KB |
Kconfig.debug | -rw-r--r-- | 1015 bytes |
Makefile | -rw-r--r-- | 1.9 KB |
backing-dev.c | -rw-r--r-- | 22.6 KB |
bootmem.c | -rw-r--r-- | 20.8 KB |
bounce.c | -rw-r--r-- | 6.6 KB |
cleancache.c | -rw-r--r-- | 6.5 KB |
compaction.c | -rw-r--r-- | 25.4 KB |
debug-pagealloc.c | -rw-r--r-- | 2.1 KB |
dmapool.c | -rw-r--r-- | 13.0 KB |
fadvise.c | -rw-r--r-- | 3.6 KB |
failslab.c | -rw-r--r-- | 1.3 KB |
filemap.c | -rw-r--r-- | 67.4 KB |
filemap_xip.c | -rw-r--r-- | 11.2 KB |
fremap.c | -rw-r--r-- | 6.7 KB |
frontswap.c | -rw-r--r-- | 9.5 KB |
highmem.c | -rw-r--r-- | 10.6 KB |
huge_memory.c | -rw-r--r-- | 63.7 KB |
hugetlb.c | -rw-r--r-- | 81.8 KB |
hugetlb_cgroup.c | -rw-r--r-- | 10.5 KB |
hwpoison-inject.c | -rw-r--r-- | 3.3 KB |
init-mm.c | -rw-r--r-- | 619 bytes |
internal.h | -rw-r--r-- | 10.3 KB |
kmemcheck.c | -rw-r--r-- | 2.8 KB |
kmemleak-test.c | -rw-r--r-- | 3.3 KB |
kmemleak.c | -rw-r--r-- | 52.6 KB |
ksm.c | -rw-r--r-- | 54.7 KB |
maccess.c | -rw-r--r-- | 1.6 KB |
madvise.c | -rw-r--r-- | 11.8 KB |
memblock.c | -rw-r--r-- | 28.4 KB |
memcontrol.c | -rw-r--r-- | 145.2 KB |
memory-failure.c | -rw-r--r-- | 41.9 KB |
memory.c | -rw-r--r-- | 108.4 KB |
memory_hotplug.c | -rw-r--r-- | 24.2 KB |
mempolicy.c | -rw-r--r-- | 65.8 KB |
mempool.c | -rw-r--r-- | 10.5 KB |
migrate.c | -rw-r--r-- | 33.4 KB |
mincore.c | -rw-r--r-- | 7.8 KB |
mlock.c | -rw-r--r-- | 15.7 KB |
mm_init.c | -rw-r--r-- | 3.7 KB |
mmap.c | -rw-r--r-- | 70.6 KB |
mmu_context.c | -rw-r--r-- | 1.4 KB |
mmu_notifier.c | -rw-r--r-- | 9.1 KB |
mmzone.c | -rw-r--r-- | 2.0 KB |
mprotect.c | -rw-r--r-- | 7.9 KB |
mremap.c | -rw-r--r-- | 13.5 KB |
msync.c | -rw-r--r-- | 2.4 KB |
nobootmem.c | -rw-r--r-- | 10.6 KB |
nommu.c | -rw-r--r-- | 50.9 KB |
oom_kill.c | -rw-r--r-- | 21.8 KB |
page-writeback.c | -rw-r--r-- | 68.6 KB |
page_alloc.c | -rw-r--r-- | 166.6 KB |
page_cgroup.c | -rw-r--r-- | 11.8 KB |
page_io.c | -rw-r--r-- | 6.8 KB |
page_isolation.c | -rw-r--r-- | 6.2 KB |
pagewalk.c | -rw-r--r-- | 5.7 KB |
percpu-km.c | -rw-r--r-- | 2.8 KB |
percpu-vm.c | -rw-r--r-- | 12.9 KB |
percpu.c | -rw-r--r-- | 57.0 KB |
pgtable-generic.c | -rw-r--r-- | 3.3 KB |
prio_tree.c | -rw-r--r-- | 6.3 KB |
process_vm_access.c | -rw-r--r-- | 13.3 KB |
quicklist.c | -rw-r--r-- | 2.4 KB |
readahead.c | -rw-r--r-- | 16.1 KB |
rmap.c | -rw-r--r-- | 52.4 KB |
shmem.c | -rw-r--r-- | 76.8 KB |
slab.c | -rw-r--r-- | 121.9 KB |
slab.h | -rw-r--r-- | 1.0 KB |
slab_common.c | -rw-r--r-- | 2.9 KB |
slob.c | -rw-r--r-- | 15.5 KB |
slub.c | -rw-r--r-- | 129.7 KB |
sparse-vmemmap.c | -rw-r--r-- | 5.9 KB |
sparse.c | -rw-r--r-- | 20.3 KB |
swap.c | -rw-r--r-- | 22.7 KB |
swap_state.c | -rw-r--r-- | 10.3 KB |
swapfile.c | -rw-r--r-- | 63.1 KB |
truncate.c | -rw-r--r-- | 19.0 KB |
util.c | -rw-r--r-- | 8.9 KB |
vmalloc.c | -rw-r--r-- | 66.0 KB |
vmscan.c | -rw-r--r-- | 98.5 KB |
vmstat.c | -rw-r--r-- | 33.3 KB |
Computing file changes ...