Commit f0339db7 authored by Changbin Du's avatar Changbin Du Committed by Jonathan Corbet
Browse files

Documentation: x86: convert x86_64/fake-numa-for-cpusets to reST



This converts the plain text documentation to reStructuredText format and
add it to Sphinx TOC tree. No essential content change.

Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
Reviewed-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 85a3bd41
Loading
Loading
Loading
Loading
+18 −7
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

=====================
Fake NUMA For CPUSets
=====================

:Author: David Rientjes <rientjes@cs.washington.edu>

Using numa=fake and CPUSets for Resource Management
Written by David Rientjes <rientjes@cs.washington.edu>

This document describes how the numa=fake x86_64 command-line option can be used
in conjunction with cpusets for coarse memory management.  Using this feature,
@@ -20,7 +27,7 @@ you become more familiar with using this combination for resource control,
you'll determine a better setup to minimize the number of nodes you have to deal
with.

A machine may be split as follows with "numa=fake=4*512," as reported by dmesg:
A machine may be split as follows with "numa=fake=4*512," as reported by dmesg::

	Faking node 0 at 0000000000000000-0000000020000000 (512MB)
	Faking node 1 at 0000000020000000-0000000040000000 (512MB)
@@ -34,7 +41,7 @@ A machine may be split as follows with "numa=fake=4*512," as reported by dmesg:

Now following the instructions for mounting the cpusets filesystem from
Documentation/cgroup-v1/cpusets.txt, you can assign fake nodes (i.e. contiguous memory
address spaces) to individual cpusets:
address spaces) to individual cpusets::

	[root@xroads /]# mkdir exampleset
	[root@xroads /]# mount -t cpuset none exampleset
@@ -47,7 +54,7 @@ Now this cpuset, 'ddset', will only allowed access to fake nodes 0 and 1 for
memory allocations (1G).

You can now assign tasks to these cpusets to limit the memory resources
available to them according to the fake nodes assigned as mems:
available to them according to the fake nodes assigned as mems::

	[root@xroads /exampleset/ddset]# echo $$ > tasks
	[root@xroads /exampleset/ddset]# dd if=/dev/zero of=tmp bs=1024 count=1G
@@ -57,9 +64,13 @@ Notice the difference between the system memory usage as reported by
/proc/meminfo between the restricted cpuset case above and the unrestricted
case (i.e. running the same 'dd' command without assigning it to a fake NUMA
cpuset):
				Unrestricted	Restricted
	MemTotal:		3091900 kB	3091900 kB
	MemFree:		  42113 kB	1513236 kB

	========	============	==========
	Name		Unrestricted	Restricted
	========	============	==========
	MemTotal	3091900 kB	3091900 kB
	MemFree		42113 kB	1513236 kB
	========	============	==========

This allows for coarse memory management for the tasks you assign to particular
cpusets.  Since cpusets can form a hierarchy, you can create some pretty
+1 −0
Original line number Diff line number Diff line
@@ -11,3 +11,4 @@ x86_64 Support
   uefi
   mm
   5level-paging
   fake-numa-for-cpusets