linux/kernel/trace/trace_selftest.c
<<
>>
Prefs
   1/* Include in trace.c */
   2
   3#include <linux/stringify.h>
   4#include <linux/kthread.h>
   5#include <linux/delay.h>
   6#include <linux/slab.h>
   7
   8static inline int trace_valid_entry(struct trace_entry *entry)
   9{
  10        switch (entry->type) {
  11        case TRACE_FN:
  12        case TRACE_CTX:
  13        case TRACE_WAKE:
  14        case TRACE_STACK:
  15        case TRACE_PRINT:
  16        case TRACE_BRANCH:
  17        case TRACE_GRAPH_ENT:
  18        case TRACE_GRAPH_RET:
  19                return 1;
  20        }
  21        return 0;
  22}
  23
  24static int trace_test_buffer_cpu(struct trace_array *tr, int cpu)
  25{
  26        struct ring_buffer_event *event;
  27        struct trace_entry *entry;
  28        unsigned int loops = 0;
  29
  30        while ((event = ring_buffer_consume(tr->buffer, cpu, NULL, NULL))) {
  31                entry = ring_buffer_event_data(event);
  32
  33                /*
  34                 * The ring buffer is a size of trace_buf_size, if
  35                 * we loop more than the size, there's something wrong
  36                 * with the ring buffer.
  37                 */
  38                if (loops++ > trace_buf_size) {
  39                        printk(KERN_CONT ".. bad ring buffer ");
  40                        goto failed;
  41                }
  42                if (!trace_valid_entry(entry)) {
  43                        printk(KERN_CONT ".. invalid entry %d ",
  44                                entry->type);
  45                        goto failed;
  46                }
  47        }
  48        return 0;
  49
  50 failed:
  51        /* disable tracing */
  52        tracing_disabled = 1;
  53        printk(KERN_CONT ".. corrupted trace buffer .. ");
  54        return -1;
  55}
  56
  57/*
  58 * Test the trace buffer to see if all the elements
  59 * are still sane.
  60 */
  61static int trace_test_buffer(struct trace_array *tr, unsigned long *count)
  62{
  63        unsigned long flags, cnt = 0;
  64        int cpu, ret = 0;
  65
  66        /* Don't allow flipping of max traces now */
  67        local_irq_save(flags);
  68        arch_spin_lock(&ftrace_max_lock);
  69
  70        cnt = ring_buffer_entries(tr->buffer);
  71
  72        /*
  73         * The trace_test_buffer_cpu runs a while loop to consume all data.
  74         * If the calling tracer is broken, and is constantly filling
  75         * the buffer, this will run forever, and hard lock the box.
  76         * We disable the ring buffer while we do this test to prevent
  77         * a hard lock up.
  78         */
  79        tracing_off();
  80        for_each_possible_cpu(cpu) {
  81                ret = trace_test_buffer_cpu(tr, cpu);
  82                if (ret)
  83                        break;
  84        }
  85        tracing_on();
  86        arch_spin_unlock(&ftrace_max_lock);
  87        local_irq_restore(flags);
  88
  89        if (count)
  90                *count = cnt;
  91
  92        return ret;
  93}
  94
  95static inline void warn_failed_init_tracer(struct tracer *trace, int init_ret)
  96{
  97        printk(KERN_WARNING "Failed to init %s tracer, init return" id="L68" class="line" name="L68">  68  1classzng">""ine" name="L86">  86        <582L88">  88
trace, int b hrea>, int cpu<>init_ret)
   9{
  10        swit    it trac#ifdeflass="sref">cpu)
  11        cas01   ittrace/trace_selftest.c#L92" id="L92" class="li10e" name="0L12">  12        cas02   it2trac#ifdeflass="sref">cpu)
  13        cas03   ittrace/trace_selftest.c#L24" id="L24" class="li10e" name="0L14">  14        cas04   itf="+code=trace_test_buffer_cpu" class4" classa hrefprobe1_/a>;
trace/trace_selftest.c#L93" id="L93" class="li10e" name="0L15">  15        cas05   itcode=inline"rn_failed_init_trace class4" classa hrefprobe1_func;
flipt)
  16        cas06   it
flpipt)
  17        cas07   it7trace/trace_selftest.c#L97" id="L97" class="li10e" name="0L18">  18        cas08   it+code=arch_spin_lock" class= class4" classa hrefprobe1_/a>;
trac++e/trace_selftest.c#L93" id="L93" class="li10e" name="0L19">  19           09   it9trace/trace_selftest.c#L94" id="L94" class="li1ne" name=""L10">  10        swiitch 1  11        case1   i1f="+code=trace_test_buffer" class="sr4" classa hrefprobe2_/a>;
trace/trace_selftest.c#L93" id="L93" class="li1ne" name=""L12">  12        casse flipt)
  13        casse flpipt)
  14        casse   15        casse tsr4" classa hrefprobe2_/a>;
trac++e/trace_selftest.c#L93" id="L93" class="li1ne" name=""L16">  16        casse   17        casse   18        casse ;
trace/trace_selftest.c#L93" id="L93" class="li1ne" name=""L19">  19                1returninline"rn_failed_init_trace class4" classa hrefprobe3_func;
flipt)
  20        }
1flpipt)
  21        re1turn 1;
  22}
;
trac++e/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L23">  23
  24static int1   25{
;
trace/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L26">  26        st1ruct 1a hrefinline"rn_failed_init_trace class4" classa hrefglobal_func;
flipt)
  27        st1ruct 1a href="+code=a href="+code=facccccccccccccccccccc"+code=flags" class="sref">flpipt)
  28        un1signe1 int   29
