mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-04 08:17:46 +00:00
![]() Some kernel components pin user space memory (infiniband and perf) (by increasing the page count) and account that memory as "mlocked". The difference between mlocking and pinning is: A. mlocked pages are marked with PG_mlocked and are exempt from swapping. Page migration may move them around though. They are kept on a special LRU list. B. Pinned pages cannot be moved because something needs to directly access physical memory. They may not be on any LRU list. I recently saw an mlockalled process where mm->locked_vm became bigger than the virtual size of the process (!) because some memory was accounted for twice: Once when the page was mlocked and once when the Infiniband layer increased the refcount because it needt to pin the RDMA memory. This patch introduces a separate counter for pinned pages and accounts them seperately. Signed-off-by: Christoph Lameter <cl@linux.com> Cc: Mike Marciniszyn <infinipath@qlogic.com> Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
ipath_common.h | ||
ipath_cq.c | ||
ipath_debug.h | ||
ipath_diag.c | ||
ipath_dma.c | ||
ipath_driver.c | ||
ipath_eeprom.c | ||
ipath_file_ops.c | ||
ipath_fs.c | ||
ipath_iba6110.c | ||
ipath_init_chip.c | ||
ipath_intr.c | ||
ipath_kernel.h | ||
ipath_keys.c | ||
ipath_mad.c | ||
ipath_mmap.c | ||
ipath_mr.c | ||
ipath_qp.c | ||
ipath_rc.c | ||
ipath_registers.h | ||
ipath_ruc.c | ||
ipath_sdma.c | ||
ipath_srq.c | ||
ipath_stats.c | ||
ipath_sysfs.c | ||
ipath_uc.c | ||
ipath_ud.c | ||
ipath_user_pages.c | ||
ipath_user_sdma.c | ||
ipath_user_sdma.h | ||
ipath_verbs.c | ||
ipath_verbs.h | ||
ipath_verbs_mcast.c | ||
ipath_wc_ppc64.c | ||
ipath_wc_x86_64.c | ||
Kconfig | ||
Makefile |