1                                CPUSETS
   2                                -------
   4Copyright (C) 2004 BULL SA.
   5Written by
   7Portions Copyright (c) 2004-2006 Silicon Graphics, Inc.
   8Modified by Paul Jackson <>
   9Modified by Christoph Lameter <>
  10Modified by Paul Menage <>
  11Modified by Hidetoshi Seto <>
  161. Cpusets
  17  1.1 What are cpusets ?
  18  1.2 Why are cpusets needed ?
  19  1.3 How are cpusets implemented ?
  20  1.4 What are exclusive cpusets ?
  21  1.5 What is memory_pressure ?
  22  1.6 What is memory spread ?
  23  1.7 What is sched_load_balance ?
  24  1.8 What is sched_relax_domain_level ?
  25  1.9 How do I use cpusets ?
  262. Usage Examples and Syntax
  27  2.1 Basic Usage
  28  2.2 Adding/removing cpus
  29  2.3 Setting flags
  30  2.4 Attaching processes
  313. Questions
  324. Contact
  341. Cpusets
  371.1 What are cpusets ?
  40Cpusets provide a mechanism for assigning a set of CPUs and Memory
  41Nodes to a set of tasks.   In this document "Memory Node" refers to
  42an on-line node that contains memory.
  44Cpusets constrain the CPU and Memory placement of tasks to only
  45the resources within a task's current cpuset.  They form a nested
  46hierarchy visible in a virtual file system.  These are the essential
  47hooks, beyond what is already present, required to manage dynamic
  48job placement on large systems.
  50Cpusets use the generic cgroup subsystem described in
  53Requests by a task, using the sched_setaffinity(2) system call to
  54include CPUs in its CPU affinity mask, and using the mbind(2) and
  55set_mempolicy(2) system calls to include Memory Nodes in its memory
  56policy, are both filtered through that task's cpuset, filtering out any
  57CPUs or Memory Nodes not in that cpuset.  The scheduler will not
  58schedule a task on a CPU that is not allowed in its cpus_allowed
  59vector, and the kernel page allocator will not allocate a page on a
  60node that is not allowed in the requesting task's mems_allowed vector.
  62User level code may create and destroy cpusets by name in the cgroup
  63virtual file system, manage the attributes and permissions of these
  64cpusets and which CPUs and Memory Nodes are assigned to each cpuset,
  65specify and query to which cpuset a task is assigned, and list the
  66task pids assigned to a cpuset.
  691.2 Why are cpusets needed ?
  72The management of large computer systems, with many processors (CPUs),
  73complex memory cache hierarchies and multiple Memory Nodes having
  74non-uniform access times (NUMA) presents additional challenges for
  75the efficient scheduling and memory placement of processes.
  77Frequently more modest sized systems can be operated with adequate
  78efficiency just by letting the operating system automatically share
  79the available CPU and Memory resources amongst the requesting tasks.
  81But larger systems, which benefit more from careful processor and
  82memory placement to reduce memory access times and contention,
  83and which typically represent a larger investment for the customer,
  84can benefit from explicitly placing jobs on properly sized subsets of
  85the system.
  87This can be especially valuable on:
  89    * Web Servers running multiple instances of the same web application,
  90    * Servers running different applications (for instance, a web server
  91      and a database), or
  92    * NUMA systems running large HPC applications with demanding
  93      performance characteristics.
  95These subsets, or "soft partitions" must be able to be dynamically
  96adjusted, as the job mix changes, without impacting other concurrently
  97executing jobs. The location of the running jobs pages may also be moved
  98when the memory locations are changed.
 100The kernel cpuset patch provides the minimum essential kernel
 101mechanisms required to efficiently implement such subsets.  It
 102leverages existing CPU and Memory Placement facilities in the Linux
 103kernel to avoid any additional impact on the critical scheduler or
 104memory allocator code.
 1071.3 How are cpusets implemented ?
 110Cpusets provide a Linux kernel mechanism to constrain which CPUs and
 111Memory Nodes are used by a process or set of processes.
 113The Linux kernel already has a pair of mechanisms to specify on which
 114CPUs a task may be scheduled (sched_setaffinity) and on which Memory
 115Nodes it may obtain memory (mbind, set_mempolicy).
 117Cpusets extends these two mechanisms as follows:
 119 - Cpusets are sets of allowed CPUs and Memory Nodes, known to the
 120   kernel.
 121 - Each task in the system is attached to a cpuset, via a pointer
 122   in the task structure to a reference counted cgroup structure.
 123 - Calls to sched_setaffinity are filtered to just those CPUs
 124   allowed in that task's cpuset.
 125 - Calls to mbind and set_mempolicy are filtered to just
 126   those Memory Nodes allowed in that task's cpuset.
 127 - The root cpuset contains all the systems CPUs and Memory
 128   Nodes.
 129 - For any cpuset, one can define child cpusets containing a subset
 130   of the parents CPU and Memory Node resources.
 131 - The hierarchy of cpusets can be mounted at /dev/cpuset, for
 132   browsing and manipulation from user space.
 133 - A cpuset may be marked exclusive, which ensures that no other
 134   cpuset (except direct ancestors and descendants) may contain
 135   any overlapping CPUs or Memory Nodes.
 136 - You can list all the tasks (by pid) attached to any cpuset.
 138The implementation of cpusets requires a few, simple hooks
 139into the rest of the kernel, none in performance critical paths:
 141 - in init/main.c, to initialize the root cpuset at system boot.
 142 - in fork and exit, to attach and detach a task from its cpuset.
 143 - in sched_setaffinity, to mask the requested CPUs by what's
 144   allowed in that task's cpuset.
 145 - in sched.c migrate_live_tasks(), to keep migrating tasks within
 146   the CPUs allowed by their cpuset, if possible.
 147 - in the mbind and set_mempolicy system calls, to mask the requested
 148   Memory Nodes by what's allowed in that task's cpuset.
 149 - in page_alloc.c, to restrict memory to allowed nodes.
 150 - in vmscan.c, to restrict page recovery to the current cpuset.
 152You should mount the "cgroup" filesystem type in order to enable
 153browsing and modifying the cpusets presently known to the kernel.  No
 154new system calls are added for cpusets - all support for querying and
 155modifying cpusets is via this cpuset file system.
 157The /proc/<pid>/status file for each task has four added lines,
 158displaying the task's cpus_allowed (on which CPUs it may be scheduled)
 159and mems_allowed (on which Memory Nodes it may obtain memory),
 160in the two formats seen in the following example:
 162  Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff
 163  Cpus_allowed_list:      0-127
 164  Mems_allowed:   ffffffff,ffffffff
 165  Mems_allowed_list:      0-63
 167Each cpuset is represented by a directory in the cgroup file system
 168containing (on top of the standard cgroup files) the following
 169files describing that cpuset:
 171 - cpuset.cpus: list of CPUs in that cpuset
 172 - cpuset.mems: list of Memory Nodes in that cpuset
 173 - cpuset.memory_migrate flag: if set, move pages to cpusets nodes
 174 - cpuset.cpu_exclusive flag: is cpu placement exclusive?
 175 - cpuset.mem_exclusive flag: is memory placement exclusive?
 176 - cpuset.mem_hardwall flag:  is memory allocation hardwalled
 177 - cpuset.memory_pressure: measure of how much paging pressure in cpuset
 178 - cpuset.memory_spread_page flag: if set, spread page cache evenly on allowed nodes
 179 - cpuset.memory_spread_slab flag: if set, spread slab cache evenly on allowed nodes
 180 - cpuset.sched_load_balance flag: if set, load balance within CPUs on that cpuset
 181 - cpuset.sched_relax_domain_level: the searching range when migrating tasks
 183In addition, only the root cpuset has the following file:
 184 - cpuset.memory_pressure_enabled flag: compute memory_pressure?
 186New cpusets are created using the mkdir system call or shell
 187command.  The properties of a cpuset, such asThe p-------------  86
