linux/drivers/macintosh/rack-meter.c
<<
.12"m2n/spat m m2n/form m m2na .12"m2 href="../linux+v3.8 14/drivers/macintosh/rack-meter.c">.12"m2nimg src="../.static/gfx/right.png" alt=">>">.1n/spat m.1nspat class="lxr_search">.12".12"m2ninput typ(arhidden" nam(arnavtarget" pjx(ar">.12"m2ninput typ(artext" nam(arsearch" idarsearch">.12"m2nbutt"22typ(arsubmit">Search.12"m2Prefsm m2n/a>.1n/spat m2"m2 2n/div m2"m2 2nform ac/opt="ajax+*" method="post" onsubmit="return false;">.1ninput typ(arhidden" nam(arajax_lookup" idarajax_lookup" pjx(ar">.2"m2 2n/form m.2"m2 2ndiv class="headingbott"m">
m ndiv idarfile_contents"
2 21n/a>nspat class="comment">/*n/spat m2 22n/a>nspat class="comment"> * RackMac vu-meter drivern/spat m2 23n/a>nspat class="comment"> *n/spat m2 24n/a>nspat class="comment"> * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.n/spat m2 25n/a>nspat class="comment"> *                    <benh@kernel.crashing.org>n/spat m2 26n/a>nspat class="comment"> *n/spat m2 27n/a>nspat class="comment"> * Released under the term of the GNU GPL  m2n/spat m2 28n/a>nspat class="comment"> *n/spat m2 29n/a>nspat class="comment"> * Support the CPU-meter LEDs of the Xserve G5n/spat m2 8 4.a>nspat class="comment"> *n/spat m2 11n/a>nspat class="comment"> * TODO: Implement PWM to do  priable intensity and provide userlandn/spat m2 12n/a>nspat class="comment"> * interface for fun. Also, the CPU-meter could be made nicer by beingn/spat m2 13n/a>nspat class="comment"> * a bit less "immediate" but giving instead a more average load overn/spat m2 14n/a>nspat class="comment"> * time. Patches welcome :-)n/spat m2 15n/a>nspat class="comment"> *n/spat m2 16n/a>nspat class="comment"> */n/spat m2 17n/a>#undef2na href="+code=DEBUG" class="sref">DEBUGn/a>.2 18n/a>.2 19n/a>#include <linux/typ(s.hn/a>>m2 20n/a>#include <linux/kernel.hn/a>>m2 21n/a>#include <linux/slab.hn/a>>m2 22n/a>#include <linux/device.hn/a>>m2 23n/a>#include <linux/interrupt.hn/a>>m2 24n/a>#include <linux/module.hn/a>>m2 25n/a>#include <linux/pci.hn/a>>m2 26n/a>#include <linux/dma-mapping.hn/a>>m2 27n/a>#include <linux/kernel_stat.hn/a>>m2 28n/a>.2 29n/a>#include <asm/io.hn/a>>m2 30n/a>#include <asm/prom.hn/a>>m2 31n/a>#include <asm/machdep.hn/a>>m2 32n/a>#include <asm/pmac_feature.hn/a>>m2 33n/a>#include <asm/dbdma.hn/a>>m2 34n/a>#include <asm/macio.hn/a>>m2 35n/a>#include <asm/keylargo.hn/a>>m2 36n/a>.2 37n/a>nspat class="comment">/* Number of samples in a sample buffer */n/spat m2 38n/a>#define2na href="+code=SAMPLE_COUNT" class="sref">SAMPLE_COUNTn/a>            256m2 39n/a>.2 4 4.a>nspat class="comment">/* CPU meter sampling rate in ms */n/spat m2 41n/a>#define2na href="+code=CPU_SAMPLING_RATE" class="sref">CPU_SAMPLING_RATEn/a>       250m2 42n/a>.2 43n/a>struct2na href="+code=rackmeter_dma" class="sref">rackmeter_dman/a> {.2 44n/a>        struct2na href="+code=dbdma_cmd" class="sref">dbdma_cmdn/a>        na href="+code=cmd" class="sref">cmdn/a>[4]                  na href="+code=____cacheline_aligned" class="sref">____cacheline_alignedn/a>;m2 45n/a>        na href="+code=u32" class="sref">u32n/a>                     na href="+code=mark" class="sref">markn/a>                    na href="+code=____cacheline_aligned" class="sref">____cacheline_alignedn/a>;m2 46n/a>        na href="+code=u32" class="sref">u32n/a>                     na href="+code=buf1" class="sref">buf1n/a>[na href="+code=SAMPLE_COUNT" class="sref">SAMPLE_COUNTn/a>]      na href="+code=____cacheline_aligned" class="sref">____cacheline_alignedn/a>;m2 47n/a>        na href="+code=u32" class="sref">u32n/a>                     na href="+code=buf2" class="sref">buf2n/a>[na href="+code=SAMPLE_COUNT" class="sref">SAMPLE_COUNTn/a>]      na href="+code=____cacheline_aligned" class="sref">____cacheline_alignedn/a>;m2 48n/a>} na href="+code=____cacheline_aligned" class="sref">____cacheline_alignedn/a>;m2 49n/a>.2 50n/a>struct2na href="+code=rackmeter_cpu" class="sref">rackmeter_cpun/a> {.2 51n/a>        struct2na href="+code=delayed_work" class="sref">delayed_workn/a>     na href="+code=sniffer" class="sref">sniffern/a>;m2 52n/a>        struct2na href="+code=rackmeter" class="sref">rackmetern/a>        *na href="+code=rm" class="sref">rmn/a>;m2 53n/a>        na href="+code=cputime64_t" class="sref">cputime64_tn/a>             na href="+code=prev_wall" class="sref">prev_walln/a>;m2 54n/a>        na href="+code=cputime64_t" class="sref">cputime64_tn/a>             na href="+code=prev_idle" class="sref">prev_idlen/a>;mCPU_SAMPLING_RATftion valu2u="4.4.17"
	  3>
2>
6.4.41
2>
6.4.41=u32" cl5ss="sref">u32n/a>      5     56line_alignedn/a>;m2 49n/a>.u32n/a>      5     57line" nam(arL50">2 50n/a>struct2na href="+code=acheline5aligned" class="sref">_5__cac58un/a> {.rmn/a>;m2 51n/a>        struct2na hrefntosh/ra5k-meter.c#L50" idarL50"5class59rn/a>        *na href="+code=rm" c35" c_develine_aligned" cl" c_dev>[na href="+code=SAMh/rack-meter.c#Lmdeveline_aligned" cdev>[nae" nam(arL49">2 49n/a>.rack6eter_60>[na href="+unslass=41[nae" nam(arL49">2 49n/a>.del6yed_workn/a>     na href="+code=sniff3" c_n=sn"sref">sniffern/a3" c_n=sn>[na href="+code=Sh/rack-meter.c#Li2seline_aligned" i2s>[nae" nam(arL49">2 49n/a>.6ackme62a>             na href="+cou8eline_aligned" u8>[na href="+code=SAMPLE_C="+code=Sh/rack-meter.c#Lu>] eline_aligned" u>] >[nae" nam(arL49">2 49n/a>.cputi6e64_t63ed_workn/a>     na href="+code=snif     regseline_aligned" f     regsed_wolignedn/a>;mh/rack-meter.c#L    regseline_aligned" f   regsed_we" nam(arL49">2 49n/a>.cputi6e64_t6/a>          voidolignedn/a>;mhref="+code=Sh/rack-meter.c#Li2s regseline_aligned" i2s regsed_we" nam(arL49">2 49n/a>.[na href="+code=SAMPLE_C=ef="+code=mark"f   >] _pe" class="sref"f   >] _ped_we" nam(arL49">2 49n/a>.     na href="+code=sniacintosh/rack-meter.c#L44" idarL44" class="linef="+code=Sh/rack-meter.c#Lf   >] _veline_aligned" f   >] _ved_we" nam(arL49">2 49n/a>.u32n/a>      6     67 3>
2>
6.4.412 49n/a>._6__cac68ed_workn/a>     na href="+code=sniacintosh/rack-meter.c#L51" idarL51" class="lin.17AMPLE_C=ef="+code=mark"ack-meter.c#L51" iass="li[2]e" nam(arL49">2 49n/a>.
2>
6.4.412 49n/a>.rack7eter_70rn/a>        *na href="+code=rm" c3utexeline_aligned" cutexs="sref">____cacheline_alignedn/a>;m2 53n/a>        na href="+cod7="+code=7elayed_work" class="sre7">del7yed_w}e" nam(arL53">2 53n/a>        na href="+cod7="+code=7ackmeter" class="sref">7ackme7"line" nam(arL43">2 43n/a>struct2na href="+code7=cputime74_t" class="sref">cputi7e64_t7 giving instead a more aver/* Toer.cset as a tunosh/rass="line" nam(arL41">2 41n/a>#define2na href="+cod7=cputime74_t" class="sref">cputi7e64_t74un/a> r_se412 53n/a>        na href="+cod7CPU_SAMP7ING_RATftion valu2u="4.7.17"
75line" nam(arL43">2 43n/a>struct2na href="+code7n/spat m72 41n/a>#define2na href="+cod7 Releasedd under the term of the      77PLING_RATEn/a>       250m2 41n/a>#define2na href="+cod7acheline7aligned" class="sref">_7__cac7"line" nam(arL29">2 29n/a>#include <2 28n/a>nspat class="comment"> *nrackmete8_cpu" class="sref">rack8eter_8ck-meter.c#L11" idarL11" clas a arL1on  claeteromewhere"line" nam(arL8">2 28n/a>nspat class="comment"> *n="+code=8elayed_work" class="sre8">del8ntensity and provide userlandss="line" nam(arL41">2 41n/a>#define2na href="+cod8="+code=8ackmeter" class="sref">8ackme82un/a> r_se4/rack-meter.c#Linclass=ine_aligned" inclased_wolignedn/a>;mprev_idlen/a>;mlignedn/a>;m2 41n/a>#define2na href="+cod8=cputime84_t" class="sref">cputi8e64_t8 givie" nam(arL51">2 51n/a>        struct2na hre8=cputime84_t" class="sref">cputi8e64_t8/a>             na href="+cou64_t" classgned" u6/a>   href="+code=sniaetvaer.c#L54" idarL5aetvae"line" nam(arL53">2 53n/a>        na href="+cod8CPU_SAMP8ING_RATftion valu2u="4.8.17"
85line" nam(arL43">2 43n/a>struct2na href="+code8n/spat m8 r_rack-meter.c#L51" ikass> r_rack/a>;(ef="+code=mark"ack-meter.c#L51" iass="li).ef="+code=mark"ack> r_-meter.c#L51" iass> r_    na href="+code=_CPUTIME_IDLacintosh/rack-meterTIME_IDLacachel+" nam(arL43">2 43n/a>struct2na href="+code8 Release8d under the term of the8     87s="sref">____cachelinef="+code=buf1"kass> r_rack-meter.c#L51" ikass> r_rack/a>;(ef="+code=mark"ack-meter.c#L51" iass="li).ef="+code=mark"ack> r_-meter.c#L51" iass> r_    na href="+code=_CPUTIME_IOWAIe_aligned" classCPUTIME_IOWAIecachee" nam(arL53">2 53n/a>        na href="+cod8n/spat m<2 29n/a>#include <
2>
6.4.41f (ef="+code=mark"acintosh/rlasorc_n" c-meter.c#L51" idarL51" cllasorc_n" c"lin)" nam(arL41">2 41n/a>#define2na href="+cod9rackmete9_cpu" class="sref">rack9eter_90s="sref">____cachelief="+code=buf1"aetvaer.c#L54" idarL5aetvae"lin +=ref="+code=buf1"kass> r_rack-meter.c#L51" ikass> r_rack/a>;(ef="+code=mark"ack-meter.c#L51" iass="li).ef="+code=mark"ack> r_-meter.c#L51" iass> r_    na href="+code=_CPUTIME_NICacintosh/rack-meterTIME_NICacachee" nam(arL53">2 53n/a>        na href="+cod9="+code=9elayed_work" class="sre9">del91line" nam(arL29">2 29n/a>#include <9ackme92a>          lookup"href="+code=sniaetvaer.c#L54" idarL5aetvae"line" nam(arL53">2 53n/a>        na href="+cod9=cputime94_t" class="sref">cputi9e64_t9 givi}" nam(arL53">2 53n/a>        na href="+cod9=cputime94_t" class="sref">cputi9e64_t94line" nam(arL29">2 29n/a>#include < r_se4voidolignedn/a>;m;(> {.rmn/a>;m2 41n/a>#define2na href="+cod9n/spat m92 51n/a>        struct2na hre9 Release9d under the term of the9     97s="sref">___ *na href="+code=rm" c35" c_chipe" class="sref"35" c_chipers/mh/rack-meter.c#L35" ce" class="sref"35" c"lin =ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lmdeveline_aligned" cdev>[na-ass="rack-meter.c#Lbuseline_aligned" bus>[na-ass="rack-meter.c#Lchipe" class="sref"chipers/e" nam(arL53">2 53n/a>        na href="+cod9n/spat m92 29n/a>#include <
2>
6.4.4G5n/spat m2 17n/a>#undef2na href="+code=0 *n/spat mm;(ef="+code=mark"PMAC_FTR_WRITE_GPIO-meter.c#L51" iPMAC_FTR_WRITE_GPIO/a>;,ref="+code=buf1"NULL-meter.c#L51" iNULL/a>;,ref="+code=buf1"RACKMETER_MAGIC_GPIO-meter.c#L51" iRACKMETER_MAGIC_GPIOs="s, 5)e" nam(arL53">2 53n/a>        na href="+cod10 * TODO: 0Implement PWM to do  pri01terto1line" nam(arL29">2 29n/a>#include <2 43n/a>struct2na href="+code10 * a bit 0less "immediate&quo03terto3 3>
2>
6.4.4G5n/spat m2 14n/a>nspat class="comment">0 * time. 0Patches welcome :-)n/spa04tertohref="drivers/macintosh/rackkkkkkkkk*erso h sourcess="line" nam(arL14">2 14n/a>nspat class="comment">0 *n/spat 0m2 17n/a>#undef2na href="+code=0 */n/spat0 m;(ef="+code=mark"PMAC_FTR_ROXND_CHIP_ENABLacintosh/rack-mePMAC_FTR_ROXND_CHIP_ENABLa/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Li2seline_aligned" i2s>[na, 0, 1)e" nam(arL53">2 53n/a>        na href="+cod10DEBUG" cl0ass="sref">DEBUGn/a>.2 50n/a>struct2na href="+code10ntosh/rac0k-meter.c#L19" idarL19" 08terto8 3>
2>
6.4.4G5n/spat m2 28n/a>nspat class="comment"> *10include/l0inux/typ(s.h" class="fre09tertoerve G5n/spat m2 11n/a>nspat class="comment">  *n/spat  m2 11n/a>nspat class="comment">  * TODO: IImplement PWM to do  pria1tertintensity and provide userlankkkkkkkk*ss="line" nam(arL17">2 17n/a>#undef2na href="+code=> * interfface for fun. Also, the CCPU-m112a>             na href="+coMACIO_BISeline_aligned" MACIO_BIS/a>;(ef="+code=mark"KEYLARGO_FCR>SAMPLE_COUNTn/aKEYLARGO_FCR>/a>;,ref="+code=buf1"KL1_I2S0_ENABLacintosh/rack-meKL1_I2S0_ENABLa"lin)e" nam(arL53">2 53n/a>        na href="+cod1> * a bit  less "immediate&quoot; b11/a>             na href="+coMACIO_BICeline_aligned" MACIO_BIC/a>;(ef="+code=mark"KEYLARGO_FCR>SAMPLE_COUNTn/aKEYLARGO_FCR>/a>;,ref="+code=buf1"KL1_I2S0_CLK_ENABLa_BIe_aligned" classKL1_I2S0_CLK_ENABLa_BIe"lin)e" nam(arL53">2 53n/a>        na href="+cod1> * time.  Patches welcome :-)n/spaat m<11/a>          (void)   na href="+coMACIO_INclass="sref">buf2MACIO_INcl/a>;(ef="+code=mark"KEYLARGO_FCR>SAMPLE_COUNTn/aKEYLARGO_FCR>/a>;)e" nam(arL53">2 53n/a>        na href="+cod1> *n/spat  m;m_t" classgned" u/a>;m/a>;(10)e" nam(arL53">2 53n/a>        na href="+cod1> */n/spatt m2 37n/a>nspat class="comment"1=DEBUG" cllass="sref">DEBUGn/a>.
2>
6.4.4G5n/spat m2 17n/a>#undef2na href="+code=>ntosh/racck-meter.c#L19" idarL19"  clas11ck-meter.c#L9" idarL9" classkkkkkkkk*e/macOS X class= seemsvercus/. We ms/macwantver play arounds="line" nam(arL17">2 17n/a>#undef2na href="+code=>include/llinux/typ(s.h" class="freef">l11erve G5n/spat m2 14n/a>nspat class="comment">"include/1linux/kernel.h" class="f1ref">12ck-meter.c#L11" idarL11" clakkkkkkkk*ss="line" nam(arL17">2 17n/a>#undef2na href="+code="include/1linux/slab.h" class="fre1f">li121       na href="+code=mark"out_leclass="sref">buf2out_lecl/a>;(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Li2s regseline_aligned" i2s regsed_w + 0x10, 0x01fa0000)e" nam(arL53">2 53n/a>        na href="+cod12 * interfaace for fun. Also, the CPPU-m122a>          (void)   na href="+coin_leclass="sref">buf2in_lecl/a>;(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Li2s regseline_aligned" i2s regsed_w + 0x10)e" nam(arL53">2 53n/a>        na href="+cod12 * a bit linux/interrupt.h" class1="fre12/a>             na href="+co /a>;m_t" classgned" u/a>;m/a>;(10)e" nam(arL53">2 53n/a>        na href="+cod1"include/1linux/module.h" class="f1ref">124line" nam(arL29">2 29n/a>#include <lin125 3>
2>
6.4.4G5n/spat m2 17n/a>#undef2na href="+code=" */n/spatlinux/dma-mapping.h" cla1ss="f12"+code=buf1"aetvaer.c#L54" iMACIO_BISeline_aligned" MACIO_BIS/a>;(ef="+code=mark"KEYLARGO_FCR>SAMPLE_COUNTn/aKEYLARGO_FCR>/a>;,ref="+code=buf1"KL1_I2S0_CELL_ENABLacintosh/rack-meKL1_I2S0_CELL_ENABLa+code|" nam(arL17">2 17n/a>#undef2na href="+code="DEBUG" cllinux/kernel_stat.h" cla1ss="f127s="sref">____cachelinref="+code=buf1"KL1_I2S0_CLK_ENABLa_BIe_aligned" classKL1_I2S0_CLK_ENABLa_BIe"lin)e" nam(arL53">2 53n/a>        na href="+cod1intosh/ra1ck-meter.c#L29" idarL29"1 clas128a>          (void)   na href="+coMACIO_INclass="sref">buf2MACIO_INcl/a>;(ef="+code=mark"KEYLARGO_FCR>SAMPLE_COUNTn/aKEYLARGO_FCR>/a>;)e" nam(arL53">2 53n/a>        na href="+cod1"+ambig=i1nclude/asm-alpha/io.h|in1clude129a>             na href="+co /a>;m_t" classgned" u/a>;m/a>;(10)e" nam(arL53">2 53n/a>        na href="+cod1"+ambig=i1nclude/asm-alpha/prom.h|1inclu1e/asm-}" nam(arL53">2 53n/a>        na href="+cod1"+ambig=i1nclude/asm-alpha/machdep1.h|in131line" nam(arL29">2 29n/a>#include < r_se4voidolignedn/a>;m;(> {.rmn/a>;m2 41n/a>#define2na href="+cod1"+ambig=i1nclude/asm-alpha/dbdma.h1|incl13 givie" nam(arL51">2 51n/a>        struct2na hre1"+ambig=i1nclude/asm-alpha/macio.h1|incl13/a>          12 53n/a>        na href="+cod1"+ambig=i1nclude/asm-alpha/keylarg1o.h|i135line" nam(arL43">2 43n/a>struct2na href="+code1intosh/ra1ck-meter.c#L37" idarL37"1 clas13"+code=buf1"aa hr(ef="+code=mark"ieline_aligned" iers/ = 0;oef="+code=mark"ieline_aligned" iers/keyla 16;oef="+code=mark"ieline_aligned" iers/++)me" nam(arL51">2 51n/a>        struct2na hre1>/* Numbe1r of samples in a sample1 buff137s="sref">____cacheli1f (ef="+code=mark"ieline_aligned" iers/keyla 8)" nam(arL41">2 41n/a>#define2na href="+cod1"ntosh/ra1COUNT" class="sref">SAMP1LE_CO138>[na href="+code=SAMPLE_C="+ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lu>] eline_aligned" u>] >[nana href="+code=_ieline_aligned" iers/] = (ef="+code=mark"ieline_aligned" iers/keampa 1)k*e255e" nam(arL53">2 53n/a>        na href="+cod1"+ambig=i1ck-meter.c#L40" idarL40"1 clas139>[na href="+code=SAMelse" nam(arL53">2 53n/a>        na href="+cod1>/* CPU m1eter sampling rate in ms1 */n/140s="sref">____cacheliPLE_C="+ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lu>] eline_aligned" u>] >[nana href="+code=_ieline_aligned" iers/] = ((~a href="+code=_ieline_aligned" iers/)keampa 1)k*e255e" nam(arL53">2 53n/a>        na href="+cod1e=CPU_SAM1PLING_RATE" class="sref"1>CPU_141       na hr}" nam(arL53">2 53n/a>        na href="+cod1intosh/ra1ck-meter.c#L43" idarL43"1 clas1="line}" nam(arL53">2 53n/a>        na href="+cod1i+ambig=i1r_dma" class="sref">rack1meter1dman/a" nam(arL53">2 53n/a>        na href="+cod1i * time. PPatches welcome :-)n/spatincl144un/a> r_se4voidolignedn/a>;m;(> {.rmn/a>;m;)" nam(arL41">2 41n/a>#define2na href="+cod1e=u32" cl1ass="sref">u32n/a>      1     1      e" nam(arL51">2 51n/a>        struct2na hre1e=u32" cl1ass="sref">u32n/a>      1     146ed_workn/a>     na href="+code=sniacintosh/rack-meter.c#L44" idarL44" class="linh/rack-meter.c#L5ack-meter.c#L44" idass="lin=ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _veline_aligned" f   >] _ved_we" nam(arL49">2 49n/a>.u32n/a>      1     147line" nam(arL50">2 50n/a>struct2na href="+code1cacheline1_aligned" class="sref">_1___ca148 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebug/a>;(e5n/spat m"drivedarL44" c: %s\n"drives="line,ref="+code=buf1"pausteline_aligned" paust/a>; ? e5n/spat m"drivepausto"drives="line : e5n/spat m"drivestartto"drives="line)e" nam(arL53">2 53n/a>        na href="+cod1intosh/ra1ck-meter.c#L50" idarL50"1 clas1="line" nam(arL50">2 50n/a>struct2na href="+code1=rackmete1r_cpu" class="sref">rack1meter15e       na href="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lpaustosh/rack-meter.cpaustoed_wn=ref="+code=buf1"pausteline_aligned" paust/a>;e" nam(arL53">2 53n/a>        na href="+cod1f="+code=1delayed_work" class="sre1f">de1ayed_workn/a> 1f (ef="+code=mark"pausteline_aligned" paust/a>;)me" nam(arL51">2 51n/a>        struct2na hre1f="+code=1rackmeter" class="sref">1rackm15a>[na href="+code=SAMef="+code=mark"DBDMA_DO_STOPeline_aligned" DBDMA_DO_STOP/a>;(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#L    regseline_aligned" f   regsed_w)e" nam(arL53">2 53n/a>        na href="+cod1e=cputime164_t" class="sref">cputi1me64_1n/a>                  lookupe" nam(arL53">2 53n/a>        na href="+cod1e * time. 64_t" class="sref">cputi1me64_1n/a>          }" nam(arL53">2 53n/a>        na href="+cod1>CPU_SAMP1LING_RATftion valu2u="4.14.17"15        na href="+code=mark"memseteline_aligned" cemset/a>;(ef="+code=mark"5ack-meter.c#L44" idass="li-ass="rack-meter.c#Lbu">SAMPLE_COUNTn/a>]      , 0, "rack-meter.c#L="drivers/macintosh/rack-meter.c#L39" idarL3eampa sizeof(ef="+code=mark" class="sref">buf2n/a>[na))e" nam(arL53">2 53n/a>        na href="+cod1e=u32" cl15ss="sref">u32n/a>      15    15"+code=buf1"aetvaer.c#L54" imemseteline_aligned" cemset/a>;(ef="+code=mark"5ack-meter.c#L44" idass="li-ass="rack-meter.c#Lbu">SAMPLE_COUNTn/a>]      , 0, "rack-meter.c#L="drivers/macintosh/rack-meter.c#L39" idarL3eampa sizeof(ef="+code=mark" class="sref">buf2n/a>[na))e" nam(arL53">2 53n/a>        na href="+cod1e=u32" cl15ss="sref">u32n/a>      15    157line" nam(arL50">2 50n/a>struct2na href="+code1=acheline15aligned" class="sref">_15__ca158 3>
2>
6.4.4Gf="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _veline_aligned" f   >] _ved_w-ass="rack-meter.c#Lmacheline_aligned" class="sr= 0;" nam(arL50">2 50n/a>struct2na href="+code1=ntosh/ra15k-meter.c#L50" idarL50"15clas15"line" nam(arL50">2 50n/a>struct2na href="+code16rackmete16_cpu" class="sref">rack16eter16e       na href="+code=buf1"mbeline_aligned" cb/a>;()e" nam(arL53">2 53n/a>        na href="+cod16="+code=16elayed_work" class="sre16">de161       na href="+code=mark"out_leclass="sref">buf2out_lecl/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#L    regseline_aligned" f   regsed_w-ass="rack-meter.c#Lcmdptr_hieline_aligned" cmdptr_hi    , 0)e" nam(arL53">2 53n/a>        na href="+cod16="+code=16ackmeter" class="sref">16ackm162a>             na href="+coout_leclass="sref">buf2out_lecl/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#L    regseline_aligned" f   regsed_w-ass="rack-meter.c#Lcmdptreline_aligned" cmdptr/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_w)e" nam(arL53">2 53n/a>        na href="+cod16=cputime164_t" class="sref">cputi16e64_16/a>             na href="+coout_leclass="sref">buf2out_lecl/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#L    regseline_aligned" f   regsed_w-ass="rack-meter.c#Lcontroer.c#L54" idarL5controe/a>;,r(ef="+code=mark"RUNr.c#L54" idarL5RUNers/keylaeyla 16) |ref="+code=buf1"RUNr.c#L54" idarL5RUNers/)e" nam(arL53">2 53n/a>        na href="+cod16 * time. 64_t" class="sref">cputi16e64_16/a>  }" nam(arL53">2 53n/a>        na href="+cod16CPU_SAMP16ING_RATftion valu2u="4.16.17"165line" nam(arL43">2 43n/a>struct2na href="+code16n/spat m1<;(> {.rmn/a>;m2 41n/a>#define2na href="+cod16=u32" cl16ss="sref">u32n/a>      16    167 3>
e" nam(arL51">2 51n/a>        struct2na hre16acheline16aligned" class="sref">_16__ca168ed_workn/a>     na href="+code=sniacintosh/rack-meter.c#L44" idarL44" class="linh/rack-meter.c#Ldbeline_aligned" db="lin=ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _veline_aligned" f   >] _ved_we" nam(arL49">2 49n/a>.        *na href="+code=rm" class="sref">cmdn/a>[4]                h/rack-meter.c#Lacheline_aligned" class="n=ref="+code=buf1"dbeline_aligned" db="li-ass="rack-meter.c#Lcmdeline_aligned" class="e" nam(arL49">2 49n/a>.rack17eter170rn/a" nam(arL49">2 49n/a>.de171       na hre5n/spat m2 17n/a>#undef2na href="+code=7="+code=17ackmeter" class="sref">17ackm172a>             na href="+coDBDMA_DO_RESEacintosh/rack-meDBDMA_DO_RESEa/a>;(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#L    regseline_aligned" f   regsed_w)e" nam(arL53">2 53n/a>        na href="+cod17=cputime174_t" class="sref">cputi17e64_17man/a" nam(arL53">2 53n/a>        na href="+cod17=cputime174_t" class="sref">cputi17e64_17/a>             na href="+copclaebugeline_aligned" pclaebug/a>;(e5n/spat m"drivedarL44" c: clas offset=0x%zx\n"drives="line," nam(arL53">2 53n/a>        na href="+cod17CPU_SAMP17ING_RATftion valu2u="4.17.17"17        na hr+code=SAMef="+code=mark"offseto eline_aligned" offseto /a>;(> {.2 53n/a>        na href="+cod17n/spat m17;(e5n/spat m"drivedarL44" c: >]   offset=0x%zx\n"drives="line," nam(arL53">2 53n/a>        na href="+cod17=u32" cl1dd under the term of the1     177s="sref">____cachelinef="+code=buf1"offseto eline_aligned" offseto /a>;(> {.SAMPLE_COUNTn/a>]      ))e" nam(arL53">2 53n/a>        na href="+cod17acheline17aligned" class="sref">_17__ca178 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebug/a>;(e5n/spat m"drivedarL44" c: >]   offset=0x%zx\n"drives="line," nam(arL53">2 53n/a>        na href="+cod17ntosh/ra17k-meter.c#L50" idarL50"17clas179>[na href="+code=SAMnef="+code=buf1"offseto eline_aligned" offseto /a>;(> {.SAMPLE_COUNTn/a>]      ))e" nam(arL53">2 53n/a>        na href="+cod1nrackmete18_cpu" class="sref">rack18eter180rn/a" nam(arL49">2 49n/a>.de181       na hre5n/spat m2 41n/a>#define2na href="+cod18="+code=18ackmeter" class="sref">18ackm182a>             na href="+comemseteline_aligned" cemset/a>;(ef="+code=mark"cmdeline_aligned" class=", 0, 4 * sizeof( *na href="+code=rm" class="sref">cmdn/a>[4]               ))e" nam(arL53">2 53n/a>        na href="+cod1n=cputime184_t" class="sref">cputi18e64_18/a>             na href="+cost_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lreq_counteline_aligned" req_countss=", 4)e" nam(arL53">2 53n/a>        na href="+cod1n=cputime184_t" class="sref">cputi18e64_18/a>             na href="+cost_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lhrefandr.c#L54" idarL5coefand="li,ref="+code=buf1"STORE_WORDcintosh/rack-metTORE_WORDa>   |ref="+code=buf1"INTR_ALWAYSeline_aligned" INTR_ALWAYSa>   |ref="+code=buf1"KEY_SYSTEMeline_aligned" KEY_SYSTEMed_w)e" nam(arL53">2 53n/a>        na href="+cod18CPU_SAMP18ING_RATftion valu2u="4.18.17"18        na href="+code=mark"st_leclass="sref">buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lphy addreline_aligned" phy addr/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_wl+" nam(arL43">2 43n/a>struct2na href="+code18n/spat m18;(> {.2 53n/a>        na href="+cod18 Release18d under the term of the18    18        na href="+code=buf2"st_leclass="sref">buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lclalaepe" class="sref"clalaepss=", 0x02000000)e" nam(arL53">2 53n/a>        na href="+cod18n/spat m1<2 53n/a>        na href="+cod18ntosh/ra18k-meter.c#L50" idarL50"18clas18"line" nam(arL50">2 50n/a>struct2na href="+code19rackmete19_cpu" class="sref">rack19eter19e       na href="+code=buf1"st_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lreq_counteline_aligned" req_countss=", "rack-meter.c#L="drivers/macintosh/rack-meter.c#L39" idarL3* 4)e" nam(arL53">2 53n/a>        na href="+cod19="+code=19elayed_work" class="sre19">de191       na href="+code=mark"st_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lhrefandr.c#L54" idarL5coefand="li,ref="+code=buf1"OUTPUT_MOREr.c#L54" idarL5OUTPUT_MOREed_w)e" nam(arL53">2 53n/a>        na href="+cod19="+code=19ackmeter" class="sref">19ackm192a>             na href="+cost_leclass="sref">buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lphy addreline_aligned" phy addr/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_wl+" nam(arL43">2 43n/a>stru    na href="+cod19=cputime194_t" class="sref">cputi19e64_19/a>                  ef="+code=buf1"offseto eline_aligned" offseto /a>;(> {.SAMPLE_COUNTn/a>]      ))e" nam(arL53">2 53n/a>        na href="+cod19=cputime194_t" class="sref">cputi19e64_19/a>             na href="+codmdeline_aligned" class="++e" nam(arL53">2 53n/a>        na href="+cod19CPU_SAMP19ING_RATftion valu2u="4.19.17"195line" nam(arL43">2 43n/a>struct2na href="+code19n/spat m19[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lreq_counteline_aligned" req_countss=", 4)e" nam(arL53">2 53n/a>        na href="+cod19 Release19d under the term of the19    19        na href="+code=buf2"st_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lhrefandr.c#L54" idarL5coefand="li,ref="+code=buf1"STORE_WORDcintosh/rack-metTORE_WORDa>   |ref="+code=buf1"INTR_ALWAYSeline_aligned" INTR_ALWAYSa>   |ref="+code=buf1"KEY_SYSTEMeline_aligned" KEY_SYSTEMed_w)e" nam(arL53">2 53n/a>        na href="+cod19n/spat m19buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lphy addreline_aligned" phy addr/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_wl+" nam(arL43">2 43n/a>stru    na href="+cod19ntosh/ra1  the CPU-meter LEDs of 1tclas199>[na href="+code=SAMef="+code=buf1"offseto eline_aligned" offseto /a>;(> {.2 53n/a>        na href="+cod20 *n/spat2mmbuf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lclalaepe" class="sref"clalaepss=", 0x01000000)e" nam(arL53">2 53n/a>        na href="+cod20 * TODO:20Implement PWM to do  pr201ter201       na href="+code=mark"dmdeline_aligned" class="++e" nam(arL53">2 53n/a>        na href="+cod20 * inter20ace for fun. Also, the 202ter2o"line" nam(arL43">2 43n/a>struct2na href="+code20 * a bit20less "immediate&qu203ter20/a>             na href="+cost_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lreq_counteline_aligned" req_countss=", "rack-meter.c#L="drivers/macintosh/rack-meter.c#L39" idarL3* 4)e" nam(arL53">2 53n/a>        na href="+cod20 * time.20Patches welcome :-)n/sp204ter20/a>             na href="+cost_let m[4]  st_let /a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lhrefandr.c#L54" idarL5coefand="li,ref="+code=buf1"OUTPUT_MOREr.c#L54" idarL5OUTPUT_MOREed_w |ref="+code=buf1"BR_ALWAYSeline_aligned" BR_ALWAYSa>  )e" nam(arL53">2 53n/a>        na href="+cod205* time.20ING_RATftion valu2u="4.205ter20        na href="+code=mark"st_leclass="sref">buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lphy addreline_aligned" phy addr/a>;,ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_wl+" nam(arL43">2 43n/a>stru    na href="+cod20 */n/spa20 m;(> {.SAMPLE_COUNTn/a>]      ))e" nam(arL53">2 53n/a>        na href="+cod20DEBUG" c20ass="sref">DEBUGn/a>.buf2st_lecl/a>;(eampaef="+code=mark"cmdeline_aligned" class="-ass="rack-meter.c#Lclalaepe" class="sref"clalaepss=", ef="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _pe" class="sref"f   >] _ped_w)e" nam(arL53">2 53n/a>        na href="+cod208EBUG" c202 29n/a>#include <;(ef="+code=buf1"53" idarL53" class="lin, 0)e" nam(arL53">2 53n/a>        na href="+cod2  *n/spat2 m2 53n/a>        na href="+cod2  * TODO:2IImplement PWM to do  pr2a1ter211line" nam(arL29">2 29n/a>#include < * inter2face for fun. Also, the 2CPU-m212un/a> r_se4voidolignedn/a>;mrmn/a>;m {.rmn/a>;m {.rmn/a>;m2 29n/a>#include < * a bit2 less "immediate&qu2ot; b21 givie" nam(arL51">2 51n/a>        struct2na hre2> * time.2 Patches welcome :-)n/sp2at m<21/a>              na href="+code=sniacintosh/rack-meter.c#L51" idarL51" class="linh/rack-meter.c#L5ack-meter.c#L51" idass="lin=" nam(arL51">2 51n/a>        struct2na hre2>5* time.2 m;(ef="+code=buf1"hreff">rmn/a>;mbuf2sni8" c="li.ef="+code=mark"hreff">rmn/a>;m2 53n/a>        na href="+cod2  */n/spa2t m2 53n/a>        na href="+cod2 DEBUG" c2lass="sref">DEBUGn/a>.
2>
6.4.4unslass=41;()e" nam(arL53">2 53n/a>        na href="+cod2 8EBUG" c2ck-meter.c#L19" idarL19"2 clas218 3>
2>
6.4.4Gf="+code=mark"ce=prev_idle" class="sref">prev_idlen/a>;mlignedn/a>;m2 53n/a>        na href="+cod2 include/2linux/typ(s.h" class="fr2ef">l219 3>
2>
6.4.4unslass=412 53n/a>        na href="+cod2"include/2linux/kernel.h" class="f2ref">22e       na hr1;e" nam(arL53">2 53n/a>        na href="+cod2"include/2linux/slab.h" class="fre2f">li221line" nam(arL29">2 29n/a>#include <             na href="+cocur_ji8"ieseline_aligned" cur_ji8"ies="lin=ref="+code=buf1"ji8"iesdleno_>prev_idleline_aligned" ji8"iesdleno_>prev_idl/a>;(ef="+code=buf1"getlji8"ies_dleline_aligned" getlji8"ies_dl/a>;())e" nam(arL53">2 53n/a>        na href="+cod22 * a bit2linux/interrupt.h" class2="fre22/a>             na href="+cototalrevckseline_aligned" totalrevcks"lin = (unslass=412 53n/a>        na href="+cod2"include/2linux/module.h" class="f2ref">22/a>             na href="+co5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lprev_waler.c#L54" idarL5prev_waleed_wn=ref="+code=buf1"cur_ji8"ieseline_aligned" cur_ji8"ies="lie" nam(arL53">2 53n/a>        na href="+cod2"5* time.2linux/pci.h" class="fref2">lin225line" nam(arL43">2 43n/a>struct2na href="+code2" */n/spa2linux/dma-mapping.h" cla2ss="f22"+code=buf1"aetvaer.c#L54" itotalref="_evckseline_aligned" totalref="_evcks"linn=ref="+code=buf1"getlassref="_ev_ie" class="sref"getlassref="_ev_i/a>;(ef="+code=mark"ack-meter.c#L51" iass="li)e" nam(arL53">2 53n/a>        na href="+cod2"DEBUG" c2linux/kernel_stat.h" cla2ss="f22        na href="+code=buf2"ef="_evckseline_aligned" ef="_evcks"lin = (unslass=412 53n/a>        na href="+cod2"8EBUG" c2ck-meter.c#L29" idarL29"2 clas228 3>
2>
6.4.4Gf="+code=mark"5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lprev_ef="r.c#L54" idarL5prev_ef="="lin=ref="+code=buf1"totalref="_evckseline_aligned" totalref="_evcks"line" nam(arL53">2 53n/a>        na href="+cod2"+ambig=i2nclude/asm-alpha/io.h|in2clude22"line" nam(arL50">2 50n/a>struct2na href="+code2"+ambig=i2nclude/asm-alpha/prom.h|2inclu23e       na hre5n/spat m2 41n/a>#define2na href="+cod2"+ambig=i2nclude/asm-alpha/machdep2.h|in23ntensity and provide userlankkkkkkkk* we'll do bet" c onc.cw.chave actual PWM impleusereds="line" nam(arL17">2 17n/a>#undef2na href="+code2"+ambig=i2nclude/asm-alpha/pmac_fe2ature2cl/a>;ter.c#L11" idarL11" clakkkkkkkk*ss="line" nam(arL17">2 17n/a>#undef2na href="+code2"+ambig=i2nclude/asm-alpha/dbdma.h2|incl23/a>             na href="+coloadeline_aligned" loaders/ = (9k* (ef="+code=mark"totalrevckseline_aligned" totalrevcks"lin -ref="+code=buf1"ef="_evckseline_aligned" ef="_evcks"lin)) /    na href="+cototalrevckseline_aligned" totalrevcks"line" nam(arL53">2 53n/a>        na href="+cod2"+ambig=i2nclude/asm-alpha/macio.h2|incl234line" nam(arL29">2 29n/a>#include <2 53n/a>        na href="+cod2" */n/spa2ck-meter.c#L37" idarL37"2 clas23"+code=buf1"aetvaer.c#L54" icum3" idarL53" clascum3ers/r= 0;" nam(arL50">2 50n/a>struct2na href="+code2>/* Numbe2r of samples in a sample2 buff237s="sref">___a hr(ef="+code=mark"ieline_aligned" iers/ = 0;oef="+code=mark"ieline_aligned" iers/keyla 8;oef="+code=mark"ieline_aligned" iers/++)me" nam(arL51">2 51n/a>        struct2na hre2"ntosh/ra2COUNT" class="sref">SAMP2LE_CO238>[na href="+code=SAMef="+code=mark"u8eline_aligned" u8/a>;mlignedn/a>;m2 50n/a>struct2na href="+code2>+ambig=i2ck-meter.c#L40" idarL40"2 clas239>[na href="+code=SAMef="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lu>] eline_aligned" u>] >[nana href="+code=_ieline_aligned" iers/ +ref="+code=mark"offseteline_aligned" offseters/]n=ref="+code=buf1"ubeline_aligned" ub="li;" nam(arL50">2 50n/a>struct2na href="+code2>/* CPU m2eter sampling rate in ms2 */n/240s="sref">____cachelietvaer.c#L54" icum3" idarL53" clascum3ers/r|=ref="+code=buf1"ubeline_aligned" ub="li;" nam(arL50">2 50n/a>struct2na href="+code2>+ambig=i2PLING_RATE" class="sref"2>CPU_241       na hr}" nam(arL53">2 53n/a>        na href="+cod2intosh/ra2ck-meter.c#L43" idarL43"2 clas242a>             na href="+co5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lzerce" class="sref"zerc="lin=r(ef="+code=mark"cum3" idarL53" clascum3ers/r== 0)e" nam(arL53">2 53n/a>        na href="+cod2i+ambig=i2r_dma" class="sref">rack2meter2dman/a" nam(arL53">2 53n/a>        na href="+cod2i * time.2PPatches welcome :-)n/sp2tincl24/a>           5n/spat m2 17n/a>#undef2na href="+code2e=u32" cl2ass="sref">u32n/a>      2     24        na href="+code=mark"pausteline_aligned" paust/a>; =r(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[0].ef="+code=mark"zerce" class="sref"zerc="lineampaeampa ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[1].ef="+code=mark"zerce" class="sref"zerc="li)e" nam(arL53">2 53n/a>        na href="+cod2i */n/spa2ass="sref">u32n/a>      2     246ed_workn/a> 1f (ef="+code=mark"pausteline_aligned" paust/a>; !=ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lpaustosh/rack-meter.cpaustoed_w)me" nam(arL51">2 51n/a>        struct2na hre2e=u32" cl2ass="sref">u32n/a>      2     247s="sref">____cacheli"rack-meter.c#Lmutex_so hsh/rack-meter.cmutex_so h/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lse3" idarL53" classe3="li)e" nam(arL53">2 53n/a>        na href="+cod2intosh/ra2_aligned" class="sref">_2___ca248>[na href="+code=SAMef="+code=mark"pausteline_aligned" paust/a>; =r(ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[0].ef="+code=mark"zerce" class="sref"zerc="lineampaeampa ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[1].ef="+code=mark"zerce" class="sref"zerc="li)e" nam(arL53">2 53n/a>        na href="+cod2i+ambig=i2ck-meter.c#L50" idarL50"2 clas249>[na href="+code=SAMef="+code=buf1"5arL51" cldo_pausteline_aligned" darL51" cldo_paust/a>;(ef="+code=buf1"53" idarL53" class="lin, ef="+code=mark"pausteline_aligned" paust/a>;)e" nam(arL53">2 53n/a>        na href="+cod2=rackmete2r_cpu" class="sref">rack2meter250s="sref">____cachelietvaer.c#L54" imutex_unso hsh/rack-meter.cmutex_unso h/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lse3" idarL53" classe3="li)e" nam(arL53">2 53n/a>        na href="+cod2f="+code=2delayed_work" class="sre2f">de251       na hr}" nam(arL53">2 53n/a>        na href="+cod2f="+code=2rackmeter" class="sref">2rackm252a>             na href="+coschedule_/a>;med_href_oneline_aligned" schedule_/a>;med_href_on/a>;(ef="+code=mark"ack-meter.c#L51" iass="li, eampaef="+code=mark"5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lsni8" cass="sref">buf2sni8" c="li," nam(arL53">2 53n/a>        na href="+cod2e=cputime264_t" class="sref">cputi2me64_2n/a>                                   etvaer.c#L54" imsecseno_ji8"ieseline_aligned" msecseno_ji8"ies/a>;(ef="+code=mark"CPU_ter.cING_RATEr.c#L54" idarL5CPU_ter.cING_RATE"lin))e" nam(arL53">2 53n/a>        na href="+cod2f * time.264_t" class="sref">cputi2me64_25/a>  }" nam(arL53">2 53n/a>        na href="+cod2>CPU_SAMP2LING_RATftion valu2u="4.24.17"255line" nam(arL43">2 43n/a>struct2na href="+code2e=u32" cl25ss="sref">u32n/a>      25    256ed_w> r_se4voidolignedn/a>;mbuf2darL51" clinitlassrsni8" c/a>;(> {.rmn/a>;m2 41n/a>#define2na href="+cod2e=u32" cl25ss="sref">u32n/a>      25    257 3>
e" nam(arL51">2 51n/a>        struct2na hre2=acheline25aligned" class="sref">_25__ca258 3>
2>
6.4.4unslass=412 53n/a>        na href="+cod2f+ambig=i25k-meter.c#L50" idarL50"25clas25"line" nam(arL50">2 50n/a>struct2na href="+code26rackmete26_cpu" class="sref">rack26eter26e       na hre5n/spat m2 5 hrefs onlyewithe1 or 2 CPUs numbers=40.c#L11,s="line" nam(arL41">2 41n/a>#define2na href="+cod26="+code=26elayed_work" class="sre26">de26ntensity and provide userlankkkkkkkk* butr/mat's really2 17n/a>#undef2na href="+code26="+code=26ackmeter" class="sref">26ackm26l/a>;ter.c#L11" idarL11" clakkkkkkkk* play 2 5y nic.cwitheCPU hotplug neith 5 butrwe don't do /mats="line" nam(arL17">2 17n/a>#undef2na href="+code26=cputime264_t" class="sref">cputi26e64_26/a>  ter.c#L11" idarL11" clakkkkkkkk* hivehos> mach"srs yets="line" nam(arL17">2 17n/a>#undef2na href="+code26 * time.264_t" class="sref">cputi26e64_2dl/a>;ter.c#L11" idarL11" clakkkkkkkk*ss="line" nam(arL17">2 17n/a>#undef2na href="+code26CPU_SAMP26ING_RATftion valu2u="4.26.17"265line" nam(arL43">2 43n/a>struct2na href="+code26n/spat m2<2 53n/a>        na href="+cod26=u32" cl26ss="sref">u32n/a>      26    26        na href="+code=buf2"INIT_DELAYED_WORK" idarL53" clasINIT_DELAYED_WORK/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[0].ef="+code=mark"sni8" cass="sref">buf2sni8" c="li,olignedn/a>;mrmn/a>;m2 53n/a>        na href="+cod26acheline26aligned" class="sref">_26__ca268 3>
2>
6.4.4Gf="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[1].ef="+code=mark"53" idarL53" class="linn=ref="+code=buf1"53" idarL53" class="line" nam(arL53">2 53n/a>        na href="+cod26+ambig=i26k-meter.c#L50" idarL50"26clas269a>             na href="+coINIT_DELAYED_WORK" idarL53" clasINIT_DELAYED_WORK/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[1].ef="+code=mark"sni8" cass="sref">buf2sni8" c="li,olignedn/a>;mrmn/a>;m2 53n/a>        na href="+cod27rackmete27_cpu" class="sref">rack27eter270rn/a" nam(arL49">2 49n/a>.de271       na href="+code=mark"for_each_onk" crack-meter.c#L51" ifor_each_onk" crack/a>;(ef="+code=mark"ack-meter.c#L51" iass="li)me" nam(arL51">2 51n/a>        struct2na hre27="+code=27ackmeter" class="sref">27ackm272a>                      na href="+code=sniacintosh/rack-meter.c#L51" idarL51" class="linh/rack-meter.c#L5ack-meter.c#L51" idass="lie" nam(arL53">2 53n/a>        na href="+cod27=cputime274_t" class="sref">cputi27e64_27man/a" nam(arL53">2 53n/a>        na href="+cod27=cputime274_t" class="sref">cputi27e64_27/a>                  1f (ef="+code=mark"cck-meter.c#L51" iass="liness=o1)" nam(arL41">2 41n/a>#define2na href="+cod27CPU_SAMP27ING_RATftion valu2u="4.27.17"27        na hr+code=SAMMMMMMMMhrntinuee" nam(arL53">2 53n/a>        na href="+cod27n/spat m272 53n/a>        na href="+cod27=u32" cl2dd under the term of the2     277s="sref">____cachelief="+code=mark"5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lprev_ef="r.c#L54" idarL5prev_ef="="lin=ref="+code=buf1"getlassref="_ev_ie" class="sref"getlassref="_ev_i/a>;(ef="+code=mark"ack-meter.c#L51" iass="li)e" nam(arL53">2 53n/a>        na href="+cod27acheline27aligned" class="sref">_27__ca278>[na href="+code=SAMef="+code=mark"5ack-meter.c#L51" idass="li-ass="rack-meter.c#Lprev_waler.c#L54" idarL5prev_waleed_wn=ref="+code=buf1"ji8"iesdleno_>prev_idleline_aligned" ji8"iesdleno_>prev_idl/a>;(ef="+code=buf1"getlji8"ies_dleline_aligned" getlji8"ies_dl/a>;())e" nam(arL53">2 53n/a>        na href="+cod27ntosh/ra27k-meter.c#L50" idarL50"27clas279>[na href="+code=SAM   na href="+coschedule_/a>;med_href_oneline_aligned" schedule_/a>;med_href_on/a>;(ef="+code=mark"ack-meter.c#L51" iass="li, eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li["rack-meter.c#Lcck-meter.c#L51" iass="li].ef="+code=mark"sni8" cass="sref">buf2sni8" c="li," nam(arL53">2 53n/a>        na href="+cod2nrackmete28_cpu" class="sref">rack28eter280s="sref">____cacheliPLE_C="++++++++++++++++++etvaer.c#L54" imsecseno_ji8"ieseline_aligned" msecseno_ji8"ies/a>;(ef="+code=mark"CPU_ter.cING_RATEr.c#L54" idarL5CPU_ter.cING_RATE"lin))e" nam(arL53">2 53n/a>        na href="+cod2n="+code=28elayed_work" class="sre28">de281       na hr}" nam(arL53">2 53n/a>        na href="+cod28="+code=28ackmeter" class="sref">28ackm28"line}" nam(arL53">2 53n/a>        na href="+cod2n=cputime284_t" class="sref">cputi28e64_28man/a" nam(arL53">2 53n/a>        na href="+cod2n=cputime284_t" class="sref">cputi28e64_284un/a> r_se4voidolignedn/a>;mbuf2darL51" clstoplassrsni8" c/a>;(> {.rmn/a>;m2 41n/a>#define2na href="+cod28CPU_SAMP28ING_RATftion valu2u="4.28.17"28     e" nam(arL51">2 51n/a>        struct2na hre28n/spat m28;med_href_sync-meter.c#L51" iaancel_/a>;med_href_sync/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[0].ef="+code=mark"sni8" cass="sref">buf2sni8" c="li)e" nam(arL53">2 53n/a>        na href="+cod2n=u32" cl28d under the term of the28    28        na href="+code=buf2"cancel_/a>;med_href_sync-meter.c#L51" iaancel_/a>;med_href_sync/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lcck-meter.c#L51" iass="li[1].ef="+code=mark"sni8" cass="sref">buf2sni8" c="li)e" nam(arL53">2 53n/a>        na href="+cod2nacheline2<2 53n/a>        na href="+cod2nntosh/ra28k-meter.c#L50" idarL50"28clas28"line" nam(arL50">2 50n/a>struct2na href="+code29rackmete29_cpu" class="sref">rack29eter29e    > r_se41buf2darL51" clsetup/a>;(> {.rmn/a>;m2 41n/a>#define2na href="+cod29="+code=29elayed_work" class="sre29">de291    e" nam(arL51">2 51n/a>        struct2na hre29="+code=29ackmeter" class="sref">29ackm292a>             na href="+copclaebugeline_aligned" pclaebug/a>;(e5n/spat m"drivedarL44" c: setting up i2s..\n"drives="line)e" nam(arL53">2 53n/a>        na href="+cod29=cputime294_t" class="sref">cputi29e64_29/a>             na href="+codarL51" clsetup_i2sass="sref">buf2darL51" clsetup_i2s/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2 53n/a>        na href="+cod29=cputime294_t" class="sref">cputi29e64_294line" nam(arL29">2 29n/a>#include <;(e5n/spat m"drivedarL44" c: setting up default pat" cn..\n"drives="line)e" nam(arL53">2 53n/a>        na href="+cod29n/spat m29buf2darL51" clset_default_pat" cn/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2 53n/a>        na href="+cod29=u32" cl29d under the term of the29    297line" nam(arL50">2 50n/a>struct2na href="+code29n/spat m29;(e5n/spat m"drivedarL44" c: setting up d    ..\n"drives="line)e" nam(arL53">2 53n/a>        na href="+cod29ntosh/ra2  the CPU-meter LEDs of 2tclas299a>             na href="+codarL51" clsetup_f    eline_aligned" darL51" clsetup_f    /a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2 53n/a>        na href="+cod30 *n/spat3mm2 49n/a>.;(e5n/spat m"drivedarL44" c: starteCPU meas" c11" s..\n"drives="line)e" nam(arL53">2 53n/a>        na href="+cod30 * inter30ace for fun. Also, the 302ter302a>             na href="+co5arL51" clinitlassrsni8" cass="sref">buf2darL51" clinitlassrsni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2 53n/a>        na href="+cod303* inter304_t" class="sref">cputi303ter30man/a" nam(arL53">2 53n/a>        na href="+cod30 * time.30Patches welcome :-)n/sp304ter30/a>             na href="+cop inthsh/rack-meter.cp inth/a>;(ef="+code=buf1"KERN_INFOsh/rack-meter.cKERN_INFOa>   e5n/spat m"driveRna Mef=" initialized\n"drives="line)e" nam(arL53">2 53n/a>        na href="+cod305* time.30ING_RATftion valu2u="4.305ter305line" nam(arL43">2 43n/a>struct2na href="+code30 */n/spa30 m2 50n/a>struct2na href="+code30DEBUG" c30ass="sref">DEBUGn/a>.2 53n/a>        na href="+cod308EBUG" c302 29n/a>#include <2 17n/a>#undef2na href="+code3  *n/spat3 mbuf2ucl/a>; href="+code=sniacintosh/raalc_sample-meter.c#L51" idarL51" claalc_sample/a>;(> {.rmn/a>;m2 41n/a>#define2na href="+cod3  * TODO:3IImplement PWM to do  pr3a1ter311    e" nam(arL51">2 51n/a>        struct2na hre3> * inter3face for fun. Also, the 3CPU-m312a>          12 49n/a>.buf2ucl/a>; href="+code=snisample-meter.c#L51" isample/a>;r= 0;" nam(arL50">2 50n/a>struct2na href="+code3> * time.3 Patches welcome :-)n/sp3at m<314line" nam(arL29">2 29n/a>#include <5* time.3 m2 51n/a>        struct2na hre3  */n/spa3t m;rass=ass== 1;" nam(arL50">2 50n/a>struct2na href="+code3>DEBUG" c3lass="sref">DEBUGn/a>.____cachelief="+code=mark"sample-meter.c#L51" isample/a>;r|= ((ef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lu>] eline_aligned" u>] >[nana href="+code=_ltosh/rack-meter.cleass="] ass== 0x80)neylaeyla 15)e" nam(arL53">2 53n/a>        na href="+cod3 8EBUG" c3ck-meter.c#L19" idarL19"3 clas318 3>
2>
6.4.4}" nam(arL53">2 53n/a>        na href="+cod3 include/3linux/typ(s.h" class="fr3ef">l319 3>
2>
6.4.4return (ef="+code=mark"sample-meter.c#L51" isample/a>;raylaeyla 17) | (ef="+code=mark"sample-meter.c#L51" isample/a>;rass=ass= 15)e" nam(arL53">2 53n/a>        na href="+cod3"include/3linux/kernel.h" class="f3ref">32/asm-}" nam(arL53">2 53n/a>        na href="+cod3"include/3linux/slab.h" class="fre3f">li321line" nam(arL29">2 29n/a>#include < r_se4ef="+code=buf1"irqreturndle" class="sref"irqreturndl/a>; href="+code=sniacintosh/rirqass="sref">buf2darL51" clirq/a>;(1buf2irq/a>;,4voidoh/rack-meter.c#Largeline_aligned" arg"lin)" nam(arL41">2 41n/a>#define2na href="+cod32 * a bit3linux/interrupt.h" class3="fre32 givie" nam(arL51">2 51n/a>        struct2na hre3"include/3linux/module.h" class="f3ref">32/a>              na href="+code=sniacintosh/-meter.c#L51" idarL51" c="linh/rack-meter.c#L53" idarL53" class="linn=ref="+code=buf1"argeline_aligned" arg"line" nam(arL53">2 53n/a>        na href="+cod3"5* time.3linux/pci.h" class="fref3">lin325a>              na href="+code=sniacintosh/rack-meter.c#L44" idarL44" class="linh/rack-meter.c#Ldbeline_aligned" db"linn=ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _veline_aligned" d   >] _v"line" nam(arL53">2 53n/a>        na href="+cod3" */n/spa3linux/dma-mapping.h" cla3ss="f32"+code=buf1"aunslass=41buf2i"line" nam(arL53">2 53n/a>        na href="+cod3"DEBUG" c3linux/kernel_stat.h" cla3ss="f32        na href="+code=buf2"uclass="sref">buf2ucl/a>; h/rack-meter.c#L>] eline_aligned" >] >[nae" nam(arL53">2 53n/a>        na href="+cod3"8EBUG" c3ck-meter.c#L29" idarL29"3 clas32"line" nam(arL29">2 29n/a>#include <           5n/spat m2 17n/a>#undef2na href="+code3"+ambig=i3nclude/asm-alpha/prom.h|3inclu33e    ter.c#L11" idarL11" clakkkkkkkk* check /mac> r_us one day ...41< cas/r/mings go wrong, thoughs="line" nam(arL17">2 17n/a>#undef2na href="+code3"include/3nclude/asm-alpha/machdep3.h|in33ntensity and provide userlankkkkkkkk* this ne2 5 happess=4to _i/a"line" nam(arL17">2 17n/a>#undef2na href="+code3" * inter3nclude/asm-alpha/pmac_fe3ature3cl/a>;ter.c#L11" idarL11" clakkkkkkkk*ss="line" nam(arL17">2 17n/a>#undef2na href="+code3"+ambig=i3nclude/asm-alpha/dbdma.h3|incl33/a>          (void)ef="+code=mark"in_leclass="sref">buf2in_lecl/a>;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Ld   regsass="sref">buf2d   regs"lin-ass="rack-meter.c#L> r_us-meter.c#L51" is r_us"lin)e" nam(arL53">2 53n/a>        na href="+cod3"+ambig=i3nclude/asm-alpha/macio.h3|incl334line" nam(arL29">2 29n/a>#include <2 17n/a>#undef2na href="+code3" */n/spa3ck-meter.c#L37" idarL37"3 clas33"+code=buf1"aetvaer.c#L54" irmbeline_aligned" rmb/a>;()e" nam(arL53">2 53n/a>        na href="+cod3"DEBUG" c3r of samples in a sample3 buff337line" nam(arL50">2 50n/a>struct2na href="+code3"ntosh/ra3COUNT" class="sref">SAMP3LE_CO338>[na href="+e5n/spat m2 17n/a>#undef2na href="+code3"+ambig=i3ck-meter.c#L40" idarL40"3 clas339a>             na href="+comacheline_aligned" class="sn=ref="+code=buf1"dbeline_aligned" db"lin-ass="rack-meter.c#Lmacheline_aligned" class="se" nam(arL53">2 53n/a>        na href="+cod3>/* CPU m3eter sampling rate in ms3 */n/340s="sref">___1f (ef="+code=mark"macheline_aligned" class="sn!= 1neampaeampa ef="+code=mark"macheline_aligned" class="sn!= 2)me" nam(arL51">2 51n/a>        struct2na hre3>+ambig=i3PLING_RATE" class="sref"3CPU_23a>;(ef="+code=           na href="+co4clude/ak*ss="linne" nam(arL17">2 17n/a>#undef2na href="+code2"+ambig=i2nclude/asm-alpha/pmac_fe2atmG   ing">"driveRna Mefe2atmGinitialized\n"drives="line)e" naes="line)e"Incorre4" a hrna hr0x%08x    na href="+cd2nrackmete28_cpu" class="sref">rack28eter232a>      3      na href="+co5ack-m3ter.c34iacintosh/rack-meter.lass="sn=ref="+code=buf1"dbeline_aligned" db"lin-od3"DEBUG" c3r of samples in a sample3 buff33man/a" na3(arL53">2 53n/a>        3a hre34o eline_aligned" offsecalculaarhivercupdat/r/macLhreowss=" 3 errollylike href (a hle DBa hrgnes)ref="+code3"+ambig=i3ck-meter.c#L40" idarL40"3 clas33/a>      3    5n/spat mbuf2d   regs"lin-ass="ra hlef="+code=mark"irqasa hlef="+     na h 3hre3>+ambig=i3PLING_RATE" class="sref"3CPU_23a>       na href="+code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href="+code2"+ambig=i2nclude/asm-alpha/pmac_ERR   ing">"driveRna MeERRinitialized\n"drives="line)e" naes="line)e"Tohreany erroll,  na href="+c3>+ambig=i3PLING_RATE" class="sref"3CPU_23a>+code=bufa> 1f (ef="+code=mark"pa3steli34-meter.c#L51" isamplee_aligned" offsecalculaarhives="line)e" nandef2p">2 a h    na href="+cod305* time.30ING_RATftion valu2u="4.305ter307s="sref"3____cacheli"rack-meter.c3Lmute3_so hsh/rack-meter.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-meter.c#L> r_us-meter.c#L51" isod305* time.30ING_RATftion valu2u="4.305ter307>[na href="+code=SAMef="+code=mar3"paus3eline_aligned" paust/ad3"include/3linux/slab.h" class="fre3f">li329>[na hre3="+code=SAMef="+code=buf3"5arL31" cldo_pausteline_ali isamplregs"lin-ass="rIRQ_HANDLE=buf1"INTR_ALWAYIRQ_HANDLE="+cod3>/* CPU m3eter sampling rate in ms3 */n/340s="sref"3____cachelietvaer.c#L54"3imute3_unso hsh/rackd3"include/3linux/slab.h" class="fre3f">li321       n3 hr}" nam(arL53">2 53n/a3     35href=32 * inter3aace for fun. Also, the 3PPU-m322a>      3      na href="+coschedu3e_/a>3med_href_onelina c all 0,cw.cc/spstop DMext actualn/a>ne2na hrfillef2nna hrvalueref="+code3"+ambig=i3ck-meter.c#L40" idarL40"3 clas33/a>      3                        3   et35buf2ucl/a>; href="+code=snis3n/a>        na href="+coass="rack-meter.c#f1"dbeline_aligned" db"lin-asigne?s="rack-meter.c#Lmacheline_aligned" class="se" nam(arL53">2>2 53n/a>        na href="+ :s="rack-meter.c#Lmacheline_aligned" class="se" nam(arL53">2>2 53n/a>        na href="+d3>/* CPU m3eter sampling rate in ms3 */n/340a>      3m(arL53">2 53n/a>       3na hr35href=3"+ambig=i3nclude/asm-alpha/keylarg3o.h|i335line" na3(arL43">2 43n/a>struct2n3 href35c>ur/r/macCPU gets us 1< ord 5 *ss="liFillefta hr.umbersroutn/ahreflud/a>L17"8 bi/a>depth /a>    arraf="+code3"+ambig=i3nclude/asm-alpha/prom.h|3inclu336ed_w> r_3e4voidolignedn/a>;mL17">2 1bi/mapss=" er.c" na.="+code3"+ambig=i3nclude/asm-alpha/prom.h|3inclu336s="sref"3m(arL51">2 51n/a>       3struc32na hrnam(arL17">2 17n/a>#undef2na href="+code3"+ambig=i3nclude/asm-alpha/dbdma.h3|incl338 3>
2>
634.4unslass=412 53n/a>        na hrefe" nam(arL51">2 51n/a>        struct2na h3"+ambig=i3nclude/asm-alpha/dbdma.h3|incl338>[na hre3(arL50">2 50n/a>struct2n3 href35le_/a>;med_href_oneline_aligned" sch3n/a>        na href="+co="+code=mark"offseteline_aligned" off;" nam(arL50">2 50n" claalc_sample/a>;(> {.rmn/a>;mslass=41;ter.3#L11" idarL11" clakkkkkk3k* pl36ed_href_oneli isamplregs"lin-ass="rIRQ_HANDLE=buf1"INTR_ALWAYIRQ_HANDLE="+cod3>/* CPU m3eter sampling rate in ms3 */n/34/a>  ter.3#L11" idarL11" clakkkkkk3k* hi3ehos> d3"include/3linux/slab.h" class="fre3f">li32l/a>;ter.3#L11" idarL11" clakkkkkk3k*ss=36href=3"+ambig=i3nclude/asm-alpha/keylarg3o.h|i335line" na3(arL43">2 43n/a>struct2n3 href3"+codess="sref">buf2darL51" clsetup/a>;(> prob> {.2 53n/a>       asm-o_de>/a>;*f="drivers/mh/raade>2 53n/a>       ade>/a>;d2nrackmete28_cpu" class="sref">rack28eter23"+code=bu31"aetvaer.c#L54" i53" id3rL53"36-meter.c#L51" isamplee_aligned" refst.c#L44" idarL44" class=of_de>ice nam(arL53">2 53n/of_de>ice na>[nae" nam(arL53">2 5match2 53n/a>       astch"+cod32 * a bit3linux/interrupt.h" class3="fre32        n3 href="+code=buf2"INIT_D3LAYED36na hre2=acheline25aligned" class="sref">_25__ca238 3>
2>
634.4Gf="+code=mark"53" id3rL53"3class="lin-assc#L44" idarL44" class=de>ice nassacheline_alignede>ice nass>[nae" nam(arL53">2 5ef="+code=buf1"53""lin)e"" nam(arL50">2 50nNULL"+code=buf1"53"NULLdarL53" nam(arL53">2 5n href="drivers/mnpn)e"" nam(arL50">2 50nNULL"+code=buf1"53"NULLdarLd3>/* CPU m3eter sampling rate in ms3 */n/34/>[na hre3      na href="+coINIT_D3LAYED3WORK" idarL53"1" idarL51" c="linh/rack-meter.c#L53" idarL53" class="linn=ref="+code=buf1"argeline_aligned" arg"line" nam(arL53">2 5NULL"+code=buf1"53"NULLdarLd3>/* CPU m3eter sampling rate in ms3 */n/340rn/a" na3(arL49">2 49n/a>.">buf2darL51" clirq/aef="+code=buf1"53" "lin)e"a>;m/* CPU m3eter sampling rate in ms3 */n/340tensity 3 href="+code=mark"for_ea3h_onk3 crack-meter.cf">buf2darL51" clset>;(eampaef="+codrcg"line"-uf2darL51" clseENODEV;(eampaef="+codENODEVinn=d3>/* CPU m3eter sampling rate in ms3 */n/340/a>;ter.3               na href="3code=3niacin3>/* CPU m3eter sampling rate in ms3 */n/340a>  ter.3(arL53">2 53n/a>        3a hre37buf2ucl/a>; href="+code=snisat m"drivedarL44" c: starteCPU meas" c11" s..\n"drives="line)nprob>()    na href="+cod305* time.30ING_RATftion valu2u="4.305ter30/a>      3           1f (ef="+code3mark"37href=3"+ambig=i3nclude/asm-alpha/keylarg3o.h|i33        n3 hr+code=SAMMMMMMMMhrnt3lin-a375c>ur/r/macCPU gets us 1< ord 5 *ss=Get 3" -a ce na href="+code3"+ambig=i3nclude/asm-alpha/dbdma.h3|inc 27      3 na hrode=SAMnef="+code=3uf1"53ck-meter.c#L51whia> n-ass="rack-meter2 5ef="+code=buf1"53""lin)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofraade>2 53n/a>    ofraade>/ni8" c="li)e" naraade>2 53n/a>    raade>/ni8" c="li)e" na3n/ce nassacheline_ali3n/ce n" idarL53"+code=mark"o 5ef="+code=buf1"53""lin))lin-ass="rack-meter2 5NULL"+code=buf1"53"NULLd+cod32 * a bit3linux/interrupt.h" class3="fr 277s="sr3f">____cachelief="+code=3ark"53ck-meter.c#L51" idasslass="sn!= 1neampae" ccm 5n href="driver" ccm rmn/a>;mslass=41;medlass="sn!= 1neampae2 5ef="+code=buf1"53""lin)en-ass="rack-meter2 5NULL"+code=buf1"53"NULLd+ 3hre3>+ambig=i3PLING_RATE" class="sref"3CPU_r280s="sr3f">____cacheliPLE_C="+++3+++++3++++++++etvaer.c#L54" ; href="+code=snisat m"drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae cet foun        na href="+cod305* time.30ING_RATftion valu2u="4.305tee281     3 na hr}" nam(arL53">2 533/a>  38ude/ak*ss="linne" namgotoneline_aligned" saide=buf1"ji8"iesdsaidDEVinn=d3>/* CPU m3eter sampling rate in ms3 */nm28"line}3 nam(arL53">2 53n/a>    3   na38l36ed_href_ons> d3"include/3linux/slab.h" class="fre3f">l_28man/a"3nam(arL53">2 53n/a>     3  na 38375c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(arvir>2 17soun a href="+code3"+ambig=i3nclude/asm-alpha/dbdma.h3|inc_284un/a>3r_se4voidolignedn/a>;m n-ass="rack-meter2 5n href="drivers/mnpn)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 51n/a>        strucD+cod28CPU_SAMP28I38G_RATE" class="sref"3="fr 277s="sr3f">____cachelief="+code=3ark"53ck-meter.c#L51" idaschiaermn/a>;mslass=41;mslass=412 53n(arL53"+co5n href="driversamn" idarLarteCPU meas" c11" s..\n"d351n/a>   3    struct2na hre28n/spa3 m28<38u" class="sref">rack28eter238 3>
2>ref="+code=SAMef="+code=3ark"53ck-meter.c#53n/a>   3    na href="+cod2n=u32"3cl28d38x/interrupt.h" class3="ffr 277s="sr3f">____cachelief="+code=3ark"53ck-meter.c#L51" idaschiaermn/a>;mslass=41;mslass=41;mslass=41   3    na href="+cod2nntosh3ra28k38de/asm-alpha/dbdma.h38eter238 3>
2>ref="+code=SAMef="+code=3ark"53ck-meter.c#50n/a>str3ct2na href="+code29rackm3te29_39 sampling rate in ms3 */n/340s="sref"3____cachelietvaer.c41n/a>#de3ine2na href="+cod29="+co3e=29e391RATftion valu2u="4.305ter34/>[n_se4voidolignedn/a>;m   3    struct2na hre29="+co3e=29a39u" class="sref">rack2CPU_r280s="sr3f">____cacheliPLE_C="+++3+++++3++++++++etvaer.c#L54" ; href="+code53">2 53n/a> a 383+    3  nt m"drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae ce53n/a>   3    na href="+cod29=cput3me29439 samples in a sample305tee281     3 na hr}" nam(arL53">2 533/a>  38ude/ak*ss="linne" namgotoneline_aligned" said53n/a>   3    na href="+cod29=cput3me294394sampling rate in ms3 */n/340s="sref"3____cachelietvaer.c42 51n/a> lude <2 53n/a>   3    na href="+cod29n/spa3 m29<3 href="drivers/s="fre3f">l_28man/a"3namC 3>teewithmur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(a53n/a>   3    na href="+cod29=u32"3cl29d39x/kernel_stat.h" cla3ss="f32rL51" c="linh/rack-meter.c#L53" idarL53" kz3n/aity 3 href="+codkz3n/ais="sreingof" idarL51" claalc_sample/a>;(> {.str3ct2na href="+code29n/spa3 m29<3 href="driversu2u="4.305ter34/>[nrL51" c="linh/rack-meter.5ef="+code=buf1"53""linarL53"+code=mark"clwithe/spMMIO read. Ma"ine=buf1"53""linarludrL51"53n/a>   3    na href="+cod29ntosh3ra2  39de/asm-alpha/dbdma.h3|incl338>[na hr"+code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href="+code2"+ambig=i2nclude/asm-alpha/pmacfa> osched3n/ai>teememory !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae c453n/a>   4    na href="+cod30 *n/s4at3mm40G_RATE" class="sref"3CPU_r280s="sr3fsity 3 href="+code=mark"for_ea3h_onk3 crack-mMEMr.cf">buf2darL51" MEM 38ude/ak*ss="linne" namgotoneline_aligned" sai449n/a>..2 53n/a> 453n/a>   4    na href="+cod303* in4er30440" class="sref">cputi29e64_29/n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_D/n/a>next_chiae nam(arL53">         3   et35bun/a>next_chiae nam(arL53">de/ak*ss="linne" namgotoneline_aligned" sai444n/a>   4    na href="+cod29=cput4e.30P4tches welcome :-)n/sp304ter30/n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dna hrode=SAMnef="+code=3uf1"53ck-meter.c#L5na hrode=SAMnef="+code=3ude/ak*ss="linne" namgotoneline_aligned" sai445n/a>   4 ude <next_chiae nam(mutexm;(eampaef="+code=mark"53" idarL53" class="lin-ass="rack-meter.c#Lse3" idarL53" classe3="li)e" nam(arL53">2443n/a>str4ct2na href="+code30 */n/4pa30 40eter.c#L37" idarL37"3 clas33arL" cnasrvdatalass="se" nam(arL5" cnasrvdata(arL5ack-meter.cmutex_uns/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofr {.;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2450n/a>str4ct2na href="+code30DEBUG4 c30a40x/kernel_stat.s="fre3f">l_28man/a"3namCL11" href3"drs av" nability.>2 5+coscat leaat href3"drlyewithe75c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(453n/a>   4    na href="+cod308EBUG4 c30<4 href=#u2u0t.s="fre3f">l_28man/a"3namUs eline_whene=snisais finnkkkkkn (arL per-sMMMMMMhrnt3lin-a375c>ur/r/macCPU gets us 1< ord 5 *ss429n/a>#in4lude < >next_chiae nam(drivehref3"dr_cg"> )e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">k-mete 2 ||f2darL51" clsetup/a>;(irq_cg"> >next_chiae nam(driveirq_cg"> )e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">k-mete 2the/spMMIO read. Ma"ine=buf1"53""linarludrL51417n/a>#un4ef2na href="+code3  *n/s4at3 m41G_RATE" class="sref"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL51419n/a>.l_g=i2nclude/asm-alpha/pmacf 3837nam(aic.cwlalps href3"drs: e2atmsveRna MeERRinitialized\n"drives="line)e" naes="line)e"T451n/a>   4    struct2na hre3> * in4er3fa41u" class="sref">rack28eter232+etvaer.c#L54" ; href="+cod(e2atmd href3"drs, e2atmd ineerrupts ing">"drivedarL53n/a>       asm-o_de>/a>;*f="drivers/mh/ra449n/a>. * a 4it3 l41 samples in a sample3ion valu2u="4.29.17"29in/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       aderaade>/ni8" c="li)earaade>22 53n/n/a>next_chiaefull_m rmn/a>;mslass=412450n/a>str4ct2na href="+code3> * ti4e.3 P41eter.c#L40" idarL40"3CPU_r280s="sr3fsity 3 href="+code=mark"for_ea3h_onk3 crack-XI/a>;(ef="+code=bk-XI/e=3ude/ak*ss="linne" namgotoneline_aligned" sai429n/a>#in4lude <5* ti4e.3 m41G_RATE" class="sref"305tee281     3 na hr}" n_fress="lin, ef="+co}" n_frese=3ude/ak*ss="linne" namgotoneline_aligned" sai423n/a>str4    struct2na hre3  */n/4pa3t 42 53n/a> 450n/a>str4ct2na href="+code3>DEBUG4 c3la4s="sref">DEBUGu2u="4.305ter34/>[n"drivehrquestehref3"drvaer.c#L54" imsecdrivehrquestehref3"drv)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">="+code=buf1"53""linclass="se-alpha/pmivedarL44" c: the/spMMIO read. Ma"ine=buf1"53""linarludrL51413n/a>   4    na href="+cod3 8EBUG4 c3ck41gned" class="sref">_27__ca278>[na hr">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL51419n/a>#in4    na href="+cod3 inclu4e/3li41de/asm-alpha/dbdma.h38eter23"+code2"+ambig=i2nclude/asm-alpha/pmacfa> oschedhrquest href3"drs: e2atmsing">"drivedarL53n/a>       asm-o_de>/a>;*f="drivers/mh/ra453n/a>   4    na href="+cod3"inclu4e/3li42u" class="sref">rack28eter28u2u="4.29.17"29in/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       aderaade>/ni8" c="li)earaade>22 53n/n/a>next_chiaefull_m rmn/a>;mslass=412453n/a>   4    na href="+cod3"inclu4e/3li42G_RATE" class="sref"3CPU_23a>;(ef="+sity 3 href="+code=mark"for_ea3h_onk3 crackBUSYa>;(ef="+code=bkBUSYe=3ude/ak*ss="linne" namgotoneline_aligned" sai429n/a>#in4lude <rack205tee281     3 na hr}" n_fress="lin, ef="+co}" n_frese=3ude/ak*ss="linne" namgotoneline_aligned" sai441n/a>#de4ine2na href="+cod32 * a 4it3li423 href="drivee in ms3 */nm28"line}3 nam(arL53">2 53n/a> 451n/a>   4    struct2na hre3"inclu4e/3li42ches welcome :-)n/sp304ter30/n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dnirq/a>;(1next_chiae nam(driveirq)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">="1buf1"53" idarL53" class="lin)e" nam(arL53">2459n/a>#in4    na href="+cod3"5* ti4e.3li4ux/pci#elsef1"53" idarL53" class="lin)e" nam(arL53">2453n/a>str4    na href="+cod3" */n/4pa3li42eter.c#L37" idarL37"3 clas33"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dnirq/a>;(12 3n/n/a>next_chiae nam(arL53">1buf1"53" idarL53" class="lin)e" nam(arL53">2450n/a>str4    na href="+cod3"DEBUG4 c3li42="sref">DEBUGu2u="4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dnirq/a>;(12453n/a>   4    na href="+cod3"8EBUG4 c3ck42gned" class="srefrL5384-meter.c#L51addhreo_ji8na3(arL49">2 49n/a>.2 3n/n/a>next_chiae nam(arL53">0rk"ack-meter.c#L51" iasdarL51" c="linh/racesourc>) ||f1"53" idarL53" class="lin)e" nam(arL53">2459n/a>#in4lude <2 49n/a>.2 3n/n/a>next_chiae nam(arL53">1rk"ack-meter.c#L51" iasourc>">buf2darL51" clirq/a the/spMMIO read. Ma"ine=buf1"53""linarludrL51417n/a>#un4ef2na href="+code3"+ambi4=i3nc43G_RATE" class="sref"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL51417n/a>#un4ef2na href="+code3"inclu4e/3nc43_RATftion valu2u="4.3el_stat.s="fre3f">l_g=i2nclude/asm-alpha/pmacf 3837nam(aic.cwlalps href3"drs: e2atmsveRna MeERRin53n/a>       asm-o_de>/a>;*f="drivers/mh/ra417n/a>#un4ef2na href="+code3" * in4er3nc43u" class="sref">rack28eter232a>      3      n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofraade>2 53n/a>    ofraade>/ni8" c="li)e" naraade>22 53n/n/a>next_chiaefull_m rmn/a>;mslass=412417n/a>#un4ef2na href="+code3"+ambi4=i3nc43 samples in a sample3 PU_r280s="sr3fsity 3 href="+code=mark"for_ea3h_onk3 crack-XI/a>;(ef="+code=bk-XI/e=3ude/ak*ss="linne" namgotoneline_aligned" sai453n/a>   4    na href="+cod3"+ambi4=i3nc43eter.c#L40" idarL40"305tee281     3 na hr}" n_fress="lin, ef="+co}" n_frese=3ude/ak*ss="linne" namgotoneline_aligned" sai429n/a>#in4lude <2 53n/a> 417n/a>#un4ef2na href="+code3" */n/4pa3ck4meter.#endif in ms3 */nm28"line}3 nam(arL53">2 53n/a> 410n/a>str4    na href="+cod3"DEBUG4 c3r 4f samples in a sample3 buff337line" nam(arL50">2450n/a>str4ct2na href="+code3"ntosh4ra3CO43href="drivers/macint29__ca298 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebug/a>;de=sn @efe2atmGinitialized\n"driv (.h" cla3ss=".h3|incl33/a>   sdarL51" c="linh/racesourc>cck-meter.c#L51" a   ="lin-ass="rack-a   ode=buf1"53" idarL53" class="lin)e" nam(arL53">2419n/a>#in4ef2na href="+code3"+ambi4=i3ck4meter.c#L40" idarL40"3 clas338 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebug/a>;decli @efe2atmGinitialized\n"driv (.h" cla3ss=".h3|incl33/a>   sourc>">buf2darL51" clirq/acck-meter.c#L51" a   ="lin-ass="rack-a   ode=buf1"53" idarL53" class="lin)e" nam(arL53">2453n/a>   4    na href="+cod3>/* CP4 m3et4r sampling rat/macint29__ca298 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebug/a>;de=rq e2atmditialized\n"driv "4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dnirq/a>;(12457n/a>#un4    struct2na hre3>+ambi4=i3PL44lement PWM to do  pr301ter30ntensity 3nd provid4r0x%04x    na href="+cd2nrackm4te28_4pu" class="sre"4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#"fo53">2 53n/a>    u8"lin-ass="rack-mhref="*.h3|incl33/a>   _f="drfres_pagss="lin, ef="+co_f="drfres_pags(arL53">2 53n/a>    GFP_ndefElinarL53"+code=mGFP_ndefElass=41#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#"f5ef="+code=buf1"53""linarL53"+code=mark"clwithe/spMMIO read. Ma"ine=buf1"53""linarludrL514a hle DBa4hrgnes)ref="+code3"+ambi4=i3ck4meter.c#L40" idarL40"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL514rqasa hle4="+     na h 3hre3>+ambi4=i3PL4NG_RATE" class="sref"3CPU_23a"+code2"+ambig=i2nclude/asm-alpha/pmacfa> osched3n/ai>tee;" nams pags !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae c4hreany er4oll,  na href="+c3>+ambi4=i3PL4NG_RATE" class="sref"3 PU_r280s="sr3fsity 3 href="+code=mark"for_ea3h_onk3 crack-mMEMr.cf">buf2darL51" MEM 38ude/ak*ss="linne" namgotoneline_aligned" sai4f2p">2 a 4    na href="+cod305* ti4e.30I4G_RATftion valu2u="4.305tee281     3 na hr}" n_releaass="lin, ef="+co}" n_releaas 38ude/ak*ss="linne" namgotoneline_aligned" sai4c#L> r_us4meter.c#L51" isod305* ti4e.30I44eter.c#L19" idarL19"3 clas318 3>
2>
6.4.4}" nam(arL53">24aus3eline4aligned" paust/ad3"inclu4e/3li44eter.c#L50" idarL50"28clas28"line" nam(arL50">24"INTR_ALW4YIRQ_HANDLE="+cod3>/* CP4 m3et45 sampling rat/macint29__ca29ed" db"linn=ref="+code=buf1"53" idarL53" class="lin-ass="rack-meter.c#Lf   >] _vomacheline_aligned"c#L3n/ai_cohere> >next_chiae nam"c#L3n/ai_cohere> (arL5ack-meter.cmutex_uns/drive="drmci_> prob> {. p)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">kbuf1"53" idarL53" cla/class="se" nam(arL53ofr c#L50" idarL50"28clas28"line" nam(arL50">24"7n/a>#un4e3_unso hsh/rackd3"inclu4e/3li45_RATftion valu2u="4.3el_stattttttttttttttttttttteingof" idarL51" claalc_sample/a>;(> { na href="+code=sniacintosh/rack-met) c#L50" idarL50"28clas28"line" nam(arL50">24"0x%043n/a3     35href=32 * in4er3aa45u" class="sref">rack28eter2333333333333333333333lass="sref">buf2in_lecl/a>;(eampaef="+code=mark"53" idarL53" class=f   se4voidolignedn/ass=f   s53">="+">2 53n/a>    GFP_ndefElinarL53"+code=mGFP_ndefElass=41#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#Lf   >] _vom5ef="+code=buf1"53""linarL53"+code=mark"clwithe/spMMIO read. Ma"ine=buf1"53""linarludrL5142 53n/a> 4      na href="+d3>/* CP4 m3et45eter.c#L40" idarL40"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL514 53n/a>  4    3na hr35href=3"+ambi4=i3nc45G_RATE" class="sref"3CPU_23a"+code2"+ambig=i2nclude/asm-alpha/pmacfa> osched3n/ai>teecli  na hre!drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae c4a>depth /4>    arraf="+code3"+ambi4=i3nc45G_RATE" class="sref"3 PU_r280s="sr3fsity 3 href="+code=mark"for_ea3h_onk3 crack-mMEMr.cf">buf2darL51" MEM 38ude/ak*ss="linne" namgotoneline_aligned" sai4bi/mapss=4 er.c" na.="+code3"+ambi4=i3nc45_RATftion valu2u="4.305tee281     3 na hr}" n_fres_;" namss="lin, ef="+co}" n_fres_;" nams 38ude/ak*ss="linne" namgotoneline_aligned" sai4b#L> r_us4ef2na href="+code3"+ambi4=i3nc45eter.c#L19" idarL19"3 clas318 3>
2>
6.4.4}" nam(arL53">242 51n/a> 4      struct2na h3"+ambi4=i3nc4ude/as#u2u0arL19"3 clas318 3>
2>
6.4.4}" nam(arL53">24"offsetel4ne_aligned" offod305* ti4e.30I46 sampling rat/macint29__ca29ed" db"linn=ref="+code=buf1"53" idarL53" cli2sESEmn)e" nam(arL53">i2sESEmne=ma         3   et35bioremase4voidolignedn/ioremas)e"" nam(arL50">2 3n/drivehref3"dr_ a   ="lin-ass="rack/drivehref3"dr_ a   )e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">="0)="0x1000 starteCPU meas" c11" s..\n"d  3" -a chiae c4t m24 userlank4kkkk3k* bu36href=32 * in4er3aa46u" class="sre"4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Di2sESEmn)e" nam(arL53">i2sESEmne=ma         3   et35bioremase4voidolignedn/ioremas)e"" nam(arL50">2 3nsdarL51" c="linh/racesourc>cck-meter.c#L51" a   ="lin-ass="rack-a   ode=="0x1000 starteCPU meas" c11" s..\n"d  3" -a chiae c4tllef2nna4YIRQ_HANDLE="+cod3>/* CP4 m3et4r samp#endif in ms3 */nm28"line}3 nam(arL53">2 53n/a> 411" clakk4kkk3k* hi3ehos> d3"inclu4e/3li464samples in au2u="4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Di2sESEmn)e" nam(arL53">i2sESEmne=ma  5ef="+code=buf1"53""linarL53"+code=mark"clwithe/spMMIO read. Ma"ine=buf1"53""linarludrL514L11" clak4kkkk3k*ss=36href=3"+ambi4=i3nc46G_RATE" class="sref"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL514de>2 53n/4>       ade>/a>;d2nrackm4te28_4pu" class="sref">rack28eter23"+code2"+ambig=i2nclude/asm-alpha/pmacfa> osched>;m<=sn SEmis/pmse!drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae c4ch2 53n/a4       astch"+cod32 * a 4it3li46="sref">DEBUGn/a>.;(ef="+code=bk-XI/e=3ude/ak*ss="linne" namgotoneline_aligned" sai4e=buf2"IN4T_D3LAYED36na hre2=achel4ne25a46gned" class="sref">_205tee281     3 na hr}" n_fres_na href="+code=sni}" n_fres_na e=3ude/ak*ss="linne" namgotoneline_aligned" sai4e 51n/a> 4buf1"53"NULLdarLd3>/* CP4 m3et4r sampling ratdarL19"3 clas318 3>
2>
6.4.4}" nam(arL53">24ULL"+code4buf1"53"NULLdarLd3>/* CP4 m3et4r samp#u2u0arL19"3 clas318 3>
2>
6.4.4}" nam(arL53">24-meter.c#4dbeline_ab"linn=d3>/* CP4 m3et4r sampling rat"4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass=SEmn)e" nam(arL53">2 53n/a>             3   et35bioremase4voidolignedn/ioremas)e"" nam(arL50">2 3n/drivehref3"dr_ a   ="lin-ass="rack/drivehref3"dr_ a   )e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">="1)="0x100 starteCPU meas" c11" s..\n"d  3" -a chiae c4V;(eampae4="+codENODEVinn=d3>/* CP4 m3et4r samp#elsef1"53" idarL53" class="lin)e" nam(arL53">24     na h4ef="3code=3niacin3>/* CP4 m3et4r sampling rate in ms3 */n/34"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass=SEmn)e" nam(arL53">2 53n/a>             3   et35bioremase4voidolignedn/ioremas)e"" nam(arL50">2 3nsourc>">buf2darL51" clirq/acck-meter.c#L51" a   ="lin-ass="rack-a   ode=="0x100 starteCPU meas" c11" s..\n"d  3" -a chiae c4V1" clakk4    na href="+cod305* ti4e.30I4G_RATf#endif in ms3 */nm28"line}3 nam(arL53">2 53n/a> 4 1f (ef="4code3mark"37href=3"+ambi4=i3nc4ude/asm-alpha/u2u="4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass=SEmn)e" nam(arL53">2 53n/a>      5ef="+code=buf1"53""linarL53"+code=mark"clwithe/spMMIO read. Ma"ine=buf1"53""linarludrL514Get 3" -a4ce na href="+code3"+ambi4=i3nc47G_RATE" class="sref"3 PU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL514ULL"+code4buf1"53"NULLd+cod32 * a 4it3li4ux/interrupt.h" class28eter23"+code2"+ambig=i2nclude/asm-alpha/pmacfa> osched>;m;(ef="+code=bk-XI/e=3ude/ak*ss="linne" namgotoneline_aligned" sai4L51" idas4========break+cod305* ti4e.30I47de/asm-alpha/dbdma.h305tee281     3 na hr}" n_un>;m_darL51" c="linh/ra}" n_un>;m_dare=3ude/ak*ss="linne" namgotoneline_aligned" sai4L"+code=b4f1"53"NULLd+ 3hre3>+ambi4=i3PL48 sampling rate in ms3 */n/340s="sref"3____cachelietvaer.4t foun   4    na href="+cod305* ti4e.30I48lement PWM to do  pr301ter30ntensity 3nd provid4e=buf1"ji4"iesdsaidDEVinn=d3>/* CP4 m3et48u" class="sre"4.305ter34/>[n"ity 3 href="+code=mark"fo1" claalc_sample/a>;(> { setuse4voidolignedn/e/a>;(> { setus)e"" nam(arL50">2 3nssni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">24  3   na34l36ed_href_ons> d3"inclu4e/3li48 samples in au2u="4.305ter34/>[n"ity 3 href="+code=markthe/spMMIO read. Ma"ine=buf1"53""linarludrL514rvir>2 174oun a href="+code3"+ambi4=i3nc48eter.c#L40" idarL40"3CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL514>2 51n/a>4       strucD+cod28CPU_S4MP28I48G_RATE" class="sref"28eter23"+code2"+ambig=i2nclude/asm-alpha/pmacfa> oschedm   4    struct2na hre28n/spa4 m28<48u" class="sref">rack2 href317s="srefsity 3 href="+code=mark"for_ea3h_onk3 crack-XI/a>;(ef="+code=bk-XI/e=3ude/ak*ss="linne" namgotoneline_aligned" sai453n/a>   4    na href="+cod2n=u32"4cl28d48x/interrupt.h" class305tee281     3 na hr}" n_un>;m_na href="+code=sni}" n_un>;m_na e=3ude/ak*ss="linne" namgotoneline_aligned" sai45 -a)    4    na href="+cod2nachel4ne2<<48eter.c#L19" idarL19"3 clas318 3>
2>
6.4.4}" nam(arL53">2453n/a>   4    na href="+cod2nntosh4ra28k48eter.c#L50" idarL50"28clas28"line" nam(arL50">2450n/a>str4ct2na href="+code29rackm4te29_49 sampling rat/macint29__ca29eity 3 href="+code=mark"fo1" claalc_samplerquestenirq/a>;(12 3nssni8" c/a>;(ef="+code=rL53">2 53n/aDBa h_Dnirq/a>;(1[n"/a>;(> { nirq/a>;(1;(> { nirode=="0="+code=buf1"53""linclass="se-alpha/pmivedarL44" c: {.;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2441n/a>#de4ine2na href="+cod29="+co4e=29e491RATftion valu2u="4.305ter34/>[neity 3 href="+code=mark"!f="dee/spMMIO read. Ma"ine=buf1"53""linarludrL51451n/a>   4    struct2na hre29="+co4e=29a49u" class="sref">rack2CPU_r280s="sr3f">code=mark"pauste3ine_a34m(arL53">2 53n/a>        na hL17">2 17n/a>#undef2na href/spMMIO read. Ma"ine=buf1"53""linarludrL51453n/a>   4    na href="+cod29=cput4me29449 samples in a sample38eter23"+code2"+ambig=i2nclude/asm-alpha/pmacfa> oschedhrquest ineerrupt !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a chiae c453n/a>   4    na href="+cod29=cput4me29449eter.c#L40" idarL40"305tee281     3 na hr}" n_teli_na href="+code=sni}" n_teli_na e=3ude/ak*ss="linne" namgotoneline_aligned" sai442 51n/a>4lude <2 53n/a> 453n/a>   4    na href="+cod29n/spa4 m29<49eter.c#L37" idarL37"3 clas33" naraa_pu ="lin-ass="rack" naraa_pu (arL53">2 53n/a>    chiaermn/a>;mslass=41   4    na href="+cod29=u32"4cl29d49x/kernel_stato, the 0de/ak*ss="linne" namgotoneline_aligned" sai44 -a)    4ct2na href="+code29n/spa4 m29<4 href=e/ak*ss="linne" namgotoneline_aligned" sai443n/a>   4    na href="+cod29ntosh4ra2  49de/asm281     3 na hr}" n_teli_na href="+code=sni}" n_teli_na e=3u:e/ak*ss="linne" namgotoneline_aligned" sai553n/a>   5    na href="+cod30 *n/s5at3mm50 sampling rat/macint29__ca29cheli"rack-meter.c3Lmute3_so hsh/rack-meter.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-meter549n/a>.;m_na href="+code=sni}" n_un>;m_na e=3u:e/ak*ss="linne" namgotoneline_aligned" sai552n/a>.[nioun>;me4voidolignedn/ioun>;m.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-meter543n/a>.;m_darL51" c="linh/ra}" n_un>;m_dare=3u:e/ak*ss="linne" namgotoneline_aligned" sai554n/a>.2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Di2sESEmn)e" nam(arL53">i2sESEmne=ma    na href="+c2d   regs"lin-ass="rack-meter545n/a>.. >next_chiae nam"c#Lfres_cohere> .cmu ack-meter.cmutex_uns/drive="drmci_> prob> {. p)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">kbuf1"53" idarL53" cla/class="se" nam(arL53ofr c#L50" idarL50"28clas28"line" nam(arL50">2550n/a>str5ct2na href="+code30DEBUG5 c30a50_RATftion valu2u="4.305ter307tteingof" idarL51" claalc_sample/a>;(> { na href="+code=sniacintosh/rack-met) c#L50" idarL50"28clas28"line" nam(arL50">2553n/a>   5    na href="+cod308EBUG5 c30<50x/interrupt.h" class3="fr 23" idarL37"3 clas33"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#Lf   >] _vv "4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass=f   se4voidolignedn/ass=f   s53">    na href="+c2d   regs"lin-ass="rack-meter549n/a>   5    na href="+cod29ntosh5e/30i50de/asm281     3 na hr}" n_fres_;" namss="lin, ef="+co}" n_fres_;" nams 38u:e/ak*ss="linne" namgotoneline_aligned" sai517n/a>#un5ef2na href="+code3  *n/s5at3 m51 sampling rat/macint29__ca29fres_pagss="lin, ef="+cofres_pags(arL5(.h" cla3slong.h3|incl33/a>   s+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#    na href="+c2d   regs"lin-ass="rack-meter519n/a>.. * in5er3fa51u" cl#u2u0arL19"3 clas318 3>
2>
6.4.4}" nam(arL53">2549n/a>. * a 5it3 l51 sampling rate in ms3 */n/34/drivehrleaasehref3"drvaer.c#L54" imsecdrivehrleaasehref3"drv)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">k   na href="+c2d   regs"lin-ass="rack-meter514n/a>.2 53n/a> 529n/a>#in5lude <5* ti5e.3 m51_RATft281     3 na hr}" n_fress="lin, ef="+co}" n_fres 38u:e/ak*ss="linne" namgotoneline_aligned" sai516n/a>.2 3nssni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2550n/a>str5ct2na href="+code3>DEBUG5 c3la5s="sref281     3 na hr}" ns="lin, ef="+co}" n 38u:e/ak*ss="linne" namgotoneline_aligned" sai513n/a>   5    na href="+cod3 8EBUG5 c3ck51href="drivers/macint29__ca29" naraa_pu ="lin-ass="rack" naraa_pu (arL53">2 53n/a>    /ni8" c="li)e" na3n/ce nasuf1"53" idarL53" class="lin)e" nam(arL53">2559n/a>   5    na href="+cod3 inclu5e/3li51eter.c#L40" idarL40"3 clas33" naraa_pu ="lin-ass="rack" naraa_pu (arL53">2 53n/a>    chiaermn/a>;mslass=41   5    na href="+cod3"inclu5e/3li52 sampling rat/macint29__ca29arL" cnasrvdatalass="se" nam(arL5" cnasrvdata(arL5ack-meter.cmutex_uns/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofr {..;teeity 3 href="+code=markde/ak*ss="linne" namgotoneline_aligned" sai552n/a>.2 53n/a> 541n/a>#de5ine2na href="+cod32 * a 5it3li523 hre in ms3 */nm28"line}3 nam(arL53">2 53n/a> 544n/a>.buf2darL51" clsetup/a>;(> prob> {.2 "+code=buf1"53""lin))lin-ass="rack-meter2 5559n/a>#in5    na href="+cod3"5* ti5e.3li5ux/pcie/spMMIO read. Ma"ine=buf1"53""linarludrL51553n/a>str5    na href="+cod3" */n/5pa3li52eter.c#L37" ie in ms3 */n/34/>[na hre3      na href="+coINIT_D3LAYED3WORK" idarL53"1" idarL51" c="linh/rack-meter.c#L53" idarL53" rL5"gcnasrvdatalass="se" nam(arL5"gcnasrvdata(arL5ack-meter.cmutex_uns/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofrtde/ak*ss="linne" namgotoneline_aligned" sai550n/a>str5    na href="+cod3"DEBUG5 c3li52 samples in a sample3 buff337line" nam(arL50">2553n/a>   5    na href="+cod3"8EBUG5 c3ck52gned" class=".s="fre3f">l_28man/a"3namStop CPU snia hretimhreack-m work queuesMMMMMhrnt3lin-a375c>ur/r/macCPU gets us 1< ord 5 *ss559n/a>#in5lude <;(> { seli_cpu_snia hre4voidolignedn/e/a>;(> { seli_cpu_snia hr 38u nam(arL50">2 3nssni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2517n/a>#un5ef2na href="+code3"+ambi5=i3nc53G_RATf1"53" idarL53" class="lin)e" nam(arL53">2519n/a>.l_28man/a"3namClearso,fere>cechedpL53>teecata75c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(517n/a>#un5ef2na href="+code3" * in5er3nc53u" class="sre"4.305ter34/>[narL" cnasrvdatalass="se" nam(arL5" cnasrvdata(arL5ack-meter.cmutex_uns/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofr {.#de5ef2na href="+code3"+ambi5=i3nc533 hre in ms3 */nm28"line}3 nam(arL53">2 53n/a> 553n/a>   5    na href="+cod3"+ambi5=i3nc53eter.c#L40" i.s="fre3f">l_28man/a"3namStop/hreet dbcli 5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(519n/a>#in5lude <2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-meter517n/a>#un5ef2na href="+code3" */n/5pa3ck5meter.  na href="+c2d   regs"lin-ass="rack-meter510n/a>str5    na href="+cod3"DEBUG5 c3r 53x/kernel_stat.s="fre3f">l_28man/a"3namRrleaas the IRQ 5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(513n/a>   5ct2na href="+code3"ntosh5ra3CO53href="drivers/macint29__ca29fres_nirq/a>;(12 3nssni8" c/a>;(ef="+code=rL53">2 53n/aDBa h_Dnirq/a>;(1[n"sni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">2519n/a>#in5ef2na href="+code3"+ambi5=i3ck53eter.c#L50" idarL50"28clas28"line" nam(arL50">2553n/a>   5    na href="+cod3>/* CP5 m3et5r sampling rat/s="fre3f">l_28man/a"3namUn>;m SEmis/pmse5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(557n/a>#un5    struct2na hre3>+ambi5=i3PL54 sampling rat"4.305ter34/>[nioun>;me4voidolignedn/ioun>;m.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-meter5r0x%05x    na href="+cd2nrackm5te28_5pu" class="sre"4.305ter34/>[nioun>;me4voidolignedn/ioun>;m.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Di2sESEmn)e" nam(arL53">i2sESEmne=ma    na href="+c2d   regs"lin-ass="rack-meter5"dbeline_5ligned" db"lin-od3"DEBUG5 c3r 543 hre in ms3 */nm28"line}3 nam(arL53">2 53n/a> 5a hle DBa5hrgnes)ref="+code3"+ambi5=i3ck54eter.c#L40" i.s="fre3f">l_28man/a"3namFres h/re5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(559n/a>#in5="+     na h 3hre3>+ambi5=i3PL54de/asm-alpha//macint29__ca29a 53fres_cohere> >next_chiae nam"c#Lfres_cohere> .cmu ack-meter.cmutex_uns/drive="drmci_> prob> {. p)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">kbuf1"53" idarL53" cla/class="se" nam(arL53ofr c#L50" idarL50"28clas28"line" nam(arL50">i5=7n/a>#un5oll,  na href="+c3>+ambi5=i3PL5NG_RATE" class="sref"33333333333eingof" idarL51" claalc_sample/a>;(> { na href="+code=sniacintosh/rack-met) c#L50" idarL50"28clas28"line" nam(arL50">25f2p">2 a 5    na href="+cod305* ti5e.30I5G_RATftion valu2u="4.33333333333darL37"3 clas33"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#Lf   >] _vv "4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass=f   se4voidolignedn/ass=f   s53">    na href="+c2d   regs"lin-ass="rack-meter5c#L> r_us5meter.c#L51" isod305* ti5e.30I54href=e/ak*ss="linne" namgotoneline_aligned" sai5aus3eline5aligned" paust/ad3"inclu5e/3li549ter.c#L40" i.s="fre3f">l_28man/a"3namFres ;" nams 5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(5"INTR_ALW5YIRQ_HANDLE="+cod3>/* CP5 m3et55 sampling rat/macint29__ca29fres_pagss="lin, ef="+cofres_pags(arL5(.h" cla3slong.h3|incl33/a>   s+/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_Dass="lin-ass="rack-meter.c#    na href="+c2d   regs"lin-ass="rack-meter5"7n/a>#un5e3_unso hsh/rackd3"inclu5e/3li55lement PWM to do  pr301ter30ntensity 3nd provid5"0x%053n/a3     35href=32 * in5er3aa55u" cl#u2u0arL19"3 clas318 3>
2>
6.4.4}" nam(arL53">25illef2nna5hrvalueref="+code3"+ambi5=i3ck55 samples in a.s="fre3f">l_28man/a"3namRrleaas href3"drs 5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshowm(5" hle DBa5      na href="+d3>/* CP5 m3et55ches welcome :-)n/sp304ter30/drivehrleaasehref3"drvaer.c#L54" imsecdrivehrleaasehref3"drv)e"" nam(arL50">2 3n/n/a>next_chiae nam(arL53">k   na href="+c2d   regs"lin-ass="rack-meter5 53n/a>  5    3na hr35href=3"+ambi5=i3nc555RATf#endif in ms3 */nm28"line}3 nam(arL53">2 53n/a> 5a>depth /5>    arraf="+code3"+ambi5=i3nc55eter.  na href="+c2d   regs"lin-ass="rack-meter5bi/mapss=5 er.c" na.="+code3"+ambi5=i3nc55x/kernel_stat.s="fre3f">l_28man/a"3namGet rid of mMMMMMMhrnt3lin-a375c>ur/r/macCPU gets us 1< ord 5 *ss5b#L> r_us5ef2na href="+code3"+ambi5=i3nc55href="drivers/macint29__ca29kfress="lin, ef="+cokfres 38u nam(arL50">2 3nssni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL53">252 51n/a> 5      struct2na h3"+ambi5=i3nc55eter.c#L50" idarL50"28clas28"line" nam(arL50">25"offsetel5ne_aligned" offod305* ti5e.30I56 sampling rato, the 0de/ak*ss="linne" namgotoneline_aligned" sai5t m2 53n/a> 5 userlank5kkkk3k* bu36href=32 * in5er3aa56u" cl in ms3 */nm28"line}3 nam(arL53">2 53n/a> 5 llef2nna5YIRQ_HANDLE="+cod3>/* CP5 m3et5r sampm-alpha/keylarg3o.h|i335line" na3(arshutdowne4voidolignedn/e/a>;(> { shutdown(arL5ef">buf2darL51" clsetup/a>;(> prob> {.2 "+code=buf1"53""lin))lin-ass="rack-meter2 5511" clakk5kkk3k* hi3ehos> d3"inclu5e/3li564sampe/spMMIO read. Ma"ine=buf1"53""linarludrL515L11" clak5kkkk3k*ss=36href=3"+ambi5=i3nc56G_RATE" classe in ms3 */n/34/>[na hre3      na href="+coINIT_D3LAYED3WORK" idarL53"1" idarL51" c="linh/rack-meter.c#L53" idarL53" rL5"gcnasrvdatalass="se" nam(arL5"gcnasrvdata(arL5ack-meter.cmutex_uns/n/a>next_chiae nam(arL53">2 53n/n/a>next_chiaermn/a>;mslass=412 53n/a>       ade>/class="se" nam(arL53ofrtde/ak*ss="linne" namgotoneline_aligned" sai5de>2 53n/5>       ade>/a>;d2nrackm5te28_56eter.  na href="+c2d   regs"lin-ass="rack-meter5ch2 53n/a5       astch"+cod32 * a 5it3li56="sref">DEBUGu2u="4.305ter34/>[n"+/a>#uDBa h_DO_RESEm(a2n=u32"4cl28d48x/interrupt.h" class305tee281     na href="+c2d   regs"lin-ass="rack-meter5c#L> r_us5 chn, ef="+co}" n_rele6.4.4}" nam(arL5riv (.h" cla3ss=".h3|incl33/aM93"+amaEVnterrupt.h" cla+amaEVcode=markde/ak*ss="linne" namgotoneline_aligned" sai4e 515/a> 4buf1"53"NULLdarLd3>5* CP4563nc55eter.c#L50" idarL50"28clas28"line" nam(arL53">24ULL"5code4buf1"53"NULLdarLd3>5* CP4573et5r sampling rat/s="fre3f">l_28man/a"3namStop CPU snia hretimhreack-m work queuesMMMMMhrnt3lin-a375c>ur/r/macCPU gets us 1< ord 53">24-met5r.c#4dbeline_ab"linn=d3>5* CP45m3et4r sampling rat"4.305ter34as33e/a>;(> { seli_cpu_snia hre4voidolignedn/e/a>;(> { seli_cpu_snia hr 38u nam(arL50">2 3nssni8" c/a>;(ef="+code=buf1"53" idarL53" class="lin)e" nam(arL5ae c4V;(e5mpae4="+codENODEVinn=d3>5* CP4573aa56u" cl in ms3 */nm28"line}3 nam(arL53">2 53n3">24    5na h4ef="3code=3niacin3>5* CP4573ck55 samples in a.s="fre3f">l_28man/a"3namStop/hreet dbcli 5c>ur/r/macCPU gets us 1< ord 5 *ss=Get lightshae c4V1" 5lakk4    na href="+cod305* ti4573et55ches welcome :-)n/sp304_ca29cheli"rack-meter.c3Lmute3_so hsh/rack-meter.cmu    na hL17">2 17n/a>#uDBa h_DO_RESEm(arL53">2 53n/aDBa h_DO_RESEmn)e" nam(arL53">2 53n/a>        na href="+c2d   regs"lin-ass="rack-m/a> 4 1f 5ef="4code3mark"37href=3"5ambi45i3nc4u       na href="+c2d   regs"lin-ass="rack-m/sai5de>2 " -a4ce na href="+code3"5ambi45i3nc47G_RATE" g rato, the 0de/ak*ss="linne" namgotoneline_aligned"rL514ULL"5code4buf1"53"NULLd+cod325* a 45t3li4ulemene in ms3 */nm28"line}3 nam(arL53">2 53nae c4" -a5    4a href="href="cod325* a 45730I54href=e/ak*ss="linne" namgotoneline_aligned" sai4L51"5idas4========break+cod305* ti45.30I47 sampm-classe in ms3 */n/34/>of"driice_idrmn/a>;mslass=41<"driice_idnc47Gg rat"4.305ter34as33e/a>; 3837ia hre4voidolignedn/e/a>; 3837nc47[]-me4sampe/spMMIO read. Ma"ine=buf1"53""linarlud sai4L"+c5de=b4f1"53"NULLd+ 3hre3>5ambi45i3PL48 samplin{ de>2 53n/a>      all_m rmn/a>;mslas allrack-meter23"+code2"+ambig=i2ncludi2e2atmsveRna Me }-met) c#L50" idarL50"28clas28"line" nam(arL5aer.4t fo5n   4    na href="+cod305* ti4581PL48 samplin{ lemene in ms3 */nm28"line}3 nam(arL53">2 53novid4e=bu51"ji4"iesdsaidDEVinn=d3>5* CP45m3et48}the 0de/ak*ss="linne" namgotoneline_aligned"3">24  3 5 na34l36ed_href_ons> d3"5nclu4583r 543 hre in ms3 */nm28"line}3 nam(arL53">2 53nrL514rvir52 174oun a href="+code3"5ambi45840I47 sampm-classe in ms3 */n/34/>href="d3 */n;(> prob> {.;d3 */n;(> prob> {.;d3 */nrack-me4sampe/spMMIO read. Ma"ine=buf1"53""linarlud a> 4 1f 5n/a>4       strucD+cod285PU_S45P28I48G_RATE" de>2 53n/a>      3 */n;(> prob> {.2 >   4    struct2na hre285/spa45m28<48u" class="sref">de>2 53n/a>      all_m rmn/a>;mslas allrack-meter23"+code2"+ambig=i2ncluds="se-alpha/pmivedarL44sampe/spMMIO read. Ma"ine=buf1"53""linarlud L514ULL"5>   4    na href="+cod2n5u32"45l28d48x/interrupt.h" c53ofraade>2 53n/awn/n;(> prob> {. prob> {.2 53n/a>  3837_tabll_m rmn/a>;mslasa>  3837_tabllrack-meter.c#L53" idar4as33e/a>; 3837ia hre4voidolignedn/e/a>; 3837nc4753ofr c#L50" idarL50"28clas28"line" nam(arL5 sai4L51"5>   4    na href="+cod2n5tosh4583et4r sampling53ofr c#L50" idarL50"28clas28"line" nam(arL50">2450n/5>str4ct2na href="+code295ackm45e29_49 samplin53ofraade>2 53n/probl_m rmn/a>;mslasproblrack-meter.c#L53" idar4as33e/a>;probl_m rmn/a>;mslas4as33e/a>;problnc4753ofr c#L50" idarL50"28clas28"line" nam(arL53">2441n/5>#de4ine2na href="+cod295"+co45=29e491RATftio53ofraade>2 53n/a3(arremovss="lin, ef=3(arremov-meter.c#L53" idar4as33e/a>;a3(arremovss="lin, ef="+cone" na3(arremov53ofr c#L50" idarL50"28clas28"line" nam(arL53vid4e=bu5>   4    struct2na hre295"+co45=29a49u" classirq/acck-meter.c#3(arshutdowne4voidolig(> { shutdow=mark"fo1" claalc_sample/a>;(3(arshutdowne4voidolignedn/e/a>;(> { shutdow53ofr c#L50" idarL50"28clas28"line" nam(arL53">24  3 5>   4    na href="+cod295cput45e29449}the 0de/ak*ss="linne" namgotoneline_aligned"ae c453n/5>   4    na href="+cod295cput45e29449he 0de/ak*ss="linne" namgotoneline_aligned"aa> 4 1f 5n/a>4lude <;schetdowne4voidolig4as33e/a>;schemetervoid281     na href="+c2d   regs"lin-ass="rack-m sai443n/5>   4    na href="+cod295u32"45l29d494sampe/spMMIO read. Ma"ine=buf1"53""linarlud sai44 -a5    4ct2na href="+code295/spa4593CO43href="drivers/macint29__ca298 3>
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebu4as33e/a>;sche()upt !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a ch5 sai443n/5>   4    na href="+cod295tosh4593nc55eter.c#L50" idarL50"28clas28"line" nam(arL6 sai553n/6>   5    na href="+cod306*n/s56030I56 sampling rato,come :-)n/sp304ter30/dr;m SEm"d3 */n;(> prob> {.;d3 */n;(> prob> {.;d3 */nrack4" c: starteCPU meas" c11" s..\n"d  3" -a ch6eter549n/6>.2 536 sai552n/6>.2 536eter543n/6>.;exhetdowne4voidolig4as33e/a>;exhemetervoid281     na href="+c2d   regs"lin-ass="rack-6 sai554n/6>..
2>
6.4.4Gf="+code=mark"pclaebugeline_aligned" pclaebu4as33e/a>;exhe()upt !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a ch6 sai556n/6>.2550n/6>str5ct2na href="+code306EBUG56c30a50_RATftiocome :-)n/sp304ter30/undr;m SEm"d3 */n;(> prob> {.;d3 */n;(> prob> {.;d3 */nrack4" c: starteCPU meas" c11" s..\n"d  3" -a ch6e8>2550n/6>   4ct2na href="+code296EBUG56c30<50lemene in ms3 */nm28"line}3 nam(arL53">2 536 9>2550n/6>   4    na href="+cod296tosh5603nc55eter.c#L50" idarL50"28clas28"line" nam(arL6 sai517n/6>#un5ef2na href="+code3 6*n/s56t3 m51come :-)n/sp304todule;schetdowne4voidoligtodule;schemeter.cmu    na hL17"as33e/a>;schetdowne4voidolig4as33e/a>;schemete4" c: starteCPU meas" c11" s..\n"d  3" -a ch6eter519n/6>.;exhetdowne4voidolig4as33e/a>;exhemete4" c: starteCPU meas" c11" s..\n"d  3" -a ch6esai552n/6>.6* in5613aa56u" cl in ms3 */nm28"line}3 nam(arL53">2 5363">2549n/6>.6* a 5613r 543 hre in ms3 */nm28"line}3 nam(arL53">2 536eter514n/6>. 529n/6>#in5lude <6* ti56.3 m51.cmu    na hL17MODULE_AUTHO  na hL17">2 17nMODULE_AUTHO k"pclaebugeline_aligned" pclaebuBenjamin Herrenschmidt <benh@kernel.crashed".orgEm(at !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a ch6/sai556n/6>.2 17nMODULE_DESCRIPTIONk"pclaebugeline_aligned" pclaebuRn"dM3" -: Support vu  3" - on XServe frolphbugelt !drivedarL44" c: starteCPU meas" c11" s..\n"d  3" -a ch6/">2550n/6>str5ct2na href="+code3>6EBUG56c3la5s


The original LXR software byleaasc: startehttp://asehreforge.net/projects/lx >LXR f">lucheytdow5leais experil_28al meaion bylc: startemailto:lx @hreux.no">lx @hreux.no/raad lx .hreux.no kindly ho SEd bylc: startehttp://www.redpill-hrepro.no">Redpill Lrepro AStdow5lprovid - of Lreux f"nsulted" and operamp"ns serviref3si,fer1995.