linux/Documentation/local_ops.txt
<<
>>
Prefs
   1             Semantics and Behavior of Local Atomic Operations
   2
   3                            Mathieu Desnoyers
   4
   5
   6        This document explains the purpose of the local atomic operations, how
   7to implement theme" name="L2">      "ajax_lookup""
	  >
  v2.6.22.8
  
    "L2"> .17.11
  
  2.12..3"
	  >
  v2.649.5"
	  >
  v2.6.29.5
  
  
  takL2"whL2"r34/2b/49.5"
	  >
  v2.6.29.5
  
  
  v2.6.29.5
  
     2<0/a>
   2<
   4

.6.22.8
  
  <4" class="line" name="L4">   4
   61     1  This document explains the purpose of the 1local at1omic operations, how

  
  <"> e"meamentookrovideltsst>ion>h="nly"r3ainramenn>
 CPUs document explains the purpose of the 1ss="line1" name="L7">   7to 1imple1ent tcount="D.ame3"
minimize  lookerts">anc Be 
hidndard.8
  
  <"bys document explains the purpose of the 1.32e" na1mentatio2.6.32e"hif="Do1cumen1atio2remov2b/  looLOCKokrefix>ion>memory barri="D ns">ally"r3quiredntoosynchronizes document explains the purpose of the 1832e" na18entatio2.6.32e"hif="Do18umen18tio2across CPUs.49.5"
	  >
  v2.6.29.5
  
     220/a>
   22