sr4" classa hrefglobal_/a>;
trac++e/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L30">  30        wh1ile (1  31          1     13trace/trace_selftest.c#L92" id="L92" class="li1ne" name=1"L32">  32
;
trace/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L33">  33          1     1flipt)
  34flpipt)
  35  36;
trac++e/trace_selftest.c#L93" id="L93" class="li1ne" name=""L37">  37(1trace_buf_size) {
1 (  39          1     13eturninline"tracer" class="sref">t++ > &qn_unlock" classhrefprobe1;
  40          1     1        goto <. class="sref">t  41          1     1}
  42          1     14trace/trace_selftest.c#L33" id="L33" class="li1ne" name=1"L43">  43          1     143turninline"tracer" class="sref">t++ > &qn_unlock" classhrefprobe2;
  14        case="co1              . class="sref">t  45          1     1      }e/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L46">  46          1     14trace/trace_selftest.c#L57" id="L57" class="li1ne" name=1"L47">  47        }
1t++ > &qn_unlock" classhrefprobe3;
  48        re1turn 1;
t  49
  50   51        t++ > &qn_unlock" classhrefglobal;
  52        t  53        t);
))) {
  54        re1turn 11;
  55}
  56
);
  57  58(  59;
trace/trace_selftest.c#L44" id="L44" class="li1ne" name=1"L60">  60tsr4" classa hrefprobe2_/a>;
trace/trace_selftest.c#L44" id="L44" class="li1ne" name=1"L61">  61static int1 ;
trace/trace_selftest.c#L44" id="L44" class="li1ne" name=1"L62">  62{
sr4" classa hrefglobal_/a>;
trace/trace_selftest.c#L44" id="L44" class="li1ne" name=1"L63">  63        un1signe16       break;
;
tracee/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L64">  64        in1t   65
  16        caseerne16 hrefinline"rn_failed_init_tracereseK_code=/a>);
  67          68        ;
tractrace/trace_selftest.c#L65" id="L65" class="li1ne" name=1"L69">  69
sr4" classa hrefprobe2_/a>;
tractrace/trace_selftest.c#L65" id="L65" class="li1ne" name=1"L70">  70        cnt;
tractrace/trace_selftest.c#L65" id="L65" class="li1ne" name=1"L71">  71
cnt;
tractrace/trace_selftest.c#L65" id="L65" class="li1ne" name=1"L72">  72        ;
tractrace/trace_selftest.c#L65" id="L65" class="li1ne" name=1"L73">  73  74  75++ > cpu;
  76  77cpu =e=fl_t =  78t++ > & class="sref">trdyn_s++ >   79        trfunc1_ hrea>, int   80        trfunc2_ hrea>, int   81          1     1looen1;
  82          1     1if (looen2;
  83          1     1        break;ps" class="sref">lo/a> =   84        }
1  85        KERN_CONT ".. corrupted trace bufPASSED68">  68  1ee/trace_selftest.c#L93" id="L93" class="li1ne" name=1"L86">  86        (cpu;
  87          88
 =  89        if1 (  90          1     19a hre/trace_selftest.c#L94" id="L94" class="li1ne" name=1"L91">  91
/* disable tracing */  92        re1turn 19+code=tracing_disabled" clasfunc1_ hrea>, int   93}
pfunc2_ hrea>, int   94
poen1;
t hrleg_on();
  95static t hrleg_on();
  96{
  97        
  88
         */
   9{
 * are still sane.  10        sw2t    20ent"> */
  11        ca201   2ttrace         */
  12        ca202   20+code=tracing_disabled" clasfid="L79"t_filtr *cpu, int cpu  13        ca203   20+code=printk" class="sref">pfid="L79"t_filtr *cpu, int cpu  14        ca204   204code=printk" class="sref">pfid="L79"t_filtr *cpu, int cpu  95static  *cpu, int cpu  16        ca206   20trace/trace_selftest.c#L57" id="L57" class="li20e" name=20L17">  17        ca207   20+code=printk" class="sref">pregistr<_);
  18        ca208   2t+code=arch_spin_lock" class=registr<_);
  19          209   20+code=tracing_off" class="srregistr<_);
  10        sw2itch 21+code=cnt" class="sref">cnt);
  21        retu1   21trace/trace_selftest.c#L92" id="L92" class="li2ne" name=2"L12">  12        ca2se )
  13        ca2se   14        ca2se pode=K_code=/a>);
  15        ca2se   16        ca2se co class4" classa hrefprobe1_/a>;
tract!= 1e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L17">  17        ca2se fou>;
  18        ca2se co class4" classa hrefprobe2_/a>;
tract!= 0e/trace_selftest.c#L66" id="L66" class="li2ne" name=""L19">  19          2     21       fou>;
  20        }
2co class4" classa hrefprobe3_/a>;
tract!= 1e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L21">  21        re2turn 22a href="+code=ret" cliled" class="sref">fou>;
  22}
