2013-05-09-15-57 merged
Andrew Morton (12):
mm/shmem.c: remove an ifdef
include/linux/memory.h: implement register_hotmemory_notifier()
ipc/util.c: use register_hotmemory_notifier()
mm/slub.c: use register_hotmemory_notifier()
drivers/base/node.c: switch to register_hotmemory_notifier()
fs/proc/kcore.c: use register_hotmemory_notifier()
kernel/cpuset.c: use register_hotmemory_notifier()
revert "ipc: don't allocate a copy larger than max"
include/linux/mmzone.h: cleanups
include-linux-mmzoneh-cleanups-fix
memcg-debugging-facility-to-access-dangling-memcgs-fix
mm-remove-compressed-copy-from-zram-in-memory-fix
Andrew Shewmaker (3):
mm: limit growth of 3% hardcoded other user reserve
mm: replace hardcoded 3% with admin_reserve_pages knob
mm: reinititalise user and admin reserves if memory is added or removed
Aneesh Kumar K.V (1):
mm/thp: use the correct function when updating access flags
Anton Vorontsov (1):
memcg: add memory.pressure_level events
Anurup m (1):
fs/fscache/stats.c: fix memory leak
Aristeu Rozanski (4):
devcg: expand may_access() logic
devcg: prepare may_access() for hierarchy support
devcg: use css_online and css_offline
devcg: propagate local changes down the hierarchy
Atsushi Kumagai (1):
kexec, vmalloc: export additional vmalloc layer information
Ben Hutchings (1):
mm: try harder to allocate vmemmap blocks
Borislav Petkov (1):
scripts/decodecode: make faulting insn ptr more robust
Catalin Marinas (1):
arm: set the page table freeing ceiling to TASK_SIZE
Chen Gang (2):
kernel/auditfilter.c: tree and watch will memory leak when failure occurs
kernel/audit_tree.c: tree will leak memory when failure occurs in audit_trim_trees()
Cody P Schafer (4):
page_alloc: make setup_nr_node_ids() usable for arch init code
x86/mm/numa: use setup_nr_node_ids() instead of opencoding.
powerpc/mm/numa: use setup_nr_node_ids() instead of opencoding.
mm/vmstat: add note on safety of drain_zonestat
Cyril Hrubis (1):
mm/mmap: check for RLIMIT_AS before unmapping
Darrick J. Wong (1):
mm: make snapshotting pages for stable writes a per-bio operation
David Rientjes (5):
mm, show_mem: suppress page counts in non-blockable contexts
mm, hugetlb: include hugepages in meminfo
mm, hotplug: avoid compiling memory hotremove functions when disabled
mm, memcg: give exiting processes access to memory reserves
mm, memcg: don't take task_lock in task_in_mem_cgroup
Dmitry Monakhov (1):
fs: fix fsync() error reporting
Gao feng (3):
audit: don't check if kauditd is valid every time
audit: remove duplicate export of audit_enabled
audit: remove unnecessary #if CONFIG_AUDIT
Gerald Schaefer (1):
mm/hugetlb: add more arch-defined huge_pte functions
Gernot Vormayr (1):
drivers/block/xsysace.c: fix id with missing port-number
Glauber Costa (1):
memcg: debugging facility to access dangling memcgs
Guenter Roeck (1):
gcc4: disable __compiletime_object_size for GCC 4.6+
Hampson, Steven T (1):
mm: merging memory blocks resets mempolicy
Hillf Danton (2):
rmap: recompute pgoff for unmapping huge page
mm/vmscan.c: minor cleanup for kswapd
Hugh Dickins (1):
mm: allow arch code to control the user page table ceiling
James Hogan (1):
debug_locks.h: make warning more verbose
Jan Kara (2):
direct-io: fix boundary block handling
direct-io: submit bio after boundary buffer is added to it
Jerome Marchand (1):
swap: redirty page if page write fails on swap file
Jiang Liu (39):
mm: introduce common help functions to deal with reserved/managed pages
mm/alpha: use common help functions to free reserved pages
mm/ARM: use common help functions to free reserved pages
mm/avr32: use common help functions to free reserved pages
mm/blackfin: use common help functions to free reserved pages
mm/c6x: use common help functions to free reserved pages
mm/cris: use common help functions to free reserved pages
mm/FRV: use common help functions to free reserved pages
mm/h8300: use common help functions to free reserved pages
mm/IA64: use common help functions to free reserved pages
mm/m32r: use common help functions to free reserved pages
mm/m68k: use common help functions to free reserved pages
mm/microblaze: use common help functions to free reserved pages
mm/MIPS: use common help functions to free reserved pages
mm/mn10300: use common help functions to free reserved pages
mm/openrisc: use common help functions to free reserved pages
mm/parisc: use common help functions to free reserved pages
mm/ppc: use common help functions to free reserved pages
mm/s390: use common help functions to free reserved pages
mm/score: use common help functions to free reserved pages
mm/SH: use common help functions to free reserved pages
mm/um: use common help functions to free reserved pages
mm/unicore32: use common help functions to free reserved pages
mm/x86: use common help functions to free reserved pages
mm/xtensa: use common help functions to free reserved pages
mm/arc: use common help functions to free reserved pages
mm/metag: use common help functions to free reserved pages
mm,kexec: use common help functions to free reserved pages
mm: introduce free_highmem_page() helper to free highmem pages into buddy system
mm/ARM: use free_highmem_page() to free highmem pages into buddy system
mm/FRV: use free_highmem_page() to free highmem pages into buddy system
mm/metag: use free_highmem_page() to free highmem pages into buddy system
mm/microblaze: use free_highmem_page() to free highmem pages into buddy system
mm/MIPS: use free_highmem_page() to free highmem pages into buddy system
mm/PPC: use free_highmem_page() to free highmem pages into buddy system
mm/SPARC: use free_highmem_page() to free highmem pages into buddy system
mm/um: use free_highmem_page() to free highmem pages into buddy system
mm/x86: use free_highmem_page() to free highmem pages into buddy system
mm/SPARC: use common help functions to free reserved pages
Jianguo Wu (1):
mm/migrate: fix comment typo syncronous->synchronous
Johannes Weiner (4):
sparse-vmemmap: specify vmemmap population range in bytes
x86-64: remove dead debugging code for !pse setups
x86-64: use vmemmap_populate_basepages() for !pse setups
x86-64: fall back to regular page vmemmap on allocation failure
Joonsoo Kim (10):
mm, vmalloc: change iterating a vmlist to find_vm_area()
mm, vmalloc: move get_vmalloc_info() to vmalloc.c
mm, vmalloc: protect va->vm by vmap_area_lock
mm, vmalloc: iterate vmap_area_list, instead of vmlist in vread/vwrite()
mm, vmalloc: iterate vmap_area_list in get_vmalloc_info()
mm, vmalloc: iterate vmap_area_list, instead of vmlist, in vmallocinfo()
mm, vmalloc: export vmap_area_list, instead of vmlist
mm, vmalloc: remove list management of vmlist after initializing vmalloc
mm, nobootmem: clean-up of free_low_memory_core_early()
mm, nobootmem: do memset() after memblock_reserve()
Josh Triplett (1):
fs: don't compile in drop_caches.c when CONFIG_SYSCTL=n
Kevin Wilson (1):
cgroup: remove unused parameter in cgroup_task_migrate().
Kirill A. Shutemov (1):
thp: fix huge zero page logic for page with pfn == 0
Kirill Tkhai (1):
sparc64: Do not save/restore interrupts in get_new_mmu_context()
Li Zefan (24):
cgroup: fix cgroup_path() vs rename() race
cpuset: use cgroup_name() in cpuset_print_task_mems_allowed()
cgroup: no need to check css refs for release notification
cgroup: avoid accessing modular cgroup subsys structure without locking
res_counter: remove include of cgroup.h from res_counter.h
cpuset: remove include of cgroup.h from cpuset.h
cpuset: fix RCU lockdep splat in cpuset_print_task_mems_allowed()
cgroup: remove cgroup_is_descendant()
cgroup: remove unused variables in cgroup_destroy_locked()
cgroup: hold cgroup_mutex before calling css_offline()
cgroup: don't bother to resize pid array
cgroup: remove useless code in cgroup_write_event_control()
cgroup: fix an off-by-one bug which may trigger BUG_ON()
cgroup: consolidate cgroup_attach_task() and cgroup_attach_proc()
cgroup: make sure parent won't be destroyed before its children
cgroup: implement cgroup_is_descendant()
cgroup: remove cgrp->top_cgroup
cgroup: fix broken file xattrs
cgroup: fix use-after-free when umounting cgroupfs
cgroup: restore the call to eventfd->poll()
cpuset: fix cpu hotplug vs rebuild_sched_domains() race
cpuset: fix compile warning when CONFIG_SMP=n
memcg: avoid accessing memcg after releasing reference
memcg: take reference before releasing rcu_read_lock
Li Zhong (1):
cpuset: use rebuild_sched_domains() in cpuset_hotplug_workfn()
Mel Gorman (2):
mm: page_alloc: avoid marking zones full prematurely after zone_reclaim()
mm: swap: mark swap pages writeback before queueing for direct IO
Michal Hocko (10):
memcg: fix memcg_cache_name() to use cgroup_name()
Merge remote-tracking branch 'tj-cgroups/for-3.10' into mmotm
memcg: keep prev's css alive for the whole mem_cgroup_iter
memcg: rework mem_cgroup_iter to use cgroup iterators
memcg: relax memcg iter caching
memcg: simplify mem_cgroup_iter
memcg: further simplify mem_cgroup_iter
cgroup: remove css_get_next
memcg: do not check for do_swap_account in mem_cgroup_{read,write,reset}
drop_caches: add some documentation and info message
Michel Lespinasse (2):
mm/memcontrol.c: remove unnecessary ;
mm: remove free_area_cache
Mike Yoknis (1):
mm: memmap_init_zone() performance improvement
Minchan Kim (2):
THP: fix comment about memory barrier
mm: remove compressed copy from zram in-memory
Ming Lei (1):
fs/read_write.c: fix generic_file_llseek() comment
Naoya Horiguchi (1):
HWPOISON: check dirty flag to match against clean page
Oleg Nesterov (2):
kthread: introduce to_live_kthread()
kthread: kill task_get_live_kthread()
Paul E. McKenney (1):
vm: adjust ifdef for TINY_RCU
Pavel Emelyanov (6):
clear_refs: sanitize accepted commands declaration
clear_refs: introduce private struct for mm_walk
pagemap: introduce pagemap_entry_t without pmshift bits
pagemap-introduce-pagemap_entry_t-without-pmshift-bits-v4
mm: soft-dirty bits for user memory changes tracking
pagemap: prepare to reuse constant bits with page-shift
Rafael Aquini (1):
mm: add vm event counters for balloon pages compaction
Rakib Mullick (1):
kernel/auditsc.c: use kzalloc instead of kmalloc+memset
Rami Rosen (3):
cgroups: Documentation/cgroup/cgroup.txt - a trivial fix.
cgroup: remove bind() method from cgroup_subsys.
devcg: remove parent_cgroup.
Randy Dunlap (1):
mm: fix memory_hotplug.c printk format warning
Rasmus Villemoes (1):
mm: madvise: complete input validation before taking lock
Rob Landley (1):
mkcapflags.pl: convert to mkcapflags.sh
Robert Jarzmik (1):
mm: trace filemap add and del
Russ Anderson (1):
mm: speedup in __early_pfn_to_nid
Seth Jennings (2):
mm: break up swap_writepage() for frontswap backends
mm: allow for outstanding swap writeback accounting
Shaohua Li (1):
mm: thp: add split tail pages to shrink page list in page reclaim
Srivatsa S. Bhat (1):
mm: rewrite the comment over migrate_pages() more comprehensibly
Tang Chen (2):
mm: Remove unused parameter of pages_correctly_reserved()
memblock: fix missing comment of memblock_insert_region()
Tejun Heo (13):
cgroup, cpuset: replace move_member_tasks_to_cpuset() with cgroup_transfer_tasks()
cgroup: relocate cgroup_lock_live_group() and cgroup_attach_task_all()
cgroup: unexport locking interface and cgroup_attach_task()
cgroup: kill cgroup_[un]lock()
cgroup: remove cgroup_lock_is_held()
devcg: remove broken_hierarchy tag
perf: make perf_event cgroup hierarchical
Revert "cgroup: remove bind() method from cgroup_subsys."
cgroup: make cgroup_path() not print double slashes
cgroup: convert cgroupfs_root flag bits to masks and add CGRP_ prefix
move cgroupfs_root to include/linux/cgroup.h
cgroup: introduce sane_behavior mount option
memcg: force use_hierarchy if sane_behavior
Tkhai Kirill (1):
sparc64: Do not change num_physpages during initmem freeing
Tomasz Stanislawski (1):
mm/page_alloc.c: fix watermark check in __zone_watermark_ok()
Toshi Kani (4):
mm: walk_memory_range(): fix typo in comment
resource: add __adjust_resource() for internal use
resource: add release_mem_region_adjustable()
mm: change __remove_pages() to call release_mem_region_adjustable()
Vinayak Menon (1):
mmKconfig: add an option to disable bounce
Vineet Gupta (1):
memblock: add assertion for zero allocation alignment
Xi Wang (2):
drivers/usb/gadget/amd5536udc.c: avoid calling dma_pool_create() with NULL dev
mm/dmapool.c: fix null dev in dma_pool_create()
Yasuaki Ishimatsu (3):
firmware, memmap: fix firmware_map_entry leak
numa, cpu hotplug: change links of CPU and node when changing node number by onlining CPU
mem hotunplug: fix kfree() of bootmem memory
Yijing Wang (1):
mm: remove CONFIG_HOTPLUG ifdefs
Zhang Yanfei (1):
mmap: find_vma: remove the WARN_ON_ONCE(!mm) check
majianpeng (1):
fs/buffer.c: remove unnecessary init operation after allocating buffer_head.
mm/page_alloc.c: fix watermark check in __zone_watermark_ok()
The watermark check consists of two sub-checks. The first one is:
if (free_pages <= min + lowmem_reserve)
return false;
The check assures that there is minimal amount of RAM in the zone. If CMA
is used then the free_pages is reduced by the number of free pages in CMA
prior to the over-mentioned check.
if (!(alloc_flags & ALLOC_CMA))
free_pages -= zone_page_state(z, NR_FREE_CMA_PAGES);
This prevents the zone from being drained from pages available for
non-movable allocations.
The second check prevents the zone from getting too fragmented.
for (o = 0; o < order; o++) {
free_pages -= z->free_area[o].nr_free << o;
min >>= 1;
if (free_pages <= min)
return false;
}
The field z->free_area[o].nr_free is equal to the number of free pages
including free CMA pages. Therefore the CMA pages are subtracted twice.
This may cause a false positive fail of __zone_watermark_ok() if the CMA
area gets strongly fragmented. In such a case there are many 0-order free
pages located in CMA. Those pages are subtracted twice therefore they
will quickly drain free_pages during the check against fragmentation. The
test fails even though there are many free non-cma pages in the zone.
This patch fixes this issue by subtracting CMA pages only for a purpose of
(free_pages <= min + lowmem_reserve) check.
Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 file changed