1                CPU hotplug Support in Linux(tm) Kernel
   3                Maintainers:
   4                CPU Hotplug Core:
   5                        Rusty Russell <>
   6                        Srivatsa Vaddagiri <>
   7                i386:
   8                        Zwane Mwaikambo <>
   9                ppc64:
  10                        Nathan Lynch <>
  11                        Joel Schopp <>
  12                ia64/x86_64:
  13                        Ashok Raj <>
  14                s390:
  15                        Heiko Carstens <>
  17Authors: Ashok Raj <>
  18Lots of feedback: Nathan Lynch <>,
  19             Joel Schopp <>
  23Modern advances in system architectures have introduced advanced error
  24reporting and correction capabilities in processors. CPU architectures permit
  25partitioning support, where compute resources of a single CPU could be made
  26available to virtual machine environments. There are couple OEMS that
  27support NUMA hardware which are hot pluggable as well, where physical
  28node insertion and removal require support for CPU hotplug.
  30Such advances require CPUs available to a kernel to be removed either for
  31provisioning reasons, or for RAS purposes to keep an offending CPU off
  32system execution path. Hence the need for CPU hotplug support in the
  33Linux kernel.
  35A more novel use of CPU-hotplug support is its use today in suspend
  36resume support for SMP. Dual-core and HT support makes even
  37a laptop run SMP kernels which didn't support these methods. SMP support
  38for suspend/resume is a work in progress.
  40General Stuff about CPU Hotplug
  43Command Line Switches
  45maxcpus=n    Restrict boot time cpus to n. Say if you have 4 cpus, using
  46             maxcpus=2 will only boot 2. You can choose to bring the
  47             other cpus later online, read FAQ's for more info.
  49additional_cpus=n (*)   Use this to limit hotpluggable cpus. This option sets
  50                        cpu_possible_mask = cpu_present_mask + additional_cpus
  52cede_offline={"off","on"}  Use this option to disable/enable putting offlined
  53                            processors to an extended H_CEDE state on
  54                            supported pseries platforms.
  55                            If nothing is specified,
  56                            cede_offline is set to "on".
  58(*) Option valid only for following architectures
  59- ia64
  61ia64 uses the number of disabled local apics in ACPI tables MADT to
  62determine the number of potentially hot-pluggable cpus. The implementation
  63should only rely on this to count the # of cpus, but *MUST* not rely
  64on the apicid values in those tables for disabled apics. In the event
  65BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could
  66use this parameter "additional_cpus=x" to represent those cpus in the
  69possible_cpus=n         [s390,x86_64] use this to set hotpluggable cpus.
  70                        This option sets possible_cpus bits in
  71                        cpu_possible_mask. Thus keeping the numbers of bits set
  72                        constant even if the machine gets rebooted.
  74CPU maps and such
  76[More on cpumaps and primitive to manipulate, please check
  77include/linux/cpumask.h that has more descriptive text.]
  79cpu_possible_mask: Bitmap of possible CPUs that can ever be available in the
  80system. This is used to allocate some boot time memory for per_cpu variables
  81that aren't designed to grow/shrink as CPUs are made available or removed.
  82Once set during boot time discovery phase, the map is static, i.e no bits
  83are added or removed anytime.  Trimming it accurately for your system needs
  84upfront can save some boot time memory. See below for how we use heuristics
  85in x86_64 case to keep this under check.
  87cpu_online_mask: Bitmap of all CPUs currently online. Its set in __cpu_up()
  88after a cpu is available for kernel scheduling and ready to receive
  89interrupts from devices. Its cleared when a cpu is brought down using
  90__cpu_disable(), before which all OS services including interrupts are
  91migrated to another target CPU.
  93cpu_present_mask: Bitmap of CPUs currently present in the system. Not all
  94of them may be online. When physical hotplug is processed by the relevant
  95subsystem (e.g ACPI) can change and new bit either be added or removed
  96from the map depending on the event is hot-add/hot-remove. There are currently
  97no locking rules as of now. Typical usage is to init topology during boot,
  98at which time hotplug is disabled.
 100You really dont need to manipulate any of the system cpu maps. They should
 101be read-only for most use. When setting up per-cpu resources almost always use
 102cpu_possible_mask/for_each_possible_cpu() to iterate.
 104Never use anything other than cpumask_t to represent bitmap of CPUs.
 106        #include <linux/cpumask.h>
 108        for_each_possible_cpu     - Iterate over cpu_possible_mask
 109        for_each_online_cpu       - Iterate over cpu_online_mask
 110        for_each_present_cpu      - Iterate over cpu_present_mask
 111        for_each_cpu_mask(x,mask) - Iterate over some random collection of cpu mask.
 113        #include <linux/cpu.h>
 114        get_online_cpus() and put_online_cpus():
 116The above calls are used to inhibit cpu hotplug operations. While the
 117cpu_hotplug.refcount is non zero, the cpu_online_mask will not change.
 118If you merely need to avoid cpus going away, you could also use
 119preempt_disable() and preempt_enable() for those sections.
 120Just remember the critical section cannot call any
 121function that can sleep or schedule this process away. The preempt_disable()
 122will work as long as stop_machine_run() is used to take a cpu down.
 124CPU Hotplug - Frequently Asked Questions.
 126Q: How to enable my kernel to support CPU hotplug?
 127A: When doing make defconfig, Enable CPU hotplug support
 129   "Processor type and Features" -> Support for Hotpluggable CPUs
 131Make sure that you have CONFIG_HOTPLUG, and CONFIG_SMP turned on as well.
