diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-23 20:50:35 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-23 20:50:35 -0500 |
commit | 5ce1a70e2f00f0bce0cab57f798ca354b9496169 (patch) | |
tree | 6e80200536b7a3576fd71ff2c7135ffe87dc858e /Documentation | |
parent | 9d3cae26acb471d5954cfdc25d1438b32060babe (diff) | |
parent | ef53d16cded7f89b3843b7a96970dab897843ea5 (diff) |
Merge branch 'akpm' (more incoming from Andrew)
Merge second patch-bomb from Andrew Morton:
- A little DM fix
- the MM queue
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (154 commits)
ksm: allocate roots when needed
mm: cleanup "swapcache" in do_swap_page
mm,ksm: swapoff might need to copy
mm,ksm: FOLL_MIGRATION do migration_entry_wait
ksm: shrink 32-bit rmap_item back to 32 bytes
ksm: treat unstable nid like in stable tree
ksm: add some comments
tmpfs: fix mempolicy object leaks
tmpfs: fix use-after-free of mempolicy object
mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to discard all pages
mm: export mmu notifier invalidates
mm: accelerate mm_populate() treatment of THP pages
mm: use long type for page counts in mm_populate() and get_user_pages()
mm: accurately document nr_free_*_pages functions with code comments
HWPOISON: change order of error_states[]'s elements
HWPOISON: fix misjudgement of page_action() for errors on mlocked pages
memcg: stop warning on memcg_propagate_kmem
net: change type of virtio_chan->p9_max_pages
vmscan: change type of vm_total_pages to unsigned long
fs/nfsd: change type of max_delegations, nfsd_drc_max_mem and nfsd_drc_mem_used
...
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-kernel-mm-ksm | 52 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 36 | ||||
-rw-r--r-- | Documentation/vm/ksm.txt | 15 |
3 files changed, 103 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-ksm b/Documentation/ABI/testing/sysfs-kernel-mm-ksm new file mode 100644 index 000000000000..73e653ee2481 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-mm-ksm | |||
@@ -0,0 +1,52 @@ | |||
1 | What: /sys/kernel/mm/ksm | ||
2 | Date: September 2009 | ||
3 | KernelVersion: 2.6.32 | ||
4 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
5 | Description: Interface for Kernel Samepage Merging (KSM) | ||
6 | |||
7 | What: /sys/kernel/mm/ksm/full_scans | ||
8 | What: /sys/kernel/mm/ksm/pages_shared | ||
9 | What: /sys/kernel/mm/ksm/pages_sharing | ||
10 | What: /sys/kernel/mm/ksm/pages_to_scan | ||
11 | What: /sys/kernel/mm/ksm/pages_unshared | ||
12 | What: /sys/kernel/mm/ksm/pages_volatile | ||
13 | What: /sys/kernel/mm/ksm/run | ||
14 | What: /sys/kernel/mm/ksm/sleep_millisecs | ||
15 | Date: September 2009 | ||
16 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
17 | Description: Kernel Samepage Merging daemon sysfs interface | ||
18 | |||
19 | full_scans: how many times all mergeable areas have been | ||
20 | scanned. | ||
21 | |||
22 | pages_shared: how many shared pages are being used. | ||
23 | |||
24 | pages_sharing: how many more sites are sharing them i.e. how | ||
25 | much saved. | ||
26 | |||
27 | pages_to_scan: how many present pages to scan before ksmd goes | ||
28 | to sleep. | ||
29 | |||
30 | pages_unshared: how many pages unique but repeatedly checked | ||
31 | for merging. | ||
32 | |||
33 | pages_volatile: how many pages changing too fast to be placed | ||
34 | in a tree. | ||
35 | |||
36 | run: write 0 to disable ksm, read 0 while ksm is disabled. | ||
37 | write 1 to run ksm, read 1 while ksm is running. | ||
38 | write 2 to disable ksm and unmerge all its pages. | ||
39 | |||
40 | sleep_millisecs: how many milliseconds ksm should sleep between | ||
41 | scans. | ||
42 | |||
43 | See Documentation/vm/ksm.txt for more information. | ||
44 | |||
45 | What: /sys/kernel/mm/ksm/merge_across_nodes | ||
46 | Date: January 2013 | ||
47 | KernelVersion: 3.9 | ||
48 | Contact: Linux memory management mailing list <linux-mm@kvack.org> | ||
49 | Description: Control merging pages across different NUMA nodes. | ||
50 | |||
51 | When it is set to 0 only pages from the same node are merged, | ||
52 | otherwise pages from all nodes can be merged together (default). | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9aa8ff3e54dc..766087781ecd 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1640,6 +1640,42 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1640 | that the amount of memory usable for all allocations | 1640 | that the amount of memory usable for all allocations |
1641 | is not too small. | 1641 | is not too small. |
1642 | 1642 | ||
1643 | movablemem_map=acpi | ||
1644 | [KNL,X86,IA-64,PPC] This parameter is similar to | ||
1645 | memmap except it specifies the memory map of | ||
1646 | ZONE_MOVABLE. | ||
1647 | This option inform the kernel to use Hot Pluggable bit | ||
1648 | in flags from SRAT from ACPI BIOS to determine which | ||
1649 | memory devices could be hotplugged. The corresponding | ||
1650 | memory ranges will be set as ZONE_MOVABLE. | ||
1651 | NOTE: Whatever node the kernel resides in will always | ||
1652 | be un-hotpluggable. | ||
1653 | |||
1654 | movablemem_map=nn[KMG]@ss[KMG] | ||
1655 | [KNL,X86,IA-64,PPC] This parameter is similar to | ||
1656 | memmap except it specifies the memory map of | ||
1657 | ZONE_MOVABLE. | ||
1658 | If user specifies memory ranges, the info in SRAT will | ||
1659 | be ingored. And it works like the following: | ||
1660 | - If more ranges are all within one node, then from | ||
1661 | lowest ss to the end of the node will be ZONE_MOVABLE. | ||
1662 | - If a range is within a node, then from ss to the end | ||
1663 | of the node will be ZONE_MOVABLE. | ||
1664 | - If a range covers two or more nodes, then from ss to | ||
1665 | the end of the 1st node will be ZONE_MOVABLE, and all | ||
1666 | the rest nodes will only have ZONE_MOVABLE. | ||
1667 | If memmap is specified at the same time, the | ||
1668 | movablemem_map will be limited within the memmap | ||
1669 | areas. If kernelcore or movablecore is also specified, | ||
1670 | movablemem_map will have higher priority to be | ||
1671 | satisfied. So the administrator should be careful that | ||
1672 | the amount of movablemem_map areas are not too large. | ||
1673 | Otherwise kernel won't have enough memory to start. | ||
1674 | NOTE: We don't stop users specifying the node the | ||
1675 | kernel resides in as hotpluggable so that this | ||
1676 | option can be used as a workaround of firmware | ||
1677 | bugs. | ||
1678 | |||
1643 | MTD_Partition= [MTD] | 1679 | MTD_Partition= [MTD] |
1644 | Format: <name>,<region-number>,<size>,<offset> | 1680 | Format: <name>,<region-number>,<size>,<offset> |
1645 | 1681 | ||
diff --git a/Documentation/vm/ksm.txt b/Documentation/vm/ksm.txt index b392e496f816..f34a8ee6f860 100644 --- a/Documentation/vm/ksm.txt +++ b/Documentation/vm/ksm.txt | |||
@@ -58,6 +58,21 @@ sleep_millisecs - how many milliseconds ksmd should sleep before next scan | |||
58 | e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs" | 58 | e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs" |
59 | Default: 20 (chosen for demonstration purposes) | 59 | Default: 20 (chosen for demonstration purposes) |
60 | 60 | ||
61 | merge_across_nodes - specifies if pages from different numa nodes can be merged. | ||
62 | When set to 0, ksm merges only pages which physically | ||
63 | reside in the memory area of same NUMA node. That brings | ||
64 | lower latency to access of shared pages. Systems with more | ||
65 | nodes, at significant NUMA distances, are likely to benefit | ||
66 | from the lower latency of setting 0. Smaller systems, which | ||
67 | need to minimize memory usage, are likely to benefit from | ||
68 | the greater sharing of setting 1 (default). You may wish to | ||
69 | compare how your system performs under each setting, before | ||
70 | deciding on which to use. merge_across_nodes setting can be | ||
71 | changed only when there are no ksm shared pages in system: | ||
72 | set run 2 to unmerge pages first, then to 1 after changing | ||
73 | merge_across_nodes, to remerge according to the new setting. | ||
74 | Default: 1 (merging across nodes as in earlier releases) | ||
75 | |||
61 | run - set 0 to stop ksmd from running but keep merged pages, | 76 | run - set 0 to stop ksmd from running but keep merged pages, |
62 | set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", | 77 | set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", |
63 | set 2 to stop ksmd and unmerge all pages currently merged, | 78 | set 2 to stop ksmd and unmerge all pages currently merged, |