co class4" classa hrefglobal_/a>;
tractr= 0e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L23">  23
fou>;
  24static int2   25{
  26        st2ruct 22trace/trace_selftest.c#L57" id="L57" class="li2ne" name=2"L27">  27        st2ruct 22+code=printk" class="sref">printk_code=/a>);
  28        un2signe22trace/trace_selftest.c#L89" id="L89" class="li2ne" name=2"L29">  29
co class4" classa hrefprobe1_/a>;
tract!= 1e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L30">  30        wh2ile (23       goto fou>;
  31          2     231code=arch_spnt" class="sref">co class4" classa hrefprobe2_/a>;
tract!= 1e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L32">  32
fou>;
  33          2     233      goto co class4" classa hrefprobe3_/a>;
tract!= 2e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L34">  34fou>;
  35  36/* Don't allow flippiAdd aidynamtraprobernel/trace/trace_selftest.c#L79" id="L79" class="li2ne" name=2"L37">  37pdyn_s++ > tkztracc;
trdyn_s++ > cpu))) {
trace_buf_size) {
2 (trdyn_s++ >   39          2     23         40          2     24       goto fou>;
  41          2     241code=arch_spe/trace_selftest.c#L94" id="L94" class="li2ne" name=2"L42">  42          2     24trace/trace_selftest.c#L33" id="L33" class="li2ne" name=2"L43">  43          2     24+code=printk" class="sref">pdyn_s++ > b  14        ca2e="co24trace/trace_selftest.c#L95" id="L95" class="li2ne" name=2"L45">  45          2     24+code=tracing_on" class="sreregistr<_);
trdyn_s++ >   46          2     24trace/trace_selftest.c#L57" id="L57" class="li2ne" name=2"L47">  47        }
2p class4" classa hrefglobal_/a>;
tractrace/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L48">  48        re2turn 24trace/trace_selftest.c#L89" id="L89" class="li2ne" name=2"L49">  49
  50   51        cnt);
  52          53        co class4" classa hrefprobe1_/a>;
tract!= 2e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L54">  54        re2turn 25               fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L55">  55}
co class4" classa hrefprobe2_/a>;
tract!= 1e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L56">  56
fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L57">  57co class4" classa hrefprobe3_/a>;
tract!= 3e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L58">  58fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L59">  59co class4" classa hrefglobal_/a>;
tractr= 0e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L60">  60fou>;
  61static int2 co class4" classa hrefdyn_/a>;
tractr= 0e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L62">  62{
fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L63">  63        un2signe26trace/trace_selftest.c#L24" id="L24" class="linne" name=2"L64">  64        in2t pDYN_Fa hre_TEST_NAMe2;
  65
  16        ca2eerne26+code=arch_spin_unlock" clasprntk_code=/a>);
  67          68        co class4" classa hrefprobe1_/a>;
tract!= 2e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L69">  69
fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L70">  70        co class4" classa hrefprobe2_/a>;
tract!= 2e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L71">  71
fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L72">  72        co class4" classa hrefprobe3_/a>;
tract!= 4e/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L73">  73fou>_freea>, int _freeRN_We/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L74">  74  75  76fou>_freea>, int _freeRN_W:/trace_selftest.c#L65" id="L65" class="li2ne" name=2"L77">  77punregistr<_);
trdyn_s++ >   78, int trdyn_s++ >   79          80        fou>;
  81          2     28ss="comment">/* disable tracing */  82          2     28+code=tracing_disabled" clasunregistr<_);
  83          2     28+code=printk" class="sref">punregistr<_);
  84        }