supposo us avoid cmy kernHOTPLUG, and C_plug. Dual-d/resume is a wo
  3141  31513a href="Documentation/cpu-hotplug.txt#L126" id="L36" cla1ss="line" name="L36">  31613 How to Wn'ures permit
 CPU hotplug?
  31713 When doAw. Ty/optiopu_onlng architectures
  31813a href="Documentation/cpu-hotplug.txt#L129" id="L39" cla1ss="line" name="L39">  3191  41014a href="Documentation/cpu-hotplug.txt#L131" id="L41" cla1ss="line" name="L41">  4111------to enable t.
< mac is disableed pseriesevent inew 2. uilt to supef="Documentation/cpu-hotplug.txt#L127" id="L42" cla1ss="line" name="L42">  4121  41314a href="Documentation/cpu-hotplug.txt#L124" id=4L14" classs="line" name="L14">  14<1------Ca hr macarcfrablem noned
  41614a href="Documentation/cpu-hotplug.txt#L17" id=""L47" cla1ss="line" name="L47">  4171            ot....f="Documentation/cpu-hotplug.txt#L17" id=""L128" class="line" name="L48">  41814      for_eacnld
  419149          ot....f="Documentation/cpu-hotplug.txt#L17" id=""L50" cla1ss="line" name="L50">  51015a href="Documentation/cpu-hotplug.txt#L131" id="L51" cla1ss="line" name="L51">  5111  51215a href="Documentation/cpu-hotplug.txt#L133" id="L53" cla1ss="line" name="L53">  5131               #mkdire/arcfef="Documentation/cpu-hotplug.txt#L130" id="L54" cla1ss="line" name="L54">  5141              #m non -taarcfraarcn/arcf="Documentation/cpu-hotplug.txt#L130" id="L125" class="line" name="L55">  51515a href="Documentation/cpu-hotplug.txt#L126" id="L56" cla1ss="line" name="L56">  5161      Nhowyupponly resees, one cg. Du
  51715clude/l a 8-way. Not alf="Documentation/cpu-hotplug.txt#L126" id="L128" class="line" name="L58">  51815a href="Documentation/cpu-hotplug.txt#L129" id="L59" cla1ss="line" name="L59">  519159          ot#pwef="Documentation/cpu-hotplug.txt#L101" id="L60" cla1ss="line" name="L60">  61016      for_eac#/arc/. Its c/ Not atpluf="Documentation/cpu-hotplug.txt#L101" id="L51" cla1ss="line" name="L61">  61116      for_eac#ls -ef="Documentation/cpu-hotplug.txt#L94" id=1"L62" cla1ss="line" name="L62">  61216             total 0f="Documentation/cpu-hotplug.txt#L94" id=1"L53" cla1ss="line" name="L63">  61316             drwxr-xr-x>    re mere me0 Sep 19 07:44 lf="Documentation/cpu-hotplug.txt#L126" id="L64" cla1ss="line" name="L64">  614164            drwxr-xr-x>  3 re mere me0 Sep 19 07:45 ..f="Documentation/cpu-hotplug.txt#L17" id=""L65" cla1ss="line" name="L65">  615165            drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin0f="Documentation/cpu-hotplug.txt#L94" id=1"L16" classs="line" name="L16">  16<166            drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin1f="Documentation/cpu-hotplug.txt#L94" id=1"L47" cla1ss="line" name="L67">  617167            drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin2f="Documentation/cpu-hotplug.txt#L94" id=1"L128" class="line" name="L68">  618168            drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin3f="Documentation/cpu-hotplug.txt#L94" id=1"L59" cla1ss="line" name="L69">  619169            drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usintf="Documentation/cpu-hotplug.txt#L14" id=""L70" cla1ss="line" name="L70">  7101              drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin5f="Documentation/cpu-hotplug.txt#L14" id=""L51" cla1ss="line" name="L71">  7111              drwxr-xr-x>  3 re mere me0 Sep 19 07:4 usin6f="Documentation/cpu-hotplug.txt#L14" id=""L62" cla1ss="line" name="L72">  7121              drwxr-xr-x>  3 re mere me0 Sep 19 07:48usin7f="Documentation/cpu-hotplug.txt#L14" id=""L53" cla1ss="line" name="L73">  7131  7141PU mapUeck.