it>n>
sea                  Mathieu Desnoyers
anc Bmonitor2b/ count="D.                 Mathieu Desnoyers
   62     2  This document explains the purpose of the 2local at2omic operations, how

  
  <"only"guarameee.variableBmodific  
  .8   7to 2imple2ent tCPU.which owjax_loodata.ame3umeore,
	  e"must>takL2"toomakL s/opt lat only"of s document explains the purpose of the 2.32e" na2mentatio2.6.32e"hif="Do2cumen27nt tCPU.wr7.1s too  v2.6.22_todata.ameiD ="L of "by"v22b/ k>
 cpuodata>ion>mak2b/49.5"
	  >
  v2.6.29.5
  
  
  v2.6.29.5
  
     4
   230/a>

 CPU.                 Mathieu Desnoyers
   23
   4
  "L2"> .17.11   4
   63     3  This document explains the purpose of the 3local at3omic operations, how

   of "by"sl="naly"modify2b/  loohidndard.8
  
  <": onlys document explains the purpose of the 3ss="line3" name="L7">   7to 3imple36tio2.heir UP.variant must>
  kep". Itetypic lly"meams remov2b/ LOCKokrefix>(ot4" class="line" name="L4">   4
   4
UP, =nclu/2b/ asm-gen>
ic4">   .h4" class="line" name="L4">   4
   .he="Lsuffici na.                 Mathieu Desnoyers
   240/a>
   24
   4
from n>

o_res tooa4" class="line" name="L4">   4
s "ikL :4" class="line" name="L4">   4
   6      4  This document explains the purpose of the 4local at4omic operations, how
   7to 4imple46 This document explains the purpose of the 4.32e" na4mentatio2.6.32e"hif="Do4cumen47 This document explains the purpose of the 4832e" na48entatio2.6.32e"hif="Do48umen48d="L* Rul1s toofollow"whL2"v22b/ .6.22.8
  
  <4" class="line" name="L4">   4
   250/a>

  k>
 cpuovariables.                 Mathieu Desnoyers
   25
u
	 .6.22.e o from an"
e ntxt" (krocess, =rq,lsoft=rq,lnmi, ...)                 Mathieu Desnoyers
   65     54opcu- Preemc/gfx/(namint="rupts) must>
  disablednwhL2"v22b/ .6.22.e o it4" class="line" name="L4">   4

  mig
  edntooa4" class="line" name="L4">   4
   7to 5imple5ent thediff="emenCPU.betw3ai
gett2b/  look>
-cpuovariableoion>do2b/  lo4" class="line" name="L4">   4
bo4" class="line" name="L4">   4
   260/a>
   26

  v                 Mathieu Desnoyers
   66     64nt thevariable.                 Mathieu Desnoyers

  vse.variables 	  >
   of "from an"
CPU,>
 cau
	 updatss to                 Mathieu Desnoyers
   7to iimple6ent the"lob/",/aligned,.variables aoptilways.8ioioutd  edncopy  >
  v                 Mathieu Desnoyers
   270/a>
   27
u
	 .6.22.8
  
  <4" class="line" name="L4">   4
   4

cpu.h"">
4" class="line" name="L4">   4
   67     74opcu#=nclu/e <asm4">   .h"">
4" class="line" name="L4">   4
   7to 7imple7ent thidden DEFINE_PER_CPU(.6.22_t, count="D) = LOCAL_INIT(0)
4" class="line" name="L4">   4

  v2.6.29.5
  
     280/a>
   28

aohignednlob/.                 Mathieu Desnoyers
   4
ion>put_cpu_var()>iround .6.22.8   4
   68     84opcuon>
  
  <": itLmakLs s/opt lat kreemc/gfx/="L isabledniround wr7.1 access
to                 Mathieu Desnoyers

 cpuovariable. FnaminhidncL :4" class="line" name="L4">   4
   7to 8imple86 This document explains the purpose of the 8.32e" na8mentatio2.6.32e"hif="Do8cumen87nt theme" napurpos=nc(&get_cpu_var(count="D))
4" class="line" name="L4">   4
   4
   290/a>
dir11   29
inhi34/.                 Mathieu Desnoyers
   4
   4
   69     9  This document explains the purpose of the 9local at9omic operations, how
   7to 9imple96 This document explains the purpose of the 9.32e" na9mentatio2.6.32e"hif="Do9cumen97d="L* R34/2b/  loocount="Ds document explains the purpose of the 9832e" na98entatio2.6.32e"hif="Do98umen98 This document explains the purpose of the 9932e" na99entatio2.6.32e"hif="Do99umen99opcuT "
	 .6.22.count="D 	  >
  r34/2from eoreign CPUs"toosum  loocount. Notpt lat49.5"
	  >
  v2.6.29.5
  
     2<00/a>

  e nsideredntoo
  oud  >
ordea49.5"
	  >
  v2.6.29.5
  
     2<0

  v2.6.29.5
  
     4
   4
   6104umet04nt theme" naeor_each_on6.32_cpu(cpu)                 Mathieu Desnoyers
   4
   7to 106umet06 This document explains the purpose of the 10.32e" na10mentatio2.6.32e"hif="Do107umet07opcuIf.you wamentoou
	 a remote".6.22_r34/2toosynchronize access
to a resources document explains the purpose of the 10832e" na108entatio2.6.32e"hif="Do108umet08 Thibetw3ai
CPUs,o    ptit smp_wmb()>ion>smp_rmb()>memory barri="D must>
  v2.649.5"
	  >
  v2.6.29.5
  
   loor34/1r
CPUD. Itewould>
  tlooca
	 if.you u
	s document explains the purpose of the 1102">   2<<0/a>

by.1s wr7.ant a .8obuff="":   vre>
  ulds document explains the purpose of the 11L2">   2<<
 loocount=" =ncr namenion>a"so a4" class="line" name="L4">   4
betw3ai
  v count=" r34/2aon> loobuff=""r34/.                 Mathieu Desnoyers
   611    11  This document explains the purpose of the 11local at11omic operations, how
iD i.sa2e" "moduleowhich 32e" nameD i.basic k>
 cpuocount=" v22b/ .6.22.h.                 Mathieu Desnoyers
   7to 11impl116 This document explains the purpose of the 11.32e" na11mentatio2.6.32e"hif="Do11cume11atio2--- BEGIN ---s document explains the purpose of the 11832e" na118entatio2.6.32e"hif="Do118ume118tio2/* .1st-.6.22.t4" class="line" name="L4">   4
   2<20/a>
   .heusage.                 Mathieu Desnoyers
   212
   4
   612    124opcu#=nclu/e <asm4">   .h"">
4" class="line" name="L4">   4

4" class="line" name="L4">   4
   7to 12impl12ent t#=nclu/e <l"pos/timer.h"">
4" class="line" name="L4">   4
   4
   2130/a>
   4
   213
t1st_each(void>*info)                 Mathieu Desnoyers
   613    13  Thi{                 Mathieu Desnoyers
   7to 13impl13ent theme" naprintk("Incr namenon"cpuo%d\n",/smp_krocessor_idna128rn"cpuo%d\n",/smp_krocessor_ips.txt#L7" id=jns, how
*info)     13get_cpu_var(count="D))
4" clclass="line" name="L4">   4
   1f="Do38um1en38tio2nst hivv2> diff=1"emen13 purpose of the 9932e" na99entatio2.6.32e"hi1f="Do39um1en39 Thia .your2> .17.111 txt". It 4
   6dir11)   4
   7   2<20/a>
   4
   4
1      1  This document explain Math446.22_r34/(&am*snoyers
   7   7to 13imle46 This document expla1ins t1e purpose of the 4.32e" na4mentatio2.6.32e"hi1f="Do4cum1en47 This document expla1ins t1e purpinfo)       do_ame="L4"> (un" class="lin/optsnoyers
  f="Do48um1en48d="L* Rul1s toofollo1w"whL1"v22b/snoyers

   2<
   7u1
	 .61526.22_r34/(&aon      ="li         , NULL, 1   4
   71      54opcu- Preemc/gfx/(na1mint=154r namenon"cpuo%d\n&quCe 	 ntsmm  loocoun
	  r_idna128rn"cpuo%d\n",/smp_krocessor_ips.txt#L7" id=jns, how
 p_krocessor_ips.txt#L7" id=jns, how
   7 (
4" came="L4"> p_krocessor_ips.txt#L7" id=jns, how
 .expir su= jiffi su+22_r   4
  menta6tio1n/61nt thedisable"kreemc1/gfx/161 count=" froadd"L4"> (
4" came="L4"> p_krocessor_ips.txt#L7" id=jns, how
   7  66   1  64nt thevariable.     1     1      info)  i   __="liaame="="li Mathsnoyers
  ow

  vse1.vari1bles 	snoyers
to 1implee1ent tcount="D.ame3"
minetw3166 count=" from a="linalhidndardL4"> a .8okr  >
inon"kreemc/gble 	 ntx*snoyers
   7 (
4" came="L4"> p_krocessor_ips.txt#L7" id=jns, how
 .funv id=u= do_ame="L4"> _krocessor_ips.txt#L7" id=jns, how
 .expir su= jiffi su+22_krocessor_ips.txt#L7" id=jns, how
 (
4" came="L4"> p_krocessor_ips.txt#L7" id=jns, how

  ps.tx7t#L15"73opcu#=nclu/e <l"p1os/n>1cpu.h"}noyers
   7<67   1  74opcu#=nclu/e <asm14">  17 purpose of the 11local at11omic operations, ow
  a>to 7imp1le7ent thidden DEFINE_PE1R_CPU1.6.22_snoyers
 _urce(
4" came="L4"> p_krocessor_ips.txt#L7" id=jns, how
   7<6="Do59um1en79d="L* Count2b/49.5"
1	  >
17 purpose of the 1r02">   2130/a>
to 5imp37
   4
   618    184opcuMODULE_AUTHOR5cr nam 5
   Dcr nam1lo  v name=""looLO37
   7to 18impl186 Thi--- END ---s document explains the purpose of the 18.32e" na18mentatio2.6.32e"hif="Do18cume187nt t
Tlooorigin22.LXRlsoftwaoptby" loo documenthttp://source
e ge.net/projects/lx8">LXRlcommus.tynt t, n>

o t1erilainsl v="D6.22by" documentmailto:lx8@l"pos.no">lx8@l"pos.nont t.
ass="lie" natatio2.subfoo .8">
lx8.l"pos.no kindly hostednby" documenthttp://www.redpa="-l"ppro.no">Redpa=" L"ppro ASnt t, krovideame="L"pos e nsult2b/ atdion>
  
  <"servicLs sinc B1995.
ass="line/bodylie/html0a