Commit 00c010e1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'mm-stable-2025-05-31-14-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull MM updates from Andrew Morton:

 - "Add folio_mk_pte()" from Matthew Wilcox simplifies the act of
   creating a pte which addresses the first page in a folio and reduces
   the amount of plumbing which architecture must implement to provide
   this.

 - "Misc folio patches for 6.16" from Matthew Wilcox is a shower of
   largely unrelated folio infrastructure changes which clean things up
   and better prepare us for future work.

 - "memory,x86,acpi: hotplug memory alignment advisement" from Gregory
   Price adds early-init code to prevent x86 from leaving physical
   memory unused when physical address regions are not aligned to memory
   block size.

 - "mm/compaction: allow more aggressive proactive compaction" from
   Michal Clapinski provides some tuning of the (sadly, hard-coded (more
   sadly, not auto-tuned)) thresholds for our invokation of proactive
   compaction. In a simple test case, the reduction of a guest VM's
   memory consumption was dramatic.

 - "Minor cleanups and improvements to swap freeing code" from Kemeng
   Shi provides some code cleaups and a small efficiency improvement to
   this part of our swap handling code.

 - "ptrace: introduce PTRACE_SET_SYSCALL_INFO API" from Dmitry Levin
   adds the ability for a ptracer to modify syscalls arguments. At this
   time we can alter only "system call information that are used by
   strace system call tampering, namely, syscall number, syscall
   arguments, and syscall return value.

   This series should have been incorporated into mm.git's "non-MM"
   branch, but I goofed.

 - "fs/proc: extend the PAGEMAP_SCAN ioctl to report guard regions" from
   Andrei Vagin extends the info returned by the PAGEMAP_SCAN ioctl
   against /proc/pid/pagemap. This permits CRIU to more efficiently get
   at the info about guard regions.

 - "Fix parameter passed to page_mapcount_is_type()" from Gavin Shan
   implements that fix. No runtime effect is expected because
   validate_page_before_insert() happens to fix up this error.

 - "kernel/events/uprobes: uprobe_write_opcode() rewrite" from David
   Hildenbrand basically brings uprobe text poking into the current
   decade. Remove a bunch of hand-rolled implementation in favor of
   using more current facilities.

 - "mm/ptdump: Drop assumption that pxd_val() is u64" from Anshuman
   Khandual provides enhancements and generalizations to the pte dumping
   code. This might be needed when 128-bit Page Table Descriptors are
   enabled for ARM.

 - "Always call constructor for kernel page tables" from Kevin Brodsky
   ensures that the ctor/dtor is always called for kernel pgtables, as
   it already is for user pgtables.

   This permits the addition of more functionality such as "insert hooks
   to protect page tables". This change does result in various
   architectures performing unnecesary work, but this is fixed up where
   it is anticipated to occur.

 - "Rust support for mm_struct, vm_area_struct, and mmap" from Alice
   Ryhl adds plumbing to permit Rust access to core MM structures.

 - "fix incorrectly disallowed anonymous VMA merges" from Lorenzo
   Stoakes takes advantage of some VMA merging opportunities which we've
   been missing for 15 years.

 - "mm/madvise: batch tlb flushes for MADV_DONTNEED and MADV_FREE" from
   SeongJae Park optimizes process_madvise()'s TLB flushing.

   Instead of flushing each address range in the provided iovec, we
   batch the flushing across all the iovec entries. The syscall's cost
   was approximately halved with a microbenchmark which was designed to
   load this particular operation.

 - "Track node vacancy to reduce worst case allocation counts" from
   Sidhartha Kumar makes the maple tree smarter about its node
   preallocation.

   stress-ng mmap performance increased by single-digit percentages and
   the amount of unnecessarily preallocated memory was dramaticelly
   reduced.

 - "mm/gup: Minor fix, cleanup and improvements" from Baoquan He removes
   a few unnecessary things which Baoquan noted when reading the code.

 - ""Enhance sysfs handling for memory hotplug in weighted interleave"
   from Rakie Kim "enhances the weighted interleave policy in the memory
   management subsystem by improving sysfs handling, fixing memory
   leaks, and introducing dynamic sysfs updates for memory hotplug
   support". Fixes things on error paths which we are unlikely to hit.

 - "mm/damon: auto-tune DAMOS for NUMA setups including tiered memory"
   from SeongJae Park introduces new DAMOS quota goal metrics which
   eliminate the manual tuning which is required when utilizing DAMON
   for memory tiering.

 - "mm/vmalloc.c: code cleanup and improvements" from Baoquan He
   provides cleanups and small efficiency improvements which Baoquan
   found via code inspection.

 - "vmscan: enforce mems_effective during demotion" from Gregory Price
   changes reclaim to respect cpuset.mems_effective during demotion when
   possible. because presently, reclaim explicitly ignores
   cpuset.mems_effective when demoting, which may cause the cpuset
   settings to violated.

   This is useful for isolating workloads on a multi-tenant system from
   certain classes of memory more consistently.

 - "Clean up split_huge_pmd_locked() and remove unnecessary folio
   pointers" from Gavin Guo provides minor cleanups and efficiency gains
   in in the huge page splitting and migrating code.

 - "Use kmem_cache for memcg alloc" from Huan Yang creates a slab cache
   for `struct mem_cgroup', yielding improved memory utilization.

 - "add max arg to swappiness in memory.reclaim and lru_gen" from
   Zhongkun He adds a new "max" argument to the "swappiness=" argument
   for memory.reclaim MGLRU's lru_gen.

   This directs proactive reclaim to reclaim from only anon folios
   rather than file-backed folios.

 - "kexec: introduce Kexec HandOver (KHO)" from Mike Rapoport is the
   first step on the path to permitting the kernel to maintain existing
   VMs while replacing the host kernel via file-based kexec. At this
   time only memblock's reserve_mem is preserved.

 - "mm: Introduce for_each_valid_pfn()" from David Woodhouse provides
   and uses a smarter way of looping over a pfn range. By skipping
   ranges of invalid pfns.

 - "sched/numa: Skip VMA scanning on memory pinned to one NUMA node via
   cpuset.mems" from Libo Chen removes a lot of pointless VMA scanning
   when a task is pinned a single NUMA mode.

   Dramatic performance benefits were seen in some real world cases.

 - "JFS: Implement migrate_folio for jfs_metapage_aops" from Shivank
   Garg addresses a warning which occurs during memory compaction when
   using JFS.

 - "move all VMA allocation, freeing and duplication logic to mm" from
   Lorenzo Stoakes moves some VMA code from kernel/fork.c into the more
   appropriate mm/vma.c.

 - "mm, swap: clean up swap cache mapping helper" from Kairui Song
   provides code consolidation and cleanups related to the folio_index()
   function.

 - "mm/gup: Cleanup memfd_pin_folios()" from Vishal Moola does that.

 - "memcg: Fix test_memcg_min/low test failures" from Waiman Long
   addresses some bogus failures which are being reported by the
   test_memcontrol selftest.

 - "eliminate mmap() retry merge, add .mmap_prepare hook" from Lorenzo
   Stoakes commences the deprecation of file_operations.mmap() in favor
   of the new file_operations.mmap_prepare().

   The latter is more restrictive and prevents drivers from messing with
   things in ways which, amongst other problems, may defeat VMA merging.

 - "memcg: decouple memcg and objcg stocks"" from Shakeel Butt decouples
   the per-cpu memcg charge cache from the objcg's one.

   This is a step along the way to making memcg and objcg charging
   NMI-safe, which is a BPF requirement.

 - "mm/damon: minor fixups and improvements for code, tests, and
   documents" from SeongJae Park is yet another batch of miscellaneous
   DAMON changes. Fix and improve minor problems in code, tests and
   documents.

 - "memcg: make memcg stats irq safe" from Shakeel Butt converts memcg
   stats to be irq safe. Another step along the way to making memcg
   charging and stats updates NMI-safe, a BPF requirement.

 - "Let unmap_hugepage_range() and several related functions take folio
   instead of page" from Fan Ni provides folio conversions in the
   hugetlb code.

* tag 'mm-stable-2025-05-31-14-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (285 commits)
  mm: pcp: increase pcp->free_count threshold to trigger free_high
  mm/hugetlb: convert use of struct page to folio in __unmap_hugepage_range()
  mm/hugetlb: refactor __unmap_hugepage_range() to take folio instead of page
  mm/hugetlb: refactor unmap_hugepage_range() to take folio instead of page
  mm/hugetlb: pass folio instead of page to unmap_ref_private()
  memcg: objcg stock trylock without irq disabling
  memcg: no stock lock for cpu hot-unplug
  memcg: make __mod_memcg_lruvec_state re-entrant safe against irqs
  memcg: make count_memcg_events re-entrant safe against irqs
  memcg: make mod_memcg_state re-entrant safe against irqs
  memcg: move preempt disable to callers of memcg_rstat_updated
  memcg: memcg_rstat_updated re-entrant safe against irqs
  mm: khugepaged: decouple SHMEM and file folios' collapse
  selftests/eventfd: correct test name and improve messages
  alloc_tag: check mem_profiling_support in alloc_tag_init
  Docs/damon: update titles and brief introductions to explain DAMOS
  selftests/damon/_damon_sysfs: read tried regions directories in order
  mm/damon/tests/core-kunit: add a test for damos_set_filters_default_reject()
  mm/damon/paddr: remove unused variable, folio_list, in damon_pa_stat()
  mm/damon/sysfs-schemes: fix wrong comment on damons_sysfs_quota_goal_metric_strs
  ...
parents b4296655 c544a952
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2336,7 +2336,7 @@ D: Author of the dialog utility, foundation
D: for Menuconfig's lxdialog.

N: Christoph Lameter
E: christoph@lameter.com
E: cl@gentwo.org
D: Digiboard PC/Xe and PC/Xi, Digiboard EPCA
D: NUMA support, Slab allocators, Page migration
D: Scalability, Time subsystem
+6 −0
Original line number Diff line number Diff line
@@ -283,6 +283,12 @@ Contact: SeongJae Park <sj@kernel.org>
Description:	Writing to and reading from this file sets and gets the current
		value of the goal metric.

What:		/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/goals/<G>/nid
Date:		Apr 2025
Contact:	SeongJae Park <sj@kernel.org>
Description:	Writing to and reading from this file sets and gets the nid
		parameter of the goal.

What:		/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil
Date:		Mar 2022
Contact:	SeongJae Park <sj@kernel.org>
+32 −3
Original line number Diff line number Diff line
@@ -20,6 +20,35 @@ Description: Weight configuration interface for nodeN
		Minimum weight: 1
		Maximum weight: 255

		Writing an empty string or `0` will reset the weight to the
		system default. The system default may be set by the kernel
		or drivers at boot or during hotplug events.
		Writing invalid values (i.e. any values not in [1,255],
		empty string, ...) will return -EINVAL.

		Changing the weight to a valid value will automatically
		switch the system to manual mode as well.

What:		/sys/kernel/mm/mempolicy/weighted_interleave/auto
Date:		May 2025
Contact:	Linux memory management mailing list <linux-mm@kvack.org>
Description:	Auto-weighting configuration interface

		Configuration mode for weighted interleave. 'true' indicates
		that the system is in auto mode, and a 'false' indicates that
		the system is in manual mode.

		In auto mode, all node weights are re-calculated and overwritten
		(visible via the nodeN interfaces) whenever new bandwidth data
		is made available during either boot or hotplug events.

		In manual mode, node weights can only be updated by the user.
		Note that nodes that are onlined with previously set weights
		will reuse those weights. If they were not previously set or
		are onlined with missing bandwidth data, the weights will use
		a default weight of 1.

		Writing any true value string (e.g. Y or 1) will enable auto
		mode, while writing any false value string (e.g. N or 0) will
		enable manual mode. All other strings are ignored and will
		return -EINVAL.

		Writing a new weight to a node directly via the nodeN interface
		will also automatically switch the system to manual mode.
+10 −6
Original line number Diff line number Diff line
@@ -16,9 +16,13 @@ Description: Enable/disable demoting pages during reclaim
		Allowing page migration during reclaim enables these
		systems to migrate pages from fast tiers to slow tiers
		when the fast tier is under pressure.  This migration
		is performed before swap.  It may move data to a NUMA
		node that does not fall into the cpuset of the
		allocating process which might be construed to violate
		the guarantees of cpusets.  This should not be enabled
		on systems which need strict cpuset location
		guarantees.
		is performed before swap if an eligible numa node is
		present in cpuset.mems for the cgroup (or if cpuset v1
		is being used). If cpusets.mems changes at runtime, it
		may move data to a NUMA node that does not fall into the
		cpuset of the new cpusets.mems, which might be construed
		to violate the guarantees of cpusets.  Shared memory,
		such as libraries, owned by another cgroup may still be
		demoted and result in memory use on a node not present
		in cpusets.mem. This should not be enabled on systems
		which need strict cpuset location guarantees.
+48 −48
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ What: /sys/kernel/slab
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The /sys/kernel/slab directory contains a snapshot of the
		internal state of the SLUB allocator for each cache.  Certain
@@ -14,7 +14,7 @@ What: /sys/kernel/slab/<cache>/aliases
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The aliases file is read-only and specifies how many caches
		have merged into this cache.
@@ -23,7 +23,7 @@ What: /sys/kernel/slab/<cache>/align
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The align file is read-only and specifies the cache's object
		alignment in bytes.
@@ -32,7 +32,7 @@ What: /sys/kernel/slab/<cache>/alloc_calls
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_calls file is read-only and lists the kernel code
		locations from which allocations for this cache were performed.
@@ -43,7 +43,7 @@ What: /sys/kernel/slab/<cache>/alloc_fastpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_fastpath file shows how many objects have been
		allocated using the fast path.  It can be written to clear the
@@ -54,7 +54,7 @@ What: /sys/kernel/slab/<cache>/alloc_from_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_from_partial file shows how many times a cpu slab has
		been full and it has been refilled by using a slab from the list
@@ -66,7 +66,7 @@ What: /sys/kernel/slab/<cache>/alloc_refill
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_refill file shows how many times the per-cpu freelist
		was empty but there were objects available as the result of
@@ -77,7 +77,7 @@ What: /sys/kernel/slab/<cache>/alloc_slab
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_slab file is shows how many times a new slab had to
		be allocated from the page allocator.  It can be written to
@@ -88,7 +88,7 @@ What: /sys/kernel/slab/<cache>/alloc_slowpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The alloc_slowpath file shows how many objects have been
		allocated using the slow path because of a refill or
@@ -100,7 +100,7 @@ What: /sys/kernel/slab/<cache>/cache_dma
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The cache_dma file is read-only and specifies whether objects
		are from ZONE_DMA.
@@ -110,7 +110,7 @@ What: /sys/kernel/slab/<cache>/cpu_slabs
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The cpu_slabs file is read-only and displays how many cpu slabs
		are active and their NUMA locality.
@@ -119,7 +119,7 @@ What: /sys/kernel/slab/<cache>/cpuslab_flush
Date:		April 2009
KernelVersion:	2.6.31
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The file cpuslab_flush shows how many times a cache's cpu slabs
		have been flushed as the result of destroying or shrinking a
@@ -132,7 +132,7 @@ What: /sys/kernel/slab/<cache>/ctor
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The ctor file is read-only and specifies the cache's object
		constructor function, which is invoked for each object when a
@@ -142,7 +142,7 @@ What: /sys/kernel/slab/<cache>/deactivate_empty
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The deactivate_empty file shows how many times an empty cpu slab
		was deactivated.  It can be written to clear the current count.
@@ -152,7 +152,7 @@ What: /sys/kernel/slab/<cache>/deactivate_full
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The deactivate_full file shows how many times a full cpu slab
		was deactivated.  It can be written to clear the current count.
@@ -162,7 +162,7 @@ What: /sys/kernel/slab/<cache>/deactivate_remote_frees
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The deactivate_remote_frees file shows how many times a cpu slab
		has been deactivated and contained free objects that were freed
@@ -173,7 +173,7 @@ What: /sys/kernel/slab/<cache>/deactivate_to_head
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The deactivate_to_head file shows how many times a partial cpu
		slab was deactivated and added to the head of its node's partial
@@ -184,7 +184,7 @@ What: /sys/kernel/slab/<cache>/deactivate_to_tail
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The deactivate_to_tail file shows how many times a partial cpu
		slab was deactivated and added to the tail of its node's partial
@@ -195,7 +195,7 @@ What: /sys/kernel/slab/<cache>/destroy_by_rcu
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The destroy_by_rcu file is read-only and specifies whether
		slabs (not objects) are freed by rcu.
@@ -204,7 +204,7 @@ What: /sys/kernel/slab/<cache>/free_add_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_add_partial file shows how many times an object has
		been freed in a full slab so that it had to added to its node's
@@ -215,7 +215,7 @@ What: /sys/kernel/slab/<cache>/free_calls
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_calls file is read-only and lists the locations of
		object frees if slab debugging is enabled (see
@@ -225,7 +225,7 @@ What: /sys/kernel/slab/<cache>/free_fastpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_fastpath file shows how many objects have been freed
		using the fast path because it was an object from the cpu slab.
@@ -236,7 +236,7 @@ What: /sys/kernel/slab/<cache>/free_frozen
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_frozen file shows how many objects have been freed to
		a frozen slab (i.e. a remote cpu slab).  It can be written to
@@ -247,7 +247,7 @@ What: /sys/kernel/slab/<cache>/free_remove_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_remove_partial file shows how many times an object has
		been freed to a now-empty slab so that it had to be removed from
@@ -259,7 +259,7 @@ What: /sys/kernel/slab/<cache>/free_slab
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_slab file shows how many times an empty slab has been
		freed back to the page allocator.  It can be written to clear
@@ -270,7 +270,7 @@ What: /sys/kernel/slab/<cache>/free_slowpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The free_slowpath file shows how many objects have been freed
		using the slow path (i.e. to a full or partial slab).  It can
@@ -281,7 +281,7 @@ What: /sys/kernel/slab/<cache>/hwcache_align
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The hwcache_align file is read-only and specifies whether
		objects are aligned on cachelines.
@@ -301,7 +301,7 @@ What: /sys/kernel/slab/<cache>/object_size
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The object_size file is read-only and specifies the cache's
		object size.
@@ -310,7 +310,7 @@ What: /sys/kernel/slab/<cache>/objects
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The objects file is read-only and displays how many objects are
		active and from which nodes they are from.
@@ -319,7 +319,7 @@ What: /sys/kernel/slab/<cache>/objects_partial
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The objects_partial file is read-only and displays how many
		objects are on partial slabs and from which nodes they are
@@ -329,7 +329,7 @@ What: /sys/kernel/slab/<cache>/objs_per_slab
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The file objs_per_slab is read-only and specifies how many
		objects may be allocated from a single slab of the order
@@ -339,7 +339,7 @@ What: /sys/kernel/slab/<cache>/order
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The order file specifies the page order at which new slabs are
		allocated.  It is writable and can be changed to increase the
@@ -356,7 +356,7 @@ What: /sys/kernel/slab/<cache>/order_fallback
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The order_fallback file shows how many times an allocation of a
		new slab has not been possible at the cache's order and instead
@@ -369,7 +369,7 @@ What: /sys/kernel/slab/<cache>/partial
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The partial file is read-only and displays how long many
		partial slabs there are and how long each node's list is.
@@ -378,7 +378,7 @@ What: /sys/kernel/slab/<cache>/poison
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The poison file specifies whether objects should be poisoned
		when a new slab is allocated.
@@ -387,7 +387,7 @@ What: /sys/kernel/slab/<cache>/reclaim_account
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The reclaim_account file specifies whether the cache's objects
		are reclaimable (and grouped by their mobility).
@@ -396,7 +396,7 @@ What: /sys/kernel/slab/<cache>/red_zone
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The red_zone file specifies whether the cache's objects are red
		zoned.
@@ -405,7 +405,7 @@ What: /sys/kernel/slab/<cache>/remote_node_defrag_ratio
Date:		January 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The file remote_node_defrag_ratio specifies the percentage of
		times SLUB will attempt to refill the cpu slab with a partial
@@ -419,7 +419,7 @@ What: /sys/kernel/slab/<cache>/sanity_checks
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The sanity_checks file specifies whether expensive checks
		should be performed on free and, at minimum, enables double free
@@ -430,7 +430,7 @@ What: /sys/kernel/slab/<cache>/shrink
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The shrink file is used to reclaim unused slab cache
		memory from a cache.  Empty per-cpu or partial slabs
@@ -446,7 +446,7 @@ What: /sys/kernel/slab/<cache>/slab_size
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The slab_size file is read-only and specifies the object size
		with metadata (debugging information and alignment) in bytes.
@@ -455,7 +455,7 @@ What: /sys/kernel/slab/<cache>/slabs
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The slabs file is read-only and displays how long many slabs
		there are (both cpu and partial) and from which nodes they are
@@ -465,7 +465,7 @@ What: /sys/kernel/slab/<cache>/store_user
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The store_user file specifies whether the location of
		allocation or free should be tracked for a cache.
@@ -474,7 +474,7 @@ What: /sys/kernel/slab/<cache>/total_objects
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The total_objects file is read-only and displays how many total
		objects a cache has and from which nodes they are from.
@@ -483,7 +483,7 @@ What: /sys/kernel/slab/<cache>/trace
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		The trace file specifies whether object allocations and frees
		should be traced.
@@ -492,7 +492,7 @@ What: /sys/kernel/slab/<cache>/validate
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
		Christoph Lameter <cl@gentwo.org>
Description:
		Writing to the validate file causes SLUB to traverse all of its
		cache's objects and check the validity of metadata.
@@ -506,14 +506,14 @@ Description:

What:		/sys/kernel/slab/<cache>/slabs_cpu_partial
Date:		Aug 2011
Contact:	Christoph Lameter <cl@linux.com>
Contact:	Christoph Lameter <cl@gentwo.org>
Description:
		This read-only file shows the number of partialli allocated
		frozen slabs.

What:		/sys/kernel/slab/<cache>/cpu_partial
Date:		Aug 2011
Contact:	Christoph Lameter <cl@linux.com>
Contact:	Christoph Lameter <cl@gentwo.org>
Description:
		This read-only file shows the number of per cpu partial
		pages to keep around.
Loading