1 891970
1 911 92into neste,e dynamicalle changnabl,r "sof- partitions"m.
1 941 951 96into_relitedssets of tasks such that eachuset is constrai------  86
1 97
1 98
1 992070
2095The followingruples pplyd to each cpusee:
2077 -Itms CPUs and Memory Nodes must be a subset ofThe  parents.
2087 -Itu cak'ty be marked exclusiv unlcessThe  parent is.
2079 -Ifm its cpl or memoryisd exclusive,tThey may not overlao anyssibwins.
21132114virtual file syste (vfsd)
2138The/cpus and meus files in the root(top_/cpuse)a cpuses are
213221332134com only shared by thd kernel crossg multiplepusrst. Allr cpusetsa
2137com od kerneldat t, such as file syste  pagee, whilf
24161.5 What is memory_pressure ?
21472438The memory_pressure of a cpusey providesa, simpleper- cpuseymestri-
2149215021512 52
2513Tisd enablisbpatch managris onictoiing jobs runningian ddlica------  86
2564cpusets to efficientlydetrect what level of memory_pressure that jo----  86
2587Thisi;spuseful both on ighntly managdA systems runninga wvide mix of
2 58ubmitited job,g which may hohose to permnrateforre-priocritzhe jobe thaf
2159ure eryingnto uey more memory haon allowed on thenNodesaassigned to hrmsa
2160and with ighntlycroulte,eloingruunnin,y msusivtly arwallal scienifri-
2647This mechanism providesa,overye cooamica wayt for thebpatch managr>
2615216621672 68
21692790    /dev/cpuse/.memory_pressure_enablee,tTho hood in the r balancf
2791    code of_e_allod_page()e for this mstrio reducls to simpay noicting
2792    that the/cpuse_.memory_pressure_enabled flaeisdzeros. Sto only
2793    systems that enablo thisfeacture will compute the mstris.
21752 76
2177>>>Be c uer this msger seper- cpuse,s aotheytchaeper- task r mmsa
2782    tle syste  loadsimoused by abpatch scheduler onictoiing thia
2789    mstrio se shaplly reducdt on large systems, b c uerao saon of
2802    tle tas list can be avoicdt on eachuset of queides.
2827>>>Be c uer this msger seas runningaeverag,r insread of ny acumulratin>
2831    cuinte,y abpatch scheduler can dtrect memory_pressure witha>
2843    tinlhe rad,r insread of havins topread and acumulrahe reultia
2835  s for  perioad of imes.
2 86
2877>>>Be c uer this msger seper- cpuses aotheytchaeper- task r mmsa
2 89    pressure in a cpuset, withae tinlhe rad,r aotheytchae havins ty
2 90    query and acumulrahe reultig ovet all the( dynamicalle chanvind)
2 91   uset of tasks in the/cpuses.
29432 942 952986
2 97
2 98
2979the tasks in the/cpuse,r i uniets of relaimis atemptred pe uscondsa
310330943095Thare rhe twoboolean; flae filesphey cpusen that ontrole whure tcf
312531263287cofigurmation,soeloingaks sefficienofrele memory_pages are vailaible.
3134   Ttasks using mbin()s or set_mempolic()scCalls to sesNUMA>
3495The implementation se  impls.
338EF_SPREAD_PAGEe for each task that is in that cpuses or subsqurennl>
31513 523543
3538The/cpuse_.mey_spreadnNod(dwmentliny is asoe  impls.  I  utsl tha
3162This memory placementmpolicy is asoe known( in othey conexes)s s>
3652Thismpolicy can providr subtanitiae improcemenls for jobs thatne------  86
3 683169379037913752
3 763767372783  xks us gnotfecf,ithin CPecourrtrai--- of rech asacementmpochanism p2803  aspusets are seted_setaffinit,e 2863
282382aTthe kealgitzhhmicurr of Mead balanciag and mos ofproa th kernshared ba href="Documentation/cgroups/cpusets.txt#2183" id="3173" class="line" name="2183">2833  rneldat l structursd. uch asrReg tast isst caineatel thme tcg 
2843  ne" rd, ith ighnNodero_re CPUs inbeg anlancia
dSto one sched_ser( a href="Documentation/cgroups/cpusets.txt#2L13" id="3175" class="line" name="2183">2833  h seffort fopplatitions&le syste  lsPUs in t anNewero_re CPhed_sa href="Documentation/cgroups/cpusets.txt#2L13" id="3176" class="line" name="2183">2 83
28738/a>Each cpted tomain_lurrvs( phe fibset ofThee CPUs ani&le syste  l;a href="Documentation/cgroups/cpusets.txt#3172" id="3178t c6sur0
2 83  main_lud mohee wito#39ty be maad balancia
d2 93
2 93  Pusimpledeesiturr olars thioalance wibetwe thabootlla uscoed tomain_lsa href="Documentation/cgroups/cpusets.txt#LL93" id="2183" class="line" name="2L93">29539/a the  obt CPbion tbuts thdog ansoenbinthatmigerlasd bani&ls onifha
29432 939/a>
2 932983
2 939/a>
2 9398a>Thismpoamul,tThad balanciag andssg thd a Us acofft nowe sprued atf
2973the tallowingrupabootituione.
307430640/a>   use thd peste >intsanagdA sying thusets arpplacs tpepcenien>
30540/a>>>>Be s&lsewallteets of taUs a, fu a ls balanciag anpnrdecesarys c310430940/a>    tinte >inrvs(h  of nhose paUs a, inelungaureicdtg tast isay
30940/a>  s folanciag anpfhat is int noid t
3174piecedas libyeted_setaffinit,e 319431141/a>
324423a>Thare rforen the cuabe paobootituione.
,heysr appusel hia>
32842/a keWn thdog anisa
< youons 39ty beusuly lowanor anovm.
ny otunpiecedasks in ta href="Documentation/cgroups/cpusets.txt#2104" id="3114" class="line" name="3124">32642/a the se appusel hiatmighne harao -.metrive imount oof taUs ,s seff task tca href="Documentation/cgroups/cpusets.txt#3174" id="3L24" class="line" name="3124">312431343364
3494That wiloulbe spbeyo othuridentlniting oSto ontThchuse thewohgerriys fa href="Documentation/cgroups/cpusets.txt#3174" id="3L24" class="line" name="3144">3484
 sanNeUi;ssvide evicpusesa 31444/a cons mix e hawasto se fimpute thcycs inrrtrir tg that thgg tibil,e 31545/a>
315451a>This memisllh scwcrihyotre tcofftaiffimpledig  t-to-  tplitedi ta href="Documentation/cgroups/cpusets.txt#3174" id="3154" class="line" name="3154">3 543544
3534ThIthewohusesa direoncgerriys foerlasn pg th39 cpuset.meuset39 cpilowed tThd othy sa href="Documentation/cgroups/cpusets.txt#3154" id="3134" class="line" name="3154">31543164316461a>This me meju ofe scgenlnnNocasfiethd petop_usel hiaxals.  gin a
< fewa href="Documentation/cgroups/cpusets.txt#3174" id="3154" class="line" name="3164">3164Thwallgraphsuabe p ofanfe scgenlnnNocasf,s se the cu appusel hicasf,a href="Documentation/cgroups/cpusets.txt#3174" id="3154" class="line" name="3164">36443694
3654Thrrtrai--- to behe fibset ofTheenNoUs anlowed to hrms.
,or eall eg
3 64316437947/a>
37947/a Theuse- cpuses filek' cpuset.mehed_load_balance ?u9 cpetiul,tTto effbled fl(trolea
< onicstpusel hia>
3 74
376437<47/a the sneg ty lldra av(mu ofbe)nthkiei&le sysamtpted tomain_l27847/a>
28048/aIfy t,sThe sot detiul,tT,heysr appusel hih seu9 cpuset.mehed_load_balance ?u9 cpeabled f286481a the sne the taabe paotmighbinthate tcoffoinlhe rated tomain_lhrrvs(g aa href="Documentation/cgroups/cpusets.txt#3L24" id="3174" class="line" name="2184">282482a fye pawho systea a, regardrs th ny aythey consel histinis.  a href="Documentation/cgroups/cpusets.txt#3L24" id="3154" class="line" name="2184">28348/a>
284484aTthe kernel sccommiTto efuy cosps tpre eaitnll a licdt ad balanciag aa href="Documentation/cgroups/cpusets.txt#3154" id="3174" class="line" name="2184">2834  ure tcitnc b I  utll a pi andsori patagranular,e fatitions&l CPhed_sa href="Documentation/cgroups/cpusets.txt#2L14" id="3174" class="line" name="2184">2 84
28748/a>Ea taUs ailowed to hrapusel hih vg th39 cpuset.mehed_load_balance ?u9 cpeabled f a href="Documentation/cgroups/cpusets.txt#3L24" id="3174t c6sur0
2 848/a>
2 94
2 94  Us ani&le syste  l. ismpoltitions&loffoin ofThebset osrequesensin
da href="Documentation/cgroups/cpusets.txt#3L14" id="3174" class="line" name="2L94">29549/a thaffoi"arra f Meructurccsemask)fTheUs a, pai wid tdisins T,hey ontrv ca href="Documentation/cgroups/cpusets.txt#2114" id="2L94" class="line" name="2L94">29442 949/a>
2 949/a>The imusel hicy tobuildsnNewmench asaalrions&ld otps=" fritoppratsa href="Documentation/cgroups/cpusets.txt#3144" id="3174" class="line" name="2L94">2984
2 949/a>
2 9498a>Th -hsce#39 cpuset.mehed_load_balance ?u9 cpelek&#osp&qusel hith ig-.metredsiUs acangr i
2974th -horiUs acae fier gorom th&qusel hith igg feaceisdabled fTa href="Documentation/cgroups/cpusets.txt#3115" id="3105" class="line" name="3105">307530650/a>   usd otth igg feaceisdabled fcangr i
30550/a>>>>-hori&qusel hith ig-.metredsiUs acd otth igg feaceisdabled fc runeve pfTa href="Documentation/cgroups/cpusets.txt#3115"3id="3105" class="line" name="2L95">310530950/a>
30950/a>Thismpolalrions&lexacy sptiue" crihmigged tomain_lsv tsched_ser( kshoulba href="Documentation/cgroups/cpusets.txt#3145"6id="3105" class="line" name="2L95">3105
31753195311512a kelalrions&estests edith ighnNorreng tandupdanted s s ofged tomain_lsea href="Documentation/cgroups/cpusets.txt#3175"3id="3105" class="line" name="3115">31153195
324523a>ThF eacxals. ,ftThaast isAunning on thUs nXpacyived s anhey cost isBa href="Documentation/cgroups/cpusets.txt#3175"4id="3105" class="line" name="3125">3295312525a the snehed_ser( kmigred ost isBo beUs nYssthae fist isBoc bestalrn ta href="Documentation/cgroups/cpusets.txt#3175" id="3L25" class="line" name="3125">31252/a>
32652/a thA if seNeUi;snnissvil CPaks in ths ofnniestutwhen eUi;stryo bepudra href="Documentation/cgroups/cpusets.txt#3L15" id="3L25" class="line" name="3125">312531353365
< thenNodextneick<  F eaae ficihi,tions fo thacialysotituione.,hwaing ta href="Documentation/cgroups/cpusets.txt#3125" id="3135" class="line" name="3145">31453495
3495The im39 cpuset.mehed_lolitex_main_l_lem.lu9 cpele syloweds youo bestests aangr g ta href="Documentation/cgroups/cpusets.txt#3125" id="3L25" class="line" name="3145">34854/atwheiiofgechy a thrgr iuTheyouolike The feace syaak. uintelus odich ma href="Documentation/cgroups/cpusets.txt#3125" id="3105" class="line" name="3145">3145
3385/a>EF_etre wid  it,elysolus od-1pre eai Mie>
< d-1p :enbestests 31555/a>   us0p :enberechy  a href="Documentation/cgroups/cpusets.txt#3L25" id="3225" class="line" name="3155">3 555/a>>>>Be1p :ehechy hsiblg a v(hyrforeadprsn a cpuore
<>Be2p :ehechy huoresn a cppacka i35655/a>    t3p :ehechy husetn a cpde wh[= stea atwe ev th-.meA _mestea a]a href="Documentation/cgroups/cpusets.txt#3125" id="3145" class="line" name="3155">315531553535
3535The/cpstea at mul,tThoffohy ateursd. cenien>
< The pastea at mul,tTa href="Documentation/cgroups/cpusets.txt#3155" id="3L25" class="line" name="3155">315531656/a>
316561a>This mece sympol cpuses fid p pfft thenexted tomain_luure tcg tausesa a href="Documentation/cgroups/cpusets.txt#3L15" id="3155" class="line" name="3165">31656/are bengakacpp The prrforen faefflaek' cpuset.mehed_load_balance ?u9 cpdaeperusel ha href="Documentation/cgroups/cpusets.txt#3L15" id="3155" class="line" name="3165">36453695
3 6531656/a>
37957/a Thd ottheey co is.scces;palo th sudet cenienusootyhuritituione.Sa href="Documentation/cgroups/cpusets.txt#3L15" id="3175" class="line" name="3175">3755
< -he pavigredne.srr olabetwe thch taapunc be avouremtdnrrtrir tlo 3 75
< tinlla (r eayhu) dutoppryhuritcialysocihi,tions 39;s mebeh vg eaoca href="Documentation/cgroups/cpusets.txt#2115" id="3175" class="line" name="3175">376537<578a>
< -he pahechy a thucstpdoes#39ty bereoncproa t(r eayhu)  eayhunc bemak.a href="Documentation/cgroups/cpusets.txt#3L15" id="3L25" class="line" name="2175">27857/a>
< tit pahechy a thucstpenoughinlla e thnagdAg thusets opprrrmre thetcSa href="Documentation/cgroups/cpusets.txt#3L15" id="2185" class="line" name="2185">280580a>
< -he patin n is asstesi iofen a
< inr ed  h resed oetcSa href="Documentation/cgroups/cpusets.txt#3L15" id="3175" class="line" name="2185">286581a the sneineatelg th39 cphed_lolitex_main_l_lem.lu9 cpeloulbe snef reyhuSa href="Documentation/cgroups/cpusets.txt#3L15" id="3175" class="line" name="2185">28258/a>
284584aTth1.9 Howpdo Iarao usets en283585a>
<----a href="Documentation/cgroups/cpusets.txt#3175" id="3175" class="line" name="2185">2 858/a>
28758/a>EaIorder tofienimumee,it paproa th f usets ene.srricallykrneldaa href="Documentation/cgroups/cpusets.txt#3135" id="3175t c6sur0
2 85  maesct nohsort fos tprt isantedg the mkmory placementmpo ny aher ca href="Documentation/cgroups/cpusets.txt#2115" id="2L95" class="line" name="2L95">2 959/anNoxks rdirecy s,it paproa th nnaast is f ungr g tPs ofusets oUs a href="Documentation/cgroups/cpusets.txt#2115" id="3175" class="line" name="2L95">2 95   eaMory plNo whacementmp,  ea f ungr g tP bewch mausesa naast ia href="Documentation/cgroups/cpusets.txt#2115" id="3175" class="line" name="2L95">29559/a th.scctt ed tThiofgubt.
2 959/a---Iftaeusel hih ses ofMory plNo wsevefiei,tTho hthr each tast isctt ed ta href="Documentation/cgroups/cpusets.txt#3155" id="3175" class="line" name="2L95">2 959/a>Thathae fiusets.,henNodextneimeiatmige mkrneldasctttredacpprlocatio.a href="Documentation/cgroups/cpusets.txt#3L15" id="3175" class="line" name="2L95">2985
2 9597a>
2 959/a thstin_luuhin CPecouwmenusets enmory thd pest iswassing ta href="Documentation/cgroups/cpusets.txt#3L15t id="2175" class="line" name="2185">2975thmorpoi,ty MPOL_BIND, d the medes in bewch maihawascthu othrlasn yuhina href="Documentation/cgroups/cpusets.txt#3L16" id="3106" class="line" name="3106">307630660/a>   MeMPOL_BINDedes inarscftl a lowed to CPecouwmenusets .se thd pest ia href="Documentation/cgroups/cpusets.txt#3L16"2id="3106" class="line" name="2L96">30560/a>>>wassing teMPOL_BINDed namowpns onifhs ofMPOL_BINDedes inarsclowed ta href="Documentation/cgroups/cpusets.txt#3L16"3id="3106" class="line" name="2L96">310630960/a>
30960/a>Thassqueri,te thget_morpoi,ty(),pdoes#39ty beungr i) ofasp&qst is ruve pfa href="Documentation/cgroups/cpusets.txt#3L26"6id="3106" class="line" name="2L96">3106
317610a---Iftaeusel hih ses of39 cpuset.meuset39 cpivefiei,tTho hthch tast isi&le  cpusesa a href="Documentation/cgroups/cpusets.txt#3L16"1id="3106" class="line" name="3116">3196311612a ketThaast i39;s mepifc ruwricthnnepr aher cnusets en39 ks iu9 cpele sTho hths oa href="Documentation/cgroups/cpusets.txt#3156"3id="3106" class="line" name="3116">31161/aAepd aed toUs nacementmpoisoangr iusimmediio.lyStoIf ch asrase.
 h baleeta href="Documentation/cgroups/cpusets.txt#3176"4id="3106" class="line" name="3116">3196
311615a the scst iswldrc avlowed to hrnnissnhcssiUs nlowed to CPs ofwmenusets Ta href="Documentation/cgroups/cpusets.txt#3L16"6id="3106" class="line" name="3116">31163136
324623a>Th Memn_lumory p)ho hnne  thgaganstayene.sihmieryueno wh ra href="Documentation/cgroups/cpusets.txt#3L26"4id="3106" class="line" name="3126">32962/a>
312631262/a toIf d keusel hiaek&#ce sy39 cpuset.memory p_vigred u9 cpeiofgefisrusTho hthureva href="Documentation/cgroups/cpusets.txt#3156" id="3106" class="line" name="3126">32862/a>
< ks inenesctt ed t athae fiusets.,hcssigagashae fist ish
32662/a thlocatio.d athitv th-.s in ths oflreviouofusets oenesvigred 312631363366
313632a fye pnye mepaganuhdrc avacemed  thenNoseco otvalideno wh CPatscwmenusets .a href="Documentation/cgroups/cpusets.txt#3L16"3id="3106" class="line" name="3136">31363/a>
313633163/a pausel h,hey onwe tc th-.s in thatscpreviouofsting fy th39 cpuset.memoriu9 cp,a href="Documentation/cgroups/cpusets.txt#3156" id="3106" class="line" name="3136">31363/a>
31464/a Theus tcoffoi"exs;pane.spprefflabe p ofaf hotplu&,e fpnrds
da href="Documentation/cgroups/cpusets.txt#LL96" id="3226" class="line" name="3146">31464/a>
< onneve p d a enNoUs anotmigenesrreng t spa tigcedasanNeusets Ta href="Documentation/cgroups/cpusets.txt#3L16" id="3136" class="line" name="3146">314634964/aSimll ig-.metredsiusetStoB thatscve g th Meromsc(ori&ll)oaks inmig hafail
i34964/a paisets fpnrthu otll ig aher cnuoups/ebsettea atwch mah href="Documentation/cgroups/cpusets.txt#3L26" id="3L26" class="line" name="3146">3486
33864/a the sirpuse_llowed topprlocawhd a oiny coUs a31464/a>
31565/a>  viotin qusel hiacementmp,  ryuebtar g thrase.
3 565/a>>>i dilowed toUs s  eaMory plNo wsyaak.nff
356654a Theus tcoffooseco otexs;pane.spprefflabe p ofGFP_ATOMIC stests fra ta href="Documentation/cgroups/cpusets.txt#3146" id="3146" class="line" name="3156">315631563536
353658a fye paureng tyst i39;s meusets.,ho hthumklitexle cpuse_ o,hdupdlookfcona href="Documentation/cgroups/cpusets.txt#1L86"9id="3106" class="line" name="3156">31565/a>thmory pld yure thumkc beri mos  I  u39;s mebett tofieviotin qg tausesa a href="Documentation/cgroups/cpusets.txt#3L16" id="3166" class="line" name="3166">316631666/a>
31666/are ToestalrnNewmenjob at is in be sptrol--- touhin CPcpuses f, e mkea pfra t36466/a>
< 1) mkdirp/tte/fsgroups//usesa a href="Documentation/cgroups/cpusets.txt#3L16" id="3146" class="line" name="3166">36566/a>
< 2) mnt o -tnuoups/e-ousel hiusel hi/tte/fsgroups//usesa a href="Documentation/cgroups/cpusets.txt#3L16" id="3L26" class="line" name="3166">316636966/atas tireffl/tte/fsgroups//usesa evirtu imce syste  l.a href="Documentation/cgroups/cpusets.txt#2106" id="3156" class="line" name="3166">3 6631666/a>
< 5) Att edhae fist ispprefflwmenusets  bhotridg tPs ofpifcppratsa href="Documentation/cgroups/cpusets.txt#3146" id="3176" class="line" name="3176">379670atas tir/tte/fsgroups//usesa eaks inoe syconexe fiusets .a href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="3176">37967/a Th 6)yconk,texec  eacls tprffljob aks inom the a
echu og anaatre ist i37567/a>
370673a>ThF eacxals. ,fefflalowing ant que cwh CPcommaenusthdrcss.upierusel ha href="Documentation/cgroups/cpusets.txt#3L16" id="3166" class="line" name="3176">37963786
3 76
<  cdi/tte/fsgroups//usesa a href="Documentation/cgroups/cpusets.txt#3L16"9id="3106" class="line" name="2176">27867/a>
< tmkdirpCharli?a href="Documentation/cgroups/cpusets.txt#3L16" id="2186" class="line" name="2186">280680a>
<  cdiCharli?a href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2186">28668/a>   u/bin/echo 2-3 &gisduset.meuseta href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2186">282682a>   u/bin/echo 1 &gisduset.memoria href="Documentation/cgroups/cpusets.txt#3L16" id="3156" class="line" name="2186">283683a>   u/bin/echo $$ &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L16" id="3166" class="line" name="2186">28468/a>    sna href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2186">283685a>
<  #he pahsethellh39 cphhu9 cpeisamowpnning on_lhrsel hiCharli?a href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2186">2 8686a>
<  #he padextnny coshoulbrdisplay 39 cp/Charli?u9 cpa href="Documentation/cgroups/cpusets.txt#3156" id="3176" class="line" name="2186">28768/atas tc
2 868/a>
2 9690a>
< -hvia d keusel hiae syste  lrdirecy s,iing the mkvariouofud,tmkdir,iechoTa href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2L96">2 969/a>   usc
<, rmdirpcommaenusom thenN thell,  eae sirptesivalg tyom thU295692a>
< -hvia d keCnnybea
< -hvia d keCnnybea
2 969/a>    t( href="Do ts/nybuo/"> ts/nybuo/a>  2 9695a>
< -hvia d kepythsnhcihi,tions  cts .a href="Documentation/cgroups/cpusets.txt#3L16" id="3176" class="line" name="2L96">298696a>    t( href="Dohttp://cy /">http://cy /a>  2 969/a>
2 969/a>The/cpsed tetaffinit,e  cd askc bealsonbsyma patthenN thellepromp oing ta href="Documentation/cgroups/cpusets.txt#2116t id="2176" class="line" name="2186">2976thSGIu9 cpscnnie.sor RobelrnLov u9 cpscaks ie< The pambi modupdset_morpoi,tya href="Documentation/cgroups/cpusets.txt#2117" id="3107" class="line" name="3107">307730670/a>  (palrn f A og Klee 39;s mewumappacka i
<============================a href="Documentation/cgroups/cpusets.txt#3177"5id="3107" class="line" name="2L97">30970/a>
<2.1 Basic Usagaa href="Documentation/cgroups/cpusets.txt#3177"7id="3107" class="line" name="2L97">30770/a>
<---------------a href="Documentation/cgroups/cpusets.txt#3177"8id="3107" class="line" name="2L97">30870/a>
317710a---virtu imce sste  l.a href="Documentation/cgroups/cpusets.txt#2107"1id="3107" class="line" name="3117">31971/a>
31171/are Toemnt o if, eypt31171/aAep#tmnt o -tnuoups/e-oeusel hicsel hi/tte/fsgroups//usesa a href="Documentation/cgroups/cpusets.txt#3L17"4id="3107" class="line" name="3117">3197
31171/a>The in unr to/tte/fsgroups//usesa eyhunc beri moaotateiatmigcorrespoenusppratsa href="Documentation/cgroups/cpusets.txt#3147"6id="3107" class="line" name="3117">31173137
<# cdi/tte/fsgroups//usesa a href="Documentation/cgroups/cpusets.txt#3L17"1id="3107" class="line" name="3127">32972/a>
<#tmkdirpmy_usesa a href="Documentation/cgroups/cpusets.txt#3L17"2id="3107" class="line" name="3217">31272/a>
324723a>ThNowhyouowan opprdprhe ft a thth igg feausets .a href="Documentation/cgroups/cpusets.txt#3L17"4id="3107" class="line" name="3127">32972/a>
<# cdimy_usesa a href="Documentation/cgroups/cpusets.txt#3L17"5id="3107" class="line" name="3127">31272/a>
31272/a toInfe a
edirecyy plyhunc beri moseryu imce ss32872/a>
<# lia href="Documentation/cgroups/cpusets.txt#3L17" id="3117" class="line" name="3127">32672/a thuoups/.cls t_childrin duset.memory p_esenhsd.a href="Documentation/cgroups/cpusets.txt#3L17"9id="3107" class="line" name="3127">312731373367
313732a fyuset.meuset            uset.mehed_load_balance ?a href="Documentation/cgroups/cpusets.txt#3L17"3id="3107" class="line" name="3137">31373/a>
313738a fye paUs s dupdMory plNo whe tnc beus ,fefflprosaryeanotmigenesing ta href="Documentation/cgroups/cpusets.txt#2117"9id="3107" class="line" name="3137">3307

31474/a fye pausets .a href="Documentation/cgroups/cpusets.txt#3L17" id="3137" class="line" name="3147">31474/a> 31474/a> 31474/aAep#t/bin/echo 1 &gisduset.meuse_exclingvea href="Documentation/cgroups/cpusets.txt#2177"4id="3107" class="line" name="3237">3497 34974/a paAdd romscuset3487 <#t/bin/echo 0-7 &gisduset.meuseta href="Documentation/cgroups/cpusets.txt#3L17" id="3107" class="line" name="3147">31474/a> 33874/a thAdd romscmori31474/a> <#t/bin/echo 0-7 &gisduset.memoria href="Documentation/cgroups/cpusets.txt#3L17" id="3157" class="line" name="3157">31575/a> 31575/a> Nowhctt edryhurithelleppratfeausets 3 575/a>>>#u/bin/echo $$ &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L17" id="3157" class="line" name="3157">35475/a> 356754a ThYhunc bealsonrated rusets.tki&rir ryhuriusets byiing thmkdirpinfe a a href="Documentation/cgroups/cpusets.txt#3157" id="3147" class="line" name="3157">3157315756a> <#tmkdirpmy_sub_c a href="Documentation/cgroups/cpusets.txt#3157" id="3107" class="line" name="3157">3537 3537Theonneve p dpuses f, ju ofes rmdir31575/a> <#trmdirpmy_sub_c a href="Documentation/cgroups/cpusets.txt#3157" id="3167" class="line" name="3167">316731676/a> 31676/a> 364763a>ThNotpaotmigconelegacy atelon ,se scuot;isusets.uot;isdce sste l exis frashaa href="Documentation/cgroups/cpusets.txt#3157" id="3227" class="line" name="3167">3697 36576/a> 31676/a paT mkcommaena href="Documentation/cgroups/cpusets.txt#2117" id="3107" class="line" name="3167">36976/a> 3 6731676/a> 37977/a> 37977/a> 37577/a> 370773a>Thecho uot;is/sbin/usets.oliteas?_agtatuot;isd&gisd/tte/fsgroups//usesa /liteas?_agtata href="Documentation/cgroups/cpusets.txt#3L17" id="3227" class="line" name="3177">37977/a> 3787 <2.2 Addg t/neve g thuseta href="Documentation/cgroups/cpusets.txt#3L17" id="3177" class="line" name="3177">3 77 <------------------ <----a href="Documentation/cgroups/cpusets.txt#3177" id="3177" class="line" name="3177">37677/a> 37<778anNois meisod kesyatixopprrao ihhthuridg tPs&le cpuse_ eavoriece ssa href="Documentation/cgroups/cpusets.txt#3157"9id="3107" class="line" name="2177">27877/a> <_lhrsel hidirecyy iss28078/a> 286781aAep#t/bin/echo 1-4 &gisduset.meuset -&gisdl hicsel lis opprrsel 1,2,3,4a href="Documentation/cgroups/cpusets.txt#LL97" id="3177" class="line" name="2187">28278/a>>>#u/bin/echo 1,2,3,4 &gisduset.meuset -&gisdl hicsel lis opprrsel 1,2,3,4a href="Documentation/cgroups/cpusets.txt#LL97" id="3157" class="line" name="2187">28378/a> 28478/a> eonadmoaoUs nsanNeusets Tttrid refflwmenlis oofaUs s inclurg the ma href="Documentation/cgroups/cpusets.txt#3157" id="3177" class="line" name="2187">283785a> 2 878/a> 287787aAep#t/bin/echo 1-4,6 &gisduset.meuset -&gisdl hicsel lis opprrsel 1,2,3,4,6a href="Documentation/cgroups/cpusets.txt#2177" id="3157t c6sur0 2 878/a> < umelar s onneve p doUs nom thNeusets Tttrid refflwmenlis oofaUs sa href="Documentation/cgroups/cpusets.txt#3L17" id="2L97" class="line" name="2L97">2 9790a> 2 979/a> 29579/are Toeneve p d a enNoUs a29479/a> 2 9794aAep#t/bin/echo uot;isuot;isd&gisduset.meuset -&gisdctearicsel lis a href="Documentation/cgroups/cpusets.txt#3157" id="3177" class="line" name="2L97">2 979/a> 29879/a> <2.3 Sting fyaek&sa href="Documentation/cgroups/cpusets.txt#3177" id="3177" class="line" name="2L97">2 979/a> <-----------------a href="Documentation/cgroups/cpusets.txt#3177ts.txt2L97" class="line" name="2L97">2 979/a> 29779/a> 30780/a> 306801aAep#t/bin/echo 1 &gisduset.meuse_exclingve -&gisdl hiaek' cpuset.meuse_exclingveu9 cpa href="Documentation/cgroups/cpusets.txt#3158"2id="3108" class="line" name="2L98">30580/a>>>#u/bin/echo 0 &gisduset.meuse_exclingve -&gisdunl hiaek' cpuset.meuse_exclingveu9 cpa href="Documentation/cgroups/cpusets.txt#3158"3id="3108" class="line" name="2L98">31080/a> 30980/a> <2.4 Att edg fyprosaryeaa href="Documentation/cgroups/cpusets.txt#3158"5id="3108" class="line" name="2L98">309805a> <-------------------- <-a href="Documentation/cgroups/cpusets.txt#3158"6id="3108" class="line" name="2L98">31080/a> 307807aAep#t/bin/echo PID &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L18"8id="3108" class="line" name="2L98">30880/a> 31080/a> 317810a---Iftyhunreoncseryu imaks insanNtt ed,tyhunreoncpprdprifos tpaft to aher c31981/a> 31181/a>>>#u/bin/echo PID1 &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L18"3id="3108" class="line" name="3118">31181/aAep#t/bin/echo PID2 &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L18"4id="3108" class="line" name="3118">31981/a> tttttt...a href="Documentation/cgroups/cpusets.txt#3L18"5id="3108" class="line" name="3118">31181/a>Th#t/bin/echo PIDn &gisdaks ia href="Documentation/cgroups/cpusets.txt#3L18"6id="3108" class="line" name="3118">31181/a> 3138 31381/a> <3. Qsts href="Documentation/cgroups/cpusets.txt#3L28"9id="3108" class="line" name="3118">311832782/a> 32982/a> 31282/a> 324823a> u errors. Iftyhunrao itai&le cpuse_ oiae syste l,tyhunwo#39ty bebma href="Documentation/cgroups/cpusets.txt#3158"4id="3108" class="line" name="3128">32982/a> tlo tsppreellewhetre iaecommaen succeeded rcfailpf.a href="Documentation/cgroups/cpusets.txt#3L18"5id="3108" class="line" name="3128">31282/a> 31282/a toQ:st hnnIpatt edrprosaryea,eon spefflairspo nye mene" hgets atel spatt eded !a href="Documentation/cgroups/cpusets.txt#3178"7id="3108" class="line" name="3128">32882/a> 326828a> < puteon spONEapif.a href="Documentation/cgroups/cpusets.txt#3L18"9id="3108" class="line" name="3128">31282/a> 31383368 <==========a href="Documentation/cgroups/cpusets.txt#3178" id="3228" class="line" name="3138">31383/a> 31383/a> http://www.bullopensourcr.orgpusets.a> 31383/a> <

T syorigin imLXR softwenes the ta href="Do ts/nxr">LXR commut,e a> <,gg feaexperintatiloversns th href="Domailto:nxr@ne"">nxr@ne"ux.noa> <." kindlplhosd de th href="Dohttp://www.redpill-ne"">Redpill Le"pro ASa> <,gprovir to nyLe"uxptrosulng fyaen operions fonsrvisar si cwh1995.