2punregistr<_);
  85          86          87        
  88
);
  89        if2 (  90          2     29+code=cnt" class="sref">cnt)
  91
  92        re2turn 29+code=tracingnt" class="sref">co class4" classa hrefprobe1_/a>;
tract||/trace_selftest.c#L92" id="L92" class="li2ne" name=2"L93">  93}
co class4" classa hrefprobe2_/a>;
tract||/trace_selftest.c#L92" id="L92" class="li2ne" name=2"L94">  94
co class4" classa hrefprobe3_/a>;
tract||/trace_selftest.c#L92" id="L92" class="li2ne" name=2"L95">  95static co class4" classa hrefglobal_/a>;
tract||/trace_selftest.c#L92" id="L92" class="li2ne" name=2"L96">  96{
co class4" classa hrefdyn_/a>;
trace/trace_selftest.c#L66" id="L66" class="li2ne" name=2"L97">  97          88
   9{
  10        sw3t    30a hre/trace_selftest.c#L94" id="L94" class="li30e" name=30L11">  11        ca301   30ss="comment">de=urn"_on" class="srere> =   92        re302   30+codee/trace_selftest.c#L94" id="L94" class="li30e" name=30L13">  13        ca303   30trace/trace_selftest.c#L24" id="L24" class="li30e" name=30L14">  14        ca304   304code *
  95static t clas *tr clas/a> *  16        ca306   30
t clas_arraea>, int tr ca>, int   97        tr  18        ca308   30int   19          309   30+code=tracing" class="sref">cpu =e=fl_t =  10        sw3itch 31+code=cnt" cl" class="sref">cpu =e=fl_ clas = clas  21        re3u1   31ss="comment">"+code=flags" class="sref">flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li3n2" name=3"L12">  12        ca3se trfunc_ hrea>, int   13        ca3se lo/a> =   14        ca3se   15        ca3se 
  16        ca3se (KERN_CONT ".. corrupted trace bufPASSED68">  68  1ee/trace_selftest.c#L93" id="L93" class="li3ne" name=3"L17">  17        ca3se pri_info/a>(  18        ca3se   19          3     31       
  20        }
3cnt< =  21        re3turn 321code=cnt" class="sref">cnt = clas  22}
  23

<=flin by p>rhretr< to fool gcra  24static int3 pfunc;
  25{
  26        st3ruct 32ss="comment">/* Don't allow flippl/trace/trace_selftest.c#L79" id="L79" class="li3ne" name=3"L27">  27        st3ruct 32+code */
  28        un3signe32ent">         */
  29
 * are still sane.  30        wh3ile (33ent"> */
  31          3     331code=cnt" class="sref">cnt, int   32
  33          3     33       break;_*
  34pfid="L79"efglobal_filtr *cpu< hrleg_on();
  35  36/* Don't allow flippienacin ss="nit nel/trace/trace_selftest.c#L79" id="L79" class="li3ne" name=3"L37">  37pre> = cnt;
cnt, int trace_buf_size) {
3 (pre> =   39          3     33       _ clascnt =   40          3     34       goto fou>;
  41          3     341code=arch_spe/trace_selftest.c#L94" id="L94" class="li3ne" name=3"L42">  42          3     34trace/trace_selftest.c#L33" id="L33" class="li3ne" name=3"L43">  43          3     34       break;_*
  14        ca3e="co344code=printk" class="sref">pmsleep;
  45          3     34trace/trace_selftest.c#L66" id="L66" class="li3ne" name=3"L46">  46          3     34ss="comment">/* Don't allow flippiwe should have noth thiin the buffr< nel/trace/trace_selftest.c#L79" id="L79" class="li3ne" name=3"L47">  47        }
3pre> = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li3ne" name=3"L48">  48        re3turn 348code=arch_spnt"  class="sref">pre> =   49
fou>;
  50   51        cocode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li3ne" name=3"L52">  52          53        (KERN_CONT ".. corrupted trace buf.. filtr< did not filtr< .. f="kernel/trace/trace_selftest.c#L54" id="L54" class="li3ne" name=3"L54">  54        re3turn 35               fou>;
  55}
  56
  57
  58  59  60  61static int3 cnt  62{
  63        un3signe36       break;_*
  64        in3t pss="nit_stopa>, int   65
 =  16        ca3eerne36trace/trace_selftest.c#L57" id="L57" class="li3ne" name=3"L67">  67        
  68         = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li3ne" name=3"L69">  69
RN_WAee/trace_selftest.c#L93" id="L93" class="li3ne" name=3"L70">  70          71
/* disable tracing */  72        trre> = flcode=_disabled =code=RN_Wt!= 1ele/trace_selftest.c#L26" id="L26" class="li3ne" name=3"L73">  73breseK =   74(KERN_CONT ".. corrupted trace buf.. filtr< faiing code===a hrld ..="kernel/tracelass="sref">cpu =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li3ne" name=3"L75">  75 =   76fou>;
  77  78  79        
  80        cnt = cnt++ >   81          3     381code=cnt" class="sref">cnt *breseK =   82          3     38trace/trace_selftest.c#L33" id="L33" class="li3ne" name=3"L83">  83          3     38+code= class="sref">fou>;
  84        }
3p =  85          86          87        
  88
 *  89        if3 (  90          3     39       goto < *
  91
trre> =   92        re3turn 39f (cnt++ >   93}
  94
  95static   96{
  97         test_buffer" class="sr4" classastartup_dynamtr_ss="nit 
cnt, int cpu  88

   9{
  10        sw4t    40ent"> */
  11        ca401   40ss="c */
  92        re402   40+code */
  93}

  94
  95static   96{
);
t clas *tr clas/a> *t clas_arraea>, int tr ca>, int   97          18        ca408   408code=arch_spn class="sref">cpu =e=fl_t =  19          409   40+code=tracing" class="sref">cpu =e=fl_ clas = clas  10        sw4itch 41+code=cnt" cl"+code=flags" class="sref">flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li4ne" name=4LL21">  21        re4u1   41ss="comment">ps" class="sref">lo/a> =   12        ca4se   13        ca4se 
  14        ca4se pmsleep;
  15        ca4se   16        ca4se /* Don't allow flippistart the ss="nitpnel/trace/trace_selftest.c#L79" id="L79" class="li4n7" name=4"L17">  17        ca4se p =  18        ca4se  = clas  19          4     41+code/trace_selftest.c#L65" id="L65" class="li4ne" name=4"L20">  20        }
4cnt = cnt;
cnt, int   21        re4turn 421code=arch_spnt" class="sref">core> =   22}
_ clascnt =   23
fou>;
  24static int4   25{
  26        st4ruct 42ss="comment">/* Don't allow flipp Sleep for a 1/10 of a seco/spnel/trace/trace_selftest.c#L79" id="L79" class="li4ne" name=4"L27">  27        st4ruct 42+code=printk" class="sref">pmsleep;
  28        un4signe428s="comment">/* Don't allow flippistop the ss="nit. nel/trace/trace_selftest.c#L79" id="L79" class="li4ne" name=4"L29">  29
  30        wh4ile (43+code=cnt" class="sref">cnt< =  31          4     43trace/trace_selftest.c#L92" id="L92" class="li4ne" name=4"L32">  32

  33          4     43+code=printk" class="sref">pre> = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li4ne" name=4"L34">  34p clas/a> *breseK =   35RN_WAee/trace_selftest.c#L93" id="L93" class="li4ne" name=4"L36">  36  37trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li4ne" name=4">trace_buf_size) {
4 ((KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li4ne" name=4"L39">  39          4     43         40          4     44       goto fou>;
  41          4     441code=arch_spe/trace_selftest.c#L94" id="L94" class="li4ne" name=4"L42">  42          4     44trace/trace_selftest.c#L33" id="L33" class="li4ne" name=4"L43">  43          4     44+code=printk" class="sref">pre> = cntcnt, int   14        ca4e="co444code=printk""""""""""""""""""""""""""""""""""""""""""""""ass="sref">cnt)
  45          4     44trace/trace_selftest.c#L66" id="L66" class="li4ne" name=4"L46">  46          4     44/trac" class="sref">fou>;
  47        }
4p =  48        re4turn 44+code=arch_spin_lock" class= clas = clas  49
  50   51        core> =   52          53          54        re4turn 45             de=urn"_on" class="srere> =   55}
  56

  57  58  59  60  61static int4   62{
 test_buffer" claGRAPH_MAX_FUNC_TEST =   63        un4signe46trace/trace_selftest.c#L24" id="L24" class="li4ne" name=4"L64">  64        in4t   65
, int fdisacin_ss="nit 
 =foopsfdump_m"sr_disabled =oopsfdump_m"srtracee/trace_selftest.c#L93" id="L93" class="li46e" name=4LL16">  16        ca4eerne46tracestatic "+code=flps" class="sref">lograph_cait_tss=sh_disabled =graph_cait_tss=shtrace/trace_selftest.c#L55" id="L55" class="li4ne" name=4"L67">  67          68                 */
  69
tf classgraph_="k_disabled =tr clas/a> *  70          71
/* disable tracing */  72        trunlik" y/a> *lograph_cait_tss=sh_disabled =graph_cait_tss=shtrac fer"test_buffer" claGRAPH_MAX_FUNC_TEST =   73  74(KERWARNINGNT ".. corrupted trace bufBUG: Function graph  clas  68  1ee/trace_selftest.c#L93" id="L93" class="li4ne" name=4"L75">  75tr++ >   76, int cnt))) {
  77  78  79          80          81          4     481codee/trace_selftest.c#L94" id="L94" class="li4ne" name=4"L82">  82          4     48trace/trace_selftest.c#L33" id="L33" class="li4ne" name=4"L83">  83          4     48trace */
  84        }
4
  85        
  86        
  87          88
cntt clas<_disabled = clastr clas/a> *  89        if4 (t clas_arraea>, int tr ca>, int   90          4     49a hree/trace_selftest.c#L26" id="L26" class="li4ne" name=4"L91">  91
ps" class="sref">lo/a> =   92        re4turn 49f (flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li4ne" name=4"L93">  93}
  94
  95static 
  96{

  97        
  88
_on/a>
_cpu/a>++ >    9{
, int   10        sw5t    50+code=cnt" class="sref">cnt = cnt  11        ca501   501        92        re502   50+code=tracingnt" class="sref">trre> =   93}
_ clascnt =   94
fou>;
  95static   96{

_decordRN_WAee/trace_selftest.c#L93" id="L93" class="li507" name=50L97">  97          18        ca508   508s="comment">/* Don't allow flippiSleep for a 1/10 of a seco/spnel/trace/trace_selftest.c#L79" id="L79" class="li50e" name=50L19">  19          509   50+code=tracing_off" class="srmsleep;
  10        sw5itch 51a hre/trace_selftest.c#L94" id="L94" class="li5ne" name=5LL21">  21        re5u1   51ss="comment">/* disable tracing */  12        ca5se trgraph_cait_tss=sh_disabled =graph_cait_tss=shtrac fer"test_buffer" claGRAPH_MAX_FUNC_TEST =   13        ca5se ++ > cnt *  14        ca5se  =   15        ca5se fou>;
  16        ca5se e/trace_selftest.c#L94" id="L94" class="li5n7" name=5"L17">  17        ca5se   18        ca5se , int   19          5     51+code/trace_selftest.c#L65" id="L65" class="li5ne" name=5"L20">  20        }
5
  21        re5turn 521code=cnt" class="sref">cnt = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li5n2" name=5"L22">  22}
  23
p clas/a> *breseK =   24static int5   25{
  26        st5ruct 52ss="comment">nt" !class="sref">trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li5ne" name=5"L27">  27        st5ruct 52 href="+code=a href="in_unlock" clasprntk(KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li5ne" name=5"L28">  28        un5signe52f ( =   29
fou>;
  30        wh5ile (53+code=cnt" cle/trace_selftest.c#L94" id="L94" class="li5ne" name=5"L31">  31          5     53trace/trace_selftest.c#L92" id="L92" class="li5ne" name=5"L32">  32

  33          5     53trace/trace_selftest.c#L24" id="L24" class="li5ne" name=5"L34">  34fou>;
  35  36nt" ass="sref">cnt =   37, int trace_buf_size) {
5 (  39          5     53         40          5     54     e/trace_selftest.c#L94" id="L94" class="li5ne" name=5"L41">  41          5     541code#endnt" *
  42          5     54trace/trace_selftest.c#L33" id="L33" class="li5ne" name=5"L43">  43          5     54trace/trace_selftest.c#L24" id="L24" class="li5ne" name=5LL14">  14        ca5e="co544code#ifdef"_on" class="srestrFIG_IRQSOFF_a hreR =   45          5     54+codece_/trace_selftest.c#L79" id="L79" class="li5ne" name=5"L46">  46          5     54
t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   47        }
5  48        re5turn 54+code=arch_sp"+code=flags" class="sref">fle=fl_maxa>, int cnt, int   49
flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li5ne" name=5"L50">  50 lo/a> =   51          52          53        pre> = cnt;
cnt, int   54        re5turn 55             nt" class="sref">trre> =   55}
_ clascnt =   56
  57  58  59 the max latencepnel/trace/trace_selftest.c#L79" id="L79" class="li5ne" name=5"L60">  60cnt, int   61static int5 /* disable tracing */  62{
cnt, int   63        un5signe56+code=printk" class="sref">pudelaea>, int   64        in5t plocal_irqaenacina>, int   65
  16        ca5eerne56ss="comment">/* Don't allow flippl/trace/trace_selftest.c#L79" id="L79" class="li5ne" name=5"L67">  67        
  68                 */
  69
  70         */
  71

  72        cnt< clas/a> *bstopa>, int cnt, int   73  74  75  76 = cnt, int   77trre> =   78 = cnt, int , int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li5ne" name=5"L79">  79        breseK =   80        cnt++ >   81          5     58trace/trace_selftest.c#L92" id="L92" class="li5ne" name=5"L82">  82          5     58+code=tracingnt" !class="sref">trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li5ne" name=5"L83">  83          5     58       break;
KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li5ne" name=5"L84">  84        }
5 =   85          86          87        ps="snit_max_latencea>, int fle=fl_maxa>, int   88
  89        if5 (  90          5     59     e/trace_selftest.c#L94" id="L94" class="li5ne" name=5"L91">  91

  92        re5turn 59trace/trace_selftest.c#L33" id="L33" class="li5ne" name=5"L93">  93}
  94
  95static t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   96{
  97        fle=fl_maxa>, int cnt, int   88
flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li5ne" name=5LL9">   9{
cpu =   10        sw6t    60a hre/trace_selftest.c#L94" id="L94" class="li60e" name=60L11">  11        ca601   60ss="comment">/* disable tracing */  92        re602   60+code */
  93}

  94
  95static 
  96{

  97        
  18        ca608   60ent">         */
  19          609   60+code=tracing"t" class="sref">trpreempt_code=_disabled =preempt_code=RN_WAeele/trace_selftest.c#L26" id="L26" class="li6ne" name=6"L10">  10        sw6itch 61       goto KERN_CONT ".. corrupted trace bufct;.not lass ... forcn<="kernel/tracee/trace_selftest.c#L93" id="L93" class="li6ne" name=6LL21">  21        re6u1   611        12        ca6se   13        ca6se   14        ca6se 
  15        ca6se pre> = cnt;
cnt, int   16        ca6se nt" ass="sref">cnt =   17        ca6se _ clas *cnt =   18        ca6se   19          6     619code=tracinge/trace_selftest.c#L94" id="L94" class="li6ne" name=6"L20">  20        }
6  21        re6turn 62ss="comment">/* disable tracing */ the max latencepnel/trace/trace_selftest.c#L79" id="L79" class="li6n2" name=6"L22">  22}
cnt< clanit_max_latencea>, int   23
  24static int6 , int   25{
pudelaea>, int   26        st6ruct 62+code=arch_spin_unlock" claspreempt_enacina>, int   27        st6ruct 62trace/trace_selftest.c#L8" id="L8" class="line6ne" name=6"L28">  28        un6signe628s="comment">/* Don't allow flippl/trace/trace_selftest.c#L79" id="L79" class="li6ne" name=6"L29">  29
  30        wh6ile (63ent"> */
  31          6     63ss="c */
  32
  33          6     63trace */
  34p clas/a> *bstopa>, int cnt, int   35  36  37trace_buf_size) {
6 ( = cnt, int   39          6     63+code=tracing"t" !class="sref">trre> =   40          6     64       goto  = cnt, int , int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li6ne" name=6"L41">  41          6     641code=cnt" class="sref">cnt< clas/a> *breseK =   42          6     642code=cnt" class="sref">cnt< clanit_starta>++ >   43          6     64trace/trace_selftest.c#L24" id="L24" class="li6ne" name=6LL14">  14        ca6e="co644code=printk"nt" !class="sref">trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li6ne" name=6"L45">  45          6     64+code=tracing  KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li6ne" name=6"L46">  46          6     64
 =   47        }
6  48        re6turn 64trace/trace_selftest.c#L89" id="L89" class="li6ne" name=6"L49">  49
fle=fl_maxa>, int   50   51          52          53        
  54        re6turn 65     /trace_selftest.c#L79" id="L79" class="li6ne" name=6"L55">  55}
  56
  57t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   58  59fle=fl_maxa>, int cnt, int   60flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li6ne" name=6"L61">  61static int6 ps" class="sref">lo/a> =   62{
  63        un6signe66       break;_*
  64        in6t 
  65
  16        ca6eerne66trace *
  67        

< the sass= When the BKL is removndeeor becomesl/trace/trace_selftest.c#L79" id="L79" class="li6ne" name=6"L68">  68                 */
  69
  70         */
  71
pt" class="sref">trpreempt_code=_disabled =preempt_code=RN_WAeele/trace_selftest.c#L26" id="L26" class="li6ne" name=6"L72">  72        KERN_CONT ".. corrupted trace bufct;.not lass ... forcn<="kernel/tracee/trace_selftest.c#L93" id="L93" class="li6ne" name=6"L73">  73  74  75  76/* Don't allow flipp start the ss="nitpnel/trace/trace_selftest.c#L79" id="L79" class="li6ne" name=6"L77">  77pre> = cnt;
cnt, int   78cnt =   79        _ clas *cnt =   80        fou>_no_starta>++ > _no_starttrace/trace_selftest.c#L65" id="L65" class="li6ne" name=6"L81">  81          6     681code=printk"e/trace_selftest.c#L94" id="L94" class="li6ne" name=6"L82">  82          6     68trace/trace_selftest.c#L33" id="L33" class="li6ne" name=6"L83">  83          6     68       break;_*
  84        }
6p clanit_max_latencea>, int   85          86        /* Don't allow flipp disacin  87        ppreempt_disacina>, int   88
, int   89        if6 (  90          6     69+code=cnt" class="sref">cnt, int   91
/* disable tracing */  92        re6turn 692code=cnt" class="sref">cnt, int   93}
  94

  95static 
  96{

  97        
  88
         */
   9{
  10        sw7t    70+code=cnt" class="sref">cnt< clas/a> *bstopa>, int cnt, int   11        ca701   70ss="comment">/* disable tracing */  92        re702   702code=cnt" class="sref">cnt< clanit_stopa>, int   93}

  94
pre> = cnt, int   95static cnt =   96{
fou>;
  97          18        ca708   70+code=arch_spin_lock" class=re> = cnt, int , int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li70e" name=70L19">  19          709   70+code=tracing"t" class="sref">trre> =   10        sw7itch 71       goto fou>;
  21        re7u1   71trace/trace_selftest.c#L92" id="L92" class="li7n2" name=7"L12">  12        ca7se trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li7ne" name=7"L13">  13        ca7se KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li7ne" name=7"L14">  14        ca7se  =   15        ca7se fou>;
  16        ca7se e/trace_selftest.c#L94" id="L94" class="li7n7" name=7"L17">  17        ca7se   18        ca7se /* Don't allow flipp do the sass by disacinit is"errupts firss this time nel/trace/trace_selftest.c#L79" id="L79" class="li7ne" name=7"L19">  19          7     71+code=tracing_off" class="sr clanit_max_latencea>, int   20        }
7cnt++ >   21        re7turn 721code=cnt" class="sref">cnt< clas/a> *bstarta>++ > cnt, int   22}
  23
ppreempt_disacina>, int   24static int7 , int   25{
pudelaea>, int   26        st7ruct 72+code=arch_spin_unlock" claspreempt_enacina>, int   27        st7ruct 72 href="+code=_* Don't allow flippideverse the order of preempt vs irqs nel/trace/trace_selftest.c#L79" id="L79" class="li7ne" name=7"L28">  28        un7signe72+code=arch_spin_lock" class=local_irqaenacina>, int   29
  30        wh7ile (73+code=cnt" class="sref">cnt< clas/a> *bstopa>, int cnt, int   31          7     73ss="comment">/* disable tracing */  32
cnt< clanit_stopa>, int   33          7     73       break;_*
  34pre> = cnt, int   35cnt =   36fou>;
  37trace_buf_size) {
7 ( = cnt, int , int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li7ne" name=7"L39">  39          7     73+code/trace_selftest.c#L93" id="L93" class="li7ne" name=7"L40">  40          7     74       goto trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li7ne" name=7"L41">  41          7     741      KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li7ne" name=7"L42">  42          7     742code=cnt" cl    43          7     74       break;
fou>;
  14        ca7e="co744code=printk"e/trace_selftest.c#L94" id="L94" class="li7ne" name=7"L45">  45          7     74trace/trace_selftest.c#L66" id="L66" class="li7ne" name=7"L46">  46          7     74
fou>;
  47        }
7ps="snit_starta>++ >   48        re7turn 74trace class="sref">fou>_no_starta>++ > _no_starttrac:/trace_selftest.c#L66" id="L66" class="li7ne" name=7"L49">  49
breseK =   50 cnt, int bs=fl_maxa>, int   51          52          53          54        re7turn 75     #endnt" *
  55}
  56
  57  58fid="L79" classastartup_nopa>, int t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   59  60
  61static int7   62{
  63        un7signe76+code#endnt/trace_selftest.c#L94" id="L94" class="li7ne" name=7"L64">  64        in7t   65
  16        ca7eerne76tracestatic>ps" class="sref">loid="L7wakeup_lassathdeada>, int trdataa>, int   67          68        /* Don't allow flipp Make this a RT thdead, doesn't need to be too high nel/trace/trace_selftest.c#L79" id="L79" class="li7ne" name=7"L69">  69
tsched_parama>, int &qT" class="srefparama>, int &= { . class="sref">tsched_prioritea>, int &= 5 }e/trace_selftest.c#L65" id="L65" class="li7ne" name=7"L70">  70        tallpletion_disabled =colpletions="co class="sref">trxa>, int cnt, int   71
  72        cntscheduls<_disabled =sched_se>scheduls, int ee/trace_selftest.c#L93" id="L93" class="li7ne" name=7"L73">  73  74  75pcolplets/a> *  76  77 the sass wake us up nel/trace/trace_selftest.c#L79" id="L79" class="li7ne" name=7"L78">  78_curree=astats/a> *  79          80          81          7     78ss="comment">/* disable tracing */  82          7     782code=cnt" clwhile" !class="sref">trkthdead_shodld_stopa>, int   83          7     78       break;

  84        }
7
  85        
  86        
  87        , int   88
  89        if7 (  90          7     79+code=cnt" clde=urn"ce/trace_selftest.c#L65" id="L65" class="li7ne" name=7"L91">  91
  92        re7turn 79trace/trace_selftest.c#L33" id="L33" class="li7ne" name=7"L93">  93}
  94
fid="L79" classastartup_wakeupa>, int t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   95static   96{
fle=fl_maxa>, int cnt, int   97        t ask_sracera>, int trpa>, int   88
tallpletion_disabled =colpletions="co class="sref">tisrta>++ >    9{
flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li80e" name=8LL10">  10        sw8t    80+code=cnt" clps" class="sref">lo/a> =   11        ca801   80trace/trace_selftest.c#L92" id="L92" class="li802" name=80L92">  92        re802   802code=cnt" class="sref">cnt_allpletion_disabled =ini>_allpletionRN_COrace_max_lock" classisrta>++ >   93}
  94
  95static ppa>, int cnt, int , int ++ >   96{
nt" ass="sref">cnt  97        (KERN_CONT ".. corrupted trace bufFaiing to cdeatl f clas wakeup lass thdeadr="kernel/tracee/trace_selftest.c#L93" id="L93" class="li808" name=80L88">  88
  19          809   80+code=tracinge/trace_selftest.c#L94" id="L94" class="li8ne" name=8"L10">  10        sw8itch 81a hre/trace_selftest.c#L94" id="L94" class="li8ne" name=8LL21">  21        re8u1   81ss="comment">/* disable tracing */  12        ca8se cnt =wait_for_allpletionRN_COrace_max_lock" classisrta>++ >   13        ca8se   14        ca8se   15        ca8se pre> = cnt;
cnt, int   16        ca8se nt" ass="sref">cnt =   17        ca8se _ clas *cnt =   18        ca8se lo/a> =   19          8     81+code=tracinge/trace_selftest.c#L94" id="L94" class="li8ne" name=8"L20">  20        }
8  21        re8turn 82ss="comment">/* disable tracing */ the max latencepnel/trace/trace_selftest.c#L79" id="L79" class="li8n2" name=8"L22">  22}
cnt< clanit_max_latencea>, int   23
  24static int8   25{
pmsltepa>, int   26        st8ruct 82trace/trace_selftest.c#L57" id="L57" class="li8n7" name=8"L27">  27        st8ruct 82 href="+code=_* Don't allow flippl/trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L28">  28        un8signe82ent">         */
 for somns=trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L29">  29
 the RT thdead we cdeatld, did.nots=trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L30">  30        wh8ile (83ent"> */
  31          8     83ss="c *
  32
 is extremely unlikely, r/spths worss thiitpthats=trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L33">  33          8     83      *
  34  35  36  37trace_buf_size) {
8 ( *  39          8     83+code/trace_selftest.c#L93" id="L93" class="li8ne" name=8"L40">  40          8     84+code=cnt" cl *
  41          8     841code=cnt" class="sref">cnt, int   42          8     84trace/trace_selftest.c#L33" id="L33" class="li8ne" name=8"L43">  43          8     84       break;_*
  14        ca8e="co844code=printk"ass="sref">cnt< clanit_stopa>, int   45          8     84+code=tracing_*
  46          8     84+code=arch_spin_unlock" clasre> = cnt, int   47        }
8trre> =   48        re8turn 84f ( = cnt, int , int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li8ne" name=8"L49">  49
  50   51        cnt< clas/a> *breseK =   52        cnt< clanit_starta>++ >   53          54        re8turn 854code=printk" class="sref">p clanit_max_latencea>, int fle=fl_maxa>, int   55}
  56
/* Don't allow flipp kill the thdead nel/trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L57">  57pkthdead_stopa>, int cnt, int   58  59trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li8ne" name=8"L60">  60(KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li8ne" name=8"L61">  61static int8   62{
  63        un8signe86trace/trace_selftest.c#L24" id="L24" class="li8ne" name=8"L64">  64        in8t lo/a> =   65
  16        ca8eerne86trace#endnt" *
  67          68          69
  70         ss="sref">cnt, int t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   71
  72        flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li8ne" name=8"L73">  73lo/a> =   74  75  76 = cnt;
cnt, int   77cnt =   78_ clas *cnt =   79        lo/a> =   80          81          8     88trace/trace_selftest.c#L92" id="L92" class="li8ne" name=8"L82">  82          8     882code=cnt" cl_*
  83          8     88+code=printk" class="sref">pmsltepa>, int   84        }
8  85        p clanit_stopa>, int   86        /* Don't allow flipp check the ss="e buffr< nel/trace/trace_selftest.c#L79" id="L79" class="li8ne" name=8"L87">  87        pre> = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li8ne" name=8"L88">  88
 *breseK =   89        if8 (  90          8     89a hre/trace_selftest.c#L94" id="L94" class="li8ne" name=8"L91">  91
"t" !class="sref">trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li8ne" name=8"L92">  92        re8turn 892code=cnt" cl=tracing_off" class="srprntk(KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li8ne" name=8"L93">  93}
  94
  95static   96{
lo/a> =   97          88

   9{
  10        sw9t    90+code#ifdef"_on" class="srestrFIG_BRANCH_a hreR =   91
  92        re902   902code ss="sref">cnt, int t clas<_disabled = clastr clas/a> *t clas_arraea>, int tr ca>, int   93}
  94
flcode=_disabled =code=RN_We/trace_selftest.c#L65" id="L65" class="li905" name=90L95">  95static lo/a> =   96{
  97          88
 = cnt;
cnt, int   19          909   90+code=tracing"t" class="sref">trre> =   10        sw9itch 91       goto _ clas *cnt =   21        re9u1   911      lo/a> =   12        ca9se   13        ca9se   14        ca9se   15        ca9se pmsltepa>, int   16        ca9se /* Don't allow flipp stop the ss="nit. nel/trace/trace_selftest.c#L79" id="L79" class="li9n7" name=9"L17">  17        ca9se ps="snit_stopa>, int   18        ca9se /* Don't allow flipp check the ss="e buffr< nel/trace/trace_selftest.c#L79" id="L79" class="li9ne" name=9"L19">  19          9     91+code=tracing_off" class="srre> = cnt, int  =code=RN_Wee/trace_selftest.c#L93" id="L93" class="li9ne" name=9"L20">  20        }
9cnt *breseK =   21        re9turn 921code=cnt" class="sref">cnt< clanit_starta>++ >   22}
  23
trre> = trcode=_disabled =code=RN_Wele/trace_selftest.c#L26" id="L26" class="li9ne" name=9"L24">  24static int9 cnt(KERN_CONT ".. corrupted trace buf.. no ="kries found ..="kernel/tracee/trace_selftest.c#L93" id="L93" class="li9ne" name=9"L25">  25{
  26        st9ruct 92+code=arch_spe/trace_selftest.c#L94" id="L94" class="li9n7" name=9"L27">  27        st9ruct 92trace/trace_selftest.c#L8" id="L8" class="line9ne" name=9"L28">  28        un9signe92+code=arch_spde=urn"class="sref">lo/a> =   29
  30        wh9ile (93ent">#endnt" *
  31          9     93trace/trace_selftest.c#L92" id="L92" class="li9ne" name=9"L32">  32
  32
The original LXR software by the trace_selhttp://sourceforge.net/projects/lxLXR hrefuniteng">,"thisiexperif="kal version by trace_selmaiito:lx<@/a>ux.no">lx<@/a>ux.nong">.
 /div>
  32
lx<./a>ux.no kindly hosted by trace_selhttp://www.redpill-/a>pro.no">Redpill La>pro ASng">,"providr< of La>ux>consultnit and operations services sin"e 1995.
 /div>