You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daisuke Nishimura
854ffa8d10
memcg: improve performance in moving charge
...
Try to reduce overheads in moving charge by:
- Instead of calling res_counter_uncharge() against the old cgroup in
__mem_cgroup_move_account() everytime, call res_counter_uncharge() at the end
of task migration once.
- removed css_get(&to->css) from __mem_cgroup_move_account() because callers
should have already called css_get(). And removed css_put(&to->css) too,
which was called by callers of move_account on success of move_account.
- Instead of calling __mem_cgroup_try_charge(), i.e. res_counter_charge(),
repeatedly, call res_counter_charge(PAGE_SIZE * count) in can_attach() if
possible.
- Instead of calling css_get()/css_put() repeatedly, make use of coalesce
__css_get()/__css_put() if possible.
These changes reduces the overhead from 1.7sec to 0.6sec to move charges
of 1G anonymous memory in my test environment.
Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Paul Menage <menage@google.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years ago
..
Kconfig
Merge branch 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
15 years ago
Kconfig.debug
…
Makefile
make generic_acl slightly more generic
15 years ago
backing-dev.c
flusher: Fix PF_FROZEN race
15 years ago
bootmem.c
x86: Make 64 bit use early_res instead of bootmem before slab
15 years ago
bounce.c
…
debug-pagealloc.c
…
dmapool.c
…
fadvise.c
readahead: introduce FMODE_RANDOM for POSIX_FADV_RANDOM
15 years ago
failslab.c
failslab: add ability to filter slab caches
15 years ago
filemap.c
mm: use rlimit helpers
15 years ago
filemap_xip.c
mm: clean up mm_counter
15 years ago
fremap.c
mm: clean up mm_counter
15 years ago
highmem.c
highmem: Fix debug_kmap_atomic() to also handle KM_IRQ_PTE, KM_NMI, and KM_NMI_PTE
15 years ago
hugetlb.c
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
15 years ago
hwpoison-inject.c
HWPOISON: Don't do early filtering if filter is disabled
15 years ago
init-mm.c
…
internal.h
HWPOISON: add an interface to switch off/on all the page filters
15 years ago
kmemcheck.c
…
kmemleak-test.c
…
kmemleak.c
Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6
15 years ago
ksm.c
mm: change anon_vma linking to fix multi-process server scalability issue
15 years ago
maccess.c
maccess,probe_kernel: Allow arch specific override probe_kernel_(read|write)
15 years ago
madvise.c
HWPOISON: Add a madvise() injector for soft page offlining
15 years ago
memcontrol.c
memcg: improve performance in moving charge
15 years ago
memory-failure.c
mm: change anon_vma linking to fix multi-process server scalability issue
15 years ago
memory.c
mm: introduce dump_page() and print symbolic flag names
15 years ago
memory_hotplug.c
mm: introduce dump_page() and print symbolic flag names
15 years ago
mempolicy.c
mm/mempolicy.c: fix indentation of the comments of do_migrate_pages
15 years ago
mempool.c
…
migrate.c
mm/migrate.c: kill anon local variable from migrate_page_copy
15 years ago
mincore.c
mm: hugetlb: fix hugepage memory leak in mincore()
15 years ago
mlock.c
mm: use rlimit helpers
15 years ago
mm_init.c
…
mmap.c
Add generic sys_old_mmap()
15 years ago
mmu_context.c
mm: export use_mm/unuse_mm to modules
15 years ago
mmu_notifier.c
…
mmzone.c
…
mprotect.c
…
mremap.c
mm: change anon_vma linking to fix multi-process server scalability issue
15 years ago
msync.c
…
nommu.c
Add generic sys_old_mmap()
15 years ago
oom_kill.c
mm: clean up mm_counter
15 years ago
page-writeback.c
writeback: remove unused nonblocking and congestion checks
15 years ago
page_alloc.c
mm: introduce dump_page() and print symbolic flag names
15 years ago
page_cgroup.c
…
page_io.c
swap: rework map_swap_page() again
15 years ago
page_isolation.c
…
pagewalk.c
mm hugetlb: add hugepage support to pagemap
15 years ago
percpu.c
early_res: Add free_early_partial()
15 years ago
prio_tree.c
…
quicklist.c
…
readahead.c
readahead: introduce FMODE_RANDOM for POSIX_FADV_RANDOM
15 years ago
rmap.c
vmscan: detect mapped file pages used only once
15 years ago
shmem.c
Fix breakage in shmem.c
15 years ago
slab.c
Merge branches 'slab/cleanups', 'slab/failslab', 'slab/fixes' and 'slub/percpu' into slab-for-linus
15 years ago
slob.c
…
slub.c
Driver core: Constify struct sysfs_ops in struct kobj_type
15 years ago
sparse-vmemmap.c
sparsemem: Put mem map for one node together.
15 years ago
sparse.c
sparsemem: Fix compilation on PowerPC
15 years ago
swap.c
mm: remove free_hot_page()
15 years ago
swap_state.c
…
swapfile.c
mm: add comment on swap_duplicate's error code
15 years ago
thrash.c
…
truncate.c
vfs: Fix vmtruncate() regression
15 years ago
util.c
nommu: don't need get_unmapped_area() for NOMMU
15 years ago
vmalloc.c
mm: purge fragmented percpu vmap blocks
15 years ago
vmscan.c
vmscan: detect mapped file pages used only once
15 years ago
vmstat.c
mm: restore zone->all_unreclaimable to independence word
15 years ago