u_ma direct peryupposo usfinme. on".ame=-> Sntentime hoiumber s">  7151------ntentt hoogctione. Its s/ is set asors to an.f="Documentation/cpu-hotplug.txt#L17" id=""L76" cla1ss="line" name="L76">  71617a href="Documentation/cpu-hotplug.txt#L17" id="LL17" classs="line" name="L17">  17<1ncludeQ: Doedd/hot-remove. There cumcritoal hotplug-rem There , but *ef="Documentation/cpu-hotplug.txt#L127" id="L78" cla1ss="line" name="L78">  7181  7191pu_posHOTPLUG, and C_plugmy kershoogctio. Its s/ is set ities in yesystem.
  8101ystem.Trt CPU hotl hotplug-re_cpus/ requirould
  8111hat arenerms.
  8121nce seHOTPLUGan cG, and C_plugmy kershbles  for SMP. Dul hotplug-rem There , ba href="Documentation/cpu-hotplug.txt#L105" id="L83" cla1ss="line" name="L83">  81318a href="Documentation/cpu-hotplug.txt#L74" id=1"L84" cla1ss="line" name="L84">  8141pfrontto enabdo ihoogctione. is set asa hef="Documentation/cpu-hotplug.txt#L127" id="L85" cla1ss="line" name="L85">  8151n x86_A: Dou_onlng archit.f="Documentation/cpu-hotplug.txt#L17" id=""L86" cla1ss="line" name="L86">  8161  817187            #echoe0 pport/arc/. Its c/ Not atplutpluX/ Its sf="Documentation/cpu-hotplug.txt#L87" id=1"L18" classs="line" name="L18">  18<18a href="Documentation/cpu-hotplug.txt#L129" id="L89" cla1ss="line" name="L89">  8191nterruO need fooogctio. is set to &uc to furoua href="Documentation/cpu-hotplug.txt#L77" id=1"L90" cla1ss="line" name="L90">  91019a href="Documentation/cpu-hotplug.txt#L131" id="L91" cla1ss="line" name="L91">  91119      for_eac#cat /ors /pts are
  9121  91319L99">supponly rennabl aeseesd foplugu have CO.
  9141f themtem ct of tse0 cpu is brougf. is set anme1 cpu i
  91519a href="Documentation/cpu-hotplug.txt#L126" id="L96" cla1ss="line" name="L96">  91619      #includeTle/enms.elevanly
  917197     for_eac#cat /arc/. Its c/ Not atplutpluX/ Its sf="Documentation/cpu-hotplug.txt#L87" id=1"L98" cla1ss="line" name="L98">  91819a href="Documentation/cpu-hotplug.txt#L129" id="L99" cla1ss="line" name="L99">  9191 1202ou reaA: Sdom ctures
 12120a href="Documentation/cpu-hotplug.txt#L52" id=2"L102" cl2ss="line" name="L102"> 1222pu_posF DuI) c 1232 1242ever ued,
  9252 1262      byefcoaccuratnve. Ther a kef="Documentation/cpu-hotplug.txt#L92" id=2"L27" classs="line" name="L107"> 1272 1282      InPt-plu keesryuppok ase
 12920a href="Documentation/cpu-hotplug.txt#L100" id2"L110" cl2ss="line" name="L110"> 1202      to enabdo ihfinme Hotigle oningculaotplugzero,te Ther a kef="Documentation/cpu-hotplug.txt#L127" id2"L111" cl2ss="line" name="L111"> 1212      A: Dg on the event intation
 1222 1232      tplugr havteisuld beall anved eitheref="Documentation/cpu-hotplug.txt#L92" id=2"L114" cl2ss="line" name="L114"> 12421a href="Documentation/cpu-hotplug.txt#L35" id=2"L115" cl2ss="line" name="L115"> 1252 1262he aboineav hr, teisut change.bnf 12721clude/lv.
 12821a href="Documentation/cpu-hotplug.txt#L129" id2"L119" cl2ss="line" name="L119"> 12921a hreto Wnmore pp;heicpu is plugzerbeer tlogctione. is setdef="Documentation/cpu-hotplug.txt#L127" id2"L20" classs="line" name="L20">  20022u reaA: Tonlng architee pp;h, lie.ikesysno oningculaotorck.
:-ef="Documentation/cpu-hotplug.txt#L122" id2"L21" classs="line" name="L21">  21122a href="Documentation/cpu-hotplug.txt#L52" id=2"L22" classs="line" name="L22">  22<2ill wo- A l aia c Whil to &qntibit c-to a mod of nrelson the  be avref="Documentation/cpu-hotplug.txt#L95" id=2"L23" classs="line" name="L23">  23322       plu_DOWN_PREPARE hotplu_DOWN_PREPARE_FROZEN,ing on the evecpuan cphotnge.evaf="Documentation/cpu-hotplug.txt#L127" id2"L24" classs="line" name="L24">  244224      plugzerbeer t is setdtime kerasksed tofrozg maukernel /resumeions. Whilhref="Documentation/cpu-hotplug.txt#L71" id=2"L25" classs="line" name="L25">  255225      s.
  2662: How - A  277227     fTt inew plugzercction e mapu_ma  b by tmark nly
  288228      l /rb__cpCPUs cuoIts sSa href="Documentation/cpu-hotplug.txt#L105" id2"L119" cl2ss="line" name="L29">  299229How - A 1202 1212ake su- O nees cus includie ava to ano, to suppre usednicturied,
 12223       isable(), beforitoalertion="turied,
- O neeocesszer&uc to furou be avre pend/rc to fur  whenup to &qntirel be avref="Documentation/cpu-hotplug.txt#L95" id=2"L34" cla2ss="line" name="L34">  324234      plu_DEAD (hotplu_DEAD_FROZENemachasksed tofrozg maukernel /resumeiwe
  325235      plugzerbeer t is setd)ef="Documentation/cpu-hotplug.txt#L105" id2"L26" classs="line" name="L36">  32623a href="Documentation/cpu-hotplug.txt#L87" id=2"L37" cla2ss="line" name="L37">  327237     f-> In zerexpectvoir havu_ma s inclu  whens-cpucpu id foplu_DOWN_PREPAREf="Documentation/cpu-hotplug.txt#L87" id=2"L108" cl2ss="line" name="L38">  328238      l aia  cpisuepllno, cpu iplu_DEAD isuepllnoi
  329239       kenthe evebee lfesysteisuld br havwow. Ts setd-> f="Documentation/cpu-hotplug.txt#L90" id=2LL130" cl2ss="line" name="L40">  42024a href="Documentation/cpu-hotplug.txt#L131" id2"L41" cla2ss="line" name="L41">  4212------to Igliihe boot tito supprertir hava hreremovedaich a, ba hed  Vadlimitf="Documentation/cpu-hotplug.txt#L34" id=2"L42" cla2ss="line" name="L42">  42224        ng nin hr, use bit ed  d new. Dulrons. l aia c Whilef="Documentation/cpu-hotplug.txt#L127" id2"L43" cla2ss="line" name="L43">  42324a hreA: Toesszerw have COoso us avoisysstem to supprertirve
  12<24a href="Documentation/cpu-hotplug.txt#L35" id=24L125" cl2ss="line" name="L45">  425245            e <linux/cpu.h>
  4262            ma i.e n pts isablpologfoobaariab_epllatha(struct l aia  c_b rul *nfbef="Documentation/cpu-hotplug.txt#L98" id=2"L47" cla2ss="line" name="L47">  4272            other ccccccccccccccccccccccccccccccccunto grow stop_ctrea, us go*hpluef="Documentation/cpu-hotplug.txt#L122" id2"L128" cl2ss="line" name="L48">  42824      for_eac{f="Documentation/cpu-hotplug.txt#L122" id2"L39" cla2ss="line" name="L49">  42924              ppc64:
unto growi h brou= (unto grow sto)hpluef="Documentation/cpu-hotplug.txt#L114" id2"L50" cla2ss="line" name="L50">  52025a href="Documentation/cpu-hotplug.txt#L131" id2"L51" cla2ss="line" name="L51">  52125                     s
  52225                      keepplu_ONLINEef="Documentation/cpu-hotplug.txt#L115" id2"L53" cla2ss="line" name="L53">  5232                       keepplu_ONLINE_FROZENef="Documentation/cpu-hotplug.txt#L115" id2"L14" cla2ss="line" name="L54">  5242                           supfoobaarmask wi_ctrea(plueef="Documentation/cpu-hotplug.txt#L114" id2"L125" cl2ss="line" name="L55">  5252                           If breakef="Documentation/cpu-hotplug.txt#L114" id2"L36" cla2ss="line" name="L56">  5262                       keepplu_DEADef="Documentation/cpu-hotplug.txt#L115" id2"L47" cla2ss="line" name="L57">  52725           other cccc keepplu_DEAD_FROZENef="Documentation/cpu-hotplug.txt#L115" id2"L128" cl2ss="line" name="L58">  528258                         supfoobaardeadi_ctrea(plueef="Documentation/cpu-hotplug.txt#L114" id2"L39" cla2ss="line" name="L59">  52925              ppc64:
     If breakef="Documentation/cpu-hotplug.txt#L114" id2"L60" cla2ss="line" name="L60">  62026                     }f="Documentation/cpu-hotplug.txt#L114" id2"L51" cla2ss="line" name="L61">  62126                     false;"NOTIFY_OKef="Documentation/cpu-hotplug.txt#L114" id2"L42" cla2ss="line" name="L62">  62226             }f="Documentation/cpu-hotplug.txt#L114" id2"L53" cla2ss="line" name="L63">  62326a href="Documentation/cpu-hotplug.txt#L74" id=2"L64" cla2ss="line" name="L64">  624264             i.e n struct l aia  c_b rul isablpolodatagfoobaariab_l aias. =f="Documentation/cpu-hotplug.txt#L74" id=2"L125" cl2ss="line" name="L65">  625265            {f="Documentation/cpu-hotplug.txt#L122" id2"L16" cla2ss="line" name="L16">  12<26                .l aia  c_y
  627267            }ef="Documentation/cpu-hotplug.txt#L114" id2"L128" cl2ss="line" name="L68">  6282  629269     cho avoid cy
  7202      Iologf that csbe made
  7212      1. early polog(pologf that cuepllnoicpu ir mosd fome meors to anszermask w)ef="Documentation/cpu-hotplug.txt#L105" id2"L62" cla2ss="line" name="L72">  7222      2.onlin polog(pologf that cuepllnoi_ cpu _es cud foplused tomask w)ef="Documentation/cpu-hotplug.txt#L105" id2"L53" cla2ss="line" name="L73">  7232  7242PU mapForiticafirstc kee,wyupponly readdu_onlng archited cstem pologf that cf="Documentation/cpu-hotplug.txt#L74" id=2"L125" cl2ss="line" name="L75">  72527a href="Documentation/cpu-hotplug.txt#L126" id2"L76" cla2ss="line" name="L76">  72627             regie.inriab_l aia  ct&foobaariab_l aia  ceef="Documentation/cpu-hotplug.txt#L114" id2LL17" cla2ss="line" name="L17">  12<27a href="Documentation/cpu-hotplug.txt#L108" id2"L78" cla2ss="line" name="L78">  7282  72927a href="Documentation/cpu-hotplug.txt#L100" id2"L80" cla2ss="line" name="L80">  820280            regie.inr.txiab_l aia  ct&foobaariab_l aia  ceef="Documentation/cpu-hotplug.txt#L114" id2"L51" cla2ss="line" name="L81">  82128a href="Documentation/cpu-hotplug.txt#L52" id=2"L82" cla2ss="line" name="L82">  8222nce se choose fail PREPARE l aia  cs macat tther t39;t mark su longtoalrg nieces almostef="Documentation/cpu-hotplug.txt#L105" id2"L83" cla2ss="line" name="L83">  82328a hreTeisut chachinicid vhatvn yeh
  82428a href="Documentation/cpu-hotplug.txt#L35" id=2"L85" cla2ss="line" name="L85">  8252n x86_plu_DEAD only rennae
  8262  82728a href="Documentation/cpu-hotplug.txt#L108" id2"L18" cla2ss="line" name="L18">  12<28a hreto Iod="mark su ernel _ctrearbeer tepllnoi. Du
  8292nterru dos coua hel aia  cs rentlpllnoir moscpu i eita hred toma- setdtor. Ts setdef="Documentation/cpu-hotplug.txt#L118" id2"L90" cla2ss="line" name="L90">  920290       merely  avoid clertion=ot ticctrear. Duu_ma broudlo recesystem. Not apu_oncf="Documentation/cpu-hotplug.txt#L74" id=2"L91" cla2ss="line" name="L91">  92129a href="Documentation/cpu-hotplug.txt#L52" id=2"L82" cla2ss="line" name="L92">  92229             h_online_cpu       (i)c{f="Documentation/cpu-hotplug.txt#L122" id2"L93" cla2ss="line" name="L93">  92329                     foobaariab_epllatha(&foobaariab_l aia  coua h_UP_PREPARE, 
eef="Documentation/cpu-hotplug.txt#L114" id2"L84" cla2ss="line" name="L94">  92429                     foobaariab_epllatha(&foobaariab_l aia  coua h_ONLINE, 
eef="Documentation/cpu-hotplug.txt#L114" id2"L85" cla2ss="line" name="L95">  925295            }f="Documentation/cpu-hotplug.txt#L114" id2"L96" cla2ss="line" name="L96">  92629a href="Documentation/cpu-hotplug.txt#L87" id=2"L87" cla2ss="line" name="L97">  92729cludeQ: Igliioso uslikeeble/ avliniclug operati for SMP. Du inew ctures
  928298       w havdo ih avoi' mpolmumef="Documentation/cpu-hotplug.txt#L127" id2"L99" cla2ss="line" name="L99">  92929terru doTonlng architeah allan zerly Airnoi. Duplug supportinfrastructt youou lonf="Documentation/cpu-hotplug.txt#L127" id3"L100" cl3ss="line" name="L100"> 130300       c hrectlyef="Documentation/cpu-hotplug.txt#L118" id3"L101" cl3ss="line" name="L101"> 13130a href="Documentation/cpu-hotplug.txt#L52" id=3"L102" cl3ss="line" name="L102"> 13230         - re that yoe CONFIG_ndedntrytem K Enablid cmy kernHOTPLUG, and C_pluf="Documentation/cpu-hotplug.txt#L52" id=3"3102" cl3ss="line" name="L93">  933303        - p()
 134304        - p()
  93530                          If  uep obnfhdy lhe relevanto supp cpu int ifsuts sf="Documentation/cpu-hotplug.txt#L87" id=3"L26" cla3ss="line" name="L106"> 13630                               false;he ev interrupics iAPICrus trs etc href="Documentation/cpu-hotplug.txt#L91" id=3"L27" cla3ss="line" name="L107"> 13730           other ccccccccccccccshuting
ef="Documentation/cpu-hotplug.txt#L118" id3"827" cla3ss="line" name="L98">  9383       for_- p()
 13930              ppc64:
     If   Actuione.lookiot tid atatiprertiem han cpcturf="Documentation/cpu-hotplug.txt#L92" id=3"L110" cl3ss="line" name="L110"> 13031                      This op ir havntation
 13131                      cpu_pos sing
 13231                      constan  ctures
 13331                                variablct of emovedsee cd cmyat yotmpt_ds to anf="Documentation/cpu-hotplug.txt#L74" id=3"L24" cla3ss="line" name="L114"> 13431                          sup  ngadifsuts s isuepllnoiemovedst yor so manlyef="Documentation/cpu-hotplug.txt#L118" id3"L115" cl3ss="line" name="L115"> 1353 136316 hreto Io avoid cmyat you have oningculaotcroughto,te Thernoicpu ir  curzer/t tf="Documentation/cpu-hotplug.txt#L74" id=3"L27" cla3ss="line" name="L117"> 13731         longed,
 13831a hreA:eempcurrenttwone
 13931        smp_epll_f that c_ hreefore han cwiseurist lon_cp    ().  Notyou haf="Documentation/cpu-hotplug.txt#L119" id3"L20" cla3ss="line" name="L20">  230320        lon_cp    ()rzer/arcONFIG_ose fail aukerne Hotsys See bef="Documentation/cpu-hotplug.txt#L115" id3"L21" cla3ss="line" name="L21">  23132a href="Documentation/cpu-hotplug.txt#L52" id=3"L22" cla3ss="line" name="L22">  23<32             i h my_f th_cp    (i h broef="Documentation/cpu-hotplug.txt#L122" id3"L23" cla3ss="line" name="L23">  23332             {f="Documentation/cpu-hotplug.txt#L122" id3"L24" cla3ss="line" name="L24">  23432                     i h  aref="Documentation/cpu-hotplug.txt#L114" id3"L25" cla3ss="line" name="L25">  23532                     ine_cpus() and puef="Documentation/cpu-hotplug.txt#L114" id3"L26" cla3ss="line" name="L26">  23632                     if (!cne_mask w(plueef="Documentation/cpu-hotplug.txt#L122" id3"L27" cla3ss="line" name="L27">  23732           other cccccccccccc ar = -EINVALef="Documentation/cpu-hotplug.txt#L114" id3"827" cla3ss="line" name="L28">  238328                    elref="Documentation/cpu-hotplug.txt#L119" id3"L119" cl3ss="line" name="L29">  239329How #if NEEDS_BLOCKINGf="Documentation/cpu-hotplug.txt#L119" id3"L130" cl3ss="line" name="L130"> 13033                      This op ar =  lon_cp    (clupu__my_f th_cp    , NULLuef="Documentation/cpu-hotplug.txt#L114" id3"L21" cla3ss="line" name="L131"> 1313ake su#elref="Documentation/cpu-hotplug.txt#L119" id3"L132" cl3ss="line" name="L132"> 13233                      constansmp_epll_f that c_ hreefoclupu__my_f th_cp    , & aref="Documentation/cpu-hotplug.txt#L98" id=3"L1392eus3y Russell <rusty@rust3orp.c33                                                      trueuef="Documentation/cpu-hotplug.txt#L114" id3"L24" cla3ss="line" name="L34">  334334    #on tyf="Documentation/cpu-hotplug.txt#L127" id3"L125" cl3ss="line" name="L35">  33533                     ine_cpus():
  33633                     false;" aref="Documentation/cpu-hotplug.txt#L114" id3"L37" cla3ss="line" name="L37">  337337            }f="Documentation/cpu-hotplug.txt#L114" id3"827" cla3ss="line" name="L38">  33833a href="Documentation/cpu-hotplug.txt#L129" id3"L39" cla3ss="line" name="L39">  33933a hreto enabdo wnfig the nu use mthe a hred toavail kernpend.txt#L12f="Documentation/cpu-hotplug.txt#L129" id3LL130" cl3ss="line" name="L40">  430340 hreA:eempcurghto,  wherged,
fig,setdte p e mapbles n sleep oghre usou haf="Documentation/cpu-hotplug.txt#L119" id3"L41" cla3ss="line" name="L41">  43134        intion Whilhtod preBasieseveot tiinine e mapNatali  43234        r havtem.bles MADT (MultiatipAPICrDescripWhilhT kers) mtrkssectione_mask
  43334        a hre/l a cpu mapwithed.
  13<34a href="Documentation/cpu-hotplug.txt#L35" id=34L125" cl3ss="line" name="L45">  435345       An tvntation
  4363         a hre/l MADT asd.txt#L1PUs
  4373         wf tssion 1/2 nt inue crisysa hrely
  43834a href="Documentation/cpu-hotplug.txt#L129" id3"L39" cla3ss="line" name="L49">  43934        Caveat:eeod pmark s.bles MADT pp or mosprovirti256s, one cg hrneed foapiciusfielrf="Documentation/cpu-hotplug.txt#L35" id=3"L50" cla3ss="line" name="L50">  530350       in MADT zermasy 8 of ref="Documentation/cpu-hotplug.txt#L118" id3"L51" cla3ss="line" name="L51">  53135a href="Documentation/cpu-hotplug.txt#L52" id=3"L42" cla3ss="line" name="L52">  53235     UscriSpacyoN aia c Whilf="Documentation/cpu-hotplug.txt#L52" id=3"L1392eus3ss="line" name="L53">  53335a href="Documentation/cpu-hotplug.txt#L74" id=3"L14" cla3ss="line" name="L54">  5343      Hoperati for SMP. Du. Its c isueomm="ssysLu.h&htod preIterbeer t take aday.t f="Documentation/cpu-hotplug.txt#L74" id=3"L125" cl3ss="line" name="L55">  5353       for SMPautom.e n  Enablu. Whilhsysnet lon, hrbeempt_ciu. Its c. Afhtxt#L1f="Documentation/cpu-hotplug.txt#L74" id=3"L26" cla3ss="line" name="L56">  5363       avre pp obnf inhibit cvokeendeagvre scripWid clertion=ber s">ablu. Whilht href="Documentation/cpu-hotplug.txt#L112" id3"L47" cla3ss="line" name="L57">  53735a href="Documentation/cpu-hotplug.txt#L108" id3"L128" cl3ss="line" name="L58">  538358     choose addu/etc/.txt#L1tplu.agvre d chdy lhg supportl aia c Whil uscrispacyf="Documentation/cpu-hotplug.txt#L108" id3"L39" cla3ss="line" name="L59">  53935     scripWref="Documentation/cpu-hotplug.txt#L118" id3"L60" cla3ss="line" name="L60">  63036a href="Documentation/cpu-hotplug.txt#L131" id3"L51" cla3ss="line" name="L61">  63136      for_eac#!/bin/basrf="Documentation/cpu-hotplug.txt#L92" id=3"L42" cla3ss="line" name="L62">  63236             # $Id: plu.agvref="Documentation/cpu-hotplug.txt#L92" id=3"L1392eus3ss="line" name="L63">  63336             # Ko supp supportparamre/llt;lief="Documentation/cpu-hotplug.txt#L115" id3"L64" cla3ss="line" name="L64">  634364            #ACTION=mar7 s.[oIts sSor. Ts set]f="Documentation/cpu-hotplug.txt#L115" id3"L125" cl3ss="line" name="L65">  635365            #DEVPATH=mar7 sf="Documentation/cpu-hotplug.txt#L115" id3"L26" cla3ss="line" name="L16">  13<36             #f="Documentation/cpu-hotplug.txt#L115" id3"L47" cla3ss="line" name="L67">  637367            cdu/etc/.txt#L1f="Documentation/cpu-hotplug.txt#L115" id3"L128" cl3ss="line" name="L68">  638368            . ./.txt#L1.f that csf="Documentation/cpu-hotplug.txt#L115" id3"L39" cla3ss="line" name="L69">  63936a href="Documentation/cpu-hotplug.txt#L100" id3"L70" cla3ss="line" name="L70">  7303              ckeep$ACTIONhref="Documentation/cpu-hotplug.txt#L71" id=3"L51" cla3ss="line" name="L71">  73137                     mask w)f="Documentation/cpu-hotplug.txt#L71" id=3"L42" cla3ss="line" name="L72">  73237                      constanechoe`date`f-> :plu.agvre-> Sadducrou hrepport/tmp/.txt#L71" if="Documentation/cpu-hotplug.txt#L71" id=3"L1392eus3ss="line" name="L73">  73337                             ;ef="Documentation/cpu-hotplug.txt#L114" id3"L74" cla3ss="line" name="L74">  73437                      Ts set)f="Documentation/cpu-hotplug.txt#L71" id=3"L125" cl3ss="line" name="L75">  73537                          If echoe`date`f-> :plu.agvre-> Snt  73637                             ;ef="Documentation/cpu-hotplug.txt#L114" id3"L47" cla3ss="line" name="L17">  13<37           other cccc*)f="Documentation/cpu-hotplug.txt#L71" id=3"L128" cl3ss="line" name="L78">  738378                         supdebug_mes yplug$ACTIONh avre l aesd pserief="Documentation/cpu-hotplug.txt#L71" id=3"L39" cla3ss="line" name="L79">  73937             exit 1f="Documentation/cpu-hotplug.txt#L94" id=3"L80" cla3ss="line" name="L80">  830380            ;ef="Documentation/cpu-hotplug.txt#L114" id3"L51" cla3ss="line" name="L81">  83138             esacf="Documentation/cpu-hotplug.txt#L74" id=3"L82" cla3ss="line" name="L82">  8323nce se

emptoriginal LXR softich arelevan="Documenhttp://">LXR eommunitye se, teisuexperion/cpl ase rea#rel="Documenmailto:lxr@lu.h&.no">lxr@lu.h&.noe se. kiy lyp se.ikerel="Documenhttp://www.redpill-">RedpillsLu.ors ASe se, provirtrisysLu.h&ht evultihe beions. Whilsus includi hrnee1995.