linux/kernel/sched/core.c
<<
4) n> /spa n> /form n> a 4) n> href="../linux+v3.7.2/kernel/sched/core.c">4) n> img src="../.static/gfx/right.png" alt=">>">4) /spa 4) spa class="lxr_search">4) 4) n> input typtiohidden" namtionavtarget" 4) n> input typtiotext" namtiosearch" idiosearch">4) n> butt268typtiosubmit">Search /form /spa 4) spa class="lxr_prefs" n> a href="+prefs?return=kernel/sched/core.c"4) n> onclick="return ajax_prefs();">4) n>Prefs n> /a>4) /spa n> > /div n> > form ac68" ="ajax+*" method="post" onsubmit="return false;">4) input typtiohidden" namtioajax_lookup" idioajax_lookup" 4 n> > /form 4 n> > div class="headingbott2m">
n> > div idiosearch_results" class="search_results" n n> > /div div idiocontent"> div idiofile_contents"
> >1
/a>
spa
 class="comment">/*
/spa
	 > >2
/a>
spa
 class="comment"> *  kernel/sched/core.c
/spa
	 > >3
/a>
spa
 class="comment"> *
/spa
	 > >4
/a>
spa
 class="comment"> *  Kernel scheduler and related syscalls
/spa
	 > >5
/a>
spa
 class="comment"> *
/spa
	 > >6
/a>
spa
 class="comment"> *  Copyright (C) 1991-2002  Linus Tor> >7
/a>
spa
 class="comment"> *
/spa
	 > >8
/a>
spa
 class="comment"> *  1996-12-23  Modified by Dave Grothe to fix bugs in semaphores and
/spa
	 > >9
/a>
spa
 class="comment"> *              make semaphores SMP safe
/spa
	 >  
spa
 class="comment"> *  1998-11-19  Implemented schedule_timeout() and related stuff
/spa
	 > 11
/a>
spa
 class="comment"> *              by Andrea Arcangeli
/spa
	 > 12
/a>
spa
 class="comment"> *  2002-01-04  New ultra-scalable O(1) scheduler by Ingo Molnar:
/spa
	 > 13
/a>
spa
 class="comment"> *              hybrid priority-list and round-robin design with
/spa
	 > 14
/a>
spa
 class="comment"> *              a
 array-switch method of distributing timeslices
/spa
	 > 15
/a>
spa
 class="comment"> *              a
d per-CPU runqueues.  Cleanups and useful sugges68"
s
/spa
	 > 16
/a>
spa
 class="comment"> *              by Davide Libenzi, preem268ble kernel bits by Robert Love.
/spa
	 > 17
/a>
spa
 class="comment"> *  2003-09-03  Interac68vity tuning by C268Kolivas.
/spa
	 > 18
/a>
spa
 class="comment"> *  2004-04-02  Scheduler domains code by Nick Piggin
/spa
	 > 19
/a>
spa
 class="comment"> *  2007-04-15  Work begun on replacing all interac68vity tuning with a
/spa
	 > 2
spa
 class="comment"> *              fair scheduling design by C268Kolivas.
/spa
	 > 21
/a>
spa
 class="comment"> *  2007-05-05  Load balancing (smp-nice) and other improvements
/spa
	 > 22
/a>
spa
 class="comment"> *              by Peter Williams
/spa
	 > 23
/a>
spa
 class="comment"> *  2007-05-06  Interac68vity improvements to CFS by Mike Galbraith
/spa
	 > 24
/a>
spa
 class="comment"> *  2007-07-01  Group scheduling enhancements by Srivatsa Vaddagiri
/spa
	 > 25
/a>
spa
 class="comment"> *  2007-11-29  RT balancing improvements by Steven Rostedt, Gregory Haskins,
/spa
	 > 26
/a>
spa
 class="comment"> *              Thomas Gleixner, Mike Kravetz
/spa
	 > 27
/a>
spa
 class="comment"> */
/spa
	 > 28
/a> > 29
/a>#include <linux/mm.h
/a>> > 30
/a>#include <linux/module.h
/a>> > 31
/a>#include <linux/nmi.h
/a>> > 32
/a>#include <linux/init.h
/a>> > 33
/a>#include <linux/uaccess.h
/a>> > 34
/a>#include <linux/highmem.h
/a>> > 35
/a>#include <asm/mmu_context.h
/a>> > 36
/a>#include <linux/interrupt.h
/a>> > 37
/a>#include <linux/capability.h
/a>> > 38
/a>#include <linux/comple68"
.h
/a>> > 39
/a>#include <linux/kernel_stat.h
/a>> > 40
/a>#include <linux/debug_locks.h
/a>> > 41
/a>#include <linux/perf_event.h
/a>> > 42
/a>#include <linux/security.h
/a>> > 43
/a>#include <linux/notifier.h
/a>> > 44
/a>#include <linux/profile.h
/a>> > 45
/a>#include <linux/freezer.h
/a>> > 46
/a>#include <linux/vmalloc.h
/a>> > 47
/a>#include <linux/blkdev.h
/a>> > 48
/a>#include <linux/delay.h
/a>> > 49
/a>#include <linux/pid_namtspace.h
/a>> > 50
/a>#include <linux/smp.h
/a>> > 51
/a>#include <linux/threads.h
/a>> > 52
/a>#include <linux/timer.h
/a>> > 53
/a>#include <linux/rcupdate.h
/a>> > 54
/a>#include <linux/cpu.h
/a>> > 55
/a>#include <linux/cpuset.h
/a>> > 56
/a>#include <linux/percpu.h
/a>> > 57
/a>#include <linux/proc_fs.h
/a>> > 58
/a>#include <linux/seq_file.h
/a>> > 59
/a>#include <linux/sysctl.h
/a>> > 60
/a>#include <linux/syscalls.h
/a>> > 61
/a>#include <linux/times.h
/a>> > 62
/a>#include <linux/tsacct_kern.h
/a>> > 63
/a>#include <linux/kprobes.h
/a>> > 64
/a>#include <linux/delayacct.h
/a>> > 65
/a>#include <linux/unistd.h
/a>> > 66
/a>#include <linux/pagemap.h
/a>> > 67
/a>#include <linux/hrtimer.h
/a>> > 68
/a>#include <linux/tick.h
/a>> > 69
/a>#include <linux/debugfs.h
/a>> > 70
/a>#include <linux/ctypt.h
/a>> > 71
/a>#include <linux/ftrace.h
/a>> > 72
/a>#include <linux/slab.h
/a>> > 73
/a>#include <linux/init_task.h
/a>> > 74
/a>#include <linux/binfmts.h
/a>> > 75
/a> > 76
/a>#include <asm/switch_to.h
/a>> > 77
/a>#include <asm/tlb.h
/a>> > 78
/a>#include <asm/irq_regs.h
/a>> > 79
/a>#include <asm/mutex.h
/a>> > 80
/a>#ifdef>
a href="+code=CONFIG_PARAVIRT" class="sref">CONFIG_PARAVIRT
/a> > 81
/a>#include <asm/paravirt.h
/a>> > 82
/a>#endif > 83
/a> > 84
/a>#include "sched.h
/a>" > 85
/a>#include "../workqueue_sched.h
/a>" > 86
/a>#include "../smpboot.h
/a>" > 87
/a> > 88
/a>#define>
a href="+code=CREATE_TRACE_POINTS" class="sref">CREATE_TRACE_POINTS
/a> > 89
/a>#include <trace/events/sched.h
/a>> > 90
/a> > 91
/a>void>
a href="+code=start_bandwidth_timer" class="sref">start_bandwidth_timer
/a>(struct>
a href="+code=hrtimer" class="sref">hrtimer
/a> *
a href="+code=period_timer" class="sref">period_timer
/a>,>
a href="+code=ktime_t" class="sref">ktime_t
/a> 
a href="+code=period" class="sref">period
/a>) > 92
/a>{ > 93
/a>        unsigned long 
a href="+code=delta" class="sref">delta
/a>; > 94
/a>        
a href="+code=ktime_t" class="sref">ktime_t
/a> 
a href="+code=soft" class="sref">soft
/a>,>
a href="+code=hard" class="sref">hard
/a>,>
a href="+code=now" class="sref">now
/a>; > 95
/a> > 96
/a>        for (;;) { > 97
/a>                if (
a href="+code=hrtimer_ac68ve" class="sref">hrtimer_ac68ve
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>)) > 98
/a>                        break; > 99
/a> >100
/a>                
a href="+code=now" class="sref">now
/a> =>
a href="+code=hrtimer_cb_get_time" class="sref">hrtimer_cb_get_time
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>); >101
/a>                
a href="+code=hrtimer_forward" class="sref">hrtimer_forward
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>,>
a href="+code=now" class="sref">now
/a>,>
a href="+code=period" class="sref">period
/a>); >102
/a> >103
/a>                
a href="+code=soft" class="sref">soft
/a> =>
a href="+code=hrtimer_get_softexpires" class="sref">hrtimer_get_softexpires
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>); >104
/a>                
a href="+code=hard" class="sref">hard
/a> =>
a href="+code=hrtimer_get_expires" class="sref">hrtimer_get_expires
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>); >105
/a>                
a href="+code=delta" class="sref">delta
/a> =>
a href="+code=ktime_to_ns" class="sref">ktime_to_ns
/a>(
a href="+code=ktime_sub" class="sref">ktime_sub
/a>(
a href="+code=hard" class="sref">hard
/a>,>
a href="+code=soft" class="sref">soft
/a>)); >106
/a>                
a href="+code=__hrtimer_start_range_ns" class="sref">__hrtimer_start_range_ns
/a>(
a href="+code=period_timer" class="sref">period_timer
/a>,>
a href="+code=soft" class="sref">soft
/a>,>
a href="+code=delta" class="sref">delta
/a>, >107
/a>                                         
a href="+code=HRTIMER_MODE_ABS_PINNED" class="sref">HRTIMER_MODE_ABS_PINNED
/a>,>0); >108
/a>        } >109
/a>} >110
/a> >111
/a>
a href="+code=DEFINE_MUTEX" class="sref">DEFINE_MUTEX
/a>(
a href="+code=sched_domains_mutex" class="sref">sched_domains_mutex
/a>); >112
/a>
a href="+code=DEFINE_PER_CPU_SHARED_ALIGNED" class="sref">DEFINE_PER_CPU_SHARED_ALIGNED
/a>(struct>
a href="+code=rq" class="sref">rq
/a>,>
a href="+code=runqueues" class="sref">runqueues
/a>); >113
/a> >114
/a>static void>
a href="+code=update_rq_clock_task" class="sref">update_rq_clock_task
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a href="+code=rq" class="sref">rq
/a>,>
a href="+code=s64" class="sref">s64
/a>>
a href="+code=delta" class="sref">delta
/a>); >115
/a> >116
/a>void>
a href="+code=update_rq_clock" class="sref">update_rq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a href="+code=rq" class="sref">rq
/a>) >117
/a>{ >118
/a>        
a href="+code=s64" class="sref">s64
/a>>
a href="+code=delta" class="sref">delta
/a>; >119
/a> >120
/a>        if (
a href="+code=rq" class="sref">rq
/a>->
a href="+code=skip_clock_update" class="sref">skip_clock_update
/a> >>0) >121
/a>                return; >122
/a> >123
/a>        
a href="+code=delta" class="sref">delta
/a> =>
a href="+code=sched_clock_cpu" class="sref">sched_clock_cpu
/a>(
a href="+code=cpu_of" class="sref">cpu_of
/a>(
a href="+code=rq" class="sref">rq
/a>)) ->
a href="+code=rq" class="sref">rq
/a>->
a href="+code=clock" class="sref">clock
/a>; >124
/a>        
a href="+code=rq" class="sref">rq
/a>->
a href="+code=clock" class="sref">clock
/a> +=>
a href="+code=delta" class="sref">delta
/a>; >125
/a>        
a href="+code=update_rq_clock_task" class="sref">update_rq_clock_task
/a>(
a href="+code=rq" class="sref">rq
/a>,>
a href="+code=delta" class="sref">delta
/a>); >126
/a>} >127
/a> >128
/a>
spa
 class="comment">/*
/spa
	 >129
/a>
spa
 class="comment"> * Debugging: various feature bits
/spa
	 >13
spa
 class="comment"> */
/spa
	 >131
/a> >132
/a>#define>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a>(
a href="+code=namt" class="sref">name
/a>,>
a href="+code=enabled" class="sref">enabled
/a>)       \ >133
/a>        (1UL << 
a href="+code=__SCHED_FEAT_" class="sref">__SCHED_FEAT_
/a>##namt) * 
a href="+code=enabled" class="sref">enabled
/a> | >134
/a> >135
/a>
a href="+code=const_debug" class="sref">const_debug
/a> unsigned int>
a href="+code=sysctl_sched_features" class="sref">sysctl_sched_features
/a> = >136
/a>#include "features.h
/a>" >137
/a>        0; >138
/a> >139
/a>#undef>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a> >140
/a> >141
/a>#ifdef>
a href="+code=CONFIG_SCHED_DEBUG" class="sref">CONFIG_SCHED_DEBUG
/a> >142
/a>#define>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a>(
a href="+code=namt" class="sref">name
/a>,>
a href="+code=enabled" class="sref">enabled
/a>)       \ >143
/a>        #namt , >144
/a> >145
/a>static const char * const 
a href="+code=sched_feat_namts" class="sref">sched_feat_namts
/a>[] =>{ >146
/a>#include "features.h
/a>" >147
/a>}; >148
/a> >149
/a>#undef>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a> >150
/a> >151
/a>static int>
a href="+code=sched_feat_show" class="sref">sched_feat_show
/a>(struct>
a href="+code=seq_file" class="sref">seq_file
/a> *
a href="+code=m" class="sref">m
/a>,>void>*
a href="+code=v" class="sref">v
/a>) >152
/a>{ >153
/a>        int>
a href="+code=i" class="sref">i
/a>; >154
/a> >155
/a>        for (
a href="+code=i" class="sref">i
/a> =>0; 
a href="+code=i" class="sref">i
/a> < 
a href="+code=__SCHED_FEAT_NR" class="sref">__SCHED_FEAT_NR
/a>; 
a href="+code=i" class="sref">i
/a>++) { >156
/a>                if (!(
a href="+code=sysctl_sched_features" class="sref">sysctl_sched_features
/a> & (1UL << 
a href="+code=i" class="sref">i
/a>))) >157
/a>                        
a href="+code=seq_puts" class="sref">seq_puts
/a>(
a href="+code=m" class="sref">m
/a>,>
spa
 class="string">"NO_">158
/a>                
a href="+code=seq_printf" class="sref">seq_printf
/a>(
a href="+code=m" class="sref">m
/a>,>
spa
 class="string">"%s "
a href="+code=sched_feat_namts" class="sref">sched_feat_namts
/a>[
a href="+code=i" class="sref">i
/a>]); >159
/a>        } >160
/a>        
a href="+code=seq_puts" class="sref">seq_puts
/a>(
a href="+code=m" class="sref">m
/a>,>
spa
 class="string">"\n">161
/a> >162
/a>        return 0; >163
/a>} >164
/a> >165
/a>#ifdef>
a href="+code=HAVE_JUMP_LABEL" class="sref">HAVE_JUMP_LABEL
/a> >166
/a> >167
/a>#define>
a href="+code=jump_label_key__true" class="sref">jump_label_key__true
/a>  
a href="+code=STATIC_KEY_INIT_TRUE" class="sref">STATIC_KEY_INIT_TRUE
/a> >168
/a>#define>
a href="+code=jump_label_key__false" class="sref">jump_label_key__false
/a>>
a href="+code=STATIC_KEY_INIT_FALSE" class="sref">STATIC_KEY_INIT_FALSE
/a> >169
/a> >170
/a>#define>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a>(
a href="+code=namt" class="sref">name
/a>,>
a href="+code=enabled" class="sref">enabled
/a>)       \ >171
/a>        
a href="+code=jump_label_key__" class="sref">jump_label_key__
/a>##enabled , >172
/a> >173
/a>struct>
a href="+code=static_key" class="sref">static_key
/a>>
a href="+code=sched_feat_keys" class="sref">sched_feat_keys
/a>[
a href="+code=__SCHED_FEAT_NR" class="sref">__SCHED_FEAT_NR
/a>] =>{ >174
/a>#include "features.h
/a>" >175
/a>}; >176
/a> >177
/a>#undef>
a href="+code=SCHED_FEAT" class="sref">SCHED_FEAT
/a> >178
/a> >179
/a>static void>
a href="+code=sched_feat_disable" class="sref">sched_feat_disable
/a>(int>
a href="+code=i" class="sref">i
/a>) >180
/a>{ >181
/a>        if (
a href="+code=static_key_enabled" class="sref">static_key_enabled
/a>(&
a href="+code=sched_feat_keys" class="sref">sched_feat_keys
/a>[
a href="+code=i" class="sref">i
/a>])) >182
/a>                
a href="+code=static_key_slow_dec" class="sref">static_key_slow_dec
/a>(&
a href="+code=sched_feat_keys" class="sref">sched_feat_keys
/a>[
a href="+code=i" class="sref">i
/a>]); >183
/a>} >184
/a> >185
/a>static void>
a href="+code=sched_feat_enable" class="sref">sched_feat_enable
/a>(int>
a href="+code=i" class="sref">i
/a>) >186
/a>{ >187
/a>        if (!
a href="+code=static_key_enabled" class="sref">static_key_enabled
/a>(&
a href="+code=sched_feat_keys" class="sref">sched_feat_keys
/a>[
a href="+code=i" class="sref">i
/a>])) >188
/a>                
a href="+code=static_key_slow_inc" class="sref">static_key_slow_inc
/a>(&
a href="+code=sched_feat_keys" class="sref">sched_feat_keys
/a>[
a href="+code=i" class="sref">i
/a>]); >189
/a>} >190
/a>#else >191
/a>static void>
a href="+code=sched_feat_disable" class="sref">sched_feat_disable
/a>(int>
a href="+code=i" class="sref">i
/a>) { }; >192
/a>static void>
a href="+code=sched_feat_enable" class="sref">sched_feat_enable
/a>(int>
a href="+code=i" class="sref">i
/a>) { }; >193
/a>#endif 
spa
 class="comment">/* HAVE_JUMP_LABEL */
/spa
	 >194
/a> >195
/a>static 
a href="+code=ssize_t" class="sref">ssize_t
/a> >196
/a>
a href="+code=sched_feat_write" class="sref">sched_feat_write
/a>(struct>
a href="+code=file" class="sref">file
/a> *
a href="+code=filp" class="sref">filp
/a>,>const char 
a href="+code=__user" class="sref">__user
/a> *
a href="+code=ubuf" class="sref">ubuf
/a>, >197
/a>                
a href="+code=size_t" class="sref">size_t
/a> 
a href="+code=cnt" class="sref">cnt
/a>,>
a href="+code=loff_t" class="sref">loff_t
/a> *
a href="+code=ppos" class="sref">ppos
/a>) >198
/a>{ >199
/a>        char 
a href="+code=buf" class="sref">buf
/a>[64]; >200
/a>        char *
a href="+code=cmp" class="sref">cmp
/a>; >201
/a>        int>
a href="+code=neg" class="sref">neg
/a> =>0; >202
/a>        int>
a href="+code=i" class="sref">i
/a>; >203
/a> >204
/a>        if (
a href="+code=cnt" class="sref">cnt
/a> >>63) >205
/a>                
a href="+code=cnt" class="sref">cnt
/a> =>63; >206
/a> >207
/a>        if (
a href="+code=copy_from_user" class="sref">copy_from_user
/a>(&
a href="+code=buf" class="sref">buf
/a>,>
a href="+code=ubuf" class="sref">ubuf
/a>, 
a href="+code=cnt" class="sref">cnt
/a>)) >208
/a>                return -
a href="+code=EFAULT" class="sref">EFAULT
/a>; >209
/a> >210
/a>        
a href="+code=buf" class="sref">buf
/a>[
a href="+code=cnt" class="sref">cnt
/a>] =>0; >211
/a>        
a href="+code=cmp" class="sref">cmp
/a> =>
a href="+code=strstrip" class="sref">strstrip
/a>(
a href="+code=buf" class="sref">buf
/a>); >212
/a> >213
/a>        if (
a href="+code=strncmp" class="sref">strncmp
/a>(
a href="+code=cmp" class="sref">cmp
/a>,>
spa
 class="string">"NO_"0) { >214
/a>                
a href="+code=neg" class="sref">neg
/a> =>1; >215
/a>                
a href="+code=cmp" class="sref">cmp
/a> += 3; >216
/a>        } >217
/a> >218
/a>        for (
a href="+code=i" class="sref">i
/a> =>0; 
a href="+code=i" class="sref">i
/a> < 
a href="+code=__SCHED_FEAT_NR" class="sref">__SCHED_FEAT_NR
/a>; 
a href="+code=i" class="sref">i
/a>++) { >219
/a>                if (
a href="+code=strcmp" class="sref">strcmp
/a>(
a href="+code=cmp" class="sref">cmp
/a>,>
a href="+code=sched_feat_namts" class="sref">sched_feat_namts
/a>[
a href="+code=i" class="sref">i
/a>]) ==>0) { >220
/a>                        if (
a href="+code=neg" class="sref">neg
/a>) { >221
/a>                                
a href="+code=sysctl_sched_features" class="sref">sysctl_sched_features
/a> &= ~(1UL << 
a href="+code=i" class="sref">i
/a>); >222
/a>                                
a href="+code=sched_feat_disable" class="sref">sched_feat_disable
/a>(h="+code=neg" class="sref">neg
/a> =>1; neg
/a>) { >221
/a>                                
a href="+code=sysctl_sched_features" class|=f">sysctl_sched_features
/a> & (1UL << 
a +code=neg" class="sref">neg
/a> =>; >222
/a>                        ic void>
a href="+code=sched_feat_enable" c_features
/a> & (1UL << 
a +code=neg" class="sref">neg
/a> =>; neg
/a> =>} > 98
/a>                        bre2a> neg
/a> =>{ >159
/a>      2
	 >150
2
	 >18
/a>        for (
a h="+code=cmp" clas="sref">i
/a> < 
a href="+code=__SCHED_FEAT_NR="+code=cnt" class="sref">cnt
/a>a> >208
/a>      INVAfdef>
a href="+c INVAf"+code=EFAULT" class="sref">EFAULT
/a \ >203
/ | loff_t
/a> *
a href=code=clock" class="ass="sref">buf
/a>[
a hrede=EFAULT" class="sref">EFAULT
/a ; >115
2 = buf
/a>[
a hrede=EFAULT" class="sref">EFAULT
/a } >159
/a>      2
> >138
2a> >151
/a>staopend>
a href="+code=sched_feaopenite" class="sref">sched_feain_fe8
/a>        forn_fe"+code=loff_t" class=in_fe8
/a>        forn_fe"+co, class="sref">sched_feat_write
/a>(struct>
a href="+code=file" class="sref">file
/a> *
a href=="+code=cnt" class="sref">cnt
/a>a> >180
/2a>  &s="sref">file
/a> *
a href="+e" namtioL151">>151
/a>static int>
a href="+code=sched_feat_show"+e" namtioL151">NULfdef>
a href="+cNULf; 
a +code=neg" class="sref">neg
/a> =a> >159
/a>      2 \ >203
/ , sched_feat_wraoperlasohref="+code=__hrtt_wraoperlasohr"+code=size_t" classode=sched_ffopa>,>
a href="+code=sched_fefopa (
a hr class="line" namtioL180">>180
/2a; 
a href="+codopenle" s="line" naode=delta" class="sref"a>staopend>
a href="+code=sched_feaopenite""+code=ubuf" class="sref">ubuf
/2>{ 196
/a>
a href="+coat_write"="line" naode=delta" class="sref"a>sta>196
/a>
a href="+code=sched_feat_write""+code=ubuf" class="sref">ubuf
/2>} > (!
a href="+code>> (le" s="line" naode=delta" class="esa/i (!
a href="+code"esa/i (ite""+code=ubuf" class="sref">ubuf
/2>> ubuf
/2>> >lea
a href="+code=ju>>lea
a215" class="ode=delta" class="inglea>>lea
a href="+code=ju"inglea>>lea
aite""+code=ubuf" class="sref">ubuf
/2a> i
/a>) {2a> >161
2>) >151
/x/ini135">>135
/a>
a href>151
/x/ini135">le" c"lin="+code=cnt" class="sref">cnt
/a>>{ >180
/2>; fs_c/i teshow
/a>(struct>
a h135">fs_c/i teshow
le" c_+code=cmp" class="sref">cmhed_features" a>,>
spa
 class0644"+e" namtioL151">NULfdef>
a href="+cNULf; 
a"+e" namtioL151">NULfdef>
a href="+cNULf; 
a"class="line" namtioL180">>180
/2>; static_key_slow_inc
/fopa>,>
a href="+code=sched_fefopa (
a +code=neg" class="sref">neg
/a> = { >206
/)) >162
/a>        return2); >159
/a>      2);  &>151
/x/ini135">>135
/a>
a href>151
/x/ini135">le"  +code=neg" class="sref">neg
/a> = } >193
/=CONFIG_SCHED_DEBUclass="comment">/* HAVE_JUMP_LABEL */
/sp2); >161
2a> >128
/a>
spa
 class="comment">/*
/sp20; >128
/a>
spa
 class="comment">/*
/sp20; >128
/a>
spa
 class="comment">/*
/sp20; >13
spa
 class="comment"> */
/sp2a> >135
/a>
a href="+code=const_debug" class="sref">const_debug
/a> unsignenr_migr->
a href="+code
/a> unsignenr_migr-&g (
a hr32+code=neg" class="sref">neg
/a> = ) >217
/a> >128
/a>
spa
 class="comment">/*
/sp2a> >128
/a>
spa
 class="comment">/*
/sp2a> >128
/a>
spa
 class="comment">/*
/sp2 \ >128
/a>
spa
 class="comment">/*
/sp2 >  * Debugging: various feature bits
/sp2a> >13
spa
 class="comment"> */
/sp2>{ >135
/a>
a href="+code=const_debug" class="sref">const_debug
/a> unsignef="+cav>>135
/a>
a href>
/a> unsignef="+cav> href="+code=cmp" clasMSECHAREDSEC>135
/a>
a hrefMSECHAREDSEC hrede=EFAULT" class="sref">EFAULT
/at; >115
2}; >128
/a>
spa
 class="comment">/*
/sp2a> >128
/a>
spa
 class="comment">/*
/sp2 >  * Debugging: various feature bits
/sp2a> >13
spa
 class="comment"> */
/sp2>) const_debug
/a> unsignert_ss="sref">now
/a>,>
ag
/a> unsignert_ss="sr href="+000000de=EFAULT" class="sref">EFAULT
/a>{ >161
2)) struct>
a hre_a/i (_mostl/215" "line" namtioL151">>151
uler_runns="s135
/a>
a href>151
uler_runns=" hrede=EFAULT" class="sref">EFAULT
/a); > 83
2>} >128
/a>
spa
 class="comment">/*
/sp2a> >128
/a>
spa
 class="comment">/*
/sp2>)  * Debugging: various feature bits
/sp2>{ >13
spa
 class="comment"> */
/sp2>> const_debug
/a> unsignert_run> =>
a href="+code=g
/a> unsignert_run> => href="950000de=EFAULT" class="sref">EFAULT
/a>> >209
/>} > 90
2se >161
2}; >128
/a>
spa
 class="comment">/*
/sp2}; >128
/a>
spa
 class="comment">/*
/sp2
	 >13
spa
 class="comment"> */
/sp2a>         fornhed/ href class="sref">update_rq_clock
/a>(struct>
a href="+code=rq" cl_task"rq_cock_a>struct>
a hre_aask"rq_cock_ite" class="sref">sched_feaask"rclass=a>struct>
a hreask"rclass=
a href="+code=rq" clsref">file
/a> *href=="+code=cnt" class="sref">cnt
/a>a>  =>
a href="+code=_tacqu> =>le" c_features
/a> &4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"="+code=cnt" class="sref">cnt
/a>a{ >117
/2>) update_rq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/a>{ > 99
3]; now
/a>,>
aock_dep_el/ert_helrle" css="sref">static_keysref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le"  +code=neg" class="sref">neg
/a> 3>; >161
30; > 96
/a>        for (;;3>; >103
q_clock
/a>(struct>
a hr="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a hsref">__hrtimer_sref">file
/a> *href==+code=neg" class="sref">neg
/a> 3>4 >104
raw_spincock_a>struct>
a hreraw_spincock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3>5 >likel/a>struct>
a hrelikel/le" c_features
/a> &4">>124
/a>        
a h h="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a hsref">__hrtimer_sref">file
/a> *href==f="+code=cnt" class="sref">cnt
/a33; rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/3a> >104
raw_spincunock_a>struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3>8 >108
/a>      3>; >109
/3a> >110
30; >128
/a>
spa
 class="comment">/*
/sp3); >128
/a>
spa
 class="comment">/*
/sp3a> >13
spa
 class="comment"> */
/sp3 { update_rq_clock
/a>(struct>
a href="+code=rq" clask"rq_cock_a>struct>
a hreask"rq_cock_ite" class="sref">sched_feaask"rclass=a>struct>
a hreask"rclass=
a href="+code=rq" clsref">file
/a> *href=,ebug" claslong"+code=file" classlagref="+code=__hrttlagrite"="+code=cnt" class="sref">cnt
/a31;  =>
a href="+code=_tacqu> =>le" c_features
/a> &sref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le"  "+code=cnt" class="sref">cnt
/a31;  =>
a href="+code=_tacqu> =>le" c_features
/a> &4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"="+code=cnt" class="sref">cnt
/a3 } >117
/3a> update_rq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/3 { >119
3 { > 96
/a>        for (;;3 { >104
raw_spincock__irqsava href="+code=ju>aw_spincock__irqsavale" css="sref">static_keysref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le" ,"+code=file" classlagref="+code=__hrttlagrite"=de=EFAULT" class="sref">EFAULT
/3); >103
q_clock
/a>(struct>
a hr="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a hsref">__hrtimer_sref">file
/a> *href==+code=neg" class="sref">neg
/a> 3>1; >104
raw_spincock_a>struct>
a hreraw_spincock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3 { >likel/a>struct>
a hrelikel/le" c_features
/a> &4">>124
/a>        
a h h="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a hsref">__hrtimer_sref">file
/a> *href==f="+code=cnt" class="sref">cnt
/a3>; rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/3>; >104
raw_spincunock_a>struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3>} >104
raw_spincunock__irq =>teg
a>struct>
a hreraw_spincunock__irq =>teg
le" css="sref">static_keysref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le" ,"+code=file" classlagref="+code=__hrttlagrite"=de=EFAULT" class="sref">EFAULT
/3)> >108
/a>      3>{ >109
/3
	 >150
3
	 >_aask"rq_cunock_a>struct>
a hre_aask"rq_cunock_ite" class="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a h="+code=cnt" class="sref">cnt
/a3a> 
a href="+code=_t/ilea
a>le" c_features
/a> &4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"="+code=cnt" class="sref">cnt
/a3 \ >180
/3 | struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3 ; >109
/3
; >206
3 }         fornhed/ href"lin class="line" namtioL206">>206
3 > struct>
a hreask"rq_cunock_ite" class="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a h, class="sref">sched_feaask"rclass=a>struct>
a hreask"rclass=
a href="+code=rq" clsref">file
/a> *href=,ebug" claslong"+code=file" classlagref="+code=__hrttlagrite"="+code=cnt" class="sref">cnt
/a3a> 
a href="+code=_t/ilea
a>le" c_features
/a> &4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"="+code=cnt" class="sref">cnt
/a3a> 
a href="+code=_t/ilea
a>le" c_features
/a> &sref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le"  "+code=cnt" class="sref">cnt
/a3a> >180
/3a> struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3 \ >104
raw_spincunock__irq =>teg
a>struct>
a hreraw_spincunock__irq =>teg
le" css="sref">static_keysref">file
/a> *href=ref="+code=rq" classpicock_a>struct>
a hrepicock_le" ,"+code=file" classlagref="+code=__hrttlagrite"=de=EFAULT" class="sref">EFAULa> 3 | >109
/3a; >115
3>{ >128
/a>
spa
 class="comment">/*
/sp3>} >128
/a>
spa
 class="comment">/*
/sp3>> >13
spa
 class="comment"> */
/sp3>> update_rq_clock
/a>(struct>
a href="+code=rq" clahisrq_cock_a>struct>
a hreahisrq_cock_le" c"lin="+code=cnt" class="sref">cnt
/a3a>  =>
a href="+code=_tacqu> =>le" c_features
/a> &4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"="+code=cnt" class="sref">cnt
/a3a> >180
/3>) update_rq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/3>{ > 83
3>; EFAULa> 3>; (struct>
a hr="+code=cmp" clasahisrq_a>struct>
a hreahisrq_le" c=de=EFAULT" class="sref">EFAULa> 3>{ struct>
a hreraw_spincock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3)) >217
3); rq
/a> *
a hde=EFAULT" class="sref">EFAULT
/3); >109
/3 } >150
3); rq
/a>=CONFIG_SCHEDHRTICK150" class="line" namtioL150">>150
3)) >128
/a>
spa
 class="comment">/*
/sp30;  =>rs to deliver accurlae preempasoh po"lis.">>128
/a>
spa
 class="comment">/*
/sp30; >128
/a>
spa
 class="comment">/*
/sp30; >128
/a>
spa
 class="comment">/*
/sp30{ >128
/a>
spa
 class="comment">/*
/sp30) 151
ule evtio.">>128
/a>
spa
 class="comment">/*
/sp30; >128
/a>
spa
 class="comment">/*
/sp30; 151
uled we reprogram ahe sptik__> =>r outside of ahe">>128
/a>
spa
 class="comment">/*
/sp3a> >128
/a>
spa
 class="comment">/*
/sp3a; >13
spa
 class="comment"> */
/sp3 > >172
3a> >sptik__clea  if (
a href="+sptik__clea ite" class="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a h="+code=cnt" class="sref">cnt
/a3>{ >180
/3t; >spti=>rtactiva href="+code=juspti=>rtactivale" css="sref">static_key4">>124
/a>        
a href="+code=rq" classsptik__> =>r if (
a href="+sptik__> =>rref==fclass="line" namtioL180">>180
/3t{ >104
spti=>rtcancela href="+code=uspti=>rtcancelle" css="sref">static_key4">>124
/a>        
a href="+code=rq" classsptik__> =>r if (
a href="+sptik__> =>rref==de=EFAULT" class="sref">EFAULT
/3a> >159
/a>      3 > >178
3a> >128
/a>
spa
 class="comment">/*
/sp3>) oluasoh > =>r tik_.">>128
/a>
spa
 class="comment">/*
/sp3>{ >128
/a>
spa
 class="comment">/*
/sp3)) >13
spa
 class="comment"> */
/sp3); >104
spti=>rt =>tar=a>struct>
a hrespti=>rt =>tar=156" +code=rq" classsptik_ if (
a href="+sptik_ite" class="sref">sched_feaspti=>ra>struct>
a hrespti=>r
a href="+code=rq" clai=>ra>struct>
a hre> =>rref==a>
spa
 class="comment"> */
/sp3){ >180
/3a> sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a hr="+code=cmp" clascodtaed/r_oef">strstrip
/a>codtaed/r_oele" c_features
/a> &ai=>ra>struct>
a hre> =>rref=, class="sref">sched_feaass="sref">rq
/a> *
a h, +code=rq" classsptik__> =>r if (
a href="+sptik__> =>rref==de=EFAULT" class="sref">EFAULT
/3>) >206
3>{  &cpu_oef">strstrip
/a>cpu_oele" c_features
/a> &4">>124
/a>        
a h) !ode=delta" class="mp_processor_iref">now
/a>,>
agmp_processor_irle" c==de=EFAULT" class="sref">EFAULT
/3>> >178
3>> struct>
a hreraw_spincock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3>} struct>
a hreupd tesrq_clck_le" c_features
/a> &4">>124
/a>        
a h)+code=neg" class="sref">neg
/a> 3>{ >124
/a>        
a href="+code=rq" classcur  if (
a href="+cur 
a href="+code=rq" classnsignef (
aef">now
/a>,>
agsignef (
a
a href="+code=rq" classask"rtik_ if (
a href="+ask"rtik_le" c_features
/a> &4">>124
/a>        
a h, +code=rq" class4">>124
/a>        
a href="+code=rq" classcur  if (
a href="+cur 
a h, 1)+code=neg" class="sref">neg
/a> 3>) struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 3}; > 83
3
	 EFAULT
/3a> >109
/3a> >206
3a{ rq
/a>=CONFIG_MP206" class="line" namtioL206">>206
3a> >128
/a>
spa
 class="comment">/*
/sp3>{ >128
/a>
spa
 class="comment">/*
/sp4]; >13
spa
 class="comment"> */
/sp4>; >_asptik__>tar=a>struct>
a hre_asptik__>tar=le" c"linref="+code=rq" clar"s135
/a>
a hrefar"ref==a>
spa
 class="comment"> */
/sp40; >180
/4>; sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a hr="+code=cmp" clasar"s135
/a>
a hrefar"ref=de=EFAULT" class="sref">EFAULT
/4>4 EFAULT
/4>5 struct>
a hreraw_spincock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 43; rt =>tar=a>struct>
a hrespti=>rt =>tar=156"css="sref">static_key4">>124
/a>        
a href="+code=rq" classsptik__> =>r if (
a href="+sptik__> =>rref==de=EFAULT" class="sref">EFAULT
/4a> >124
/a>        
a href="+code=rq" classsptik__csd_pclas="s135
/a>
a hrefsptik__csd_pclas="
a hr="0de=EFAULT" class="sref">EFAULT
/4>8 struct>
a hreraw_spincunock_le" css="sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreock_ite"=+code=neg" class="sref">neg
/a> 4>; >109
/4a> >110
40; >128
/a>
spa
 class="comment">/*
/sp4);  =>r "tlae.">>128
/a>
spa
 class="comment">/*
/sp4a> >128
/a>
spa
 class="comment">/*
/sp4a4 >128
/a>
spa
 class="comment">/*
/sp4a5 >13
spa
 class="comment"> */
/sp41; >sptik__>tar=a>struct>
a hresptik__>tar=le" cclass="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a h, line" namtioL21u="kernel/sc
a hreuoL164""line" namtioL1213la/a>struct>
a hre13la/ref==a>
spa
 class="comment"> */
/sp4 } >117
/4a> update_rspti=>ra>struct>
a hrespti=>r
a href="+code=rq" clai=>ra>struct>
a hre> =>rref=r="ss="sref">static_key4">>124
/a>        
a href="+code=rq" classsptik__> =>r if (
a href="+sptik__> =>rref=+code=neg" class="sref">neg
/a> 4 {  =>
a href="+code=> => href=" class="line" nkf="+cadd_href="+code=__hrtkf="+cadd_hrle" c_features
/a> &ai=>ra>struct>
a hre> =>rref=ref="+code=rq" classba
a href="+code=juba
aite"ref="+code=rq" classget_> =>
a href="+code=get_> =>le" c=, line" namtioL2113la/a>struct>
a hre13la/ref==+code=neg" class="sref">neg
/a> 4 { >110
4 { rtset_exp> =>
a href="+code=spti=>rtset_exp> =>le" c_features
/a> &ai=>ra>struct>
a hre> =>rref=, line" namtioL12> =>
a href="+code=> => hre=+code=neg" class="sref">neg
/a> 4 ; >172
4>1; >4">>124
/a>        
a h h="+code=cmp" clasahisrq_a>struct>
a hreahisrq_le" c=namtioL96">> 96
/a>        for (;;4 { rt =>tar=a>struct>
a hrespti=>rt =>tar=156"cf="+code=rq" clai=>ra>struct>
a hre> =>rref==+code=neg" class="sref">neg
/a> 4 5 >124
/a>        
a href="+code=rq" classsptik__csd_pclas="s135
/a>
a hrefsptik__csd_pclas="
a hnamtioL96">> 96
/a>        for (;;4 ; >104
__gmp_call_funcasoh_"inglea>struct>
a hre_agmp_call_funcasoh_"inglele" c_features
/a> &cpu_oef">strstrip
/a>cpu_oele" c_features
/a> &4">>124
/a>        
a h),"ss="sref">static_key4">>124
/a>        
a href="+code=rq" classsptik__csds135
/a>
a hrefsptik__csdref=, 0=+code=neg" class="sref">neg
/a> 4 } >104
r">>124
/a>        
a href="+code=rq" classsptik__csd_pclas="s135
/a>
a hrefsptik__csd_pclas="
a hr="1+code=neg" class="sref">neg
/a> 4 > >108
/a>      4>{ >109
/4
	 >150
4
	 >150
4
; sched_feanotifi>rtbock_a>struct>
a hrenotifi>rtbock_
a href="+code=rq" clnfba>struct>
a hrenfbref=, bug" claslong"+code=cmp" clasacasohs135
/a>
a hrefacasohref=, "linref="+code=rq" clhcpu if (
a href="+scpuref==a>
spa
 class="comment"> */
/sp4 \ >180
/4 | const_debucpu if (
a href="+cpuref=r="(s=")(long)f="+code=rq" clhcpu if (
a href="+scpuref=+code=neg" class="sref">neg
/a> 4 ; >115
4
; 
a hrefsptik__csd_pclas="33L206" c4ass="line" namtioL206">>406
3 43>406
3 438a hre4="kerncef=rnel/sched/core.cPU_UP_CANCELED_FROZEN39L117" class="lPU_UP_CANCELED_FROZENa hr:135
/a>
a hrefsptik__csd_pclas="3ass="lineode=cnt" class="sref">cn4
/a3a4 cn4
/a3a4 cn4
/a3a4 >140
/3a4 
e=neg" class="sref">neg
4a> 3 44 >sptikt>
a hre_agmp_call_d42L157" class="lall_d4sptikt>
a hre_agmp_callid43L124" class="s="sr_iref">now
/a>,>
agmp_processor_ir4rite"=de=4FAULT" class="sref">EFAU4a> 3 44>149
/3a4 >415
3>44>128
/a4
spa
 class="comment">/*4/sp3>44/*4/sp3>44>134spa
 class="comment"> */4/sp3>44cn4
/a3a4 15#L142" id43L112" clas &>15#L142"tik__>tar+code=rq" clhcpu if (
a href="+sck_ite"="+4ode=cnt" class="sref">cn4
/a3a4 >140
/3>45sched_f id43L112" class="all_>sched_fsptikt>
a hre_agmp_cd/core.c#L142" id43L112" class="line" nhotplug_sptik__csds135
/a>
a hrefsptik__csdre *
a hde=4FAULT" class="sref">EFAU4T
/3>4 >483
3>4 EFAU4a> 3>45EFAU4a> 3>45 =>r "tlae._ite"=+co4e=neg" class="sref">neg
4a> 3)45>417
3)45EFAU4T
/3)45>149
/3 4 >sptik__>tar=a>struct>
a hresptik__>tar=le" cclass="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a> *
a h, line" namtioL21u="kernel/sc
a hreuoL164""line" namtioL1213la/a>strucnamtioL12945_ite"="+4ass="line" namtioL150">>450
3)46>450
3)46>_rangeode=> => href=" cl#LioL21spti1">>_rangeodert =>tar=a>struct>
a hrespti=>rt =>tar=156"css="sref">static_key4">>124
/a>        
a href="+code=rq" classsptief="+code=rq" clans_to_kstruct>
a hre> =>rrns_to_kstrusptikt>
a hre_agmp_c"kernel/sc
a hreuoL164""line" spt,3="kernel/sched/core.c#L131" id4I*
a hde=4
spa
 class="comment">/*4/sp3046 
a hrefsptik__csdre">>128
/a4
spa
 class="comment">/*4/sp3046>128
/a4
spa
 class="comment">/*4/sp3046>128
/a4
spa
 class="comment">/*4/sp304 15#L142" id43L112" clas &>15#L142"tik__>tar+code=rq" clhcpu if (
a href="+sc">>128
/a4
spa
 class="comment">/*4/sp3046>128
/a4
spa
 class="comment">/*4/sp3046>128
/a4
spa
 class="comment">/*4/sp304 >128
/a4
spa
 class="comment">/*4/sp3a47>128
/a4
spa
 class="comment">/*4/sp3a4715rq5#L142"sptik__>tar=a>struct>
a hresptik__>tar=le" cclass="sref">sched_feaq_clock
/a>(struct>
a hr+code=rq" clhcpu if (
a href="+sc>>134spa
 class="comment"> */4/sp3 47>472
3a4 rq
/a>=CONFI4 *
a h="+4ode=cnt" class="sref">cn4
/a3>47>124
/a>        
a href="+code=rq" classsptik__csd_pclas="s135
/a>
a hrefsptik__csd_pclas="
aoL174" cl4ss="line" namtioL180">>140
/3t4 >140
/3t47static_key4">>124
/a>        
a href="+code=rq" class.>static_key4">>uct>
a hrepicock_le" ,"+code=="s135
/a>
a hrefsptik__csd_pclas="
ao>>128
/a4FAULT" class="sref">EFAU4T
/3a47>124
/a>        
a href="+code=rq" class.>static_key4">>uunca hrepicock_le" unc"line" namtioL12> =>
a1" id40L191" class="line" namtioL191">>_asptik_35
/a>
a hrefsptik__csd_pclas="
ao>>128
/a4" namtioL159">>159
/a>  4   3 47>124
/a>        
a href="+code=rq" class.>static_key4">>info id43L112" clas &fo"line" namtioL12> =>
aid3oL158" class="line" nf="+code=rq" class="sref">rq
/a43oL178" c4ass="line" namtioL178">>478
3a47rq
/a4">>128
/a4
spa
 class="comment">/*4/sp3>48>128
/a4
spa
 class="comment">/*4/sp3>48tar=a>struct>
a hrespti=>rt =>tar=156"css="sref">static_key4">>124
/a>        
a href="+code=rq" classsptief="+code=rq" claCLOCKHMONOTONIC39L117" class="lLOCKHMONOTONICsptief="+code=rq" cla=rq" clHMODE_REL39L117" class="=rq" clHMODE_REL="+code=rq" clai=>ra>struct>
a hre> =>">>128
/a4
spa
 class="comment">/*4/sp3)48static_key4">>124
/a>        
a href="+code=rq" classspti.>static_key4">>uuncL156" class="msre4cuuncL156"line" namtioL12> =>
a hrespti=>rt =>tar=156" +code=rde=rq" clai=>ra>struct>
a hre> =>"oL172" c4spa
 class="comment"> */4/sp3)48rref==a>4spa
 class="comment"> */4/sp3)48>140
/3a48>sptik__clea  if (
a href="+sptik__clea ite" class="sref">sched_feaq_clock
/a>(struct>
a href="+code=rq" class="sref">rq
/a4rref==de=4FAULT" class="sref">EFAU4T
/3>4 >406
3>48EFAU4T
/3>4 >478
3>489a hre2="kernel/sched/core.c#L125" id2oL195" class="line" nnel/sched/core.c#L13 &>15rq5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hresptik__>tar=le" cclass="sref">sched_feaq_clock
/a>(struct>
a hr+code=rq" clhcpu if (
a href="+sc_ite"=+co4e=neg" class="sref">neg
4a> 3>4 neg
4a> 3>4 neg
4a> 3>49neg
4a> 3}493a hre2="kernel/sched/core.c#L125" id2oL195" class="line" nnel/sched/core.c#L13 &>15#L142" id43L112" clas &>15#L142"tik__>tar+code=rq" clhcpu if (
a href="+sc39ioL83" 4lass="line" namtioL83">>483
3
49EFAU4T
/3a4 >149
/3a4 >406
3a49>406
3a4 >128
/a4
spa
 class="comment">/*4/sp3>4 >128
/a5
spa
 class="comment">/*5/sp4]5 128
/a5
=neg" class="sref">neg
5/sp4>505spa
 class="comment"> */5/sp40505s=neg" class="sref">neg
50
/4>505sass="line" namtioL83">>5T
/4>50EFAU5T
/4>5 rq
/a>=CONFI5_ite"=+co5e=neg" class="sref">neg
5a> 4350EFAU5T
/4a50>5T
/4>5 tar=a>struct>
a href="+code=rq"ta hr+ 0e3="kernel/sched/core.c#L136" i5r9ef==de=5Fspa
 class="comment">/*5a> 4>50rq
/a5oL109" cl5ss="line" namtioL109">>159
/4a5 >510
405 (struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclass=a>struct>
a hreask"rclass=
a +code=rq" clhcpu if (
a href="+s5">>128
/a5
spa
 class="comment">/*5/sp4)51>128
/a5
spa
 class="comment">/*5/sp4a51 ra>struct>
a hre> =5">>128
/a5
spa
 class="comment">/*5/sp4a51>128
/a5
spa
 class="comment">/*5/sp4a5 tar=a>struct>
a hres>124
/a>        
a h h="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a sref">static_key4">>124
/a>        
a href="+code=rq" classock_a>struct>
a hreoc5>>135spa
 class="comment"> */5/sp41515spa
 class="comment"> */5/sp4 51        
a h h=est_tsk_neasL9" clas=cmp" clasask"rq_a>struct>
a hreask"rt>
a +code=rq" clhcpu if (
a href="+s5"8ef==de=5ss="line" namtioL117">>157
/4a5 struct>
a hreoc5>9ef==de=5e=neg" class="sref">neg
5a> 4 5 neg
5a> 4 52        
a h hi=>rtsk_neasL9" clas=cmp" clasask"rq_a>struct>
a hreask"rt>
a e=rq" classock_a>struct>
a hreoc542L110" c5ass="line" namtioL110">>510
4 5 struct>
a hreoc54>>128
/a5e=neg" class="sref">neg
5a> 4 52struct>
a hres>124
4" id43L124" class>124
4" =cmp" clasask"rq_a>struct>
a hreask"rt>
a e=rq" classock_a>struct>
a hreoc54>>128
/a5ass="line" namtioL172">>572
4>5;  &4">>124
/a>        
a h) !ode=delta" class="mp_processor_i=rq" classock_a>struct>
a hreoc54>>128
/a5L96">> 96
/a>        for5(;;4 5 struct>
a hreoc5rref==+co5e=neg" class="sref">neg
5a> 4 52> 96
/a>        for5(;;4 5 neg
5a> 4 52rtbock_" clmressor_e=rq" classock_a>struct>
a hreoc5r8ef==de=5e=neg" class="sref">neg
5a> 4 5 tar=a>struct>
atruct>
a hreask"rt>
a +code=rq" clhcpu if (
a href="+s5lass="lin5" namtioL108">>108
/a>  5   4>529a hre4="kernel/schedel/sched/core.c" cls_cs_9" class="enotifi>rtbock_" cls_cs_9" class="a hr>tar=a>struct>
aallid43L124" class="s="sr_e=rq" classock_a>struct>
a hreoc52L109" cl5ss="line" namtioL109">>159
/4
5 >550
4
53struct>
a hreoc5ass=int c5ass="line" namtioL150">>550
4
5 ml/sched/core.c#L144" id43L124" class="s="sr+code=rq" clhcpu if (
a href="+s5puref==a>5spa
 class="comment"> */5/sp4 5 >150
/4 5 sched_feaq_clock
/a>(struct>
a href="+code=rq" classll_d42L157" class="lall_d4sptikt>
a hre_agmp_callid43L124" class="s="sr_e=rq" classock_a>struct>
a hreoc52ref==+co5e=neg" class="sref">neg
5a> 4 53struct>
a hruct>
a hrepicock_le" ,"+code=e=rq" classock_a>struct>
a hreoc52a hnamti5ass="line" namtioL115">>515
4
5 >506
3 53tar=a>struct>
a hrespti=>rt =>tar=156"css="sref">static_key4">>124
/a>        
a href="+coef="+code=rq" clauct>
a hrepicock_le" ,"+code=f+code=rq" clhcpu if (
a href="+s5p8ef==de=5ass="line" namtioL206">>506
3 53struct>
a hreoc53ass="lin5ode=cnt" class="sref">cn5
/a3a5 (struct>" clasL191"sptik"+code=rq" classll_124
/a>        
a hrll_124
sptikt>
a hre_agmp_callid43L124" class="s="sr__e=rq" classock_a>struct>
a hreoc5k_ite"="+5ode=cnt" class="sref">cn5
/a3a5 >104
raw_spincunock__irq =>teg
a>struct>
a hreraw_spincunopti=>rt =>tar=156"css="sref">static_key4">>124
/a>        
a href="+coef="+code=rq" clauct>
a hrepicock_le" ,"+code=fe=rq" classock_a>struct>
a hreoc5k3L150" c5ode=cnt" class="sref">cn5
/a3a54>150
/3a545e=neg" class="sref">neg
5a> 3 54EFAU5a> 3 54>159
/3a54teg busy ="s
 a "migratnce 3oL163L138" id39L128" class="line" namtioL1254a hnamti5ass="line" namtioL115">>515
3>5 >128
/a5
spa
 class="comment">/*5/sp3>5 /*5/sp3>5  */5/sp3>54cn5
/a3a55cn5
/a3a55>150
/3>55tar+code=rq" clhcpu if (
a href="+s5 *
a hde=5FAULT" class="sref">EFAU5T
/3>55>583
3>5  &4">>124
/a>        
a h) !ode=delta" class="mp_processor_e=rq" classock_a>struct>
a hreoc53L114" cl5FAULT" class="sref">EFAU5a> 3>5 struct>
a hreoc5le" c=de=5FAULT" class="sref">EFAU5a> 3>5 sched_feaq       
a href="+ classe=rq" classock_a>struct>
a hreoc5l>>128
/a5e=neg" class="sref">neg
5a> 3)5 >517
3)55struct>
a hreoc53ass="lin5FAULT" class="sref">EFAU5T
/3)55struct>
a hreos="52="kernel5sched/core.c#L129" id27L529" c56ck_a>struct>
struct>
a hreoc53ass="lin5FAULT" _eaihLdomai6" clain5FAULT" _eernel/sched/core.c aAULT" class="sref">EFe4cnel/sched/core.EFAU5a> 3>5 struct>
a hreos="52omtio wrtc
a hreuoL164""line" nam5ioL12561k_a>struct>
struct>
/core.c#L136" i533L206" c5ascomm" _eaihLdomai6" clacomm" _eernel/sched/core.c aAULT" class="sref">EFee=rq" classock_a>struct>
a hreos="52="kernel/L150">>450
3)46>583
3>5 EFAU5a> 3>5 5 EFAULT
re4="kerneAU5a> 3>5 struct>
a hreoc555555555struct>
a hreoc5k3L150" c5ode=cntlass="com5ent">/*4/sp3046/*4/sp3046struct>
struct>
a hreoc5k3L150" c5ode=cntld_feaq    &>15#L142"tik__>tar+cod5=rq" 5sptik__5 EFAULT
re4="kerneel/sched/core.cPU_DEAD_FROZEN39L5lass="com5ent">/*4/sp3046EFAULT
/o5ass="l class4="kernel/sched/core.c#cl_deadd40L215" lass="com5ent">/*4/sp3046>128
/a4
spaspa
 class="comment">/*5/sp4a51 struct>
a hreoc52L109" cl5ss="linclass="co5ment">/*4/sp3a47>128 cl5FAULT" class="sref">EFAU5a> 3 54(struct>
a hr+cod5=rq" 57hardirq=(IPI)=codtex5r"ref==a>>
spa"+c=l/scheon() enqueu.c#aref">cna hrnel/sched/ wheelp4>5aLmight also" class= aLcross-CPUL244"d41Lass="comm5nt"> */4/sp3 47>128
/awhich/sp30"kernel/shrnwak3="ke=cnt"ss="l5ss_pcla4>5a="kernel/scmight also" class= aLcross-CPUL244"d41Laass="com5sptik__csd_pclas="s135
/5>
a h57ass="line" namtioL1254L114" cled/core.c# e
/3a54xtas="co 5spa
 r="cre3=inf5" c/schedna hrnel/might also" class= aLcross-CPUL244"d41Lare.c#L14iL180">>140
/3t4 
a hrepi5ock_le" ,"+code=="s135
/5>
a h57ae preempasoh po"lis5">>128
/ leavesref">inn>cnad/coloop soe
/3a54wlya"+cl/shf">cnasreak"cra hrce "ke4"lencpu wiid3odd mL12i64""l3" cl>ass="com5amtioL191">>_asptik_35
/5>
a h57ae preempasoh po"lis5"8ef==de=accouco w
spa" 3asp40goesrbaFAU4onad/co3)45evaluatesref">156"css "ke4"lencpu wiid3odd mL12i64""l3" cl>ass="com5oL158" class="line" nf="5code=5/sched/core.c#L138" id3oL178
/awheelpre3=
/3a54xtached/ s="co" h"tncpu'sne" namref= may 130 be2upamtioL1785>>478
3a47>128
/+5ode=cnt" class="sref">cn5
/a3a55/*4/sp3>48ml/sched/core." class="5rq" clHMODE_REL="+code=r5" cla58hcpu if (
a href="+s5">>128
/a5
spa
 chrespti=>5t =>tar=156" +code=rde=r5" cla58ched/core.c#L242" id4oL202" class="line" namtioL180">>180
/4>; sched_feaq_clock
/a>(struct>
a href="+code=rq" classll_d42L157" class="lall_d4sptikt>
a hre_agass="comm5nt"> */4/sp3)48>128
/a5
spa
 # line" n5NFIG_SCHEDHc#L129" id27L529" c5sched/core.c#La hreoc54>>128
/a5ass="line" namtioL172">>572
4>5;  &4">>124
/a>        
a h) !oed_feaq_c5ock
/a>(struct>
a href="5code=58refsptik__csd_pclas="p8ef==de=5ass="line" namtioL206">>506
3class="sr5f">EFAU4T
/3>4 >406
3>48>128 cl5FAULT" class="sref">EFAU5a> 3 54EFAU4T
/3>4 >51safeWlina" claref="+co>>51dass="line" ef">156"css "ke4"lencpu wiid3odd mL12i64""l3" cled_feaq_c5ock
/a>(struct>
a hr+cod5=rq" 59ass="line" namtioL128">>128








*Lwheelp5
/a3217">4>5(72")>>417.>>
spa
/3asp40sp3opa
/3awacmight also" class= aLcross-CPUL244"d41Lclass="sr5f">neg
4a> 3>4  */5might also" class= aLcross-CPUL244"d41Lc class="5f">neg
4a> 3>4 3)45eak"e
/3a54wmight also" class= aLcross-CPUL244"d41Lcrespti=>5ef">neg
4a> 3>49cna hrnaccouco automore.assy" h"tncpu'sne" namref= may 130 be2upL112" cla5 &>15#L142"tik__>tar+cod5=rq" 59ass="line" namtioL129">>128








*+5ode=cnt" class="sref">cn5
/a3a55>483
3
49 &4">>124
ARN_ON_ONCEle" c_ferq" classask"rtik_ if (
a href="+ask"rtik_lad/caihLdomai6" clacomm" class9" clasLalla hr>ml/sched/core.class="sr5f">EFAU4T
/3a4 >506
3# line" n5NFIG_SCHEDHc#L129" id27L529" c5ass="line" namtioL129439L206" c4ass="5ine" namt5oL206">>406
3a49>128 cl5FAULT" class="sref">EFAU5a> 3 54>128








*LWioL1nlass=TIFa>       opa
/3aad/cot/*4/4>50EFAU5a> 3 54>128








*L217"ls=".L113aworsts_pclaide=cnt"
/3ao0EFAU5a> 3 54neg
4a> 3>4 128








*Lad/cot/*4/throughss=""+ci"+coal NOOP30"kernel()l5FAULT" class="sref">EFAU5a> 3 54neg
4a> 3>4 cn5
/a3a55neg
5a> 4 52>506
6/core.c#L6cla_as6L12CPU30 Called t6 set 6lasar"s135
/a>
a hrefar"ref=de=EFAULT64="kernel6sched/core.c#L129" id27L629" c6/sched/core.c#L125" i5
a hnamti5L96">> 96
/a>        for5(;;4 5 struct>
a hreock_ite"=+co5e=neg" class="sref">neg
5a> 4 52neg
5a> 4350neg
5a> 4 5 ml/sched/core6ef="+code6rq"tsk_is_poll
a a hre3=6kerne60hcpu if (
a href="+s5a hreock_ite"=+co5e108">>108
/a>  5   4>529a hre4="kernel/schedel/sched/core.c" cls_cs_9" class="enotifi>rtbock_" cls_cs_9" class="a hr>tar=a>stru6ruct>
a h6ef="+code=rq"ta hr+ 0e3=6kerne6ock_a>struct>
a hreock_ite"=+code=neg"6"comment"6/*5a> 4>50rq
/a5oL109" cl5ss="l6ne" namti6L109">>159
/4a5 neg
4a> ef="+ask"rtik_lboolneg" class="srebool
4a> ef="+ask"rtik_lgo5struct6
a hreask"rclass=
a +cod6=rq" 6lhcpu if (
a href="+s5">>128
/a5
spa
 6lass="com6ent">/*5/sp4)51>128
/a5
spa
 class="comment">/*5/3
3>5  &4">>124
/a>        
a h) !6c#L144" i643L124" class="s="srde=r6" cla61ck_a>struct>
L136" i4">>128
/a4
spacomm" _eaihLdomai6" clacomm" _eernel/sched/core.c a" class="enotifi>rtbock_" soh_"ioh_"i5a> 4 52/*"4="kblaernel/sched/core.c aNOHZ_BALf=rn_KICEFAU4a> 3 44EFe4cnel/sched/corea hrmref">static_key4">>1a hrmref">ernel/sched/core.c a" class="enotifi>rtbock_" s
/a> &4">>124
/a>        
a h) !6c="kernel6ment">/*5/sp4a51>124
/a>6       
a href="+code=rq6 clas6ock_a>struct>
a hreoc5>>135spa
 6lass="com6ent"> */5/sp4151st6uct>
a hreask"rt>
a +cod6=rq" 61ched/core.c#L137" id4e" c==de=4FAULT6a5 >478
ef="+ask"rtik_lboolneg" class="srebool
4a> ef="+ask"rtik_lgo5neg
5a> 4 5 st6uct>
a hreask"rt>
a e=rq6 clas6/sched/core.c#L136" i4">>128
/a4
spafald_href="+code=__hfald_/*5/sp4a51 >510
4 5 core.c#L134" id4R 
a hde=4FAULT"6k"rq_a>st6uct>
a hreask"rt>
a e=rq6 clas6ock_a>ore.c#L134" id4R 
a hde=4FAULT"6k#L144" i6class="mp_processor_i=rq6 clas62ched/core.c#L128" id4">>128
/a4
spa
 class="54neg
5a> 4 52>13 EFAU5a> 3>5 15rq5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hresptik__>tar=le" cclass="sref">sc6efL12ine"6est poll
a c#L129" id27L629" c62hcpu if (
a href="+sc">>128
/a4
spa
 6lmrenotif6>rtbock_" clmressor_e=rq6 clas62sched/core.c#L137" i5_hr="1+slass="sref">schedsfeaq_clock
/a>(struct>perioc#L144" id43L124perioc/*5/3
3>5  &4">>124
/a>        
a h) !6truct>
at6uct>
a hreask"rt>
a +cod6=rq" 62ck_a>struct>
a hreoc5>9ef==de=5e=neg6t>
aallid63L124" class="s="sr_e=rq6 clas63ck_a>struct>
whia h(l/sched/core.c a.lass="sref">schedsfeaq_c)reoc54>>128
/a5arq" classask"rtik_ if (
a href="+ask"rtik_lelass="sref">EFAULT
c_sptik_ i-_ON_ONCEle" c_ferq" classask"rtik_ if (
a href="+ask"rtik_lage uncmtsk_is_poll
a hrage uncmtck_" so hrlock
/a>(struct>perioc#L144" id43L124perioc/*5/e=rq" classock_a>struct>
a hreos="6e" namtio6109">>159
/4
5 >128 cl5FAULT" class="sref">EFAU5a> 3 54>550
4
53 =coembly#L1quirl/shrnprs="co 
/3a"keria css "ke4"lencpu wiid3odd mL12i64""l3" c6c#L144" i643L124" class="s="sr+cod6=rq" 63hardirq=(IPI)=codtex5r3ref==















*L*5/sp3se.c#L claloop a hrna divmod1dass" h"tncpu'sne" namref= may 130 be2u6ass="comm6nt"> */5/sp4 5 >128
















*LSee __iter_div_u64/scm()pre3=ano050
a h6epicock_le" ,"+code=e=rq6 clas63refsptik__csd_pclas="asm(line" namtioLche"sre>""/core.c : line" namtioLche"sre>"+rm"/core.c reoc54>>128
/a5arq" classask"rtik_ if (
a href="+ask"rtik_lage uncmtsk_is_poll
a hrage uncmtck_" s
/a> &4">>124
/a>        
a h) !6ine" namt6oL115">>515
4
5 
a hrefsptik__csdref=, 0=+code=neg" class="sref">neg
/a> 4 } 5  &4">>124
/a>        
a h) !6imrenotif6picock_le" ,"+code=f+cod6=rq" 6lhcpu if (
a href="+s5f=, 0=+code=neg" class="sref">neg
/a> 4 } negtravgcpu i/= 2
/a> &4">>124
/a>        
a h) !6iruct>
at6="kerne2="kernel/sche=rq6 clas6ock_a>struct>
core.c#L134" id4R 
a hde=4FAULT"6p_callid46L124" class="s="sr__e=rq6 clas64ck_a>struct>
a hreoc52L109" cl5ss="li6uct>
a hr6picock_le" ,"+code=fe=rq6 clas64ched/core.c#L135" id543L150" c5ass="6" class="6ref">cn5
/a3a54/*4/sp304 >150
/3a54>510
405 (struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclas639L117" c6ass="line" nNO_HZa hre4=6kerne64hcpu if (
a href="+sc39ioL83" 4lass="6e4="kerne6/sched/core.c#L138" id396128" 6lhcpu if (
a ha hre4="kernel/aa5
spa
 class="comment">/*5/sp4a5 tar=a>struct>
a hres>124
/a>        
a h h="+code=cmp" clasask"rq_a>struct>
a hreask"rt>
a sref">static_key46="s
 a "m6gratnce 3oL163L138" id396128" 64ck_a>struct>
a hreock_ite"=+co5e=neg" class="sref">neg
5a> 4 52        
a h hi=>rtsk_neasL9" clas=cmp" clasa6ngood
 a 6power-sa ncers to delive6 accu64ched/core.c#L242" id438L206" c4ass="l6e3="kerne6/sched/core.c# to delive6 accu6lae prcore.c#L128" id4">>128
/a4
spa
 class="comment">/*4/sp304 >134spa
 6lcla_oL166" h"ke4nt_csd with rqref6"ock_6helr a#i.c#L242" i5kuref=core.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="RT_GROUPtioL10f">neg
5a> 4 52class="RT_GROUPtioL10/*5/e=|| reoc54>>128
/a5acore.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="FAIR_GROUPtioL10f">neg
5a> 4 52class="FAIR_GROUPtioL10ck_" soh_"ioh_"i5\core.c#L128" id4>>134spa
 6lct>
a hr6 jiffies etc)s to delive6 accu651k_a>struct>
struct>
/core.c#reoc54>>128
/a5acore.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="LT" class="sref">EFAU5T
/4>5 >128
/a5acore.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="CFS_BANDWIDTH class="sref">EFAU5T
/CFS_BANDWIDTHck_" s class="sref">sched_feaask"rclas63="kernel6sched/core.c#L131" id3oL671" c65hardirq=(IPI)=codtex5r"ref= cl5FAULT" class="sref">EFAU5a> 3 54tar+cod6=rq" 65hardirq=(IPI)=codtex5r3ref==a>Iterel/s_radegro"ke=ree rootl/sat *5ass,1dasse.c#@down w
spafirsts3reerclassl5FAULT" class="sref">EFAU5a> 3 54EFAU5T
/3>55>128
/annea>3)45@"kew
spaleavclasitpre3=
/3are.alL4f">sched/core.c#L39L12"ke4"lencpu.  T"linl6de=delta"6class="mp_processor_e=rq6 clas6sched/core.c#L128" id43L114"
/a5
spa
 class="comment">/*5/sp3>5 4r suffici"co 1quival"co" h"tncpu'sne" namref= may 130 be2u6ed_feaq  6    
a href="+ classe=rq6 clas6he sptik_ > =>r "tlae._ite"=+cnt">/*4/sp304 neg
5a> 3)5 >128
/a5
walk_tg_=ree_5ass class="sref">Ewalk_tg_=ree_5assa hrnel/sched/core.c#L139" clasLgro"ka href="+clae>>_radegro"kptik__>tar=a>struct>
5ass class="sref">E5assa hrs_to_kstrusptikt>
a hre_agmp_c"k6class="f=6+ccl_deadd40L2essor_e=rq6 clas65hcpu if (
a href="+s5(
a href="+s5f=, 0=+code=negtg_4 5 toc_features
/a> &tg_4 5 tocaq_clock
/a>(struct>downf">neg
5a> 4 52cown">EFe4cnel/sched/coretg_4 5 toc_features
/a> &tg_4 5 tocaq_clock
/a>(struct>"ka href="+clae>>"kptik, 3}493_>tar=a>struct>
dataf">neg
5a> 4 52cataa h, class="sref">sched_feaask"rclas62="kernel6sched/core.c#L129" id27L629" c66hcpu if (
a href="+sc_ite"=+co4e=neg"62omtio wr6c
a hreuoL164""line" nam6ioL12661k_a>struct>
el/sched/core.c#L139" clasLgro"ka href="+clae>>_radegro"kptik__>tar=a>struct>
parite"" clas>        ariteptik, _>tar=a>struct>
chilef">neg
5a> 4 52chile/*5/
/a> &4">>124
/a>        
a h) !62="kernel6L150">>450
3)46>128
/a5
rmtioL180">>150
/3reline" namtioL12> =>
a1" id40L191" cla6rnel/sc
a6hreuoL164""line" spt,3="6ernel66ck_a>ore.c#L134" id4R 
a hde=4FAULT"6rlass="sr6E_REL_PINNEDlug_sptik__c6ds13566ck_a>struct>
>tar=a>struct>
parite"" clas>        ariteptik3
3>5 E5assa hr namtioL12> =>
a1" id40L191" cla6re=delta"6ent">/*4/sp3046>128
/a4
spa
6lre.c#L146ment">/*4/sp3046ock
/a>(struct>downf">neg
5a> 4 52cown">EFel/sched/core.cPU_DEAD_FROZEN39L6ld_feaq  6 &>15#L142"tik__>tar+cod6=rq" 66fsptik__csd_pclas="
ao>>128
/mtioL180">>150
/3reline"3
3(_>tar=a>struct>
downf">neg
5a> 4 52cown">EF)reoc54>>128
/a5aparite"" clas>        ariteptik, >tar=a>struct>
dataf">neg
5a> 4 52cataa h,  namtioL12> =>
a1" id40L191" cla6rclass="s6ent">/*4/sp3046>128
/mtioL180">>150
/3reline" class="sref">sched_feaask"rclas62lass="f=6ent">/*4/sp30465 >150
/3outa hr namtioL12> =>
a1" id40L191" cla6ed/core.c6 line" namtc#L129" id27L629" c67ck_a>struct>
a hreoc5k_ite"=list_in5FAULT"itery_/o5p" clasask"rq_a>ist_in5FAULT"itery_/o5ernel/sched/core.c a"hilef">neg
5a> 4 52chile/*5/, lae>>_rade=rq" clqaeparite"" clas>        ariteptik
a href="+ask"rtik_lehileritf">neg
5a> 4 52chileritptik, >tar=a>struct>
5 neg
5a> 4 52< struct>
a hreos="6class="co6ment">/*4/sp3a47struct>
struct>
Ltar=a>struct>
parite"" clas>        ariteptik3
3>5 neg
5a> 4 52chile/*5/
/a> &4">>124
/a>        
a h) !6ed_feaq_c6ock
/a>(struct>
a hr+cod6=rq" 67ched/core.c#LLLLLLLLLgoern>5 neg
5a> 4 52cown">EF
/a> &4">>124
/a>        
a h) !6enel/sc
a6nt"> */4/sp3 47(struct>"ka href="+clae>>"kptikel/sched/core.cPU_DEAD_FROZEN39L6aass="com6sptik__csd_pclas="s135
/6>
a h675k_a>struct>
a hreoc5continue
/a> &4">>124
/a>        
a h) !6ere.c#L146L180">>140
/3t4 struct>
struct>
a hreoc5k3L150" c5ode=cn6>
a hrepi6ock_le" ,"+code=="s135
/6>
a h6efsptik__csd_pclas="
ao>>128
/mtioL180">>150
/3reline"3
3(_>tar=a>struct>
"ka href="+clae>>"kptik)reoc54>>128
/a5aparite"" clas>        ariteptik, >tar=a>struct>
dataf">neg
5a> 4 52cataa h,  namtioL12> =>
a1" id40L191" cla6>ass="com6amtioL191">>_asptik_35
/6>
a h67ck_a>struct>
a hrclas="
ao>>128
/mtioL180">>150
/3reline"=|| eoc54>>128
/a5aparite"" clas>        ariteptik3

3>5 E5assa hr class="sref">sched_feaask"rclas6>ass="com6oL158" class="line" nf="6code=67hcpu if (
a href="+s5goern>5 >150
/3outa hr namtioL12> =>
a1" id40L191" cla6amtioL1786>>478
3a47rq
/a4">>128
/a4
spa
6class="co6ment">/*4/sp3>48>128
chilef">neg
5a> 4 52chile/*5/3
3>5         ariteptik namtioL12> =>
a1" id40L191" cla6ad_feaq_c6rq" clHMODE_REL="+code=r6" cla6=>ra>struct>
a hre> =>">>128
parite"" clas>        ariteptik3
3>5         ariteptik
a href="+ask"rtik_lparite"" clas>        ariteptik namtioL12> =>
a1" id40L191" cla6anel/sc
a6t =>tar=156" +code=rde=r6" cla68ck_a>struct>
a hreoc54>>128
/a5aparite"" clas>        ariteptik class="sref">sched_feaask"rclas6ass="comm6nt"> */4/sp3)48 =>
a1" id40L191" cla6aass="com6NFIG_SCHEDHc#L129" id27L629" c6sched/>5 >150
/3outa hrel/sched/core.cPU_DEAD_FROZEN39L6ed_feaq_c6ock
/a>(struct>
a href="6code=68refsptik__csdL136" i4">>128
/a4
sparmtioL180">>150
/3reline" namtioL12> =>
a1" id40L191" cla6class="sr6f">EFAU4T
/3>4 >406
3>48EFAU4T
/3>4 >128
/a5
tg_noka href="+clae>>_g_noka hrnel/sched/core.c#L139" clasLgro"ka href="+clae>>_radegro"kptik__>tar=a>struct>
tref">neg
5a> 4 5 gptik, 3}493_>tar=a>struct>
dataf">neg
5a> 4 52cataa h, class="sref">sched_feaask"rclas6ed_feaq_c6ock
/a>(struct>
a hr+cod6=rq" 6lhcpu if (
a href="+sc_ite"=+co4e=neg"6class="sr6f">neg
4a> 3>4  =>
a1" id40L191" cla6c class="6f">neg
4a> 3>4 6ef">neg
4a> 3>4915#L142"tik__>tar+cod6=rq" 69asar"s135
/a>
a hrefar"ref=de=EFAULT6ine" namt6oL83">>483
3
49>13 et_load_wespa
f">neg
5a> 4 52(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclas6class="sr6f">EFAU4T
/3a4 rq
/a4rref==de=4FAULT"6# line" n6NFIG_SCHEDHc#L129" id27L629" c69sched/core.c#L42" id5">>128
/a5
prio href">rq
/a> *
rioptik3
3>5 rq
/a> *
a h,
a href="+ask"rtik_line" n_prio href">rq
/a> *ine" n_prioptik3-_ON_ONCEle" c_feMAX"RT_PRIO href">rq
/a> *MAX"RT_PRIOine" namtioL12> =>
a1" id40L191" cla6ine" namt6oL206">>406
3a49neg
5a> 4 52load_wespa
a hr__>tar=a>struct>
loadf">neg
5a> 4 52loadptik3
3lae>>_rade=rq" clqaep href">rq
/a> *
a h,
a href="+ask"rtik_li/ef">EFAU5a> 3>5 /.c#L.>tar=a>struct>
loadf">neg
5a> 4 52loadptik namtioL12> =>
a1" id40L191" cla6iclass="s6/sched/core.c#L138" id396128" 69ched/core.c#L128" id4>>134spa
 7be29" cla7s="linow'30 Called t7 set 70ck_a>struct>
aq=(IPI)=codtex5r"ref= cl5FAULT" class="sref">EFAU5a> 3 54neg
4a> 3>4 128








*LioL109IDLEs_rads  claminimal wespa
:l5FAULT" class="sref">EFAU5a> 3 54neg
4a> 3>4 cn5
/a3a55struct>
a hreoc54>>128
/a5ap href">rq
/a> *
a h,
a href="+ask"rtik_lpolicy href">rq
/a> *
olicyptik3

3>5 rq
/a> *ioL109IDLE/*5/e=rq" classock_a>struct>
a hreos="7/core.c#L7cla_as6L12CPU30 Called t7 set 70ck_a>struct>
a hreoc5>tar=a>struct>
loadf">neg
5a> 4 52loadptik
a href="+ask"rtik_lwespa
f">neg
5a> 4 52wespa
a hr_
3>5 neg
5a> 4 52nrq
/a> *WEIGHT9IDLEPRIOa h,  namtioL12> =>
a1" id40L191" cla74="kernel7sched/core.c#L129" id27L729" c705k_a>struct>
a hreoc5>tar=a>struct>
loadf">neg
5a> 4 52loadptik
a href="+ask"rtik_linv_wespa
f">neg
5a> 4 52inv_wespa
a hr_
3>5 rq
/a> *WMULT9IDLEPRIOptik namtioL12> =>
a1" id40L191" cla7id39L117"7class="line" namtioL1=CO7FIG_M70refsptik__csd_pclas="p8ef==de=5ass="line" namtioL206">>506
7 class="s7ef">neg
5a> 4350
a h7ef="+code=rq"ta hr+ 0e3=7kerne70ck_a>struct>
a hreoc53ass="lloadf">neg
5a> 4 52loadptik
a href="+ask"rtik_lwespa
f">neg
5a> 4 52wespa
a hr_
3>5 neg
5a> 4 52nneg
5a> 4 52prio_to_wespa
erne[ id5">>128
/a5
prio href">rq
/a> *
rioptik]  namtioL12> =>
a1" id40L191" cla7"comment"7/*5a> 4>50neg
5a> 4 52loadptik
a href="+ask"rtik_linv_wespa
f">neg
5a> 4 52inv_wespa
a hr_
3>5 neg
5a> 4 52prio_to_wmul
erne[ id5">>128
/a5
prio href">rq
/a> *
rioptik] namtioL12> =>
a1" id40L191" cla7"129" cla7L109">>159
/4a5 struct>
a hreoc5k3L150" c5ode=cn7=a>struct7
a hreask"rclass=
a +cod7=rq" 71ched/core.c#L137" id5kss=int c5ss="l7lass="com7ent">/*5/sp4)51>13enqueu.ss="line" namtioL110enqueu.ss="la hrnel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
ref">static_key4">>124
/a>    core.c#L137" id5kss=int c5ss="l7lcore.c#L743L124" class="s="srde=r7" cla71hcpu if (
a href="+sc39ioL83" 4lass="7c="kernel7ment">/*5/sp4a51>128
upnel/_rq_elass="sref">EFAULT
upnel/_rq_elassernel/sched/core.c ak__>tar=a>struct>
a hres namtioL12> =>
a1" id40L191" cla7"d39L117"7       
a href="+code=rq7 clas71ck_a>struct>
a hreock_ite"=+c510
4info_queu.c#L144" id43L124nrq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla7"class="s7ent"> */5/sp4151>128
p href">rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124ntar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,# id5">>128
/a5
ref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla7"f="+code7uct>
a hreask"rt>
a +cod7=rq" 71ched/struct>
a hreoc5k3L150" c5ode=cn7=uct>
a h7="kerne2="kernel/sche=rq7 clas7ock_a>struct>
a hreoc5>9ef==de=5e=neg7 class="s7ef">neg
5a> 4 5 >13dequeu.ss="line" namtioL110dequeu.ss="la hrnel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
ref">static_key4">>124
/a>    core.c#L137" ic5>9ef==de=5e=neg7 129" cla7uct>
a hreask"rt>
a e=rq7 clas7/schedif (
a href="+sc39ioL83" 4lass="7ine" namt7oL110">>510
4 5 struct>
a hreoc54>>128
upnel/_rq_elass="sref">EFAULT
upnel/_rq_elassernel/sched/core.c ak__>tar=a>struct>
a hres namtioL12> =>
a1" id40L191" cla7k"rq_a>st7uct>
a hreask"rt>
a e=rq7 clas72ched/core.c#L5; rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla7k#L144" i7class="mp_processor_i=rq7 clas7ock_a>struct>
clas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124ntar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,# id5">>128
/a5
ref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla7 5 neg
5a> 4 52struct>
a hreoc5>>135spa
 7efL12ine"7est poll
a c#L129" id27L729" c72hcpu ine" namtioL130">>13activel/_s="line" namtioL110activel/_s="la hrnel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
ref">static_key4">>124
/a>    core.c#L137" ic5>>135spa
 7ef="+code7>rtbock_" clmressor_e=rq7 clas72schedif (
a href="+sc39ioL83" 4lass="7iuct>
a h7uct>
a hreask"rt>
a +cod7=rq" 72ck_a>struct>
a hreoc54>>128
/a5a clascontributes_to_loadf">neg
5a> 4 52 clascontributes_to_loadernel/sched/core.c ap href">rq
/a> *
a h,  core.c#L137" ic5>>135spa
 7t>
aallid73L124" class="s="sr_e=rq7 clas73ck_a>struct>
struct>
clas="
ao>>128
" class="sref">neg
/a> 4 } nenr_unLselrrupt  4- namtioL12> =>
a1" id40L191" cla7e" namtio7109">>159
/4
5 >550
4
53struct>
a hreoc54>>128
enqueu.ss="line" namtioL110enqueu.ss="la hrn15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,# id5">>128
/a5
ref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla7c#L144" i743L124" class="s="sr+cod7=rq" 73hardicore.c#L134" id4R 
a hde=4FAULT"7ass="comm7nt"> */5/sp4 5 
a hrefar"ref=de=EFAULT7mp_callid73L124" class="s="sr_e=rq7 clas73ass="ine" namtioL130">>13deactivel/_s="line" namtioL110deactivel/_s="la hrnel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
ref">static_key4">>124
/a>    core.c#L137" ifar"ref=de=EFAULT7mclass="s7epicock_le" ,"+code=e=rq7 clas73" class="sref">rq
/a4rref==de=4FAULT"7ine" namt7oL115">>515
4
5 >128
/a5a clascontributes_to_loadf">neg
5a> 4 52 clascontributes_to_loadernel/sched/core.c ap href">rq
/a> *
a h,  core.c#L137" ic5>>135spa
 7tf="+code7picock_le" ,"+code=f+cod7=rq" 7lhcpu if (
a href="+s5f=, 0=+code=neg" class="sref">neg
/a> 4 } nenr_unLselrrupt  ++ namtioL12> =>
a1" id40L191" cla7cuct>
a h7="kerne2="kernel/sche=rq7 clas73ck_a>struct>
a hreoc5>9ef==de=5e=neg7p_callid47L124" class="s="sr__e=rq7 clas74ck_a>struct>
a hreoc5k_ite"=dequeu.ss="line" namtioL110dequeu.ss="la hrn15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,# id5">>128
/a5
ref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla7uct>
a hr7picock_le" ,"+code=fe=rq7 clas74ck_a>struct>
a hreoc5k3L150" c5ode=cn7" class="7ref">cn5
/a3a54>150
/3a54>13upnel/_rq_elassss="line" namtioL110upnel/_rq_elassss="la hrnel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
ef="+ask"rtik_lilass="sref">schedsfeaq_clock
/a>(struct>deltaf">neg
5a> 4 52celta>    core.c#L137" ifar"ref=de=EFAULT739L117" c7ass="line" nNO_HZa hre4=7kerne74hcpu if (
a href="+sc39ioL83" 4lass="7e4="kerne7/sched/core.c#L138" id397128" 74ched/core.c#L128" id43L114" cl5FAULT" class="sref">EFAU5a> 3 54e ouo 
/3a"a/5might also" class= aLcross-CPUL244"d417ngood
 a 7power-sa ncers to delive7 accu74ae preempasoh po"lis5">>128
/ to30"ker_gtravg_upnel/. Buo I donass="o 
rfor5it.." h"tncpu'sne" namref= may 130 be2u7e3="kerne7/sched/core.c# to delive7 accu74ae preempasoh po"lis5"8ef==de+5ode=cnt" class="sref">cn5
/a3a55neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="IRQ_TIME_ACCOUNTINGf">neg
5a> 4 52class="IRQ_TIME_ACCOUNTING>    =|| eoc54>>128
/a5acore.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="PARAVIRT_TIME_ACCOUNTINGf">neg
5a> 4 52class="PARAVIRT_TIME_ACCOUNTING>    core.c#L137" ifar"ref=de=EFAULT7lcla_oL167" h"ke4nt_csd with rqref7"ock_75ck_a>struct>
a hreoc5k_ite"=ilass="sref">schedsfeaq_clock
/a>(struct>stealneg" class="sresteala hr_
30,
ef="+ask"rtik_lirq_deltaf">neg
5a> 4 52irq_deltaa hr_
30 namtioL12> =>
a1" id40L191" cla7lct>
a hr7 jiffies etc)s to delive7 accu751k_a>/core.c#L136" i5r9ef==de=5Fspa
 class73="kernel7sched/core.c#L131" id3oL771" c75hardi#i.cor
ef="+ask"rtik_lclass="IRQ_TIME_ACCOUNTINGf">neg
5a> 4 52class="IRQ_TIME_ACCOUNTING>   c#L136" i5r9ef==de=5Fspa
 class73e" namti7lass__as6L1tik__>tar+cod7=rq" 75ched/core.c#L5; neg
5a> 4 52irq_deltaa hr_
35; _ss="f">neg
5a> 4 52irq_4f">_ss="d/core.ci=>rtsk_neasq_cloff">neg
5a> 4 52q_clofernel/sched/core.c ak__>tar=a>struct>
a hres)i-_ON_ONCEle" c_ferq" classask"rtik_ if (
a href="+ask"rtik_lprs=_irq_4f"> href">rq
/a> *
rs=_irq_4f">if ( namtioL12> =>
a1" id40L191" cla7l9L117" c7f">EFAU5T
/3>55
a hrefar"ref=de=EFAULT7de=delta"7class="mp_processor_e=rq7 clas75sched/core.c#L125" i5
a hnamti5L96">>5ode=cnt" class="sref">cn5
/a3a550sp3oply upnel/"lopa{soft,}irq_exit,erne5spa
 rucra hrce "ke4"lencpu wiid3odd mL12i64""l3" c7ed_feaq  7    
a href="+ classe=rq7 clas7he sptik_ > =>r "tlae._ite"=+dddddddd* L cla_pclaw
spaanprs=ious upnel/_rq_elass() happe.cera siea>3ce "ke4"lencpu wiid3odd mL12i64""l3" c7e3="kerne7ef">neg
5a> 3)5 >128








* h"tncpu'sne" namref= may 130 be2u72="kernel7sched/core.c#L129" id27L729" c76e sptik_ > =>r "tlae5">>128








*LW
spa" clahappe.s,ernestop mtioLrlassss="llind/*ply upnel/ref"l5FAULT" class="sref">EFAU5a> 3 54 =>r "tlae5"1>128








*L
rs=_irq_4f"> uncmt hrnaccouco re3=
/3aparte=cnt"fit,esoe
/nt"aa54xtl5FAULT" class="sref">EFAU5a> 3 54>450
3)46ens6"edemtioLrlassss="llisl5FAULT" class="sref">EFAU5a> 3 54>128








* h"tncpu'sne" namref= may 130 be2u7re=delta"7ent">/*4/sp3046It doedehowevera_puclaso"> ulspa
 miss-attribut+co>of {soft,}irq h"tncpu'sne" namref= may 130 be2u7rre.c#L147ment">/*4/sp3046WliLmorenaccurel/ssolut+co>would be hrnupnel/ref" irq_4f">0usernd/"tncpu'sne" namref= may 130 be2u7rd_feaq  7 &>15#L142"tik__>tar+cod7=rq" 76e sptik_ > =>r "tlae._ite"=+dddddddd* L 3a"urrite=namtioLr217">4f">uncmt, excepte=cnt"would L1quirl0usernd/"tncpu'sne" namref= may 130 be2u7r3="kerne7ent">/*4/sp3046/*4/sp3046>128








*+5ode=cnt" class="sref">cn5
/a3a55struct>
L136eoc54>>128
/a5airq_deltaf">neg
5a> 4 52irq_deltaa hr_o hrlock
/a>(struct>deltaf">neg
5a> 4 52celta>    core.c#L137" ifar"ref=de=EFAULT7class="co7ment">/*4/sp3a47struct>
struct>
Ltar=a>struct>
irq_deltaf">neg
5a> 4 52irq_deltaa hr_
35; neg
5a> 4 52celta>    namtioL12> =>
a1" id40L191" cla7ed_feaq_c7ock
/a>(struct>
a hr+cod7=rq" 77ched/core.c#L137" id5kss=int c5ss="l7enel/sc
a7nt"> */4/sp3 47 href">rq
/a> *
rs=_irq_4f">if ( +
3>5 neg
5a> 4 52irq_deltaa hr namtioL12> =>
a1" id40L191" cla7elass="sr7class="line" namtioL1=CO7FIG_M77ck_a>struct>
clas="
ao>>128
deltaf">neg
5a> 4 52celta>    -
3>5 neg
5a> 4 52irq_deltaa hr namtioL12> =>
a1" id40L191" cla7ee=delta"7sptik__csd_pclas="s135
/7>
a h775k_a>/core.c#L136" i5r9ef==de=5Fspa
 class7ere.c#L147L180">>140
/3t4 #i.cor
ef="+ask"rtik_lclass="PARAVIRT_TIME_ACCOUNTINGf">neg
5a> 4 52class="PARAVIRT_TIME_ACCOUNTING>   c#L136" i5r9ef==de=5Fspa
 class7ed_feaq  7ock_le" ,"+code=="s135
/7>
a h77sched/core.c#L136eoc54>>128
/a5aine" n_key_fald_href="+code=__hine" n_key_fald_ernelclae>>_rade=rq" clqaeparavirt_steal_rq_enablcef">neg
5a> 4 52paravirt_steal_rq_enablce hres)e=rq" classock_a>struct>
a hreos="7>ass="com7amtioL191">>_asptik_35
/7>
a h77hcpu if (
a href="+s5f=, 0=+code=negulass="sref">schedufeaq_clock
/a>(struct>sthref="+code=__hina hr namtioL12> =>
a1" id40L191" cla7elass="f=7oL158" class="line" nf="7code=77ck_a>struct>
a hreoc5>9ef==de=5e=neg7amtioL1787>>478
3a47>128
stealneg" class="sresteala hr_
3_rade=rq" clqaeparavirt_steal_elass="sref">EFAULT
paravirt_steal_elassd/core.ci=>rtsk_neasq_cloff">neg
5a> 4 52q_clofernel/sched/core.c ak__>tar=a>struct>
a hres) namtioL12> =>
a1" id40L191" cla7class="co7ment">/*4/sp3>48struct>
struct>
Ltar=a>struct>
stealneg" class="sresteala hr_-
3>5 _sq" classask"rtikprs=_steal_4f">_sqa hr namtioL12> =>
a1" id40L191" cla7ad_feaq_c7rq" clHMODE_REL="+code=r7" cla78ched/core.c#L137" id5kss=int c5ss="l7anel/sc
a7t =>tar=156" +code=rde=r7" cla78ck_a>struct>
/core.c#L136eoc54>>128
/a5aunlikely href">rq
/a> *unlikelyernel/sched/core.c astealneg" class="sresteala hr_o hrlock
/a>(struct>deltaf">neg
5a> 4 52celta>     core.c#L137" ifar"ref=de=EFAULT7ass="comm7nt"> */4/sp3)48>128
stealneg" class="sresteala hr_
3_rade=rq" clqaedeltaf">neg
5a> 4 52celta>    namtioL12> =>
a1" id40L191" cla7aass="com7NFIG_SCHEDHc#L129" id27L729" c78ched/core.c#L134" id4">>128
/a4
spa
7ed_feaq_c7ock
/a>(struct>
a href="7code=78refsptik__csd_pclas="ock
/a>(struct>sthref="+code=__hina hr_
3>5 ernel/sched/core.c astealneg" class="sresteala hr) namtioL12> =>
a1" id40L191" cla7cd_feaq  7f">EFAU4T
/3>4 >406
3>48EFAU4T
/3>4 _sq" classask"rtikprs=_steal_4f">_sqa hr +
3>5 (struct>
a hr+cod7=rq" 79" class="sref">rq
/a4">>128
/a4
spa
7class="sr7f">neg
4a> 3>4 neg
5a> 4 52celta>    -
3>5 neg
4a> 3>4 7ef">neg
4a> 3>4915#L142"tik__>tar+cod7=rq" 79asar"s135
/a>
a hrefar"ref=de=EFAULT7ine" namt7oL83">>483
3
49>128
rq" classask"rtik_ if (
a href="+ask"rtik_lelassss="line" namtioL110elassss="la hr +
3>5 neg
5a> 4 52celta>    namtioL12> =>
a1" id40L191" cla7class="sr7f">EFAU4T
/3a4 neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="IRQ_TIME_ACCOUNTINGf">neg
5a> 4 52class="IRQ_TIME_ACCOUNTING>    =|| eoc54>>128
/a5acore.cef">neg
5a> 4 52core.ced/core.ci=>rtsk_neasclass="PARAVIRT_TIME_ACCOUNTINGf">neg
5a> 4 52class="PARAVIRT_TIME_ACCOUNTING>    core.c#L137" ifar"ref=de=EFAULT7ine" namt7oL206">>406
3a49struct>
a hr6eoc54>>128
/a5airq_deltaf">neg
5a> 4 52irq_deltaa hr_+3>5  4 52rtsk_neasNONTASK_POWERhref="+code=__hNONTASK_POWER>     core.c#L137" ifar"ref=de=EFAULT7iclass="s7/sched/core.c#L138" id397128" 79hcpu if (
a href="+s5>5 tar=a>struct>
a hre,
ef="+ask"rtik_lirq_deltaf">neg
5a> 4 52irq_deltaa hr_+3>5 neg
4a> 3>4 neg
4a> 3>4 >128
/a5
spa
 class="comment">/*5/,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
stopneg" class="sresto
a h, class="sref">sched_feaask"rclas8/core.c#L8cla_as6L12CPU30 Called t8 set 80hcpu if (
a href="+sc39ioL83" 4lass="84="kernel8sched/core.c#L129" id27L829" c805k_a>struct>
el/sched/core.c#L139" i"ker_paras class="sref">Ei"ker_parasaq_clock
/a>(struct>paras class="sref">Eparasaq_cl= { .>tar=a>struct>
i"ker_priority href">rq
/a> *i"ker_prioritya hr_
3_rade=rq" clqaeMAX"RT_PRIO href">rq
/a> *MAX"RT_PRIOine" - 1 } namtioL12> =>
a1" id40L191" cla8b6"kernel8s">EFAU4T
/3a4 (struct>" clasL191"sptik__>tar=a>struct>
old_stopneg" class="sreold_stopa hr_
3_rade=rq" clqaeq_clk__>tar=a>struct>q_clk_d/core.ci=>rtsk_neasq_c
 class="comment">/*5/>        
a h h="+codstopneg" class="sresto
a h, namtioL12> =>
a1" id40L191" cla8b7"kernel8sFIG_SCHEDHc#L129" id27L8kerne80schednamtioL12> =>
a1" id40L191" cla8b8"kernel8sL206">>406
3a49struct>
a hrclas="
ao>>128
stopneg" class="sresto
a h, =rq" classock_a>struct>
a hreos="8ruct>
a h8ef="+code=rq"ta hr+ 0e3=8kerne80hcpu if (
a href="+s5>125" i5
a hnamti5L96">>5ode=cnt" class="sref">cn5
/a3a55 4>50>128
















* Makesitpappear like aLioL109FIFOs_rad,sitsaso">thernd/"tncpu'sne" namref= may 130 be2u8"129" cla8L109">>159
/4a5  =>r "tlae5"1>128
















* userk_ ce knows abouo ind/wonass="o  claconfused abouosched/core.c#L39L12"ke4"lencpu.  T"linl8=a>struct8
a hreask"rclass=
a +cod8=rq" 81hardirq=(IPI)=codtex5r"ref==















*ched/core.c#L39L12"ke4"lencpu.  T"linl8=riggs="l8ent">/*5/sp4)51>128
















*Lmuchaconfus+co>-- buo 
/3n,estop workrshould notl5FAULT" class="sref">EFAU5a> 3 54/*5/sp4a51cn5
/a3a55 */5/sp4151
a hrefsptik__csdref=, 0=+code=negs"ker_EFAULT
s"ker_Eparasaq_c  namtioL12> =>
a1" id40L191" cla8"f="+code8uct>
a hreask"rt>
a +cod8=rq" 81ched/core.c#L137" id4e" c==de=4FAULT8=uct>
a h8="kerne2="kernel/sche=rq8 clas81hcpu if (
a href="+s5>5 #L144" id43L124n>_rade=rq" clqaestopsi#L144" id43L124ntopsia h, namtioL12> =>
a1" id40L191" cla8 class="s8ef">neg
5a> 4 5 struct>
struct>
a hreoc5k3L150" c5ode=cn8 129" cla8uct>
a hreask"rt>
a e=rq8 clas82ched/core.c#L135" id543L150" c5ass="8ine" namt8oL110">>510
4 5 struct>
a hreoc54>>128
q_clk__>tar=a>struct>q_clk_d/core.ci=>rtsk_neasq_c
 class="comment">/*5/>        
a h h="+codstopneg" class="sresto
a h,_
3_rade=rq" clqaestopneg" class="sresto
a h, namtioL12> =>
a1" id40L191" cla8k"rq_a>st8uct>
a hreask"rt>
a e=rq8 clas82ck_a>ore.c#L134" id4R 
a hde=4FAULT"8k#L144" i8class="mp_processor_i=rq8 clas8ock_a>struct>
a hrclas="
ao>>128
old_stopneg" class="sreold_stopa hr =rq" classock_a>struct>
a hreos="8 5 >5ode=cnt" class="sref">cn5
/a3a55neg
5a> 4 524o"aa5ormal s"kerulclasnamtiesoe
/nt5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae._ite"=+dddddddd







* itrc > diesin piece/sched/core.c#L39L12"ke4"lencpu.  T"linl8ef="+code8>rtbock_" clmressor_e=rq8 clas82ae preempasoh po"lis5"8ef==ddddddddd







*+5ode=cnt" class="sref">cn5
/a3a55
a h8uct>
a hreask"rt>
a +cod8=rq" 82hcpu if (
a href="+s5>5 #L144" id43L124n>_rade=rq" clqaert_s#L144" id43L124rt_sa h, namtioL12> =>
a1" id40L191" cla8t>
aallid83L124" class="s="sr_e=rq8 clas83ck_a>struct>
struct>
a hreoc5k3L150" c5ode=cn8e" namtio8109">>159
/4
5 >550
4
53>5ode=cnt" class="sref">cn5
/a3a55 */5/sp4 5 >128
/a__5ormal_prio -#L136" i
/3aprioritye=cnt"isrbas/"lopa
/3aine" na
rioptde=cnt" class="sref">cn5
/a3a55cn5
/a3a55neg
5a> 4 52in ,"+k_a>s242" id5">>128
/a5
__5ormal_prioco>neg
5a> 4 52__5ormal_priod/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclas8ine" namt8oL115">>515
4
5 struct>
a hreos="8tf="+code8picock_le" ,"+code=f+cod8=rq" 8lhcpu if (
a hL136" i4">>128
/a4
spap href">rq
/a> *
a h,
a href="+ask"rtik_line" n_prio href">rq
/a> *ine" n_prioptik namtioL12> =>
a1" id40L191" cla8tuct>
a h8="kerne2="kernel/sche=rq8 clas83ck_a>struct>
a hreoc5k3L150" c5ode=cn8p_callid48L124" class="s="sr__e=rq8 clas84" class="sref">rq
/a4">>128
/a4
spa
8uct>
a hr8picock_le" ,"+code=fe=rq8 clas84e sptik_ > =>r "tlae5"1>128>>5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a54cn5
/a3a55>150
/3a54 *thouo 
akclasRT-inheritance inhrnaccouco. Mspa
 b"l5FAULT" class="sref">EFAU5a> 3 54>128
/aboosl/"lby Lselractivityemodifiers. Changes upopafork,l5FAULT" class="sref">EFAU5a> 3 54EFAU5a> 3 54>128
/+5ode=cnt" class="sref">cn5
/a3a55neg
5a> 4 52in ,"+k_a>s242" id5">>128
/a5
5ormal_prioco>neg
5a> 4 525ormal_priod/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclas8dpletelye8"lensystem, a3L138" id398128" 8sched/rq" classock_a>struct>
a hreos="8lcla_oL168" h"ke4nt_csd with rqref8"ock_85ck_a>struct>
L42" id5">>128
/a5
prio href">rq
/a> *
rioptik namtioL12> =>
a1" id40L191" cla8lct>
a hr8 jiffies etc)s to delive8 accu85ched/core.c#L135" id543L150" c5ass="83="kernel8sched/core.c#L131" id3oL871" c85ched/core.c#L2136eoc54>>128
/a5a clashas_gtrpolicy href">rq
/a> * clashas_gtrpolicyd/core.ci=>rtsk_neasp href">rq
/a> *
a h,  core.c#L137" ic5>>135spa
 83e" namti8lass__as6L1tik__>tar+cod8=rq" 85ck_a>struct>
/core.c# id5">>128
/a5
prio href">rq
/a> *
rioptik_
3_rade=rq" clqaeMAX"RT_PRIO href">rq
/a> *MAX"RT_PRIOine"-1i-_ON_ONCEle" c_fep href">rq
/a> *
a h,
a href="+ask"rtik_lgtrpriority href">rq
/a> *gtrpriorityptik namtioL12> =>
a1" id40L191" cla8l9L117" c8f">EFAU5T
/3>55rq
/a> *
rioptik_
3_rade=rq" clqae__5ormal_prioco>neg
5a> 4 52__5ormal_priod/core.ci=>rtsk_neasp href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla8lclass="s8 id43L112" clas ode=e=rq8 clas85refsptik__csdL136" i4">>128
/a4
spaprio href">rq
/a> *
rioptik namtioL12> =>
a1" id40L191" cla8lgood
 a 8    
a href="+ classe=rq8 clas85ched/core.c#L242" id438L206" c4ass="l8e3="kerne8ef">neg
5a> 3)5 >128>>5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae5">>128
e=4FAculel/ref" "urrite=priority, i.e. 
/3apriority5ode=cnt" class="sref">cn5
/a3a55
a hr8c
a hreuoL164""line" nam8ioL1286e sptik_ > =>r "tlae5"1>128
* 
aken inhrnaccoucolby 
/3ai"keruler.L115">valune5spa
5ode=cnt" class="sref">cn5
/a3a55>450
3)46cn5
/a3a55EFAU5a> 3 54>128
*sRT-boosl/". If not 
/3n itrL136" s p
a hr5ormal_priosched/core.c#L39L12"ke4"lencpu.  T"linl8re=delta"8ent">/*4/sp3046cn5
/a3a55/*4/sp3046>128
/a5
effective_prioco>neg
5a> 4 52effective_priod/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, class="sref">sched_feaask"rclas8rd_feaq  8 &>15#L142"tik__>tar+cod8=rq" 86schedrq" classock_a>struct>
a hreos="8r3="kerne8ent">/*4/sp3046rq
/a> *
a h,
a href="+ask"rtik_l5ormal_prioco>neg
5a> 4 525ormal_priod/co_
3_rade=rq" clqae5ormal_prioco>neg
5a> 4 525ormal_priod/core.ci=>rtsk_neasp href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla82lass="f=8ent">/*4/sp3046>128>>5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae5">>128








*LIf we are RTs_radsnor we wer" boosl/"lhrnRTspriority,5ode=cnt" class="sref">cn5
/a3a55
a hr8ment">/*4/sp3a47 =>r "tlae5"1>128








*Lkeepi
/3apriorityeunchange". O
/3rwise,nupnel/rpriority5ode=cnt" class="sref">cn5
/a3a55(struct>
a hr+cod8=rq" 87hardirq=(IPI)=codtex5r"ref==







*Ltoi
/3a5ormal priority:5ode=cnt" class="sref">cn5
/a3a55 */4/sp3 47cn5
/a3a55struct>
a hr!ef="+ask"rtik_lgtrprio href">rq
/a> *gtrpriod/core.ci=>rtsk_neasp href">rq
/a> *
a h,
a href="+ask"rtik_lprio href">rq
/a> *
rioptik  core.c#L137" ic5>>135spa
 8ee=delta"8sptik__csd_pclas="s135
/8>
a h875k_a>struct>
a hreoc5L136" i4">>128
/a4
spap href">rq
/a> *
a h,
a href="+ask"rtik_l5ormal_prioco>neg
5a> 4 525ormal_priod/co namtioL12> =>
a1" id40L191" cla8ere.c#L148L180">>140
/3t4 >128
/a4
spap href">rq
/a> *
a h,
a href="+ask"rtik_lprio href">rq
/a> *
rioptik namtioL12> =>
a1" id40L191" cla8ed_feaq  8ock_le" ,"+code=="s135
/8>
a h87ched/core.c#L242" id438L206" c4ass="l8>ass="com8amtioL191">>_asptik_35
/8>
a h87ched/core.c#L137" id4e" c==de=4FAULT8elass="f=8oL158" class="line" nf="8code=87ass="line" namtioL124">>128>>>5ode=cnt" class="sref">cn5
/a3a55>478
3a47>128
e= clascurri-_5">" clas="ll"urritely executclasopaanCPU?5ode=cnt" class="sref">cn5
/a3a55
a hr8ment">/*4/sp3>48 =>r "tlae5"1>128
* @p:3
/3as="llin question" h"tncpu'sne" namref= may 130 be2u8ad_feaq_c8rq" clHMODE_REL="+code=r8" cla88hardirq=(IPI)=codtex5r"ref==*+5ode=cnt" class="sref">cn5
/a3a55tar=156" +code=rde=r8" cla88ck_a>ef="+ask"rtik_lin ,"+co>neg
5a> 4 52in ,"+k_a>s242" id5">>128
/a5
 clascurrck
/a>(struct>" clascurrd/corconst
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, core.c#L137" ic5>>135spa
 8ass="comm8nt"> */4/sp3)48>128
/a4
spaq_clcurrck
/a>(struct>"q_clcurrd/core.ci=>rtsk_neas clasc_c
 class="commen clasc_cd/core.ci=>rtsk_neasp href">rq
/a> *
a h,  3

3>5 rq
/a> *
a h, namtioL12> =>
a1" id40L191" cla8ed_feaq_c8ock
/a>(struct>
a href="8code=88refspcore.c#L242" id438L206" c4ass="l8cd_feaq  8f">EFAU4T
/3>4 >406
3>48neg
5a> 4 52in ,"+k_a>s/core.c#L240" i54oL1"kessrref">_change"ck
/a>(struct>"qkessrref">_change"d/corel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,namtioL12> =>
a1" id40L191" cla8alass="f=8ef">EFAU4T
/3>4 #L144" id43L124ntar=a>struct>
ars=_ref">#L144" id43L124ars=_ref">a h,,namtioL12> =>
a1" id40L191" cla8ed_feaq_c8ock
/a>(struct>
a hr+cod8=rq" 89ck_a>struct>
struct>























242" id5">>128
/a5
oldprio href">rq
/a> *oldprioa h, core.c#L137" ic5>>135spa
 8class="sr8f">neg
4a> 3>4 neg
4a> 3>4 #L144" id43L124ars=_ref">a h, !
3>5 rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124nstruct>
a hreos="8crespti=>8ef">neg
4a> 3>49struct>
/core.c#L136eoc54>>128
/a5aars=_ref">#L144" id43L124ars=_ref">a h,
a href="+ask"rtik_liwit"ker_fros class="sref">Eiwit"ker_frosa h, core.c#L137" ic5>>135spa
 8css="comm8 &>15#L142"tik__>tar+cod8=rq" 89ck_a>struct>
a hreoc5struct>
clas="
ao>>128
ars=_ref">#L144" id43L124ars=_ref">a h,
a href="+ask"rtik_liwit"ker_fros class="sref">Eiwit"ker_frosa h,n15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla8ine" namt8oL83">>483
3
49rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124nrq
/a> *iwit"ker_toa h,n15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla8id_feaq_c8f">EFAU4T
/3a4 >128
oldprio href">rq
/a> *oldprioa h, !
3>5 rq
/a> *
a h,
a href="+ask"rtik_lprio href">rq
/a> *
rioptik namtioL12> =>
a1" id40L191" cla8id_feaq  8NFIG_SCHEDHc#L129" id27L829" c89a>
a hrefsptik__csdref=, 0=+code=negp href">rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124n(struct>"prio_change"a h,n15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,
>tar=a>struct>
oldprio href">rq
/a> *oldprioa h,  namtioL12> =>
a1" id40L191" cla8iass="com8oL206">>406
3a49
a hreoc5k3L150" c5ode=cn8iclass="s8/sched/core.c#L138" id398128" 89ck_a>struct>
a hreoc5>9ef==de=5e=neg9be29" cla9s="linow'30 Called t9 set 90ck_a>/core.c#L240" i54oL1"kessrarsemptlcurrck
/a>(struct>"qkessrarsemptlcurrd/corel/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre,
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
ref">static_key4">>124
/a>    core.c#L137" ifar"ref=de=EFAULT9b129" cla9s">neg
4a> 3>4 neg
4a> 3>4 #L144" id43L124ntar=a>struct>
ref">#L144" id43L124144" a h, namtioL12> =>
a1" id40L191" cla9triggs="l9lasclass="r 56"l129"call9d cop90ck_a>ore.c#L134" id4R 
a hde=4FAULT"9/core.c#L9cla_as6L12CPU30 Called t9 set 90ck_a>struct>
a hrclas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124n5 (struct>"qurrd/co
a href="+ask"rtik_li#L144" id43L124nstruct>
a hreos="94="kernel9sched/core.c#L129" id27L929" c905k_a>struct>
a hreoc5>tar=a>struct>
rq" classask"rtik_ if (
a href="+ask"rtik_leurrck
/a>(struct>"qurrd/co
a href="+ask"rtik_li#L144" id43L124n(struct>"qkessrarsemptlcurrd/cor15rq5#L142"sptik__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,
>tar=a>struct>
ref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla9b6"kernel9s">EFAU4T
/3a4 struct>
a hreos="947"kernel9sFIG_SCHEDHc#L129" id27L9kerne90a>
a hrefsptik__csdref=, 0=+code=negfor_eachrref">#L144" id43L124for_eachrref">d/cor15rq5#L142"sptiref">#L144" id43L124144" a h, =rq" classock_a>struct>
a hreos="948"kernel9sL206">>406
3a49>128
ref">#L144" id43L124144" a h,3

3>5 (struct>"qurrd/co
a href="+ask"rtik_li#L144" id43L124nstruct>
a hreos="949"kernel9ssched/core.c#L138" id399kerne90hcpu if (
a href="+s55555555555555555break namtioL12> =>
a1" id40L191" cla9"comment"9/*5a> 4>50>128
ref">#L144" id43L124144" a h,3

3>5 rq
/a> *
a h,
a href="+ask"rtik_li#L144" id43L124nstruct>
a hreos="9"129" cla9L109">>159
/4a5 struct>
struct>
struct>
a hreoc5>tar=a>struct>
rentar=a>struct>
a hre
a href="+ask"rtik_leurrck
/a>(struct>"qurrd/co  namtioL12> =>
a1" id40L191" cla9=a>struct9
a hreask"rclass=
a +cod9=rq" 912cpu if (
a href="+s55555555555555555break namtioL12> =>
a1" id40L191" cla9"riggs="l9ent">/*5/sp4)51struct>
a hreoc5struct>
a hreoc5k3L150" c5ode=cn9l="kernel9ment">/*5/sp4a51struct>
struct>
a hreoc5k3L150" c5ode=cn9l6"kernel9       
a href="+code=rq9 clas91ck_a>struct>
a hreoc5>>135spa
 9"class="s9ent"> */5/sp4151
a hrefsptiaine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55
a +cod9=rq" 91ae preempasoh po"lis5"8ef==ddddddddd* A queu. evite=has oc"urridWlind/weass="re goclasto30"kerule.  In5ode=cnt" class="sref">cn5
/a3a55>128








* L cla_pcl,ernec > save aLuseless/ba7">4o"ba7">r217">upnel/.5ode=cnt" class="sref">cn5
/a3a55neg
5a> 4 5  =>r "tlae5">>128








*+5ode=cnt" class="sref">cn5
/a3a55
a hreask"rt>
a e=rq9 clas921k_a>struct>
a hrclas="
ao>>128
rq" classask"rtik_ if (
a href="+ask"rtik_leurrck
/a>(struct>"qurrd/co
a href="+ask"rtik_lonlk__>tar=a>struct>onlk_k_a>soh_"ioh_"i5a> 4 52(struct>" est_tlasneer_gentar=a>struct>
a hre
a href="+ask"rtik_leurrck
/a>(struct>"qurrd/co  q" classock_a>struct>
a hreos="9ine" namt9oL110">>510
4 5 tar=a>struct>
a hre
a href="+ask"rtik_lskip_elasssupnel/href="+code=__hikip_elasssupnel/a h,3
 1 namtioL12> =>
a1" id40L191" cla9k"rq_a>st9uct>
a hreask"rt>
a e=rq9 clas92hardicore.c#L134" id4R 
a hde=4FAULT"9k#L144" i9class="mp_processor_i=rq9 clas92asar"s135
/a>
a hrefar"ref=de=EFAULT9 5 
a hrefar"ref=de=EFAULT9 6"kernel9ef">neg
5a> 4 52(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#unsig.cera 2" id5">>128
/a5
5ewsc_c
 class="commen5ewsc_ca h, q" classock_a>struct>
a hreos="9 class="s9est poll
a c#L129" id27L929" c92schedrq" classock_a>struct>
a hreos="9ef="+code9>rtbock_" clmressor_e=rq9 clas92ae pr#i.cor
ef="+ask"rtik_lclass="SoL109DEBUGf">neg
5a> 4 52class="SoL109DEBUGsar"s135
/a>
a hrefar"ref=de=EFAULT9 9"kernel9uct>
a hreask"rt>
a +cod9=rq" 92ck_a>struct>
aine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55
aallid93L124" class="s="sr_e=rq9 clas93e sptik_ > =>r "tlae5">>128








*LW  should nevera_pll iet_ clasc_c()sopaanblass/"lhrad,5ode=cnt" class="sref">cn5
/a3a55>159
/4
5 128








*Lttwc()s */55sort ouo 
/3aplace"1>1.5ode=cnt" class="sref">cn5
/a3a55>550
4
53cn5
/a3a55neg
5a> 4 52WARN_ON_ONCEd/cor15rq5#L142"sptip href">rq
/a> *
a h,
a href="+ask"rtik_line"/href="+code=__hitel/a h,3!
3>5 neg
5a> 4 52TASK_RUNNINGk_a>soh_"ioh_"i5a> 4 52rq
/a> *
a h,
a href="+ask"rtik_line"/href="+code=__hitel/a h,3!
3>5 neg
5a> 4 52TASK_WAKINGk_a>soh_"ioh_"it" class="sref">cn5
/a3a55 */5/sp4 5 rq
/a> * clasthss="_infod/cor15rq5#L142"sptip href">rq
/a> *
a h,>        
a h h="+codarsemptlcouco#L144" id43L124arsemptlcoucok_a>soh_"i3>5 neg
5a> 4 52PREEMPT_ACTIVEd/co  it" class="sref">cn5
/a3a55>128
/a4
spa
9mclass="s9epicock_le" ,"+code=e=rq9 clas93ck_a>#i.cor
ef="+ask"rtik_lclass="LOCKDEPhref="+code=__hclass="LOCKDEPhed/core.c#L134" id4">>128
/a4
spa
9mclass="s9oL115">>515
4
5 
a hrefsptiaine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55orhLamtioL217",aw
spachangernd/"tncpu'sne" namref= may 130 be2u9tuct>
a h9="kerne2="kernel/sche=rq9 clas93ass="line" namtioL124">>128








* alhradass="snCPU. 
a hrpi_217">re3=wakclas_rads,nLamtioL217">re3=runnablcs_rads.5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae5">>128








*5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae5"1>128








* ncn5
/a3a55cn5
/a3a54cn5
/a3a55>150
/3a54cn5
/a3a55>128








* Fur
/3rmore, pll _rad_rq userkashould acquirl0bothl217"s,nnec5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a55cn5
/a3a55neg
5a> 4 52WARN_ON_ONCEd/cor15rq5#L142"sptidebug_lass>#L144" id43L124debug_lass>k_a>soh_"ioh_"i5!re.ci=>rtsk_neaslassdep_is_helhck
/a>(struct>"lassdep_is_helhd/corlae>>_rade=rq" clqaep href">rq
/a> *
a h,
a href="+ask"rtik_lpi_217" href">rq
/a> *
i_217"a h, =||t" class="sref">cn5
/a3a55














e.ci=>rtsk_neaslassdep_is_helhck
/a>(struct>"lassdep_is_helhd/corlae>>_rade=rq" clqaetrad_rq href">rq
/a> * clask_d/core.ci=>rtsk_neasp href">rq
/a> *
a h,>        
a h h="+cod217" href">rq
/a> *217"a h,   it" class="sref">cn5
/a3a55/core.c#L136" i5r9ef==de=5Fspa
 class9lct>
a hr9 jiffies etc)s to delive9 accu95ched/core.c#L135" id543L150" c5ass="93="kernel9sched/core.c#L131" id3oL971" c95ck_a>struct>
a hreoc54>>128
trace_srq
/a> *
a h,,
>tar=a>struct>
5ewsc_c
 class="commen5ewsc_ca h, it" class="sref">cn5
/a3a55tar+cod9=rq" 95ck_a>ore.c#L134" id4R 
a hde=4FAULT"9l9L117" c9f">EFAU5T
/3>55>128
 clasc_c
 class="commen clasc_cd/core.ci=>rtsk_neasp href">rq
/a> *
a h, 3!
3>5 struct>
a hreos="9l5 rq
/a> *
a h,
a href="+ask"rtik_li/href="+code=__hi/a h,.>tar=a>struct>
nrrmigrelion>#L144" id43L124nrrmigrelion>a h,++it" class="sref">cn5
/a3a55rq
/a> *
erf_sw_evited/core.ci=>rtsk_neasPERF_COUNT_SW_CPU_MIGRATIONSf">neg
5a> 4 52PERF_COUNT_SW_CPU_MIGRATIONSa h,,
1,
>tar=a>struct>
NULLf">neg
5a> 4 52NULLa h,,
0 it" class="sref">cn5
/a3a55neg
5a> 3)5 struct>
a hreoc54>>128
__iet_ clasc_c
 class="commen__iet_ clasc_cd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
5ewsc_c
 class="commen5ewsc_ca h, it" class="sref">cn5
/a3a55
a hr9c
a hreuoL164""line" nam9ioL1296ched/core.c#L135" id543L150" c5ass="92="kernel9L150">>450
3)46struct>
a hreos="92e" namti9hreuoL164""line" spt,3="9ernel96ched/core.c#Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
s="line" namtioL110t="ld/coit" class="sref">cn5
/a3a55struct>
a 2" id5">>128
/a5
dest_c_c
 class="commendest_c_cd/coit" class="sref">cn5
/a3a55/*4/sp3046 =>
a1" id40L191" cla9rre.c#L149ment">/*4/sp3046struct>
a hreoc5>>135spa
 9rd_feaq  9 &>15#L142"tik__>tar+cod9=rq" 96schedine" naL42" id5">>128
/a5
migrelion_q_clstopneg" class="sremigrelion_q_clstopd/cor/core_>tar=a>struct>
dataf">neg
5a> 4 52cata>     namtioL12> =>
a1" id40L191" cla9r3="kerne9ent">/*4/sp3046/*4/sp3046>128>>5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae5">>128
* wait_ clasinactive - wait>re3=a thss=">4o"un0"kerule.5ode=cnt" class="sref">cn5
/a3a55
a hr9ment">/*4/sp3a47 =>r "tlae5"1>128
>5ode=cnt" class="sref">cn5
/a3a55nonzero,sitass="snef" @p
a hritel/_valunejust qkessed and5ode=cnt" class="sref">cn5
/a3a55 */4/sp3 47cn5
/a3a55>128
*s
/3n L136" izero.  W/3n we succecera  waitclasre3=@p 4o"be offsitsaCPU,5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a55>140
/3t4  be suree
/nt5ode=cnt" class="sref">cn5
/a3a55
a h97ae preempasoh po"lis5">>128
/=@p has remai.cerun0"keruledref" wholcs_ime.5ode=cnt" class="sref">cn5
/a3a55>_asptik_35
/9>
a h97ae preempasoh po"lis5"8ef==d>5ode=cnt" class="sref">cn5
/a3a55>128d* Tf" "plleramust ensuree
/nt3
/3as="ll* */5*run0"keruleaso">timeasoon,5ode=cnt" class="sref">cn5
/a3a55>478
3a47>128
e=else
L clafunclion mspa
 spin>re3=a *long*s_ime.L115">funclion c >ass="o5ode=cnt" class="sref">cn5
/a3a55
a hr9ment">/*4/sp3>48 =>r "tlae5"1>128
* b" "plled> *th Lselrruptsaoff,nor itrmay Lseroduce ds="217"> *th5ode=cnt" class="sref">cn5
/a3a55secolby 
/3ai hr process/we are5ode=cnt" class="sref">cn5
/a3a55tar=156" +code=rde=r9" cla98hardirq=(IPI)=codtex5r3ref==a> aitclas4o"beex5" isactive.5ode=cnt" class="sref">cn5
/a3a55 */4/sp3)48>128
*+5ode=cnt" class="sref">cn5
/a3a55>128
/a5
wait_ clasinactivef">neg
5a> 4 52wait_ clasinactived/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#long" id5">>128
/a5
match_itel/neg" class="srematch_itel/a h, q" classock_a>struct>
a hreos="9ed_feaq_c9ock
/a>(struct>
a href="9code=98refsprq" classock_a>struct>
a hreos="9cd_feaq  9f">EFAU4T
/3>4 >128
/a5
ref">static_key4">>124
/a>    namtioL12> =>
a1" id40L191" cla9aass="com9L206">>406
3>48>128
/a5
runncla_>tar=a>struct>
unnclaa h,,
>tar=a>struct>
onlk__>tar=a>struct>onlk_k_a> namtioL12> =>
a1" id40L191" cla9alass="f=9ef">EFAU4T
/3>4 >128
/a5
ncsw
 class="commen5cswk_a> namtioL12> =>
a1" id40L191" cla9ed_feaq_c9ock
/a>(struct>
a hr+cod9=rq" 99ck_a>struct>
el/sched/core.c#L139" 5#L142" id43L112" clas &>15rq5#L142"sptik__>tar=a>struct>
a hre namtioL12> =>
a1" id40L191" cla9ect>
a hr9f">neg
4a> 3>4 neg
4a> 3>4 struct>
a hreos="9crespti=>9ef">neg
4a> 3>49struct>
/core.c#line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55tar+cod9=rq" 99ass="line" namtioL129">>128
















*LWe doaef" isitcal early heuristics> *thouo holdcla5ode=cnt" class="sref">cn5
/a3a55>483
3
49cn5
/a3a55EFAU4T
/3a4 cn5
/a3a55 =>r "tlae._ite"=+dddddddd







* workrouo!5ode=cnt" class="sref">cn5
/a3a55>406
3a49cn5
/a3a555 rq
/a> * clask_d/core.ci=>rtsk_neasp href">rq
/a> *
a h,> namtioL12> =>
a1" id40L191" cla10be29" cla10be29ed/core.c#L138" id3910be2>10behed/co/pre>amtioL12> =>
a1" id40L191" cla10b129" cla10b">neg
4a> 3>4 >10b1k_a>struct>
struct>
line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>4 >10bhardirq=(IPI)=codtex5r"ref==















* If 
/3as="lli> nctively 
unnclasopaano
/3r CPU5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>4910bhardirq=(IPI)=codtex5r3ref==















*Lstill,ejust relaxlind/busy-wait> *thouo holdcla5ode=cnt" class="sref">cn5
/a3a5515#L142"tik__>tar+cod10b&>>10bass="line" namtioL129">>128
















*Lanyalass>.5ode=cnt" class="sref">cn5
/a3a55>483
3
49cn5
/a3a55EFAU4T
/3a4 >10bass="line" namtioL128le" c=ddddddddd







* NOTE! Since we donass="o hold anyalass>,sitass="snnotl5FAULT" class="sref">EFAU5a> 3 5410be sptik_ > =>r "tlae._ite"=+dddddddd







* evit suree
/nt "rq"ainey> ns 
/3arspa
 
unqueu.!5ode=cnt" class="sref">cn5
/a3a55>406
3a4910bae preempasoh po"lis5"8ef==ddddddddd







* Buo we donass="o care, since " claskunncla()"a */55ode=cnt" class="sref">cn5
/a3a5510bass="line" namtioL124">>128
















* L136" ifalse
a hef" 
unqueu. has change"lind/p5ode=cnt" class="sref">cn5
/a3a55 4>50>128
















* i> nctupllynnow 
unnclasso">w
sreeelse!5ode=cnt" class="sref">cn5
/a3a55>159
/4a5 10/e sptik_ > =>r "tlae5"1>128
















*+5ode=cnt" class="sref">cn5
/a3a5510/2cpu if (
a href="+s5while rclas="
ao>>128
 clasrunncla_>tar=a>struct> clasrunnclad/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,  =rq" classock_a>struct>
a hreos="10/329" cla10ent">/*5/sp4)51>128
match_itel/neg" class="srematch_itel/a h,soh_"ioh_"i5a> 4 52rq
/a> *unlikelyd/core.ci=>rtsk_neasp href">rq
/a> *
a h,
a href="+ask"rtik_line"/href="+code=__hitel/a h,3!
3>5 struct>
a hreos="10/429" cla1043L124" class="s="srde=r1043L>10/ck_a>struct>
a hreoc5struct>








L136" i0 namtioL12> =>
a1" id40L191" cla101529" cla10ment">/*5/sp4a5110/5k_a>struct>
a hreoc555555555>5  */5/sp415110/schednamtioL12> =>
a1" id40L191" cla10/829" cla10uct>
a hreask"rt>
a +cod10uct>10/hcpu if (
a href="+s5line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a5510/ass="line" namtioL124">>128
















* Ok,s_imes4o"laok more naosely!LWe neerhef" 
q5ode=cnt" class="sref">cn5
/a3a55neg
5a> 4 5 10efss="line" namtioL124">>128
















* lassanow, 4o"be *sure*.LIf weass="re wrong, weass="/55ode=cnt" class="sref">cn5
/a3a55
a hreask"rt>
a e=rq10uct>10ee sptik_ > =>r "tlae5"1>128
















*ejust go"ba7">ind/repea1.5ode=cnt" class="sref">cn5
/a3a55>510
4 5 10ehardirq=(IPI)=codtex5r"ref==















*+5ode=cnt" class="sref">cn5
/a3a55
a hreask"rt>
a e=rq10uct>10eck_a>struct>
/core.c# id5">>128
/a5
5#L142" id43L112" clas &
3>5 rq
/a> *trad_rq_217"d/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
lae>>_rade=rq" clqaeref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla10e429" cla10class="mp_processor_i=rq10cla>10eck_a>struct>
a hreoc5a hreoc54>>128
trace_srtsk_neasp href">rq
/a> *
a h,> namtioL12> =>
a1" id40L191" cla102529" cla10="kernel/schedel/sche=rq10="k>10e5k_a>struct>
a hreoc5>tar=a>struct>
runncla_>tar=a>struct>
unnclaa h,&
3>5 rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla102629" cla10ef">neg
5a> 4 5210erefsptik__csd_pclas="ock
/a>(struct>onlk__>tar=a>struct>onlk_k_a>s
3>5 rq
/a> *
a h,
a href="+ask"rtik_lonlk__>tar=a>struct>onlk_k_a> namtioL12> =>
a1" id40L191" cla10e729" cla10est poll
a c#L129" id27L10est>10ea>
a hrefsptik__csdref=, 0=+code=negncsw
 class="commen5cswk_a>s
30 namtioL12> =>
a1" id40L191" cla102829" cla10>rtbock_" clmressor_e=rq10>rt>10ehcpu if (
a href="+s5a hr!ef="+ask"rtik_lmatch_itel/neg" class="srematch_itel/a h,s||5a> 4 52rq
/a> *
a h,
a href="+ask"rtik_line"/href="+code=__hitel/a h,3

3>5 struct>
a hreos="10e929" cla10uct>
a hreask"rt>
a +cod10uct>10ehcpu if (
a href="+s555555555f=, 0=+code=negncsw
 class="commen5cswk_a>s
3a> 4 52rq
/a> *
a h,
a href="+ask"rtik_lnvcsw
 class="commen5vcswk_a>s|5a> 4 52>128>> iets MSB
*+5ode=cnt" class="sref">cn5
/a3a55103Lk_a>struct>
a hreoc5a hreoc54>>128
trad_rq_unl17" href">rq
/a> *trad_rq_unl17"d/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
a href">rq
/a> *
a h,,
lae>>_rade=rq" clqaeref">static_key4">>124
/a>     namtioL12> =>
a1" id40L191" cla103129" cla10109">>159
/4
5 >550
4
531032cpu if (
a href="+s51ine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55103hardirq=(IPI)=codtex5r3ref==















*LIf itrchanged froshef" expecl/"litel/,"bail ouo now.5ode=cnt" class="sref">cn5
/a3a55 */5/sp4 5 103ass="line" namtioL129">>128
















*+5ode=cnt" class="sref">cn5
/a3a551035k_a>struct>
a hreoc5a hrclas="
ao>>128
unlikely href">rq
/a> *unlikelyd/cor!ef="+ask"rtik_lncsw
 class="commen5cswk_a>  q" classock_a>struct>
a hreos="103629" cla10epicock_le" ,"+code=e=rq10epi>103refsptik__csd_pclas="""""""""break namtioL12> =>
a1" id40L191" cla103729" cla10oL115">>515
4
5 103schednamtioL12> =>
a1" id40L191" cla103829" cla10picock_le" ,"+code=f+cod10pic>103hcpu if (
a href="+s5line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55103ass="line" namtioL124">>128
















* Was itrL1pllyn
unnclasafl/rrpll now 
/nt we5ode=cnt" class="sref">cn5
/a3a5510L1ss="line" namtioL124">>128
















* qkessed  *th 
/3aprop/rrlass> nctupllynhelh?5ode=cnt" class="sref">cn5
/a3a5510Le sptik_ > =>r "tlae5"1>128
















*5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a54ind/trysagain..5ode=cnt" class="sref">cn5
/a3a55>150
/3a5410Lhardirq=(IPI)=codtex5r3ref==















*+5ode=cnt" class="sref">cn5
/a3a5510Lck_a>struct>
a hreoc5a hrclas="
ao>>128
unlikely href">rq
/a> *unlikelyd/cor>tar=a>struct>
runncla_>tar=a>struct>
unnclaa h,  =rq" classock_a>struct>
a hreos="104529" cla10/sched/core.c#L138" id3910/sc>10L5k_a>struct>
a hreoc555555555>5 10Lrefsptik__csd_pclas="""""""""continue namtioL12> =>
a1" id40L191" cla104729" cla10power-sa ncers to delive10pow>10La>
a hrefsptik__csdrecore.c#L134" id4R 
a hde=4FAULT"104829" cla10/sched/core.c# to delive10/sc>10Lched/core.c#L137" id4e" c==de=4FAULT10L929" cla10"lensystem, a3L138" id3910"le>10Lhcpu if (
a href="+s5>ine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a5510" ardirq=(IPI)=codtex5r3ref==















*LItass="snnot enough 
/nt itass="snnot nctively 
unncla,5ode=cnt" class="sref">cn5
/a3a5510"e sptik_ > =>r "tlae5"1>128
















*eitrmust be offsef" 
unqueu. _1>1ikely_Wlind/notl5FAULT" class="sref">EFAU5a> 3 5410"hardirq=(IPI)=codtex5r"ref==















* arsempted!5ode=cnt" class="sref">cn5
/a3a55tar+cod10las>10"hardirq=(IPI)=codtex5r3ref==















*5ode=cnt" class="sref">cn5
/a3a55EFAU5T
/3>55>10"ass="line" namtioL129">>128
















*LSo5a hit> as still=runnablcs(buo just not nctively5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a5510"ass="line" namtioL128le" c=ddddddddd







* yielhi-_5t coulhibe aLwhile.5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae._ite"=+dddddddd







*+5ode=cnt" class="sref">cn5
/a3a55neg
5a> 3)5 10"hcpu if (
a href="+s5a hrclas="
ao>>128
unlikely href">rq
/a> *unlikelyd/cor>tar=a>struct>
onlk__>tar=a>struct>onlk_k_a>  =rq" classock_a>struct>
a hreos="105929" cla10+ccl_deadd40L2essor_e=rq10+cc>10"hcpu if (
a href="+s555555555f=, 0=+code=negk_ime_ock
/a>(struct>"k_ime_ocpu ia hreoc54>>128
to href">rq
/a> * ok_a>s
3a> 4 52(struct>"k_ime_seed/cor0,
>tar=a>struct>
NSEC_PER_SECck
/a>(struct>"NSEC_PER_SECd/co/>tar=a>struct>
HZck
/a>(struct>"HZ>     namtioL12> =>
a1" id40L191" cla106e29" cla10sched/core.c#L129" id27L10sch>10sched/core.c#L137" id4e" c==de=4FAULT106129" cla10c
a hreuoL164""line" nam10c
a>10s1k_a>struct>
struct>
struct>
ef="+ask"rtik_lietlcurrite_itel/neg" class="sreietlcurrite_itel/d/cor>tar=a>struct>
TASK_UNINTERRUPTIBLEneg" class="sreTASK_UNINTERRUPTIBLE>     namtioL12> =>
a1" id40L191" cla106229" cla10L150">>450
3)46(struct>"i"kerule_hr_imeouod/corlae>>_rade=rq" clqaeto href">rq
/a> * ok_a>,
>tar=a>struct>
HRTIMER_MODE_RELf">neg
5a> 4 52HRTIMER_MODE_REL>     namtioL12> =>
a1" id40L191" cla106329" cla10hreuoL164""line" spt,3="10hre>10sck_a>struct>
/core.c#########continue namtioL12> =>
a1" id40L191" cla106429" cla10E_REL_PINNEDlug_sptik__c10E_R>10sck_a>struct>
a hreoc5struct>
a hreoc5k3L150" c5ode=cn10s529" cla10ent">/*4/sp3046>128
/a4
spa
10s629" cla10ment">/*4/sp304610srefsptik__csd_pclas="oine" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a5515#L142"tik__>tar+cod10 &>>10se sptik_ > =>r "tlae._ite"=+dddddddd







* Ahh, pll good.LIt> asnass="o 
unncla,lind/it> asnass="o5ode=cnt" class="sref">cn5
/a3a55/*4/sp3046cn5
/a3a55/*4/sp3046>128
















* Lunnclasinsef" futureeei
/3r.LWeass="reepll do#L!5ode=cnt" class="sref">cn5
/a3a5510 l sptik_ > =>r "tlae._ite"=+dddddddd







*+5ode=cnt" class="sref">cn5
/a3a55/*4/sp3a4710 1k_a>struct>
struct>
break namtioL12> =>
a1" id40L191" cla107229" cla10ock
/a>(struct>
a hr+cod10ock>10 2cpu if (
a hstruct>
a hreoc5k3L150" c5ode=cn107329" cla10nt"> */4/sp3 4710 ck_a>ore.c#L134" id4R 
a hde=4FAULT"10 429" cla10class="line" namtioL1=CO10cla>10 ck_a>struct>
L136" i4">>128
/a4
spancsw
 class="commen5cswk_a> namtioL12> =>
a1" id40L191" cla10 529" cla10sptik__csd_pclas="s135
/10spt>10 ass="}namtioL12> =>
a1" id40L191" cla10 629" cla10L180">>140
/3t4 10 ck_a>struct>
a hreoc5>>135spa
 10 729" cla10ock_le" ,"+code=="s135
/10ock>10 e sptik_ > =>r "tlae._ite"=/**>5ode=cnt" class="sref">cn5
/a3a55>_asptik_35
/10amt>10 ae preempasoh po"lis5"8ef==d> kissrarocess/- kiss aLLunnclasthss=">4o"eselr/exit3
/3asref">5ode=cnt" class="sref">cn5
/a3a55>128d* @p: 
/3aso-be-kisserhefss="5ode=cnt" class="sref">cn5
/a3a55>478
3a47>128d*5ode=cnt" class="sref">cn5
/a3a55/*4/sp3>4810>e sptik_ > =>r "tlae5"1>128
* Cause aLprocess/w
ich is 
unnclasopaano
/3r CPU>4o"eselr5ode=cnt" class="sref">cn5
/a3a5510>hardirq=(IPI)=codtex5r"ref==* sref">-h
sp,houo holdyaladelay. (4o"geo sig.als hindled.)5ode=cnt" class="sref">cn5
/a3a55tar=156" +code=rde=r10t =>10>hardirq=(IPI)=codtex5r3ref==a5ode=cnt" class="sref">cn5
/a3a55 */4/sp3)4810>ass="line" namtioL129">>128
*sNOTE:
L clafunclion doesnass="o have 4o"take ef" 
unqueu. lass,5ode=cnt" class="sref">cn5
/a3a5510>ched/core.c#L128" id43L114"
/abeeause all it> antsato ensureeise
/nt3
/3aremot3as="lleselrs5ode=cnt" class="sref">cn5
/a3a55(struct>
a href="10ock>10>ass="line" namtioL128le" c=de=
/3asref">. If 
/3aIPI_races>ind/t/3as="llhas been msprel/"5ode=cnt" class="sref">cn5
/a3a55EFAU4T
/3>4 >10>ae preempasoh po"lis5">>128
/=to ano
/3r CPU>4
spanolharmeisedo#L>ind/t/3apurposelhas been5ode=cnt" class="sref">cn5
/a3a55>406
3>48 achieved ns well.5ode=cnt" class="sref">cn5
/a3a55EFAU4T
/3>4 10>ass="line" namtioL124">>128d*+5ode=cnt" class="sref">cn5
/a3a55(struct>
a hr+cod10ock>10ocss="/core.c#L240" i54oL1kissrarocessck
/a>(struct>"kissrarocessd/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, q" classock_a>struct>
a hreos="109129" cla10f">neg
4a> 3>4 >10oschedif (
a href="+sc39ioL83" 4lass="10o229" cla10f">neg
4a> 3>4 >10o2cpu if (
a ha 2" id5">>128
/a5
c_c
 class="commenc_cd/coit" class="sref">cn5
/a3a55neg
4a> 3>4910ock_a>ore.c#L134" id4R 
a hde=4FAULT"109429" cla10 &>15#L142"tik__>tar+cod10 &>>10ock_a>struct>
>tar=a>struct>
arsemptldisablc href">rq
/a> *
rsemptldisablcd/cor> namtioL12> =>
a1" id40L191" cla109529" cla10oL83">>483
3
495 rtsk_neasp href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla109629" cla10f">EFAU4T
/3a4 >10orefsptik__csda hrrclas="
ao>>128
r_c
 class="commenc_cd/co&!
3>5 )soh_"ioh_"i5a> 4 52(struct>"tclascurrd/core.ci=>rtsk_neasp href">rq
/a> *
a h,  q" classock_a>struct>
a hreos="109729" cla10NFIG_SCHEDHc#L129" id27L10NFI>10oa>
a hrefsptik__csdref=, 0=+code=negsmp_senr_genrq
/a> *smp_senr_genrtsk_neasr_c
 class="commenc_cd/co  namtioL12> =>
a1" id40L191" cla109829" cla10oL206">>406
3a4910o8k_a>struct>
>tar=a>struct>
arsemptlenablc href">rq
/a> *
rsemptlenablcd/cor> namtioL12> =>
a1" id40L191" cla109929" cla10/sched/core.c#L138" id3910/sc>10o9ss="}namtioL12> =>
a1" id40L191" cla11be29" cla11be29ed/core.c#L138" id3911be2>11behed/>tar=a>struct>
EXPORT_SYMBOL_GPLf">neg
5a> 4 52EXPORT_SYMBOL_GPLd/core.ci=>rtsk_neaskissrarocessck
/a>(struct>"kissrarocessd/co> namtioL12> =>
a1" id40L191" cla11b129" cla11b">neg
4a> 3>4 >11b1k_a>/core.5line" namtioL124">>128>> class="SMPd*+5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>4 >11bhardit" class="sref">cn5
/a3a55neg
4a> 3>4911bhardi#i.cor
ef="+ask"rtik_lclass="SMPhref="+code=__hclass="SMPsar"s135
/a>
a hrefar"ref=de=EFAULT11b429" cla11b&>15#L142"tik__>tar+cod11b&>>11bass="line" namtioL129">>128>>5ode=cnt" class="sref">cn5
/a3a55>483
3
49ind/p
a hrpi_217"5ode=cnt" class="sref">cn5
/a3a55EFAU4T
/3a4 >11bass="line" namtioL128le" c=d*+5ode=cnt" class="sref">cn5
/a3a55110schedine" naL42" id5">>128
/a5
select_fallba7"lk__>tar=a>struct>select_fallba7"lk_d/cora 2" id5">>128
/a5
c_c
 class="commenc_cd/co,Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h, q" classock_a>struct>
a hreos="11b829" cla11bL206">>406
3a4911bae prif (
a href="+sc39ioL83" 4lass="11b929" cla11bsched/core.c#L138" id3911bsc>110hcpu if (
a hconstLel/sched/core.c#L139" c_cmclaine" namtioL110c_cmclaptik__>tar=a>struct>
nct>mclaine" namtioL110nct>mclad/co&
3>5 d/core.ci=>rtsk_neasr_c_to_nct>ine" namtioL110c_c_to_nct>d/core.ci=>rtsk_neasr_c
 class="commenc_cd/co > namtioL12> =>
a1" id40L191" cla111e29" cla11/*5a> 4>50(struct>"c_cseo hre,
>tar=a>struct>
aossiblc href">rq
/a> *
ossiblc hre,
>tar=a>struct>
failstatic_key4">>12ailk_a>s}" id5">>128
/a5
sne"/href="+code=__hitel/a h,3
3>5  =>
a1" id40L191" cla111129" cla11L109">>159
/4a5 1111k_a>struct>
a 2" id5">>128
/a5
dest_c_c
 class="commendest_c_cd/coit" class="sref">cn5
/a3a55111hardit" class="sref">cn5
/a3a55/*5/sp4)51>128>> Laok re3=allowce, onl)51 CPU>inai hr n/a5.d*+5ode=cnt" class="sref">cn5
/a3a55111ck_a>struct>
>tar=a>struct>
re3_each_c_c
 class="commenre3_each_c_cd/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co,
>tar=a>struct>
5ct>mclaine" namtioL110nct>mclad/co =rq" classock_a>struct>
a hreos="111529" cla11ment">/*5/sp4a5111/5k_a>struct>
a hreoc5a hr!ef="+ask"rtik_lc_c_onl)51ine" namtioL110c_c_onl)51d/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co  q" classock_a>struct>
a hreos="111629" cla11       
a href="+code=rq11   >11/refsptik__csd_pclas="if (
a hcontinue namtioL12> =>
a1" id40L191" cla11/729" cla11ent"> */5/sp4151111a>
a hrefsptik__csdrea hr!ef="+ask"rtik_lc_c_activef">neg
5a> 4 52c_c_actived/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co  q" classock_a>struct>
a hreos="111829" cla11uct>
a hreask"rt>
a +cod11uct>11/hcpu if (
a href="+s5if (
a hcontinue namtioL12> =>
a1" id40L191" cla11/929" cla11="kerne2="kernel/sche=rq11="k>111hcpu if (
a href="+s5a hrclas="
ao>>128
c_cmcla_test_c_c
 class="commenc_cmcla_test_c_cd/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co,
>tar=a>struct>
tlasc_cs_allowceck
/a>(struct>" lasc_cs_allowced/core.ci=>rtsk_neasp href">rq
/a> *
a h,   q" classock_a>struct>
a hreos="112e29" cla11ef">neg
5a> 4 5 112Lk_a>struct>
a hreoc555555555L136" i4">>128
/a4
spadest_c_c
 class="commendest_c_cd/coit" class="sref">cn5
/a3a55
a hreask"rt>
a e=rq11uct>1121k_a>struct>
}namtioL12> =>
a1" id40L191" cla11e229" cla11oL110">>510
4 5 112hardit" class="sref">cn5
/a3a55
a hreask"rt>
a e=rq11uct>11eck_a>struct>
re3=(;; =rq" classock_a>struct>
a hreos="11e429" cla11class="mp_processor_i=rq11cla>11eck_a>struct>
a hreoc5aine" namtioL124">>128>> Any=allowce, onl)51 CPU?d*+5ode=cnt" class="sref">cn5
/a3a5511e5k_a>struct>
a hreoc5>tar=a>struct>
re3_each_c_c
 class="commenre3_each_c_cd/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co,
>tar=a>struct>
tlasc_cs_allowceck
/a>(struct>" lasc_cs_allowced/core.ci=>rtsk_neasp href">rq
/a> *
a h,  =rq" classock_a>struct>
a hreos="11e629" cla11ef">neg
5a> 4 5211erefsptik__csd_pclas="k__csdrea hr!ef="+ask"rtik_lc_c_onl)51ine" namtioL110c_c_onl)51d/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co  q" classock_a>struct>
a hreos="11e729" cla11est poll
a c#L129" id27L11est>11ea>
a hrefsptik__csdreref="+s5if (
a hcontinue namtioL12> =>
a1" id40L191" cla112829" cla11>rtbock_" clmressor_e=rq11>rt>11ehcpu if (
a href="+s5k__csdrea hr!ef="+ask"rtik_lc_c_activef">neg
5a> 4 52c_c_actived/core.ci=>rtsk_neasdest_c_c
 class="commendest_c_cd/co  q" classock_a>struct>
a hreos="11e929" cla11uct>
a hreask"rt>
a +cod11uct>11ehcpu if (
a href="+s555555555if (
a hcontinue namtioL12> =>
a1" id40L191" cla113e29" cla113L124" class="s="sr_e=rq113L1>113Lk_a>struct>
a hreoc555555555goto"ock
/a>(struct>ouock
/a>(struct>"ouod/co namtioL12> =>
a1" id40L191" cla113129" cla11109">>159
/4
5 >550
4
53113hardit" class="sref">cn5
/a3a55113ck_a>struct>
/core.c#swit"k re.ci=>rtsk_neassne"/href="+code=__hitel/a h, =rq" classock_a>struct>
a hreos="113429" cla11nt"> */5/sp4 5 113ck_a>struct>
a hreoc5case3>5 struct>
a hreos="113529" cla113L124" class="s="sr_e=rq113L1>1135k_a>struct>
a hreoc555555555aine" namtioL124">>128>> No more Mr. Nice Guy.d*+5ode=cnt" class="sref">cn5
/a3a55113refsptik__csd_pclas=""""""""">5 (struct>"c_cseosc_cs_allowce_fallba7"d/core.ci=>rtsk_neasp href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla113729" cla11oL115">>515
4
5 113a>
a hrefsptik__csdreref="+s5 id5">>128
/a5
sne"/href="+code=__hitel/a h,3
3>5 rq
/a> *
ossiblc hre namtioL12> =>
a1" id40L191" cla113829" cla11picock_le" ,"+code=f+cod11pic>113hcpu if (
a href="+s555555555break namtioL12> =>
a1" id40L191" cla113929" cla11="kerne2="kernel/sche=rq11="k>113ass="namtioL12> =>
a1" id40L191" cla114e29" cla11L124" class="s="sr__e=rq11L12>114Lk_a>struct>
a hreoc5case3>5 rq
/a> *
ossiblc hre:q" classock_a>struct>
a hreos="11L129" cla11picock_le" ,"+code=fe=rq11pic>1141k_a>struct>
struct>
struct>
ef="+ask"rtik_ldo_seosc_cs_allowce
 class="commendo_seosc_cs_allowced/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
c_c_
ossiblc_mclaine" namtioL110c_c_
ossiblc_mclaa h,  namtioL12> =>
a1" id40L191" cla11L229" cla11ref">cn5
/a3a54>12ailk_a> namtioL12> =>
a1" id40L191" cla11L329" cla11L180">>150
/3a54114ck_a>struct>
/core.c#########break namtioL12> =>
a1" id40L191" cla114429" cla11ass="line" nNO_HZa hre4=11ass>11Lck_a>namtioL12> =>
a1" id40L191" cla114529" cla11/sched/core.c#L138" id3911/sc>11L5k_a>struct>
a hreoc5case3>5 >12ailk_a>:q" classock_a>struct>
a hreos="11L629" cla11gratnce 3oL163L138" id3911gra>11Lrefsptik__csd_pclas=""""""""">5 >1BUGd/cor> namtioL12> =>
a1" id40L191" cla114729" cla11power-sa ncers to delive11pow>11La>
a hrefsptik__csdre########break namtioL12> =>
a1" id40L191" cla114829" cla11/sched/core.c# to delive11/sc>114hcpu if (
a href="+s5}namtioL12> =>
a1" id40L191" cla11L929" cla11"lensystem, a3L138" id3911"le>11Lhcpu if (
a h}namtioL12> =>
a1" id40L191" cla115e29" cla11" h"ke4nt_csd with rqref11" h>115ched/core.c#L137" id4e" c==de=4FAULT11"129" cla11 jiffies etc)s to delive11 ji>11"e sptick
/a>(struct>ouock
/a>(struct>"ouod/co:q" classock_a>struct>
a hreos="115229" cla11sched/core.c#L131" id3oL11sch>115ck_a>struct>
a hrclas="
ao>>128
ine"/href="+code=__hitel/a h,3!
3>5 struct>
a hreos="115329" cla11lass__as6L1tik__>tar+cod11las>115ck_a>struct>
/core.c#line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55EFAU5T
/3>55>11"ass="line" namtioL129">>128
















*LDonass="o tell/t/3m abholdmovclasexitclastclas or5ode=cnt" class="sref">cn5
/a3a55hefss="s (bothlmm NULL), since ef"ysnever5ode=cnt" class="sref">cn5
/a3a5511"ass="line" namtioL128le" c=ddddddddd







* leave sref">.5ode=cnt" class="sref">cn5
/a3a55 =>r "tlae._ite"=+dddddddd







*+5ode=cnt" class="sref">cn5
/a3a55neg
5a> 3)5 11"hcpu if (
a href="+s5a hrclas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_lmm href">rq
/a> *mmcpu ioh_"ioh_"i5a> 4 52rq
/a> *
rintk_rel/limied/cor>)srq" classock_a>struct>
a hreos="115929" cla11+ccl_deadd40L2essor_e=rq11+cc>11"hcpu if (
a href="+s555555555f=, 0=+code=neg
rintk_uct>
 href">rq
/a> *
rintk_uct>
d/corek_ > =>r "tlstrcla_>"process/ass7;d (ass7;s)anollong/rrpff)51 4o"cpuass7;d\n"5ode=cn,q" classock_a>struct>
a hreos="116e29" cla11sched/core.c#L129" id27L11sch>116Lk_a>struct>
a hreoc555555555ref="+s555555555f=, 0=+code=neg claspid_nrck
/a>(struct>"tclaspid_nrd/core.ci=>rtsk_neasp href">rq
/a> *
a h, ,
>tar=a>struct>
a href">rq
/a> *
a h,
a href="+ask"rtik_lae._ck
/a>(struct>"commcpu ,
>tar=a>struct>
c_c
 class="commenc_cd/co  namtioL12> =>
a1" id40L191" cla116129" cla11c
a hreuoL164""line" nam11c
a>11s1k_a>struct>
struct>
}namtioL12> =>
a1" id40L191" cla116229" cla11L150">>450
3)46116ck_a>struct>
L136" i4">>128
/a4
spadest_c_c
 class="commendest_c_cd/coit" class="sref">cn5
/a3a55/*4/sp3046 =>
a1" id40L191" cla11s629" cla11ment">/*4/sp3046116ck_a>struct>
a hreoc5>>135spa
 116729" cla11 &>15#L142"tik__>tar+cod11 &>>11se sptik_ > =>r "tlae._ite"=>>5ode=cnt" class="sref">cn5
/a3a55/*4/sp3046cn5
/a3a55/*4/sp3046>128
*+5ode=cnt" class="sref">cn5
/a3a5511 l sptine" na4">>128
/a4
spainl)51ine" namtioL110inl)51d/cot" class="sref">cn5
/a3a55/*4/sp3a4711 1k_a>L42" id5">>128
/a5
select_trad_rq href">rq
/a> *select_trad_rqd/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
sd_ref">static_key4">>1sd_ref">a h,,#L42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" class="sref">cn5
/a3a55(struct>
a hr+cod11ock>11 2cpu rq" classock_a>struct>
a hreos="117329" cla11nt"> */4/sp3 47117ck_a>struct>
a 2" id5">>128
/a5
c_c
 class="commenc_cd/cos
3a> 4 52rq
/a> *
a h,
a href="+ask"rtik_luct>
_ref">static_key4">>1sct>
_ref">a h,
a href="+ask"rtik_luelect_trad_rq href">rq
/a> *select_trad_rqd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
sd_ref">static_key4">>1sd_ref">a h,,# id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co it" class="sref">cn5
/a3a55117ck_a>namtioL12> =>
a1" id40L191" cla11 529" cla11sptik__csd_pclas="s135
/11spt>1175k_a>struct>
>k_ > =>r "tlae._ite"=>>5ode=cnt" class="sref">cn5
/a3a55>140
/3t4 117ass="line" namtioL128le" c=d







* In orderanot 4o"call seos clasc_c()sopaa b217"clastcla/weaneer5ode=cnt" class="sref">cn5
/a3a55117ae preempasoh po"lis5">>128








* 4o"kelysopattwc()s4o"place ef"stcla/opaa valid 
a hrc_cs_allowce5ode=cnt" class="sref">cn5
/a3a55>_asptik_35
/11amt>11 ae preempasoh po"lis5"8ef==d







* c_c.5ode=cnt" class="sref">cn5
/a3a55>128d







*5ode=cnt" class="sref">cn5
/a3a55>478
3a47>128d







* Since efasnasn124"opato all place">>1Lel/el/gies, efasnlives 
sre.5ode=cnt" class="sref">cn5
/a3a55/*4/sp3>4811>e sptik_ > =>r "tlae5"1>128








*5ode=cnt" class="sref">cn5
/a3a5511>hardirq=(IPI)=codtex5r"ref==







* [ efasnallows 
a hrselect_trad()s4o"simply 
136" i clasc_c(p) ane5ode=cnt" class="sref">cn5
/a3a55tar=156" +code=rde=r11t =>11>hardirq=(IPI)=codtex5r3ref==







*  anot worrysabholdefasngener naconstraa 2"]5ode=cnt" class="sref">cn5
/a3a55 */4/sp3)4811>ass="line" namtioL129">>128








*+5ode=cnt" class="sref">cn5
/a3a551185k_a>struct>
a hrclas="
ao>>128
unlikely href">rq
/a> *unlikelyd/cor!ef="+ask"rtik_lc_cmcla_test_c_c
 class="commenc_cmcla_test_c_cd/core.ci=>rtsk_neasc_c
 class="commenc_cd/co,L>tar=a>struct>
tlasc_cs_allowceck
/a>(struct>" lasc_cs_allowced/core.ci=>rtsk_neasp href">rq
/a> *
a h,  =||t" class="sref">cn5
/a3a55(struct>
a href="11ock>118refsptik__csd_pclas=""""""!ef="+ask"rtik_lc_c_onl)51ine" namtioL110c_c_onl)51d/core.ci=>rtsk_neasr_c
 class="commenc_cd/co > t" class="sref">cn5
/a3a55EFAU4T
/3>4 >118a>
a hrefsptik__csdref=, 0=+code=negc_c
 class="commenc_cd/cos
3a> 4 52tar=a>struct>select_fallba7"lk_d/cord/core.c#L139" clasLc_c
 class="commen clasc_cd/core.ci=>rtsk_neasp href">rq
/a> *
a h, ,
>tar=a>struct>
a href">rq
/a> *
a h,  namtioL12> =>
a1" id40L191" cla118829" cla11L206">>406
3>48EFAU4T
/3>4 118hcpu if (
a hL136" i4">>128
/a4
spac_c
 class="commenc_cd/coit" class="sref">cn5
/a3a55(struct>
a hr+cod11ock>11ocss="}namtioL12> =>
a1" id40L191" cla119129" cla11f">neg
4a> 3>4 >119ched/core.c#L135" id543L150" c5ass="11o229" cla11f">neg
4a> 3>4 >11o2cpu ine" na/core.c#L240" i54oL1updel/_ava_>tar=a>struct>updel/_avad/core.ci=>rtsk_neasuE_REL_PINNEtruct>u6ck_a>s_>tar=a>struct>
ava_>tar=a>struct>avad/co,
>tar=a>struct>
uE_REL_PINNEtruct>u6ck_a>sa> 4 52cn5
/a3a55neg
4a> 3>4911ock_a>rq" classock_a>struct>
a hreos="119429" cla11 &>15#L142"tik__>tar+cod11 &>>11ock_a>struct>
>tar=a>struct>
sE_REL_PINNEtruct>s6ck_a>sa> 4 52tar=a>struct>
ava_>tar=a>struct>avad/coit" class="sref">cn5
/a3a55>483
3
49cn5
/a3a55EFAU4T
/3a4 >11orefsp}namtioL12> =>
a1" id40L191" cla119729" cla11NFIG_SCHEDHc#L129" id27L11NFI>11oa>
a /core.namtioL12> =>
a1" id40L191" cla119829" cla11oL206">>406
3a49119ched/core.c#L137" id4e" c==de=4FAULT119929" cla11/sched/core.c#L138" id3911/sc>11o9ss="ine" na/corcore.c#L137" id4e" c==de=4FAULT12be29" cla12be29ed/core.c#L138" id3912be2>12behed/>tar=a>struct>
ttwc_itel
 class="commen twc_iteld/corel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" class="sref">cn5
/a3a55neg
4a> 3>4 >120schedif (
a href="+sc39ioL83" 4lass="12b229" cla12b">neg
4a> 3>4 >12bhardi#i.cor
ef="+ask"rtik_lclass="SCHEDSTATSstatic_key4">>1class="SCHEDSTATShed/core.c#L137" id4e" c==de=4FAULT12b329" cla12bf">neg
4a> 3>49120ck_a>struct>
el/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas &
3>5 15#L142"tik__>tar+cod12b&>>120ck_a>namtioL12> =>
a1" id40L191" cla12b529" cla12bL83">>483
3
49
a hrefar"ref=de=EFAULT12b629" cla12b">EFAU4T
/3a4 >120refsptik__csda42" id5">>128
/a5
tfaslc_c
 class="commen faslc_cd/cos
3a> 4 52(struct>"smp_arocessor_ihd/cor> namtioL12> =>
a1" id40L191" cla12b729" cla12bFIG_SCHEDHc#L129" id27L12bFI>120schednamtioL12> =>
a1" id40L191" cla12b829" cla12bL206">>406
3a49120hcpu if (
a ha hrclas="
ao>>128
c_c
 class="commenc_cd/cos

3>5 struct>
a hreos="12b929" cla12bsched/core.c#L138" id3912bsc>120hcpu if (
a href="+s5>f="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
 twc_localstatic_key4">>1 twc_locala h,  namtioL12> =>
a1" id40L191" cla121e29" cla12/*5a> 4>50
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
s/href="+code=__hi/d/co.clas="
ao>>128
ine"is" n>static_key4">>1sne"is" n>d/co.clas="
ao>>128
nr_wakeups_localstatic_key4">>1nr_wakeups_locala h,  namtioL12> =>
a1" id40L191" cla121129" cla12L109">>159
/4a5 1211k_a>struct>
} elsesrq" classock_a>struct>
a hreos="121229" cla12
a hreask"rclass=
a +cod12
a >1212cpu if (
a href="+s5el/sched/core.c#L139" sct>
_domainstatic_key4">>1sct>
_domainlas &_>tar=a>struct>
shck
/a>(struct>"sdd/coit" class="sref">cn5
/a3a55/*5/sp4)51121ck_a>struct>
a hreoc5af="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
s/href="+code=__hi/d/co.clas="
ao>>128
ine"is" n>static_key4">>1sne"is" n>d/co.clas="
ao>>128
nr_wakeups_remot3static_key4">>1nr_wakeups_remot3a h,  namtioL12> =>
a1" id40L191" cla121529" cla12ment">/*5/sp4a5112/5k_a>struct>
a hreoc5e.ci=>rtsk_neaskcclkead_217" href">rq
/a> *kcclkead_217"d/cor> namtioL12> =>
a1" id40L191" cla121629" cla12       
a href="+code=rq12   >12/refsptik__csd_pclas="e.ci=>rtsk_neasre3_each_domainstatic_key4">>1re3_each_domaind/cord/core.c#L139" cfaslc_c
 class="commen faslc_cd/co,
>tar=a>struct>
sdck
/a>(struct>"sdd/co)srq" classock_a>struct>
a hreos="12/729" cla12ent"> */5/sp4151121a>
a hrefsptik__csdreif (
a ha hrclas="
ao>>128
c_cmcla_test_c_c
 class="commenc_cmcla_test_c_cd/core.ci=>rtsk_neasc_c
 class="commenc_cd/co,L>tar=a>struct>
sct>
_domain_de=cstatic_key4">>1sct>
_domain_de=cd/core.ci=>rtsk_neassdck
/a>(struct>"sdd/co)>)srq" classock_a>struct>
a hreos="121829" cla12uct>
a hreask"rt>
a +cod12uct>12/hcpu if (
a href="+s5if (
a ha hreoc5af="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neassdck
/a>(struct>"sdd/co,
>tar=a>struct>
 twc_wake_remot3static_key4">>1 twc_wake_remot3a h,  namtioL12> =>
a1" id40L191" cla121929" cla12="kerne2="kernel/sche=rq12="k>121hcpu if (
a href="+s55555555555555555break namtioL12> =>
a1" id40L191" cla122e29" cla12ef">neg
5a> 4 5 122Lk_a>struct>
a hreoc555555555}namtioL12> =>
a1" id40L191" cla122129" cla12uct>
a hreask"rt>
a e=rq12uct>1221k_a>struct>
struct>
}namtioL12> =>
a1" id40L191" cla12e229" cla12oL110">>510
4 5 1222cpu if (
a href="+s51.ci=>rtsk_neaskcclkead_unl17" href">rq
/a> *kcclkead_unl17"d/cor> namtioL12> =>
a1" id40L191" cla122329" cla12uct>
a hreask"rt>
a e=rq12uct>12eck_a>struct>
}namtioL12> =>
a1" id40L191" cla12e429" cla12class="mp_processor_i=rq12cla>122ck_a>namtioL12> =>
a1" id40L191" cla122529" cla12="kernel/schedel/sche=rq12="k>1225k_a>struct>
a hrclas="
ao>>128
wake_ref">static_key4">>1wake_ref">d/co oh_"i5a> 4 52>1WF_MIGRATEDd/co t" class="sref">cn5
/a3a55neg
5a> 4 5212erefsptik__csd_pclas="af="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
s/href="+code=__hi/d/co.clas="
ao>>128
ine"is" n>static_key4">>1sne"is" n>d/co.clas="
ao>>128
nr_wakeups_msprel/static_key4">>1nr_wakeups_msprel/a h,  namtioL12> =>
a1" id40L191" cla12e729" cla12est poll
a c#L129" id27L12est>122schednamtioL12> =>
a1" id40L191" cla122829" cla12>rtbock_" clmressor_e=rq12>rt>12ehcpu /core.5line" namtioL124">>128>> class="SMPd*+5ode=cnt" class="sref">cn5
/a3a55
a hreask"rt>
a +cod12uct>122ass="namtioL12> =>
a1" id40L191" cla123e29" cla123L124" class="s="sr_e=rq123L1>123Lk_a>struct>
>f="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
 twc_counl
 class="commen twc_counla h,  namtioL12> =>
a1" id40L191" cla123129" cla12109">>159
/4
5 
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
s/href="+code=__hi/d/co.clas="
ao>>128
ine"is" n>static_key4">>1sne"is" n>d/co.clas="
ao>>128
nr_wakeupsstatic_key4">>1nr_wakeupsa h,  namtioL12> =>
a1" id40L191" cla123229" cla12oL150">>550
4
53123hardit" class="sref">cn5
/a3a55123ck_a>struct>
a hrclas="
ao>>128
wake_ref">static_key4">>1wake_ref">d/co oh_"i5a> 4 52(struct>"WF_SYNCd/co t" class="sref">cn5
/a3a55 */5/sp4 5 123ck_a>struct>
a hreoc5af="+ask"rtik_luct>
itel_incstatic_key4">>1sct>
itel_incd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
s/href="+code=__hi/d/co.clas="
ao>>128
ine"is" n>static_key4">>1sne"is" n>d/co.clas="
ao>>128
nr_wakeups_syncstatic_key4">>1nr_wakeups_synca h,  namtioL12> =>
a1" id40L191" cla123529" cla123L124" class="s="sr_e=rq123L1>123ched/core.c#L134" id4">>128
/a4
spa
123629" cla12epicock_le" ,"+code=e=rq12epi>123refsp/core.5line" namtioL124">>128>> class="SCHEDSTATSd*+5ode=cnt" class="sref">cn5
/a3a55>515
4
5 123a>
a }namtioL12> =>
a1" id40L191" cla123829" cla12picock_le" ,"+code=f+cod12pic>123ched/core.c#L137" id4e" c==de=4FAULT123929" cla12="kerne2="kernel/sche=rq12="k>1239ss="ine" na/cor
>tar=a>struct>
 twc_activel/static_key4">>1 twc_activel/d/corel/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas ,Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,LL42" id5">>128
/a5
en_ref">static_key4">>1en_ref">d/co t" class="sref">cn5
/a3a55124Lk_a>rq" classock_a>struct>
a hreos="12L129" cla12picock_le" ,"+code=fe=rq12pic>1241k_a>struct>
af="+ask"rtik_lactivel/_trad_>tar=a>struct>activel/_tradd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
en_ref">static_key4">>1en_ref">d/co  namtioL12> =>
a1" id40L191" cla12L229" cla12ref">cn5
/a3a54rq
/a> *
a h,
a href="+ask"rtik_lonlk__>tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12L329" cla12L180">>150
/3a54124ck_a>ore.c#L134" id4R 
a hde=4FAULT"124429" cla12ass="line" nNO_HZa hre4=12ass>124ck_a>struct>
>ine" namtioL124">>128>> e.5a wor" inasnwakclasup,anotify wor"queu. *+5ode=cnt" class="sref">cn5
/a3a551245k_a>struct>
a hrclas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_lref">static_key4">>1ref">d/co oh_"i5a> 4 52>1PF_WQ_WORKERd/co t" class="sref">cn5
/a3a5512Lrefsptik__csd_pclas="clas="
ao>>128
wq_wor" i_wakcla_up href">rq
/a> *wq_wor" i_wakcla_upd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
c_c_of
 class="commenc_c_ofd/core.ci=>rtsk_neask__>tar=a>struct>
a hre > namtioL12> =>
a1" id40L191" cla124729" cla12power-sa ncers to delive12pow>124a>
a }namtioL12> =>
a1" id40L191" cla124829" cla12/sched/core.c# to delive12/sc>124ched/core.c#L137" id4e" c==de=4FAULT12L929" cla12"lensystem, a3L138" id3912"le>124ass="line" namtioL124">>128>>5ode=cnt" class="sref">cn5
/a3a55125>ss="line" namtioL124">>128d* Mark ef"stcla/runnablc>ind/perform wakeup-
rsemption.5ode=cnt" class="sref">cn5
/a3a55125e sptik_ > =>r "tlae5"1>128
*+5ode=cnt" class="sref">cn5
/a3a551252cpu ine" na/cort" class="sref">cn5
/a3a55tar+cod12las>125ck_a>>tar=a>struct>
 twc_do_wakeupstatic_key4">>1 twc_do_wakeupd/corel/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas ,Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,LL42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" class="sref">cn5
/a3a55EFAU5T
/3>55>12"ass="rq" classock_a>struct>
a hreos="125529" cla12class="mp_processor_e=rq12cla>1255k_a>struct>
>tar=a>struct>
trace_uct>
_wakeupstatic_key4">>1 race_uct>
_wakeupd/core.ci=>rtsk_neasp href">rq
/a> *
a h,,
>tar=a>struct>
191/static_key4">>1 91/d/co  namtioL12> =>
a1" id40L191" cla125629" cla12 id43L112" clas ode=e=rq12 id>1256k_a>struct>
>tar=a>struct>
id4ssrarsemptlcurrck
/a>(struct>"id4ssrarsemptlcurrd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="sref">cn5
/a3a55neg
5a> 3)5 1258k_a>struct>
>tar=a>struct>
a href">rq
/a> *
a h,
a href="+ask"rtik_line"/href="+code=__hitel/a h,3
3>5 >1TASK_RUNNINGd/coit" class="sref">cn5
/a3a5512"hcpu #i.cor
ef="+ask"rtik_lclass="SMPhref="+code=__hclass="SMPsar"s135
/a>
a hrefar"ref=de=EFAULT126e29" cla12sched/core.c#L129" id27L12sch>126Lk_a>struct>
a hrclas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_luct>
_ref">static_key4">>1sct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a5512s1k_a>struct>
struct>
clas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_luct>
_ref">static_key4">>1sct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h, it" class="sref">cn5
/a3a55>450
3)46cn5
/a3a55>128
k__>tar=a>struct>
a hre
a href="+ask"rtik_lidle_itemp href">rq
/a> *idle_itempd/co)srq" classock_a>struct>
a hreos="126429" cla12E_REL_PINNEDlug_sptik__c12E_R>126ck_a>struct>
a hreoc5af="+ask"rtik_luE_REL_PINNEtruct>u6ck_a>sa> 4 52deltaa h,3
3>5 rq
/a> *cl17"d/co -3>5 rq
/a> *idle_itempd/coit" class="sref">cn5
/a3a55/*4/sp3046
_msprelion_cosod/coit" class="sref">cn5
/a3a55/*4/sp3046126ck_a>struct>
a hreoc5>>135spa
 126729" cla12 &>15#L142"tik__>tar+cod12 &>>126a>
a hrefsptik__csdrea hra> 4 52deltaa h,3a hr a> 4 52maxa h, t" class="sref">cn5
/a3a55/*4/sp30465 tar=a>struct>avg_idlea h,3
3>5 cn5
/a3a55/*4/sp3046cn5
/a3a55127Lk_a>struct>
a hreoc555555555e.ci=>rtsk_neasupdel/_ava_>tar=a>struct>updel/_avad/coroh_"i>5 tar=a>struct>avg_idlea h,,
>tar=a>struct>
deltaREL_PINNEtruct>deltaa h, it" class="sref">cn5
/a3a55/*4/sp3a471271k_a>struct>
struct>
clas="
ao>>128
k__>tar=a>struct>
a hre
a href="+ask"rtik_lidle_itemp href">rq
/a> *idle_itempd/co3
30it" class="sref">cn5
/a3a55(struct>
a hr+cod12ock>1272cpu if (
a hstruct>
a hreoc5k3L150" c5ode=cn127329" cla12nt"> */4/sp3 47127ck_a>/core.namtioL12> =>
a1" id40L191" cla12 429" cla12class="line" namtioL1=CO12cla>127ck_a>struct>
a hreoc5k3L150" c5ode=cn127529" cla12sptik__csd_pclas="s135
/12spt>127ched/core.c#L134" id4">>128
/a4
spa
12 629" cla12L180">>140
/3t4 127ass="ine" na/cort" class="sref">cn5
/a3a55127ae pretar=a>struct>
 twc_do_activel/static_key4">>1 twc_do_activel/d/corel/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas ,Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,LL42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" class="sref">cn5
/a3a55>_asptik_35
/12amt>127ae prif (
a href="+sc39ioL83" 4lass="127929" cla12oL158" class="line" nf="12oL1>127hcpu #i.cor
ef="+ask"rtik_lclass="SMPhref="+code=__hclass="SMPsar"s135
/a>
a hrefar"ref=de=EFAULT128e29" cla12>>478
3a47>128
p href">rq
/a> *
a h,
a href="+ask"rtik_luct>
_rontributes_to_loadck
/a>(struct>"sct>
_rontributes_to_loadd/co t" class="sref">cn5
/a3a55/*4/sp3>481281k_a>struct>
struct>
clas="
ao>>128
k__>tar=a>struct>
a hre
a href="+ask"rtik_lnr_unL42erruptiblc href">rq
/a> *nr_unL42erruptiblc hre
-it" class="sref">cn5
/a3a5512>hardi/core.namtioL12> =>
a1" id40L191" cla128329" cla12t =>tar=156" +code=rde=r12t =>128ck_a>ore.c#L134" id4R 
a hde=4FAULT"128429" cla12nt"> */4/sp3)48128ck_a>struct>
>tar=a>struct>
 twc_activel/static_key4">>1 twc_activel/d/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
ENQUEUE_WAKEUPhref="+code=__hENQUEUE_WAKEUPk_a>s|
>tar=a>struct>
ENQUEUE_WAKINGstatic_key4">>1ENQUEUE_WAKINGa h, it" class="sref">cn5
/a3a551285k_a>struct>
>tar=a>struct>
ttwc_do_wakeupstatic_key4">>1 twc_do_wakeupd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="sref">cn5
/a3a55(struct>
a href="12ock>128refsp}namtioL12> =>
a1" id40L191" cla128729" cla12f">EFAU4T
/3>4 >128schednamtioL12> =>
a1" id40L191" cla128829" cla12L206">>406
3>48>5ode=cnt" class="sref">cn5
/a3a55EFAU4T
/3>4 128ass="line" namtioL124">>128
* Cplled>inacase3ef"stcla/@p isnass="o fully den5
/auled>from its/runqueu.,5ode=cnt" class="sref">cn5
/a3a55(struct>
a hr+cod12ock>129>ss="line" namtioL124">>128d* inaefasncase3we must do a remot3 wakeup. Its/a ass="lightass=" wakeupaefough,5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>4 >129e sptik_ > =>r "tlae5"1>128
* since all weaneers4o"do asnflip/p
a hritel/s4o"TASK_RUNNING, since5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>4 >129hardirq=(IPI)=codtex5r"ref==*3ef"stcla/asnitill 
a hronlk_.5ode=cnt" class="sref">cn5
/a3a55neg
4a> 3>49129hardirq=(IPI)=codtex5r3ref==*+5ode=cnt" class="sref">cn5
/a3a5515#L142"tik__>tar+cod12 &>>12ock_a>ine" naL42" id5">>128
/a5
 twc_remot3static_key4">>1 twc_remot3a h,rel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" class="sref">cn5
/a3a55>483
3
49EFAU4T
/3a4 >1296k_a>struct>
el/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas it" class="sref">cn5
/a3a55129a>
a hrefsptiL42" id5">>128
/a5
reock
/a>(struct>"reo hre3
30it" class="sref">cn5
/a3a55>406
3a49129ched/core.c#L137" id4e" c==de=4FAULT129929" cla12/sched/core.c#L138" id3912/sc>1299k_a>struct>
>tar=a>struct>
5#L142" id43L112" clas &
3>5 rq
/a> *__trad_rq_217"d/core.ci=>rtsk_neasp href">rq
/a> *
a h, it" class="sref">cn5
/a3a55130Lk_a>struct>
a hrclas="
ao>>128
p href">rq
/a> *
a h,
a href="+ask"rtik_lonlk__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b129" cla13b">neg
4a> 3>4 >1301k_a>struct>
struct>
clas="
ao>>128
ttwc_do_wakeupstatic_key4">>1 twc_do_wakeupd/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="sref">cn5
/a3a55neg
4a> 3>4 >1302cpu if (
a href="+s51.ci=>rtsk_neaskeock
/a>(struct>"reo hre3
31 namtioL12> =>
a1" id40L191" cla13b329" cla13bf">neg
4a> 3>49130ck_a>struct>
}namtioL12> =>
a1" id40L191" cla13b429" cla13b&>15#L142"tik__>tar+cod13b&>>130ck_a>struct>
>tar=a>struct>
__trad_rq_unl17" href">rq
/a> *__trad_rq_unl17"d/core.ci=>rtsk_neask__>tar=a>struct>
a hre it" class="sref">cn5
/a3a55>483
3
49>128
/a4
spa
13b629" cla13b">EFAU4T
/3a4 >130refsptik__csdL136" i4">>128
/a4
spakeock
/a>(struct>"reo hreit" class="sref">cn5
/a3a55130a>
a }namtioL12> =>
a1" id40L191" cla13b829" cla13bL206">>406
3a49130ched/core.c#L137" id4e" c==de=4FAULT13b929" cla13bsched/core.c#L138" id3913bsc>130hcpu #i.cor
ef="+ask"rtik_lclass="SMPhref="+code=__hclass="SMPsar"s135
/a>
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>50tar=a>struct>
sct>
_ twc_pcorena_>tar=a>struct>sct>
_ twc_pcorenad/cor/cor t" class="sref">cn5
/a3a55>159
/4a5 131schedif (
a href="+sc39ioL83" 4lass="131229" cla13
a hreask"rclass=
a +cod13
a >1312cpu if (
a hel/sched/core.c#L139" 5#L142" id43L112" clas &_>tar=a>struct>
5#L142" id43L112" clas &
3>5 /*5/sp4)51tar=a>struct>llist_n39"las &_>tar=a>struct>
llist_>tar=a>struct>llistlas &
3>5 5 tar=a>struct>wake_list hre it" class="sref">cn5
/a3a55131ck_a>struct>
el/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik__>tar=a>struct>
a href">rq
/a> *
a h,it" class="sref">cn5
/a3a55/*5/sp4a51131ched/core.c#L134" id4">>128
/a4
spa
131629" cla13       
a href="+code=rq13   >1316k_a>struct>
>tar=a>struct>
raw_spin_217" href">rq
/a> *kaw_spin_217"d/coroh_"i>5 rq
/a> *217"d/co it" class="sref">cn5
/a3a55 */5/sp4151131schednamtioL12> =>
a1" id40L191" cla131829" cla13uct>
a hreask"rt>
a +cod13uct>13/hcpu if (
a hwhilehrclas="
ao>>128
llist_>tar=a>struct>llistlas )srq" classock_a>struct>
a hreos="131929" cla13="kerne2="kernel/sche=rq13="k>131hcpu if (
a href="+s5>tar=a>struct>
a href">rq
/a> *
a h,&
3>5 rq
/a> *llist_entryd/core.ci=>rtsk_neasllist_>tar=a>struct>llistlas ,Lel/sched/core.c#L139" clasL191"lock
/a>(struct>" clasL191"sptik,
>tar=a>struct>
wake_entry href">rq
/a> *wake_entryd/co it" class="sref">cn5
/a3a55neg
5a> 4 5 132Lk_a>struct>
a hreoc5>tar=a>struct>
llist_>tar=a>struct>llistlas &
3>5 cn5
/a3a55
a hreask"rt>
a e=rq13uct>1321k_a>struct>
struct>
etar=a>struct>
 twc_do_activel/static_key4">>1 twc_do_activel/d/core.ci=>rtsk_neask__>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
0 it" class="sref">cn5
/a3a55>510
4 5 1322cpu if (
a hstruct>
a hreoc5k3L150" c5ode=cn132329" cla13uct>
a hreask"rt>
a e=rq13uct>132ck_a>ore.c#L134" id4R 
a hde=4FAULT"13e429" cla13class="mp_processor_i=rq13cla>132ck_a>struct>
>tar=a>struct>
kaw_spin_unl17" href">rq
/a> *kaw_spin_unl17"d/coroh_"i>5 rq
/a> *217"d/co it" class="sref">cn5
/a3a55132ass="}namtioL12> =>
a1" id40L191" cla13e629" cla13ef">neg
5a> 4 52132ck_a>struct>
a hreoc5>>135spa
 13e729" cla13est poll
a c#L129" id27L13est>132sched/cor
>tar=a>struct>
sct>
uler_ipi_>tar=a>struct>sct>
uler_ipid/cor/cor t" class="sref">cn5
/a3a55rtbock_" clmressor_e=rq13>rt>132ae prif (
a href="+sc39ioL83" 4lass="13e929" cla13uct>
a hreask"rt>
a +cod13uct>132hcpu if (
a ha hrclas="
ao>>128
llist_empty href">rq
/a> *llist_emptyd/coroh_"i>5 tar=a>struct>wake_list hre ioh_"ioh_"i5!ef="+ask"rtik_lgot_n3hz_idle_ki7" href">rq
/a> *got_n3hz_idle_ki7"d/cor> t" class="sref">cn5
/a3a55133Lk_a>struct>
a hreoc5L136" it" class="sref">cn5
/a3a55>159
/4
5 >550
4
531332cpu if (
a h>empasoh po"lis5"8ef==>>5ode=cnt" class="sref">cn5
/a3a55133hardirq=(IPI)=codtex5r3ref==







* Not all ren5
/aule IPI handlers"call irq_enter/irq_exit, since5ode=cnt" class="sref">cn5
/a3a55 */5/sp4 5 133ass="line" namtioL129">>128








* tradilionally all/t/3ir wor" was done>from ef"sL42errupt5L136" 5ode=cnt" class="sref">cn5
/a3a55133ass="line" namtioL1254L114" 







* path. Now efat weaactually do some wor", weaneers4o"make sure5ode=cnt" class="sref">cn5
/a3a55133ass="line" namtioL128le" c=d







* weado"call t/3m.5ode=cnt" class="sref">cn5
/a3a55>515
4
5 133ae preempasoh po"lis5">>128








*5ode=cnt" class="sref">cn5
/a3a55133ae preempasoh po"lis5"8ef==d







* Some archsnalkeadyado"call t/3m, luckily irq_enter/exitanest hde=cnt" class="sref">cn5
/a3a55133ass="line" namtioL124">>128d







* properly.5ode=cnt" class="sref">cn5
/a3a55134>ss="line" namtioL124">>128d







*5ode=cnt" class="sref">cn5
/a3a55134e sptik_ > =>r "tlae5"1>128








* Arguably weashould visit all archsnand updel/ all handlers,5ode=cnt" class="sref">cn5
/a3a55cn5
/a3a54cn5
/a3a55>150
/3a54134hardirq=(IPI)=codtex5r3ref==







* somewfat pessimize3ef"ssimple ren5
/a case.5ode=cnt" class="sref">cn5
/a3a55134ass="line" namtioL129">>128








*+5ode=cnt" class="sref">cn5
/a3a551345k_a>struct>
>tar=a>struct>
irq_enter href">rq
/a> *irq_enterd/cor> namtioL12> =>
a1" id40L191" cla134629" cla13gratnce 3oL163L138" id3913gra>1346k_a>struct>
>tar=a>struct>
sct>
_ twc_pcorena_>tar=a>struct>sct>
_ twc_pcorenad/cor> namtioL12> =>
a1" id40L191" cla134729" cla13power-sa ncers to delive13pow>134schednamtioL12> =>
a1" id40L191" cla134829" cla13/sched/core.c# to delive13/sc>1348cpu if (
a h>empasoh po"lis5"8ef==>>5ode=cnt" class="sref">cn5
/a3a55134ass="line" namtioL124">>128=







* Cd4ssha hsomeone>ki7"/a us foradoclastf"sn3hz idle load balance.5ode=cnt" class="sref">cn5
/a3a55135>ss="line" namtioL124">>128d







*+5ode=cnt" class="sref">cn5
/a3a55>1re3_each_domaindSK_Q_WORKERstatic_key4">>1PF_WQ_WORKERd/colist_empty href">rq
/a> *llist_emptyd/coroh_"i>5  t" class="sref">cn5
/a3a55 t" class="epic_"line"  hr133e29" cla1epic_"line" sr_e=rq=rq13="k>131hcpu if (
a href="+s5>ta="sref">cn3
/a3a55 =>
a1" id40L191" cla13b329"r=a>struct>wake_list hre ioh_"ioh_"i5!ef="+ask"rtik_lgolass=_csd wi" cla13gratnce 3ass=_csd wi9130ck_a>struct>
}namtioL12>_do_wakeup3tatic_key4">>1 twc_do_wak3upd/c353tioL12> =>
a1" id40L191" cla13b329"raise_soft3oL13oLo119629" cla11f">Eraise_soft3oL13oLo11d/corcor> t" class="5">>5_SOFTIRQ9629" cla11f">E5">>5_SOFTIRQche=rq13="k>132ass="}namtioL12> =>
a1" ct>
a hreo3="125529" cla12class="mp_3roces35nl17"d/coroh_=13ef">132ck_a>struct>
a hreoc5>>1ct>
trace_3ct>
_wakeupstatic_key4">>3 race3uct>
_wakeupd/core.ci=>rtsk_n"> */5/s" cla13gratnce 3oL165/s delive13pow>134schednamtioL12> =>
a1" ict>
id4ssr3rsemptlcurrck
/a>(struct>3id4ss35hre4="12f">>128schednamtioL12> =>
a1" 3d40L191" c3a125829" cla12ef">neg
5a>33)5 <3 hre3=12ef">1258k_a>struct>
>tar=a>str3ct>
a href3>rq
/a> *
a h,
a href="+a3k"rti3_line"d/corel/sched/core.c#L139" 5#L14uct>
"lock
/a>(struct>" clasL191uct>
"lock
/ delir=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" clasq133L1>133Lk_a>struct>
a hreoc5L13k_lclass="3MPhref="+code=__hclass="S3Psar"3135
/aq13="k>131hcpu if (
a href="+s5>taao>>128
p 3ref">rq
/a> *
a h,
a href3"+ask3rtik_luct>
_ref">static_key4">>1sor>
a ad  hr133e29" cla1or>
a ad "+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12a hr132e29" cla13ef">neg
5a> 4 5 ta" idtruct>wake_list h" idtrd/corcor> t" class=">>1wake_ref">d/co t" clasqi5!ef="+ask"rtik_lgot_n3hz_idle_ki7" href">rq
/a> *got_n3hq133L1>133Lk_a>struct>
a hreoc5L13s="
ao>>123
p href">rq
/a> *
a h,
a 3ref="3ask"rtik_luct>
_ref">static_key4">>1sFIG_sers_s="sref">ccla134729" cla13IG_sers_s="sref">cd/corcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" i
/a3a55>128schednamtioL12> =>
a1" 3ao>>128
k_3>tar=a>struct>
a hre
a hr3f="+a36_i=rq13cla>132ck_a>struct>
>tar=a>stru"+ask"rtik3luE_REL_PINNEtruct>u6ck_a3sa> 43ysctl_cor> t" class="booct>
a hre
a hrefboock"rticor> t" class=">>1s_ref">_cact>wake_ref">d/co t" s_ref">_cact>d/corre3=smp_arocessor_ihck
/a>(struct>"smp_arocessor_ihd/cake_ref">static_key4"sref/a>(struct>"smp_aroceact>
_domaq133L1>133Lk_a>struct>
a hreoc5L13st>
trace_3suE_REL_PINNEtruct>u6ck_a3sa> 436hre3="12f">>1296k_a>struct>
el/sched/c335spa3 126729" cla12 &>15#L142"3ik__>36s="sref">cn5
/a3a55(struct>"smp_aroper/a>(d/corcor> t" class="sd_llc cla12b729" cla12bFd_llc cla3a55struct>
a hreos=per/a>(struct>"smp_aroper/a>(d/corcor> t" class="sd_llc cla12b729" cla12bFd_llc cla3a55(struct>"smp_aroceact>
_domaqe13pow>134schednamtioL12> =>
a1" i
40L191" c3hre3=deltaREL_PINNEtruct>3eltaa36 hre3=13bL2>130ched/core.c#L137" id4e" (
a h>5 tar=a>struct3
a hr36ref">cn5
/a3a55
a hreask"rt>
a +cod12uct>122ass="namtioL12> =>
a1" 3et" class=3sref">cn5
/a3a55123Lk_a>struct>
>f="+ask"r355555e.ci=3rtsk_neasupdel/_ava_>tar=3>stru37>
_ twc_pcorenad/cor/cor t" classL191uct>
a>(struct>" clasL191uct>
 delir=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
wake_ref">static_key4">>1wake_ref">d/co t" clasq133L1>133Lk_a>struct>
a hreoc5L13s="
ao>>123
k__>tar=a>struct>
a hre
3 href37a +cod13
a >1312cpu if (
a hel/sched/coreoc5k3L153" c5ode=cn127329" cla12nt3> */437truct>
5#L142" id43L112" clas &
3>5 wake_list h" idtrd/corcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" i
a1" id40L391" cla12 429" cla12class3"line37_i=rq13cla>132ck_a>struct>
>tar=a>stru150" c5ode3cn127529" cla12sptik__csd3pclas3"s135
#irefar"ref=de=EFAUdefa12la12b729" cla12bdefa12ld/corcor> t" class="LT131e29" cla13/*5a> 4>50>140
33t4 <37tik_lref">static_key4">>1ref">d/3powerfea>(struct>" clasL3powerfea>d/corcor> t" class="TTWU_CHEDH(struct>" clasLTTWU_CHEDHt_n3hz_idle_ki7"d/cor> t" class=">>1s_ref">_cact>wake_ref">d/co t" s_ref">_cact>d/cortatic_key4">>1sFIG_id40L191" cla12b729" cla12bFIG_SCHEDHc#L129" id27tar=a>struct>
a hre wake_ref">d/co t" clasq=rq13="k>131hcpu if (
a href="+s5>ta="sref">cn3
/a3a55rtsk_neasp href">rq
/__lidl/a>(struct>"smp_aro>rq
/__lidl/a>(d/corcor> t" class=">>1wake_ref">d/co t" clasqe3a55s="s _lidls x-t" rt>
a +cod12uct>122ass="namtioL12> =>
a1" 3_do_active3/static_key4">>1 twc_do_a3tivel37,3a hr a> 4 52
"lock
/a>(struct>" clasL191uct>
"lock
/ deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" i

a h>5 5=13bL2>130ched/core.c#L137" id4e" ao>>128
p 3ref">rq
/a> *
a h,
a href3"+ask3rtik_l=rde=r12t =>128ck_a>ore.c#L134" id4R 
3s="
ao>>123
k__>tar=a>struct>
a hre
3 href38hr=rq13oL1>1332cpu if (
a h>empasoh po
a1" id40L391" cla128329" cla12t =>t3r=15638lonlk__>tar=a>struct>onlk_k__>tar=a>struct>
a hre
a href="+ask"rtik_l217" href">rq
/a> *217"d/co it" class="sref">cn5
/a3a55 */5/sp4151131schednamtioL12> =>
a1" i hde=4FAUL3"128429" cla12nt"> */4/sp3)48tar=a>struct>onlk_k___>tar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
0 it" class="sref">cn5
/a3a55>510
4 5 1322cpu if (
a hstruct>
a hct>
 twc_a3tivel/static_key4">>1 twc3activ3l/d/core.ci=>rtsk_neask__>tarerk__>tar=a>struct>
a hre
a href="+ask"rtik_l217" href">rq
/a> *217"d/co it" class="sref">cn5
/a3a55132ass="}namtioL12> =>
a1" ct>
ttwc_d3_wakeupstatic_key4">>1 tw3_do_w38 hre2=13ef">132ck_a>struct>
a hreoc5>>1id40L191" 3la128729" cla12f">EFAU4T
33>4 <38id27L13est>132sched/cor
>tar=a>struct>d40L191" c3a128829" cla12L206">>406
3>48134ass="line" namtioL124">>f==>>5ode=3nt" class="sref">cn5
/a3a35EFAU4T
/3>4de=cnyp3>4q
/a>up ->neg
 up a th">cn8" id3913"le>134ass="line" namtioL124">>f_lclass="3d>inacase3ef"stcla/@p isn3ss="o3fully den5
/auled>from its/runq@p:12o329h">cnock_be aneg
12ld/ id3913"le>134ass="line" namtioL124">>128d* inae3asncase3we must do a remo33 wak3up. Its/a ass="lightass=" wakeu@9229":12o32truccn5
9" cl9229"s"sref"c asb3629f">rq id3913"le>134ass="line" namtioL124">>1="
ao>>123 all weaneers4o"do asnfli3/p
a 3ritel/s4o"TASK_RUNNING, since5o@a> 3>4 neg
 moe=rier 4 134ass="line" namtioL124">>1a1" id40L3cla/asnitill 
a hronlk_.53de=cn3" class="sref">cn5
/a3a55134ass="line" namtioL124">>1hde=4FAUL3cnt" class="sref">cn5
/a335515#L142"tik__ Put it on12o32run-re.c#Lticila12f"sa12/ref">cn5
2o3oL1 To32"ef">2"t"rq id3913"le>134ass="line" namtioL124">>1t>
 twc_a3_remot3static_key4">>1 tw3_remo39a55cnoisrefways on12o32run-re.c#L(except when12o325
/a3arq id3913"le>134ass="line" namtioL124">>1t>
ttwc_d3="129629" cla12f">EFAU4T
33a4 <39some wor", weaneers4o"make s*v h-"sref">cnisrinlassgrDHc7ta" clas such youa12f"rf">cnowsref">cnrq id3913"le>134ass="line" namtioL124">>1d40L191" 35#L142" id43L112" clas &_3tar=a39s="sref">cn5
/a3a552"t hr129229" =a12f">neg
4a>"ock_lerk yourselfrq id3913"le>134ass="line" namtioL124">>140L191" c3ck
/a>(struct>"reo hre3
33it" c39554t9" cloverh>cnon5
9histh rqref13" h>135>ss="line" namtioL124">>c==de=4FAU3T129929" cla12/sched/core3c#L133928929" cla12ef">EFAU4T
/3>4deh rqref13" h>135>ss="line" namtioL124">>c_lclass="3 id43L112" clas &
3>5 " cla1297;fa +coticilcn5
3a55 to drqref13" h>135>ss="line" namtioL124">4ao>>128
p 4ref">rq
/a> *
a h,
a href4"+ask40p. Its/a ass="lightass=" wakeuoru@9229" didn5
/a3a5match @pa12f"sa9229"th rqref13" h>135>ss="line" namtioL124">4s="
ao>>124
ttwc_do_wakeupstatic_key4">>1 40125229" cla12sched/core.c#L131" id3oL12sch>1252cpu ine" na/cort" clas4i=>rtsk_ne4skeock
/a>(struct>"reo hr43
31 406L1tik__>tarint12sch>1252cpu ine" na/cort" clas4i3>rtsk_ne4snt" class="sref">cn5
/a3415#L140el/sched/core.c#L139"nyp3>4q
/a>up
a hre,
>tar=a>snyp3>4q
/a>up delir=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
wakunsign,5odetruct>
a href">rqy4">>1TASK_RUNNINGd/coit" clas="sref">cn5
/a3a55>483
3
49
__trad4rq_unl17" href">rq
/a> *_4trad_40r_e=rq12cla>1255k_a>struct>
>tar=a>str4128
/a4
sp4
13b629" cla13b">EFAU4T
/4a4 staunsign,5olongcore.c#L139" cfas_key4">>1PF_WQ_WORKERd/co t"q13="k>132ass="}namtioL12> =>
a1"4128
/a4
sp4keock
/a>(struct>"reo hre4t" cl4ss="sref">cn5
e_ref">static_key4">>1wake_ref">d/co t" clasatic_key4">>1sne"iucEDHc1TASK_RUNNINGd/cucEDHc =>
a1"3=12oL2>129ched/core.c#L137" id4e"4id40L191" 4la13b829" cla13bL206">>404
3a4940hre3=12ef">1258k_a>struct>
>tar=a>str4c==de=4FAU4T13b929" cla13bsched/core4c#L1340line"/href="+code=__hitel/a FIG_wmba12b729" cla12bFIG_wmb delive13pow>134schednamtioL12> =>
a1" 4k_lclass="4MPhref="+code=__hclass="S4Psar"40r__trad_rq_217" href">rq
/a> "+ask"rtik_l13oLsav>1TASK_RUNNINGd/ "+ask"rtik_l13oLsav>"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasatic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 4struct>
sc4>
_ twc_pcorena_>tar=a>st4uct>s41tik_luct>
_ref">s!ibutes_to_loadck
/a>(struct>"sct>
_rontributes_to_loadd/co4">>1TASK_RUNNINGd/coit" clasclass="sref">cn5
/a3ao4">>1TASK_RUNNINGd/coit" clahq133L1>133Lk_a>struct>
a hreoc5L14oL83" 4las4="131229" cla13
a hreask"4class41sk"rtik_luct>
_ref">sgock_"sref">cn5
/a3a>4t1TASK_RUNNINGd/>4to t"q13="k>132ass="}namtioL12> =>
a1"4re.c#L139"45#L142" id43L112" clas &_4tar=a41t,3="12hre>126ck_a>struct>
a hrclas="4re.c#L139"4llist_n39"_>tar=a>struct>4list_413onlk__>tar=a>struct>onlk_k_iucEDHc1TASK_RUNNINGd/cucEDHc =>
a1"1e3a55wea12f"rf"ghr135eo change  hr129229" 31" id3oL12sch>1252cpu ine" na/cort" clas4re.c#L139"4clasL191"lock
/a>(struct>4 clas41/d/core.ci=>rtsk_neask__>tar>>1wake_ref">d/co t" clasa1" id40L191" cla13
/a5a>(struct>"smp_aroc
/a5a>( deli"commenc_cd/co,LL42" id5">>128
/a5
wve13pow>134schednamtioL12> =>
a1" 4s28
/a4
sp4
131629" cla13       
a h4ef="+4ode=rq13   >1316k_a>struct>
>tar=a>str4ct>
raw_sp4n_217" href">rq
/a> *kaw_4pin_247"d/coroh_"i>5ar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b129" cla13b">neg
4a> 3>4 struct>onlk_k___>talock
/a>(struct>" clasL191"sptik__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=" hr129529" cla12oL83">>483
3
49
a hrea4k"rt>41,3a hr a> 4 52cn5
/a3a92291TASK_RUNNINGd/coito t"q13="k>132ass="}namtioL12> =>
a1"4r==de=4FAU4llist_>tar=a>struct>llist4as )s41 id3913bsc>130hcpu #i.cor
ef="+ask"rt4r=a>struct4
a href">rq
/a> *
a h,&
345 
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>50tar=a4r=a>struct4
llist_>tar=a>struct>llis4las &43>5 134ass="line" namtioL124">4r=a>struct4
 twc_do_activel/static_k4y4">>42rchsnand updel/ all handlers,5ode=cnt"If9" clow5 to ("sptik) t" ra12ef">nein12o32mid" h"n5
"sref">c()rwi 38" id3913"le>134ass="line" namtioL124">4re.c#L139"4" c5ode=cn132329" cla13uc4>
a h42re itill ren5
/a only soaefasnwould5od150
/9" cl hrprev,
/a>(13352>13erencr135e29"9" cth rqref13" h>135>ss="line" namtioL124">4 hde=4FAUL4"13e429" cla13class="mp_p4ocess42ren5
/a case.5ode=cnt" class="sref">c1" id3oL12sch>1252cpu ine" na/cort" clas4ct>
kaw_sp4n_unl17" href">rq
/a> *ka4_spin4unl17"d/coroh_struct>
a hreos="13192a>)srq" classock_a>struct>
a hreos="13b129" a>(struct>"smp_aro9" a>(re3="12oL8>12o5k_a>if (
a href="+sc394id40L191" 4la13e629" cla13ef">neg
5a4 4 52422maxa h,3
" idtel2ent">/*4/sp3046<" idtel2e delive13pow>134schednamtioL12> =>
a1" 435spa4 13e729" cla13est poll
a 4#L1294265 134ass="line" namtioL124">4rd40L191" 4ipi_>tar=a>struct>sct>
ul4r_ipi4255135>ss="line" namtioL124">4 ==de=4FAU4="13e929" cla13uct>
a hre4sk"rt42m, luckily irq_enter/exitanest hde=cn1" id3oL12sch>1252cpu ine" na/cort" clas4c=a>struct4st_empty href">rq
/a> *ll4st_em42r__trad_rq_217" href">rq
/a>aIG_rmba12b729" cla12bFIG_rmb delive13pow>134schednamtioL12> =>
a1" 46" it" cla4s="sref">cn5
/a3a55134schednamtioL12> =>
a1" 46=a>struct4"133229" cla13oL150">>55044
53<43dd/core.ci=>rtsk_neask__>tar
/a>(struct>"sct>
_rontributes_to_loadd/co t" class="sref">cn5
/a3a55/*4/sp3>48 t" class="c
/a5aass="sref">cn5
/a3a55cn5
/a3 deli"commenc_cd/co,LL42" id5">>128
/a5
wve13pow>134schednamtioL12> =>
a1" 4"lis5"8ef=4>>5ode=cnt" class="sref">4n5
/a43lonlk__>tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12Ly4">>1TASK_RUNNINGd/coit" class="sref">cn5
/a3a55 =>
a1"4ef==





4
* Not all ren5
/aule IPI4handl43_i=rq13cla>132ck_a>struct>
>tar=a>str4128






4
* tradilionally all/t/3i4 wor"43nl17"d/coroh_f">static_key4">>1sct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a55maxa h,3
ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a55>128
/a5
wve13pow>134schednamtioL12> =>
a1" 4"5spa4
* weado"call t/3m.5ode=c4t" cl43id27L13est>132sched/cor
>tar=a>struct4128






4
*5ode=cnt" class="sref">4n5
/a437onlk__>tar=a>struct>onlk_k_>>1wake_ref">d/co t" clasa1" id40L191" cla1select="sref">ey4">>1 claswokeelect="sref">__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="SD_BALANCAKINGaL42" id5">>128
SD_BALANCAKINGaa5
wakcor> t" class=" hr129529" cla12oL83">>483
3
49static_key4">>1s3
/a5a>(struct>"smp_aroc
/a5a>( deli"commenc_cd/co,LL42" id5">>128
/a5
wv !1" id40L191" cla1" iwake_ref">d/co t" clasqrq13="k>131hcpu if (
a href="+s5>t4128d





4
* properly.5ode=cnt" cla4s="sr43e3="kerllist_entry href">rq
/a> *lli hr129529" cla12oL83">>483
3
49>48WF_MIGRATEDo t"q13="k>132ass="}namtioL12> =>
a1"4128d





4
*5ode=cnt" class="sref">4n5
/a44>5 (struct>"smp_aro>et="srefa>(__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" 4128






4
* Arguably weashould vis4t all44dd/core.ci=>r=13ef">132ck_a>struct>
a hreoc5>>4ef==





4
* however a fair share o4 IPIs44+code=rde=r3a55
a hreask"rt>
a +cod12uct>122ass="namtioL12> =>
a1" 4ef==





4
* somewfat pessimize3ef"4simpl44_i=rq13cla>132ck_a>struct>
>tar=a>str4128






4
*+5ode=cnt" class="sref"4cn5
/44/d/core.ci=>rtsk_neask__>tar=a>stuct>
a>(struct>" clasL191uct>
 deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" 414" 





4er href">rq
/a> *irq_ente4d/cor4 namti"sref">cn5
/a3a92291TASK_RUNNINGd/coito t":13pow>134schednamtioL12> =>
a1" 415spa4twc_pcorena_>tar=a>struct4sct>
4 twc_pcorenad/cor> namtioL12>sL19192291TASK_RUNNINGd/sL1919229 deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">>1wake_ref">d/co t" clasakcor> t" class=" hr129529" cla12oL83">>483
3
494t1TASK_RUNNINGd/>4to t":13pow>134schednamtioL12> =>
a1" 41==de=4FAU4>>5ode=cnt" class="sref">4n5
/a44line"/href="+code=__hitel/a ef="+ask"rtik_l13oLrest =>1TASK_RUNNINGd/ "+ask"rtrtik_l13oLrest =>"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasatic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 4128=





4
* Cd4ssha hsomeone>ki7"/4 us f44_e=rq123L1>123Lk_a>struct>
>f="+ask"r4128d





4
*+5ode=cnt" class="sref"4cn5
/45>5 
e13pow>134schednamtioL12> =>
a1" 4ORKERd/col4st_empty href">rq
/a> *ll4st_em4tyd/co=13ef">132ck_a>struct>
a hreoc5>>4="sref">cn4
/a3a55>1 twc_do_wak4upd/c45ren5
/a case.5ode=cnt" clas/*38" id3913"le>134ass="line" namtioL124">4ct>
a hreo4="125529" cla12class="mp_4roces45a554q
/a>upstrual -29ny5eo neg
 up a trual 9" clwi 39rq truk he4134hardirq=(IPI)=codtex5r34ct>
trace_4ct>
_wakeupstatic_key4">>4 race45some wor", weaneers4o"make s*v@p:12o329h">cnock_be aneg
12ld/ id3913"le>134ass="line" namtioL124">4ct>
id4ssr4rsemptlcurrck
/a>(struct>4id4ss45s="sref">cn5
/a3a55134ass="line" namtioL124">4c40L191" c4a125829" cla12ef">neg
5a>43)5 <4555cn5
2o3oL1 To32a55134ass="line" namtioL124">4c==de=4FAU4>rq
/a> *
a h,
a href="+a4k"rti4528929" cla12ef">EFAU4T
/3>4de=en"+co"sref"re ioh_()ris truked,ref">c bounnock_re ioh_()r" cl12/d/ id3913"le>134ass="line" namtioL124">4c28=





4MPhref="+code=__hclass="S4Psar"45ully den5
/auled>from its/runq2o32ef">2"t"9" cth rqref13" h>135>ss="line" namtioL124">4ao>>128
p 4ref">rq
/a> *
a h,
a href4"+ask46p. Its/a ass="lightass=" wake>
a +cod12uct>122ass="namtioL12> =>
a1" 4s="
ao>>124
p href">rq
/a> *
a h,
a 4ref="4ask"rtwc_pcorenad/cor/cor t" classnyp3>4q
/a>upstrual1TASK_RUNNINGd/snyp3>4q
/a>upstrual"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
w"12oL8>12o5k_a>if (
a href="+sc394
/a3a55131hcpu if (
a href="+s5>t4ao>>128
k_4>tar=a>struct>
a hre
a hr4f="+a469"las &_>tar=a>struct>
llist_>tar=a ey4">>1 claswok"sref">__>ta"commenc_cd/co,LL42" id5">>128
/a5
wve13pow>134schednamtioL12> =>
a1" 4"+ask"rtik4luE_REL_PINNEtruct>u6ck_a4sa> 44ysctl_13pow>134schednamtioL12> =>
a1" 4"t>
trace_4suE_REL_PINNEtruct>u6ck_a4sa> 446ct>
_wakeupd/core.ci=>rtsk_nBUG_ONL42" id5">>128
BUG_ON__>ta"commenc_cd/co,k_d/cor> namtioL12> =>
a!1" id40L191" cla1r=a>struct>wake_list hre ioh_"ioh_"ve13pow>134schednamtioL12> =>
a1" 4"t>
id4ssr4 126729" cla12 &>15#L142"4ik__>46twc_pcorenad/cor> namtioL12>BUG_ONL42" id5">>128
BUG_ON__>ta"commenc_cd/co,st_entryd/core.ci=>rtsk1" id40L191" cla1"f">2"twake_ref">d/co tf">2"ta5
wve13pow>134schednamtioL12> =>
a1" 4"40L191" c4hre3=deltaREL_PINNEtruct>4eltaa467onlk__>tar=a>struct>onlk_k_trukdep_eltert_he4d/co trukdep_eltert_he4<"+ask"rtik_lwake_list_>taco it" class="sref">cn5
/a3a55132ass="}namtioL12> =>
a1"4(
a h>5 tar=a>struct4
a hr46 id3913bsc>130hcpu #i.cor
ef="+ask"rt4et" class=4sref">cn5
/a3a555  t" class=" "+ask"rtsny>struct>
a hre
a href="+ask"sny>str"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasq=rq13="k>131hcpu if (
a href="+s5>t455555e.ci=4rtsk_neasupdel/_ava_>tar=4>stru47>5 rq
/a> *217"d/co it" class="sref">cn5
/a3a55132ass="}namtioL12> =>
a1"4s="
ao>>124
k__>tar=a>struct>
a hre
4 href47+ask"rtik_lnr_unL42erruptiblc href">r>tar=a>struct>
a hre
a href="+ask"rtik_l217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasqq13="k>132ass="}namtioL12> =>
a1"4s/a3a55 */447mtioL12> =>
a1" id40L191" cla13b329" >tar=a>struct>
a hre
a href="+ask"rtik_l217" href">rq
/a> *217"d/co it" class="sref">cn5
/a3a55 */5/sp4151131schednamtioL12> =>
a1" 4
a1" id40L491" cla12 429" cla12class4"line47"tik__>tar+cod13b&>>130ck_a>struct>
>tar=a>str4150" c5ode4cn127529" cla12sptik__csd4pclas47sctl_13pow>134schednamtioL12> =>
a1" 4st>
trace_4
12 629" cla12L180">>140
43t4 <47tik_lref">static_!ibutes_to_loadck
/a>(struct>"sct>
_rontributes_to_loadd/co4">>1TASK_RUNNINGd/coit" clasclass="sref">cn5
/a3a55134schednamtioL12> =>
a1" 4st>
id4ssr4
/a3a55rgock_"sref">cn5
/a3a>4t1TASK_RUNNINGd/>4to t"q13="k>132ass="}namtioL12> =>
a1"4_do_active4/static_key4">>1 twc_do_a4tivel47hre3=12ef">1258k_a>struct>
>tar=a>str4

a h>5 s/cor> t" class="a>)srq" classock_a>struct>
a hreos="13b129" cla13b">neg
4a> 3>4 1258k_a>struct>
>tar=a>str4
t" class=4MPhref="+code=__hclass="S4Psar"47e3="kerllist_entry href">rq
/a> *llisL191>struct>
a hre,
>tar=a>strucp href">rq
/a> *
a h,,
0 it" class="sref">cn5
/a3a55>510
4 5  4>50ENCHEDHKINGaU  hre3=13ent>131schednamtioL12> =>
a1" 4ao>>128
p 4ref">rq
/a> *
a h,
a href4"+ask48la13113pow>134schednamtioL12> =>
a1" 4s="
ao>>124
k__>tar=a>struct>
a hre
4 href48dd/core.ci=>rtsk_neask__>tarar=a>struct>
a hre,
>tar=a>struct>
p href">rq
/a> *
a h,,
>tar=a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="sr=rq13oL1>1322cpu if (
a hstruct>
a 4
a1" id40L491" cla128329" cla12t =>t4r=15648lonlk__>tar=a>struct>onlk_k_sL19192291TASK_RUNNINGd/sL1919229 deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="FIG_id40L191" cla12b729" cla12bFIG_SCHEDHc#L129" id27ta=rq13oL1>1322cpu if (
a hstruct>
a 4
a1" id40L4"128429" cla12nt"> */4/sp4)484t1TASK_RUNNINGd/>4to t":13pow>134schednamtioL12> =>
a1" 4ct>
 twc_a4tivel/static_key4">>1 twc4activ4l/d/core.ci=>rtsk_neask__>tarerk__>tar=a>struct>
a hre
a href="+ask"rtik_l217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasqq13="k>132ass="}namtioL12> =>
a1"4ct>
ttwc_d4_wakeupstatic_key4">>1 tw4_do_w48 hre2=13ef">132ck_a>struct>
a hreoc5>>4id40L191" 4la128729" cla12f">EFAU4T
43>4 <48id27L13est>132sched/cor
>tar=a>struct4d40L191" c4a128829" cla12L206">>406
4>48134ass="line" namtioL124">4f==>>5ode=4nt" class="sref">cn5
/a3a45EFAU4T
/3>4de=q
/a>upsSCHEDHc - Weg
 up a specific SCHEDHc8" id3913"le>134ass="line" namtioL124">4ft" class=4d>inacase3ef"stcla/@p isn4ss="o4fully den5
/auled>from its/runq@p:1To32SCHEDHc ck_be 29f">" cth rqref13" h>135>ss="line" namtioL124">4128d* inae4asncase3we must do a remo43 wak4up. Its/a ass="lightass=" wakeh rqref13" h>135>ss="line" namtioL124">41="
ao>>124 all weaneers4o"do asnfli4/p
a 4ritel/s4o"TASK_RUNNING, since5oAtthref5eo neg
 up e29" cminf">d2SCHEDHc " clmovecil135>ss="line" namtioL124">41a1" id40L4cla/asnitill 
a hronlk_.54de=cn4" class="sref">cn5
/a3a55to32SCHEDHc a hr29f">" cla0oticilcn5h rqref13" h>135>ss="line" namtioL124">41a1" id40L4cnt" class="sref">cn5
/a345515#L142"tik__ 3a55 toth rqref13" h>135>ss="line" namtioL124">41t>
 twc_a4_remot3static_key4">>1 tw4_remo49a55135>ss="line" namtioL124">41t>
ttwc_d4="129629" cla12f">EFAU4T
43a4 <49some wor", weaneers4o"make s*vIa5may_be assumsrefref"re i funcclas 13asiehre write memory_barrier befocode=e=rq13epi>133ass="line" namtioL128le41d40L191" 45#L142" id43L112" clas &_4tar=a49s="sref">cn5
/a3a55" cth rqref13" h>135>ss="line" namtioL124">4140L191" c4ck
/a>(struct>"reo hre3
34it" c4955
a +cod12uct>122ass="namtioL12> =>
a1" 4c==de=4FAU4T129929" cla12/sched/core4c#L134928929"sref">cn5
/a3a55>483
3
4upsSCHEDHc"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
w"12oL8>12o5k_a>if (
a href="+sc394c_lclass="4 id43L112" clas &
3>5 131hcpu if (
a href="+s5>t5ao>>128
p 5ref">rq
/a> *
a h,
a href5"+ask50>5 4q
/a>up
a hre,
>tar=a>snyp3>4q
/a>up deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="55>125
ttwc_do_wakeupstatic_key5">>1 50yd/co=13ef">132ck_a>struct>
a hreoc5>>5i=>rtsk_ne5skeock
/a>(struct>"reo hr53
31 506L1tia hr132229" claEXPORT_SYMBOL8529" cla12NFIGEXPORT_SYMBOL deli"commenc_cd/co, hr12upsSCHEDHc cla12oL83">>483
3
4upsSCHEDHc"+asrq13oL1>1322cpu if (
a hstruct>
a 5s3>rtsk_ne5snt" class="sref">cn5
/a3515#L150_i=rq13cla>132ck_a>struct>
>tar=a>str5ct>
__trad5rq_unl17" href">rq
/a> *_5trad_50r_e=r"sref">cn5
/a3a55>1TASK_RUNNINGd/ hr12upso4">>"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
wakunsign,5odetruct>
a href">rqy4">>1TASK_RUNNINGd/coit" cla"12oL8>12o5k_a>if (
a href="+sc395128
/a4
sp5
13b629" cla13b">EFAU4T
/5a4 >1296k_a>struct>
el/sched/c5128
/a4
sp5keock
/a>(struct>"reo hre5t" cl50s="sref">cn5
/a3a554q
/a>up
a hre,
>tar=a>snyp3>4q
/a>up deli"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="y4">>1TASK_RUNNINGd/coit" clas==rq13oL1>1322cpu if (
a hstruct>
a 5s78
/a4
sp5kk
/a>(struct>"reo hre3
35
3a4950 hre3=13bL2>130ched/core.c#L137" id4e"5c==de=4FAU5T13b929" cla13bsched/core5c#L1350 id3913bsc>130hcpu #i.cor
ef="+ask"rt5k_lclass="5MPhref="+code=__hclass="S5Psar"50ully den5
/auled>from its/r138" id3913"le>134ass="line" namtioL124">5struct>
sc5>
_ twc_pcorena_>tar=a>st5uct>s51p. Its/a ass="lightass=" wakeuPerfocm
"sref">cr tel2">d2setup 55d2SCHEDHc cth rqref13" h>135>ss="line" namtioL124">5oL83" 4las5="131229" cla13
a hreask"5class51itel/s4o"TASK_RUNNING, since5of">c 55d2by2ef">2"tth rqref13" h>135>ss="line" namtioL124">5o=>rtsk_ne55#L142" id43L112" clas &_5tar=a51 class="sref">cn5
/a3a55134ass="line" namtioL124">5re.c#L139"5llist_n39"_>tar=a>struct>5list_51129429" cla12 &>15#L142"tik__ __ecd/co55d2by2initclass()rtoo:rq id3913"le>134ass="line" namtioL124">5rt>
__trad5clasL191"lock
/a>(struct>5 clas51a55
a +cod12uct>122ass="namtioL12> =>
a1" 5s28
/a4
sp5
131629" cla13       
a h5ef="+5ode=rqwc_pcorenad/cor/cor t" clas__ecd/co55struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
w"12oL8>12o5k_a>if (
a href="+sc395ct>
raw_sp5n_217" href">rq
/a> *kaw_5pin_257"d/co"12f">>1296k_a>struct>
el/sched/c5od40L191" 5a131829" cla13uct>
a hrea5k"rt>517onlk__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b129" cla13b">neg
4a> 3>4 129ched/core.c#L137" id4e"5r==de=4FAU5llist_>tar=a>struct>llist5as )s51 id3913bsc>130hcpu #i.cor
ef="+ask"rt5r=a>struct5
a href">rq
/a> *
a h,&
355 rq
/a>
/a>(struct>"sct>
_rontributes_to_loadd/co>1TASK_RUNNINGd/c" cla.
a hreos="13b129" cla13b">neg
4a> 3>4 129ched/core.c#L137" id4e"5r=a>struct5
llist_>tar=a>struct>llis5las &53>5 rq
/a>
/a>(struct>"sct>
_rontributes_to_loadd/co>1TASK_RUNNINGd/c" cla.
a hreos="13b12execso4"r,,#L42" id5">>12execso4"r, hrezzzzzzzzzzzzzzzz1"3=12oL2>129ched/core.c#L137" id4e"5rL83" 4las5
 twc_do_activel/static_k5y4">>52dd/core.ci=>rtsk_neask__>tar
/a>(struct>"sct>
_rontributes_to_loadd/co>1TASK_RUNNINGd/c" cla.
a hreos="13b12sum_execsrunf"m>1TASK_RUNNINGd/cum_execsrunf"m> hrezzzzzzzzzz1"3=12oL2>129ched/core.c#L137" id4e"5r=>rtsk_ne5" c5ode=cn132329" cla13uc5>
a h52lonlk__>tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12Ly>1TASK_RUNNINGd/c" cla.
a hreos="13b12prev_sum_execsrunf"m>1TASK_RUNNINGd/prev_sum_execsrunf"m>onlk__>ta1"3=12oL2>129ched/core.c#L137" id4e"5re.c#L139"5"13e429" cla13class="mp_p5ocess523onlk__>tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12Ly>1TASK_RUNNINGd/c" cla.
a hreos="13b12nr_migraclasc cla12oL83">>48nr_migraclasc hrezzzzzzzzzzzzz1"3=12oL2>129ched/core.c#L137" id4e"5rt>
__trad5n_unl17" href">rq
/a> *ka5_spin52/d/core.ci=>rtsk_neask__>tara> = 1 namtioL12> =>
a1" id40L191" cla12Ly>1TASK_RUNNINGd/c" cla.
a hreos="13b12vrunf"m>1TASK_RUNNINGd/vrunf"m> hrezzzzzzzzzzzzzzzzzz1"3=12oL2>129ched/core.c#L137" id4e"5r28
/a4
sp5la13e629" cla13ef">neg
5a5 4 5252ct>
_wakeupd/core.ci=>rtsk_nINIT_LIST_HEAD cla12oL83">>48INIT_LIST_HEAD217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12y>1TASK_RUNNINGd/c" cla.
a hreos="13b12groupsn3b11TASK_RUNNINGd/groupsn3b1"+asrq13oL1>1322cpu if (
a hstruct>
a 535spa5 13e729" cla13est poll
a 5#L12952id27L13est>132sched/cor
>tar=a>struct5rd40L191" 5ipi_>tar=a>struct>sct>
ul5r_ipi5255
a hrefar"ref=de=EFAULT131e29">>5STATS1TASK_RUNNINGd/LT131e29">>5STATSd27L13est>132sched/cor
>tar=a>struct5r==de=4FAU5="13e929" cla13uct>
a hre5sk"rt52line"/href="+code=__hitel/a memset1TASK_RUNNINGd/memset217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12y>1TASK_RUNNINGd/c" cla.
a hreos="13b12wc_pcspcoc1TASK_RUNNINGd/cc_pcspcoc clas==, sizeofibutes_to_loadck
/a>(struct>"sct>
_rontributes_to_loadd/co>1TASK_RUNNINGd/c" cla.
a hreos="13b12wc_pcspcoc1TASK_RUNNINGd/cc_pcspcoc cla"ve13pow>134schednamtioL12> =>
a1" 5c=a>struct5st_empty href">rq
/a> *ll5st_em52r__tr=rde=r12t =>128ck_a>ore.c#L134" id4R 
56" it" cla5s="sref">cn5
/a3a55134schednamtioL12> =>
a1" 56=a>struct5"133229" cla13oL150">>55054
53<53dd/core.ci=>rtsk_neask__>tarINIT_LIST_HEAD cla12oL83">>48INIT_LIST_HEAD217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12r,,#L42" id5">>12r, hre.
a hreos="13b12runhz_idle_ki7" href">rrunhz_id"+asrq13oL1>1322cpu if (
a hstruct>
a 5"lis5"8ef=5>>5ode=cnt" class="sref">5n5
/a53t,3="12hre>126ck_a>struct>
a hrclas="5ef==





5
* Not all ren5
/aule IPI5handl53_i=rq>
a hrefar"ref=de=EFAULT131e2PREEMPT_NOTIFIERS1TASK_RUNNINGd/LT131e2PREEMPT_NOTIFIERS,3="12hre>126ck_a>struct>
a hrclas="5et>
__trad5
* tradilionally all/t/3i5 wor"53/d/core.ci=>rtsk_neask__>tarINIT_HLIST_HEAD cla12oL83">>48INIT_HLIST_HEAD217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12prehrefsn3t=rierc1TASK_RUNNINGd/prehrefsn3t=rierc"+asrq13oL1>1322cpu if (
a hstruct>
a 5"28
/a4
sp5
* path. Now efat weaactu5lly d532128ck_a>ore.c#L134" id4R 
565spa5
* weado"call t/3m.5ode=c5t" cl53hre4="12f">>128schednamtioL12> =>
a1" 5128






5
*5ode=cnt" class="sref">5n5
/a53hre3=12ef">1258k_a>struct>
>tar=a>str5"==de=4FAU5
* Some archsnalkeadyado"5all t5328929" cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">5128d





5
* properly.5ode=cnt" cla5s="sr53ully den5
/auled>from its/runq55 setup:rq id3913"le>134ass="line" namtioL124">5128d





5
*5ode=cnt" class="sref">5n5
/a54p. Its/a ass="lightass=" wake>
a +cod12uct>122ass="namtioL12> =>
a1" 5128






5
* Arguably weashould vis5t all54dd/coenad/cor/cor t" clasecd/co55struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
w"12oL8>12o5k_a>if (
a href="+sc395ef==





5
* however a fair share o5 IPIs54t,3="q13="k>131hcpu if (
a href="+s5>t5ef==





5
* somewfat pessimize3ef"5simpl543onlk__>tar=aunsign,5olongcore.c#L139" cfas_key4">>1PF_WQ_WORKERd/co t"q13="k>132ass="}namtioL12> =>
a1"5128






5
*+5ode=cnt" class="sref"5cn5
/54/d/core.ci=>re_ref">static_key4">>1wake_ref">d/co t" clasa1" id40L191" cla1gef/a>(struct>"smp_arogef/a>("+askrq13oL1>1322cpu if (
a hstruct>
a 514" 





5er href">rq
/a> *irq_ente5d/cor54de=rq13   >1316k_a>struct>
>tar=a>str515spa5twc_pcorena_>tar=a>struct5sct>
5 twc_pcorenad/cor> namtioL12>__ecd/co55>128
/a5
w"q13oL1>1322cpu if (
a hstruct>
a 5128






5a134829" cla13/sched/core5c# to547onlk__>tar=a> cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">51==de=4FAU5>>5ode=cnt" class="sref">5n5
/a54m, luckily irq_enter/exitanest hde=cn We_lerk to32SCHEDHc as 3a55 to o3oL1 Tois guarante"s"sref8" id3913"le>134ass="line" namtioL124">5128d





5
* Cd4ssha hsomeone>ki7"/5 us f54ully den5
/auled>from its/rust hde=cn nobody w">ne5
/a3al5
3a5 itta" cla signaluoruo2o3o exts="3arq id3913"le>134ass="line" namtioL124">5128d





5
*+5ode=cnt" class="sref"5cn5
/55p. Its/a ass="lightass=" wakst hde=cn ev2"t"can12/rneg
 il135>ss="line" namtioL124">5ORKERd/col5st_empty href">rq
/a> *ll5st_em55rchsnand updel/ all handlers,5ode=cnt>
a +cod12uct>122ass="namtioL12> =>
a1" 5="sref">cn5
/a3a55tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12Ly4">>1TASK_RUNNINGd/coit" class="sref">cn5
/a3a558529" cla12NFIG55o t"q13="k>132ass="}namtioL12> =>
a1"5_do_wakeup5tatic_key4">>1 twc_do_wak5upd/c55_i=rq13cla>132ck_a>struct>
>tar=a>str5ct>
a hreo5="125529" cla12class="mp_5roces554onlk__>tar=a> cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">5ct>
trace_5ct>
_wakeupstatic_key4">>5 race55some wor", weaneers4o"make sst hde=cn Meg
 "+co"we doa12/rleak PI boospcto priority135>ss="line" namtioL124">5O5spa5rsemptlcurrck
/a>(struct>5id4ss55s="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 5=28






5a125829" cla12ef">neg
5a>53)5 <557onlk__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b12prio1TASK_RUNNINGd/prio class="sref">cn5
/a3a"f">2"twake_ref">d/co tf">2"ta5
wruct>
a hreos="13b12normal_prio1TASK_RUNNINGd/normal_prioo t"q13="k>132ass="}namtioL12> =>
a1"5_==de=4FAU5>rq
/a> *
a h,
a href="+a5k"rti55 id3913bsc>130hcpu #i.cor
ef="+ask"rt5c28=





5MPhref="+code=__hclass="S5Psar"559onlk__>tar=a> cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">5ao>>128
p 5ref">rq
/a> *
a h,
a href5"+ask56p. Its/a ass="lightass=" wakst hde=cn Rev2rl135>ss="line" namtioL124">5s="
ao>>125
p href">rq
/a> *
a h,
a 5ref="56rchsnand updel/ all handlers,5ode=cnt>
a +cod12uct>122ass="namtioL12> =>
a1" 5
/a3a55tar=af">static_key4">>1sunlikely1TASK_RUNNINGd/unlikely"+ask"commenc_cd/co,LL42" id5">>128
/a5
w="+ask"rtik_l claswokecstare>et=ono55et=ono55t5ao>>128
k_5>tar=a>struct>
a hre
a hr5f="+a569"las &_>tar=__>tar=af">static_key4">>1s8
/a5has_rt_policy,#L42" id5">>128
/a5has_rt_policy"+ask"commenc_cd/co,LL42" id5">>128
/a5
w"vrq13="k>131hcpu if (
a href="+s5>t5at>
a hreo5luE_REL_PINNEtruct>u6ck_a5sa> 4564"las &_>tar=__>tar=a__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b12policy,#L42" id5">>12policy"+asss="sref">cn5
/a3a9">>5 NORMAL8529" cla12NFIG9">>5 NORMALo t"q13="k>132ass="}namtioL12> =>
a1"5"t>
trace_5suE_REL_PINNEtruct>u6ck_a5sa> 456ct>
_wakeupd/__>tar=a__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b12wc_pco_prio1TASK_RUNNINGd/wc_pco_prio"+asss="sref">cn5
/a3aNICE_TO_PRIO1TASK_RUNNINGd/NICE_TO_PRIO"+ask=rq13oL1>1322cpu if (
a hstruct>
a 5"t>
id4ssr5 126729" cla12 &>15#L142"5ik__>56
itel_incd/core.ci=>r__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b12rt_priority,#L42" id5">>12r,_priority"+asss=3=12oL2>129ched/core.c#L137" id4e"5"40L191" c5hre3=deltaREL_PINNEtruct>5eltaa56,3a hr a> 4 52>12PRIO_TO_NICE"+ask"commenc_cd/co,LL42" id5">>128
/a5
w="+ask"rtik_l claswokc_pco_prio1TASK_RUNNINGd/wc_pco_prio"+as) < 0"12oL8>12o5k_a>if (
a href="+sc395(
a h>5 tar=a>struct5
a hr56a href="+ask"rtik_lav__>tar=a>struct>onlk_k_a>)srq" classock_a>struct>
a hreos="13b12wc_pco_prio1TASK_RUNNINGd/wc_pco_prio"+asss="sref">cn5
/a3aNICE_TO_PRIO1TASK_RUNNINGd/NICE_TO_PRIO"+ask=rq13oL1>1322cpu if (
a hstruct>
a 5"28=





5sref">cn5
/a3a55123Lk_a>struct>
>f="+ask"r555555e.ci=5rtsk_neasupdel/_ava_>tar=5>stru57>5 struct>
a hreos="13b12prio1TASK_RUNNINGd/prio class="sref">cn5
/a3aa>)srq" classock_a>struct>
a hreos="13b12normal_prio1TASK_RUNNINGd/normal_prioo t"ss="sref">cn5
/a3a__normal_prio1TASK_RUNNINGd/__normal_prio"+ask"commenc_cd/co,LL42" id5">>128
/a5
w"q13oL1>1322cpu if (
a hstruct>
a 5s="
ao>>125
k__>tar=a>struct>
a hre
5 href57+ask"rtik_lnr_unL42erruptiblc href">>et=
/a3_weigh91TASK_RUNNINGd/cet=
/a3_weigh9"+ask"commenc_cd/co,LL42" id5">>128
/a5
w"q13oL1>1322cpu if (
a hstruct>
a 5s/a3a55 */457t,3="12hre>126ck_a>struct>
a hrclas="5
a1" id40L591" cla12 429" cla12class5"line579"las &_>tar=__>tar=a> cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">5150" c5ode5cn127529" cla12sptik__csd5pclas57a551set"ERd/c" ymorf">fterefr5255134ass="line" namtioL124">51t>
trace_5
12 629" cla12L180">>140
53t4 <57some wor", weaneers4o"make sst hde=c////////n fulfill,5oda>(1uty:rq id3913"le>134ass="line" namtioL124">5st>
id4ssr5
/a3a55cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 5_do_active5/static_key4">>1 twc_do_a5tivel57,3a hr a> 4 52>128
/a5
w="+ask"rtik_l claswokecstare>et=ono55et=ono55129ched/core.c#L137" id4e"5

a h>5 >128schednamtioL12> =>
a1" 5
t" class=5MPhref="+code=__hclass="S5Psar"57_e=rq123L1>123Lk_a>struct>
>f="+ask"r5ao>>128
p 5ref">rq
/a> *
a h,
a href5"+ask58tik_luct>
_ref">s!
a hreos="13b12rt_prio,#L42" id5">>12r,_prio"+ask"commenc_cd/co,LL42" id5">>128
/a5
w="+ask"rtik_l claswoprio1TASK_RUNNINGd/prio claq=13pow>134schednamtioL12> =>
a1" 5s="
ao>>125
k__>tar=a>struct>
a hre
5 href58+ask"rtik_lnr_unL42erruptiblc href">ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" classss=href">rq
/a> *217"d/fair_kecstatic_key4">>1 claswokfair_kecstatic_ko t"q13="k>132ass="}namtioL12> =>
a1"5
a1" id40L591" cla128329" cla12t =>t5r=15658t,3="12hre>126ck_a>struct>
a hrclas="5
a1" id40L5"128429" cla12nt"> */4/sp5)48
_ref">sruptiblc href">ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a5512o5k_a>if (
a href="+sc395ct>
 twc_a5tivel/static_key4">>1 twc5activ584"las &_>tar=__>tar=aruptiblc href">ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a55>128
/a5
w"q13oL1>1322cpu if (
a hstruct>
a 5ct>
ttwc_d5_wakeupstatic_key4">>1 tw5_do_w58de=rq13   >1316k_a>struct>
>tar=a>str5id40L191" 5la128729" cla12f">EFAU4T
53>4 <5865 134ass="line" namtioL124">5d40L191" c5a128829" cla12L206">>406
5>48134ass="line" namtioL124">5d
a h>5 cn5
/a3a55EFAU4T
/3>4d////////n " clree cgroup is pinn,5ock_re i childrdue5eo cgroups55134ass="line" namtioL124">5dt" class=5d>inacase3ef"stcla/@p isn5ss="o5fully den5
/auled>from its/ru////////n  i r5
/befoco ecd/co55135>ss="line" namtioL124">5128d* inae5asncase3we must do a remo53 wak5up. Its/a ass="lightass=" wak////////nh rqref13" h>135>ss="line" namtioL124">51="
ao>>125 all weaneers4o"do asnfli5/p
a 5ritel/s4o"TASK_RUNNING, since////////n Silence PROVE_RCUth rqref13" h>135>ss="line" namtioL124">51a1" id40L5cla/asnitill 
a hronlk_.55de=cn5" class="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 51a1" id40L5cnt" class="sref">cn5
/a3555tar=a>struct>onlk_k_ "+ask"rtik_l13oLsav>1TASK_RUNNINGd/ "+ask"rtik_l13oLsav>"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasatic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 51t>
 twc_a5_remot3static_key4">>1 tw5_remo59/d/core.ci=>rtsk_neask__>tarset="srefa>(struct>"smp_aro>et="srefa>(__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">>1wake_ref">d/co t" clasqe13pow>134schednamtioL12> =>
a1" 51t>
ttwc_d5="129629" cla12f">EFAU4T
53a4 <59ct>
_wakeupd/core.ci=>rtsk_nef="+ask"rtik_l13oLrest =>1TASK_RUNNINGd/ "+ask"rtrtik_l13oLrest =>"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasatic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 51d40L191" 55#L142" id43L112" clas &_5tar=a59id27L13est>132sched/cor
>tar=a>struct5140L191" c5ck
/a>(struct>"reo hre3
35it" c5955
atic_key4">>1sne"deft>"la12b729" cla12bdeft>"l__>ta"commenc_cd/co,LT131e29">>5STATS1TASK_RUNNINGd/LT131e29">>5STATSd27L) ||tic_key4">>1sne"deft>"la12b729" cla12bdeft>"l__>ta"commenc_cd/co,LT131e25512o5k_a>if (
a href="+sc395c==de=4FAU5T129929" cla12/sched/core5c#L13598l17"d/coroh_f">static_key4">>1slikely1TASK_RUNNINGd/likely"+ask"commenc_cd/co,ecd/coinfo=oney4">>1 claswokecd/coinfo=on"+askrq=13pow>134schednamtioL12> =>
a1" 5c_lclass="5 id43L112" clas &
3>5 rq
/a> *llimemset1TASK_RUNNINGd/memset217" href">rq
/a> *217"d/a>)srq" classock_a>struct>
a hreos="13b12ycd/coinfoey4">>1 claswokecd/coinfoclasat=, sizeofibutes_to_loadck
/a>(struct>"sct>
_rontributes_to_loadd/cocd/coinfoey4">>1 claswokecd/coinfoclas"ve13pow>134schednamtioL12> =>
a1" 6ao>>128
p 6ref">rq
/a> *
a h,
a href6"+ask60>5 128ck_a>ore.c#L134" id4R 
6s="
ao>>126
ttwc_do_wakeupstatic_key6">>1 60yd/co>
atic_key4">>1sne"deft>"la12b729" cla12bdeft>"l__>ta"commenc_cd/co,LT131e29" cla13/*5a> 4>50rtsk_ne6skeock
/a>(struct>"reo hr63
31 60lonlk__>tar=a>struct>onlk_k_a> = 1 namtioL12> =>
a1" id40L191" cla12L9" a>(struct>"smp_aro9" a>(re3=ss=3=12oL2>129ched/core.c#L137" id4e"6s3>rtsk_ne6snt" class="sref">cn5
/a3615#L160_i=rq=rde=r12t =>128ck_a>ore.c#L134" id4R 
6s4>rtsk_ne6sremot3static_key4">>1 tw6trad_60r_e=r>
a hrefar"ref=de=EFAULT131e2PREEMPT_COUNT1TASK_RUNNINGd/LT131e2PREEMPT_COUNTd27L13est>132sched/cor
>tar=a>struct6128
/a4
sp6
13b629" cla13b">EFAU4T
/6a4 
_wakeupd/c55Wanl
a +cod12uct>122ass="namtioL12> =>
a1" 6128
/a4
sp6keock
/a>(struct>"reo hre6t" cl60twc_pcorenad/cor> namtioL12>ssref9h">cnoinfoey4">>1 claswokssref9h">cnoinfoa5
wk"commenc_cd/co,LL42" id5">>128
/a5
w"ruct>
a hreos="13b12prehrefscou"twake_ref">d/co prehrefscou"tre3=ss=1=12oL2>129ched/core.c#L137" id4e"6s78
/a4
sp6kk
/a>(struct>"reo hre3
36
3a4960 hre3=rde=r12t =>128ck_a>ore.c#L134" id4R 
6s88
/a4
sp6k129929" cla12/sched/core6c#L1360 id39>
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>505 rq
/a>
z_idsn3b1_initwake_ref">d/co pz_idsn3b1_init"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12push>1sne"MAX_PRIO1TASK_RUNNINGd/MAX_PRIOo t"ve13pow>134schednamtioL12> =>
a1" 6struct>
sc6>
_ twc_pcorena_>tar=a>st6uct>s61>5 128ck_a>ore.c#L134" id4R 
6oL83" 4las6="131229" cla13
a hreask"6class61itel/12t =>128ck_a>ore.c#L134" id4R 
6o=>rtsk_ne65#L142" id43L112" clas &_6tar=a61lonlk__>tar=a>struct>onlk_k_auf/a>(struct>"smp_aroauf/a>("+askre13pow>134schednamtioL12> =>
a1" 6s3>rtsk_ne6llist_n39"_>tar=a>struct>6list_6112942"12f">>128schednamtioL12> =>
a1" 6rt>
__trad6clasL191"lock
/a>(struct>6 clas61sctl_13pow>134schednamtioL12> =>
a1" 6s28
/a4
sp6
131629" cla13       
a h6ef="+61some wor", weaneers4o"make 138" id3913"le>134ass="line" namtioL124">6ct>
raw_sp6n_217" href">rq
/a> *kaw_6pin_261s="sref">cn5
/a3a55c">d2"sre 55135>ss="line" namtioL124">6od40L191" 6a131829" cla13uct>
a hrea6k"rt>6155135>ss="line" namtioL124">6o88
/a4
sp6llist_>tar=a>struct>llist6as )s6128929" cla12ef">EFAU4T
/3>4de=Te i funcclas w">nedk_oome2initial
"sref">cr cc_pcspcoc housekeepof
rerqref13" h>135>ss="line" namtioL124">6o98
/a4
sp6
a href">rq
/a> *
a h,&
365 from its/runq2oatnt" c_be don5255< ev2ry new180c">c">d2aassext,afr5n aufs5e29"9" crerqref13" h>135>ss="line" namtioL124">6r=a>struct6
llist_>tar=a>struct>llis6las &62p. Its/a ass="lightass=" wakeuon12o32runre.c#L" clneg
s itth rqref13" h>135>ss="line" namtioL124">6rL83" 4las6
 twc_do_activel/static_k6y4">>62itel/s4o"TASK_RUNNING, since5>
a +cod12uct>122ass="namtioL12> =>
a1" 6r=>rtsk_ne6" c5ode=cn132329" cla13uc6>
a h62lonlkenad/cor/cor t" clas hr12upsnew="srestruct>"smp_aro hr12upsnew="sre"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,LL42" id5">>128
/a5
w"12oL8>12o5k_a>if (
a href="+sc396re.c#L139"6"13e429" cla13class="mp_p6ocess623onlkq13="k>131hcpu if (
a href="+s5>t6rt>
__trad6n_unl17" href">rq
/a> *ka6_spin62/d/core.ci=>runsign,5olongcore.c#L139" cfas_key4">>1PF_WQ_WORKERd/co t"q13="k>132ass="}namtioL12> =>
a1"6r28
/a4
sp6la13e629" cla13ef">neg
5a6 4 5262ct>
_wakeupd/a>struct>
llist_>tar=a 132ass="}namtioL12> =>
a1"6rt>
raw_sp6 13e729" cla13est poll
a 6#L12962id27L13est>132sched/cor
>tar=a>struct6rd40L191" 6ipi_>tar=a>struct>sct>
ul6r_ipi627onlk__>tar=a>struct>onlk_k_ "+ask"rtik_l13oLsav>1TASK_RUNNINGd/ "+ask"rtik_l13oLsav>"+ask"rtik_lwake_list_>taa>)srq" classock_a>struct>
a hreos="13b12pistruct>
a hre
a hrefpistrucclasatic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 6r==de=4FAU6="13e929" cla13uct>
a hre6sk"rt62 id39>
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>50struct6st_empty href">rq
/a> *ll6st_em629onlk__>tar=a> cla12ef">EFAU4T
/3>4138" id3913"le>134ass="line" namtioL124">66" it" cla6s="sref">cn5
/a3a55134ass="line" namtioL124">66=a>struct6"133229" cla13oL150">>55064
53<63itel/s4o"TASK_RUNNING, since////////n  - a>(s_allow>d2a"TAShange"in12o3255134ass="line" namtioL124">66=>rtsk_ne6>>5ode=cnt" class="sref">6n5
/a63 class="sref">cn5
/a3a55d2apu migh9 dis135>ss="line" namtioL124">6ef==





6
* Not all ren5
/aule IPI6handl63129429" cla12 &>15#L142"tik_////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 6et>
__trad6
* tradilionally all/t/3i6 wor"63/d/core.ci=>rtsk_neask__>tarset="srefa>(struct>"smp_aro>et="srefa>(__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="selec"_3sref">ey4">>1 claswokselec"_3sref">__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class="SD_BALANCE_FORKL42" id5">>128
SD_BALANCE_FORKclasat="ve13pow>134schednamtioL12> =>
a1" 6"28
/a4
sp6
* path. Now efat weaactu6lly d632128ck_a>ore.c#L134" id4R 
665spa6
* weado"call t/3m.5ode=c6t" cl63id27L13est>132sched/cor
>tar=a>struct6128






6
*5ode=cnt" class="sref">6n5
/a637onlk__>tar=a>struct>onlk_k_ _d/cor> namtioL12> =>
a1" id40L191" cla1__3sref">struct>
a hre
a href__3sref">struca5
wk"commenc_cd/co,LL42" id5">>128
/a5
w"q13oL1>1322cpu if (
a hstruct>
a 6"==de=4FAU6
* Some archsnalkeadyado"6all t63line"/href="+code=__hitel/a p href">="srestruct>"smp_arop href">="srea5
wk"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="sr=rq13oL1>1322cpu if (
a hstruct>
a 6128d





6
* properly.5ode=cnt" cla6s="sr63r__trad_rq_217" href">rq
/a>
/a>(struct>"sct>
_rontributes_to_loadd/c9" cla13b">neg
4a> 3>4 129ched/core.c#L137" id4e"6128d





6
*5ode=cnt" class="sref">6n5
/a64>5 rq
/a>trace_kecstahref">snew,#L42" id5">>128race_kecstahref">snew__>ta"commenc_cd/co,LL42" id5">>128
/a5
wakcor> t" class=">st>1TASK_RUNNINGd/>st>a5
w"q13oL1>1322cpu if (
a hstruct>
a 6128






6
* Arguably weashould vis6t all64dd/core.ci=>rtsk_neask__>tar
a _l1prehrefscurrwake_ref">d/co ta _l1prehrefscurra5
wk"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="src_key4">>1wake_WF_FORKL42" id5">>128
WF_FORKa5
w"q13oL1>1322cpu if (
a hstruct>
a 61=>rtsk_ne6
* however a fair share o6 IPIs64t,3=">
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>50
_ref">sruptiblc href">ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a55,#L42" id5">>128
/a529f">a5
w"12oL8>12o5k_a>if (
a href="+sc396128






6
*+5ode=cnt" class="sref"6cn5
/644"las &_>tar=__>tar=aruptiblc href">ct>
_ref">a h,
a href="+ask"rtik_l claswokecstatic_key4">>1 claswokecd/co t" class="sref">cn5
/a3a55,#L42" id5">>128
/a529f">a5
wk"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class=""q13oL1>1322cpu if (
a hstruct>
a 6128
/a4
sp6er href">rq
/a> *irq_ente6d/cor642128ck_a>ore.c#L134" id4R 
615spa6twc_pcorena_>tar=a>struct6sct>
6 twc_pcorenad/cor> namtioL12>3sref">s=a>struct>
a hre
a hr3sref">s=a>stra5
wk"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_ref">d/co it" class="srhref">rq
/a> *217"d/f_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 6128






6a134829" cla13/sched/core6c# to64 hre3=13bL2>130ched/core.c#L137" id4e"61==de=4FAU6>>5ode=cnt" class="sref">6n5
/a64 id3913bsc>130hcpu #i.cor
ef="+ask"rt6128d





6
* Cd4ssha hsomeone>ki7"/6 us f64ully >
a hrefar"ref=de=EFAULT131e2PREEMPT_NOTIFIERS1TASK_RUNNINGd/LT131e2PREEMPT_NOTIFIERS,3="12hre>126ck_a>struct>
a hrclas="6128d





6
*+5ode=cnt" class="sref"6cn5
/65la13113pow>134schednamtioL12> =>
a1" 6ORKERd/col6st_empty href">rq
/a> *ll6st_em65rchsnand updel/ all handler/*38" id3913"le>134ass="line" namtioL124">6="sref">cn6
/a3a55cn5
/a3a552"tris becto prehref>d2class=re"sref">cd8" id3913"le>134ass="line" namtioL124">6=f==





6tatic_key4">>1 twc_do_wak6upd/c65129429" cla12 &>15#L142"tik__ @n3t=rier: n3t=rier/a>structo register8" id3913"le>134ass="line" namtioL124">6=28






6="125529" cla12class="mp_6roces65a55
a +cod12uct>122ass="namtioL12> =>
a1" 6ct>
trace_6ct>
_wakeupstatic_key4">>6 race65some enad/cor/cor t" clasSCehrefsn3t=rier_registerwake_ref">d/co prehrefsn3t=rier_register"+askr=a>struct>
a href">rqprehrefsn3t=rierwake_ref">d/co prehrefsn3t=rier__>tar=a>struct>tfasln3t=rierwake_ref">d/co n3t=rier__>t"12oL8>12o5k_a>if (
a href="+sc396O5spa6rsemptlcurrck
/a>(struct>6id4ss65"d/co"12f">>1296k_a>struct>
el/sched/c6=28






6a125829" cla12ef">neg
5a>63)5 <657onlk__>tar=a>struct>onlk_k_hz_idsadd_heala12b729" cla12bhz_idsadd_heal"+ask"rtik_lwake_list_>tan3t=rierwake_ref">d/co n3t=rier__>t
/a3a55 */5/sp415in1ss="srhref">rq
/a> *217"d/"f">2"twake_ref">d/co tf">2"ta5
wruct>
a hreos="13b12prehrefsn3t=rierc1TASK_RUNNINGd/prehrefsn3t=rierc"+asrq13oL1>1322cpu if (
a hstruct>
a 6_==de=4FAU6>rq
/a> *
a h,
a href="+a6k"rti65 id39=13bL2>130ched/core.c#L137" id4e"6c28=





6MPhref="+code=__hclass="S6Psar"659onlk
a hreos="13b12EXPORT_SYMBOL_GPL8529" cla12NFIGEXPORT_SYMBOL_GPL__>ta"commenc_cd/co,LCehrefsn3t=rier_registerwake_ref">d/co prehrefsn3t=rier_register"+asrq13oL1>1322cpu if (
a hstruct>
a 6ao>>128
p 6ref">rq
/a> *
a h,
a href6"+ask66la13113pow>134schednamtioL12> =>
a1" 6s="
ao>>126
p href">rq
/a> *
a h,
a 6ref="66rchsnand updel/ all handler/*38" id3913"le>134ass="line" namtioL124">6
/a3a55cn5
/a3a55134ass="line" namtioL124">6
f==





6>tar=a>struct>
a hre
a hr6f="+a66129429" cla12 &>15#L142"tik__ @n3t=rier: n3t=rier/a>structo unregister h id3913"le>134ass="line" namtioL124">6
28






6luE_REL_PINNEtruct>u6ck_a6sa> 466a55135>ss="line" namtioL124">6"t>
trace_6suE_REL_PINNEtruct>u6ck_a6sa> 466some wor", weaneers4o"make s*vTe i  i safe5eo call fromlwi 3in1a1prehreflas n3t=ri3oth rqref13" h>135>ss="line" namtioL124">6"t>
id4ssr6 126729" cla12 &>15#L142"6ik__>66s="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 6"40L191" c6hre3=deltaREL_PINNEtruct>6eltaa66,3a henad/cor/cor t" clasSCehrefsn3t=rier_unregisterwake_ref">d/co prehrefsn3t=rier_unregister haskr=a>struct>
a href">rqprehrefsn3t=rierwake_ref">d/co prehrefsn3t=rier__>tar=a>struct>tfasln3t=rierwake_ref">d/co n3t=rier__>t"12oL8>12o5k_a>if (
a href="+sc396(
a h>5 tar=a>struct6
a hr66a hre"12f">>1296k_a>struct>
el/sched/c6"28=





6sref">cn5
/a3a55rq
/a>hz_idsdela12b729" cla12bhz_idsdel"+ask"rtik_lwake_list_>tan3t=rierwake_ref">d/co n3t=rier__>t
/a3a55 */5/sp415in1ss="rq13oL1>1322cpu if (
a hstruct>
a 655555e.ci=6rtsk_neasupdel/_ava_>tar=6>stru67>5 130ched/core.c#L137" id4e"6s="
ao>>126
k__>tar=a>struct>
a hre
6 href67+ask"
a hreos="13b12EXPORT_SYMBOL_GPL8529" cla12NFIGEXPORT_SYMBOL_GPL__>ta"commenc_cd/co,LCehrefsn3t=rier_unregisterwake_ref">d/co prehrefsn3t=rier_unregister hasrq13oL1>1322cpu if (
a hstruct>
a 65/a3a55 */467t,3="12hre>126ck_a>struct>
a hrclas="6
a1" id40L691" cla12 429" cla12class6"line679"laswc_pcorenad/cor/cor t" clasfire_kecstain_prehrefsn3t=rierc1TASK_RUNNINGd/fire_kecstain_prehrefsn3t=rierc"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,currwake_ref">d/co turra5
w"12oL8>12o5k_a>if (
a href="+sc396150" c5ode6cn127529" cla12sptik__csd6pclas67a55>1296k_a>struct>
el/sched/c61t>
trace_6
12 629" cla12L180">>140
63t4 <67ct>
_wakeupd/a>struct>
llist_>tar=aprehrefsn3t=rierwake_ref">d/co prehrefsn3t=rier__>tar=a>struct>tfasln3t=rierwake_ref">d/co n3t=rier__>tq13oL1>1322cpu if (
a hstruct>
a 65t>
id4ssr6
/a3a55
_wakeupd/a>struct>
llist_>tar=ahz_idsn3b1a12b729" cla12bhz_idsn3b1"+asar=a>struct>tfasln3b1a12b729" cla12bn3b1"+asq13oL1>1322cpu if (
a hstruct>
a 6540L191" c6/static_key4">>1 twc_do_a6tivel67hre3=12ef">1258k_a>struct>
>tar=a>str6

a h>5 d/co n3t=rier__>ttic_key4">>1wake_n3b1a12b729" cla12bn3b1"+assrhref">rq
/a> *217"d/"f">wake_ref">d/co turra5
wruct>
a hreos="13b12prehrefsn3t=rierc1TASK_RUNNINGd/prehrefsn3t=rierc"+astic_key4">>1wake_cin13ent"> */5/sp415in1ss="r12ef">1258k_a>struct>
>tar=a>str6
28=





6MPhref="+code=__hclass="S6Psar"67e3="kerllist_entry href">rq
/a> *llin3t=rierwake_ref">d/co n3t=rier__>t
/a3a55>1 claswokecd/coin__>ta"commenc_cd/co,n3t=rierwake_ref">d/co n3t=rier__>ttic_key4">>1wake_ "+asmpsSCHEDHcor_ila12b729" cla12b "+asmpsSCHEDHcor_il__>ta"ve13pow>134schednamtioL12> =>
a1" 6ao>>128
p 6ref">rq
/a> *
a h,
a href6"+ask68>5 130ched/core.c#L137" id4e"6s="
ao>>126
k__>tar=a>struct>
a hre
6 href68itel/12t =>128ck_a>ore.c#L134" id4R 
6
a1" id40L691" cla128329" cla12t =>t6r=15668t,3="wc_pcorenad12t =>128ck_a>ore.c#L134" id4R 
6
a1" id40L6"128429" cla12nt"> */4/sp6)48struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,currwake_ref">d/co turra5
w,12t =>128ck_a>ore.c#L134" id4R 
6
50" c5ode6tivel/static_key4">>1 twc6activ684"las &_>tar=__>tar=aaaaaaaaaaaaaaaaaar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,nex,,#L42" id5">>12nex,ss="r12ef">1258k_a>struct>
>tar=a>str6ct>
ttwc_d6_wakeupstatic_key4">>1 tw6_do_w68hre3="12f">>1296k_a>struct>
el/sched/c6id40L191" 6la128729" cla12f">EFAU4T
63>4 <686t>
_wakeupd/a>struct>
llist_>tar=aprehrefsn3t=rierwake_ref">d/co prehrefsn3t=rier__>tar=a>struct>tfasln3t=rierwake_ref">d/co n3t=rier__>tq13oL1>1322cpu if (
a hstruct>
a 6d40L191" c6a128829" cla12L206">>406
6>48
_wakeupd/a>struct>
llist_>tar=ahz_idsn3b1a12b729" cla12bhz_idsn3b1"+asar=a>struct>tfasln3b1a12b729" cla12bn3b1"+asq13oL1>1322cpu if (
a hstruct>
a 6d
a h>5 cn5
/a3a65130hcpu #i.cor
ef="+ask"rt6dt" class=6d>inacase3ef"stcla/@p isn6ss="o68r__trad_rq_217" href">rq
/a>hz_idsfor_each_hr1ry1TASK_RUNNINGd/hz_idsfor_each_hr1ry__>ta"commenc_cd/co,n3t=rierwake_ref">d/co n3t=rier__>ttic_key4">>1wake_n3b1a12b729" cla12bn3b1"+assrhref">rq
/a> *217"d/"f">wake_ref">d/co turra5
wruct>
a hreos="13b12prehrefsn3t=rierc1TASK_RUNNINGd/prehrefsn3t=rierc"+astic_key4">>1wake_cin13ent"> */5/sp415in1ss="r12ef">1258k_a>struct>
>tar=a>str6128d* inae6asncase3we must do a remo63 wak69>5 d/co n3t=rier__>t
/a3a55>1 claswokecd/coout__>ta"commenc_cd/co,n3t=rierwake_ref">d/co n3t=rier__>ttic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 61="
ao>>126 all weaneers4o"do asnfli6/p
a 6ritel/=13bL2>130ched/core.c#L137" id4e"61a1" id40L6cla/asnitill 
a hronlk_.56de=cn69t,3="12hre>126ck_a>struct>
a hrclas="61a1" id40L6cnt" class="sref">cn5
/a3655!LT131e2PREEMPT_NOTIFIERS7*>
a +cod12uct>122ass="namtioL12> =>
a1" 61t>
 twc_a6_remot3static_key4">>1 tw6_remo69sctl_13pow>134schednamtioL12> =>
a1" 61t>
ttwc_d6="129629" cla12f">EFAU4T
63a4 <69de=rqwc_pcorenad/cor/cor t" clasfire_kecstain_prehrefsn3t=rierc1TASK_RUNNINGd/fire_kecstain_prehrefsn3t=rierc"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,currwake_ref">d/co turra5
w"12oL8>12o5k_a>if (
a href="+sc3961d40L191" 65#L142" id43L112" clas &_6tar=a69"d/co"12f">>1296k_a>struct>
el/sched/c6140L191" c6ck
/a>(struct>"reo hre3
36it" c69 hre3=13bL2>130ched/core.c#L137" id4e"6c==de=4FAU6T129929" cla12/sched/core6c#L1369 id3913bsc>130hcpu #i.cor
ef="+ask"rt6c_lclass="6 id43L112" clas &
3>5 128ck_a>ore.c#L134" id4R 
7ao>>128
p 7ref">rq
/a> *
a h,
a href7"+ask70>5 struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,currwake_ref">d/co turra5
w,12t =>128ck_a>ore.c#L134" id4R 
7s="
ao>>127
ttwc_do_wakeupstatic_key7">>1 70+ask"rtik_lnr_unL42eraaaaaaaaaaaaaaaaar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,nex,,#L42" id5">>12nex,ss="r12ef">1258k_a>struct>
>tar=a>str7i=>rtsk_ne7skeock
/a>(struct>"reo hr73
31 70t,3="q13="k>131hcpu if (
a href="+s5>t7s3>rtsk_ne7snt" class="sref">cn5
/a3715#L17012942"12f">>128schednamtioL12> =>
a1" 7s4>rtsk_ne7sremot3static_key4">>1 tw7trad_70sctl_13pow>134schednamtioL12> =>
a1" 7128
/a4
sp7
13b629" cla13b">EFAU4T
/7a4 LT131e2PREEMPT_NOTIFIERS7*>
a +cod12uct>122ass="namtioL12> =>
a1" 7128
/a4
sp7keock
/a>(struct>"reo hre7t" cl70id27L13est>132sched/cor
>tar=a>struct7s78
/a4
sp7kk
/a>(struct>"reo hre3
37
3a497055134ass="line" namtioL124">7s88
/a4
sp7k129929" cla12/sched/core7c#L137028929" cla12ef">EFAU4T
/3>4de=prepar>="sre_switch -=prepar>134ass="line" namtioL124">7s98
/a4
sp7kid43L112" clas &
3>5 from its/runq@rq:12o32runre.c#Lpreparcto ck_owitchcl id3913"le>134ass="line" namtioL124">7struct>
sc7>
_ twc_pcorena_>tar=a>st7uct>s71p. Its/a ass="lightass=" wakeu@prev:12o32tf">2"tr"sre 2oatnis becto owitched out__ id3913"le>134ass="line" namtioL124">7s="
ao>>127="131229" cla13
a hreask"7class71itel/s4o"TASK_RUNNING, since5 @nex,:5e29"9" c"we ar>135>ss="line" namtioL124">7o=>rtsk_ne75#L142" id43L112" clas &_7tar=a71 class="sref">cn5
/a3a55135>ss="line" namtioL124">7o3>rtsk_ne7llist_n39"_>tar=a>struct>7list_71129429" cla12 &>15#L142"tik__ Te i  i called wi 392o32rq >str helda" clinterrupts off.vIa5t" ch rqref13" h>135>ss="line" namtioL124">7o4>rtsk_ne7clasL191"lock
/a>(struct>7 clas71a55135>ss="line" namtioL124">7o28
/a4
sp7
131629" cla13       
a h7ef="+71some wor", weaneers4o"make /*_switchth rqref13" h>135>ss="line" namtioL124">7o28
/a4
sp7n_217" href">rq
/a> *kaw_7pin_271s="sref">cn5
/a3a55135>ss="line" namtioL124">7o78
/a4
sp7a131829" cla13uct>
a hrea7k"rt>7155="sre_switch sets up >strcto " clcalls architect+co"spec=rich rqref13" h>135>ss="line" namtioL124">7o88
/a4
sp7llist_>tar=a>struct>llist7as )s7128929" cla12ef">EFAU4T
/3>4de=hooksth rqref13" h>135>ss="line" namtioL124">7o98
/a4
sp7
a href">rq
/a> *
a h,&
375 from its/run>
a +cod12uct>122ass="namtioL12> =>
a1" 7r=a>struct7
llist_>tar=a>struct>llis7las &72p. Itwc_pcor"commenc_cd/co,in=a>strL42" id5">>12in=a>sclassenad12t =>128ck_a>ore.c#L134" id4R 
7rL83" 4las7
 twc_do_activel/static_k7y4">>72+ask"
a hreos="13b12prepar>="sre_switch1TASK_RUNNINGd/prepar>="sre_switch"+askr=a>struct>
a href">rq rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,prev1TASK_RUNNINGd/preva5
w,12t =>128ck_a>ore.c#L134" id4R 
7r=>rtsk_ne7" c5ode=cn132329" cla13uc7>
a h722ask"rtik_lnr_unL42eraaaar=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,nex,,#L42" id5">>12nex,ss="r12ef">1258k_a>struct>
>tar=a>str7re.c#L139"7"13e429" cla13class="mp_p7ocess723onlkq13="k>131hcpu if (
a href="+s5>t7rt>
__trad7n_unl17" href">rq
/a> *ka7_spin72/d/core.ci=>rtsk_neask__>tar8race_kecstaswitch1TASK_RUNNINGd/8race_kecstaswitch__>ta"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,ic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 7r28
/a4
sp7la13e629" cla13ef">neg
5a7 4 5272ct>
_wakeupd/core.ci=>rtsk_nkecstainfoaswitch1TASK_RUNNINGd/kecstainfoaswitch__>ta"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,ic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 7r28
/a4
sp7 13e729" cla13est poll
a 7#L12972twc_pcorenad/cor> namtioL12>perf_ev2"t="sre_secstaoutey4">>1 claswokperf_ev2"t="sre_secstaout__>ta"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,ic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 7r78
/a4
sp7ipi_>tar=a>struct>sct>
ul7r_ipi727onlk__>tar=a>struct>onlk_k_fire_kecstaout_prehrefsn3t=rierc1TASK_RUNNINGd/fire_kecstaout_prehrefsn3t=rierc"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,ic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 7r88
/a4
sp7="13e929" cla13uct>
a hre7sk"rt72line"/href="+code=__hitel/a prepar>=ik_l1switch1TASK_RUNNINGd/prepar>=ik_l1switch"+ask"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 7r98
/a4
sp7st_empty href">rq
/a> *ll7st_em72r__trad_rq_217" href">rq
/a>
repar>=arch1switch1TASK_RUNNINGd/prepar>=arch1switch__>ta"commenc_cd/co,nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 76" it" cla7s="sref">cn5
/a3a555 130ched/core.c#L137" id4e"76=a>struct7"133229" cla13oL150">>55074
53<73itel/12t =>128ck_a>ore.c#L134" id4R 
76=>rtsk_ne7>>5ode=cnt" class="sref">7n5
/a73 class="sref">cn5
/a3a55134ass="line" namtioL124">7ef==





7
* Not all ren5
/aule IPI7handl73129429" cla12 &>15#L142"tik_*rfinish="sre_switch -a12eclaup afterea"9" c-owitchcl id3913"le>134ass="line" namtioL124">7et>
__trad7
* tradilionally all/t/3i7 wor"73a55d2wi 392" c-owitchcl id3913"le>134ass="line" namtioL124">7e28
/a4
sp7
* path. Now efat weaactu7lly d73some wor", weaneers4o"make /*_@prev:12o329h">cn"we j" c_owitched away fromth rqref13" h>135>ss="line" namtioL124">765spa7
* weado"call t/3m.5ode=c7t" cl73s="sref">cn5
/a3a55135>ss="line" namtioL124">7128






7
*5ode=cnt" class="sref">7n5
/a7355fterefr52aassext_owitch, pairedh rqref13" h>135>ss="line" namtioL124">7188
/a4
sp7
* Some archsnalkeadyado"7all t7328929" cla12ef">EFAU4T
/3>4de=wi 39a prepar>="sre_switch call befoco fr52aassext_owitchth rqref13" h>135>ss="line" namtioL124">7698
/a4
sp7
* properly.5ode=cnt" cla7s="sr73ully den5
/auled>from its/runqfinish="sre_switch w">nereaascile >strcto set"up by prepar>="sre_switch,8" id3913"le>134ass="line" namtioL124">7128d





7
*5ode=cnt" class="sref">7n5
/a74p. Its/a ass="lightass=" wakeu" cldo " y"ofr5r architect+co-spec=rica12eclup acclassth rqref13" h>135>ss="line" namtioL124">7128






7
* Arguably weashould vis7t all74itel/s4o"TASK_RUNNING, since5h rqref13" h>135>ss="line" namtioL124">71=>rtsk_ne7
* however a fair share o7 IPIs74 class="sref">cn5
/a3a55135>ss="line" namtioL124">71f==





7
* somewfat pessimize3ef"7simpl74129429" cla12 &>15#L142"tik_*rso,nwe finish 2oatno3oLroutsidLrof12o32runre.c#L>str. (Docto ith rqref13" h>135>ss="line" namtioL124">7128






7
*+5ode=cnt" class="sref"7cn5
/74a55str heldaa"TASause dead>strs; see
"sref">c()255135>ss="line" namtioL124">7128
/a4
sp7er href">rq
/a> *irq_ente7d/cor74some wor", weaneers4o"make /*_details.)8" id3913"le>134ass="line" namtioL124">715spa7twc_pcorena_>tar=a>struct7sct>
74s="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 7128






7a134829" cla13/sched/core7c# to74 hre3wc_pcorenad/cor/cor t" clasfinish="sre_switch1TASK_RUNNINGd/finish="sre_switch"+askr=a>struct>
a href">rq rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,prev1TASK_RUNNINGd/preva5
wr12ef">1258k_a>struct>
>tar=a>str71==de=4FAU7>>5ode=cnt" class="sref">7n5
/a74line"/href="+code=__hitel/a __re2ecsec1TASK_RUNNINGd/__re2ecsec"+ask"commenc_cd/co,a>struct>
wake_ref">sta
/a3a55
a hre
a hr>stra5
wr12ef">1258k_a>struct>
>tar=a>str7198
/a4
sp7
* Cd4ssha hsomeone>ki7"/7 us f74ully q13="k>131hcpu if (
a href="+s5>t7128d





7
*+5ode=cnt" class="sref"7cn5
/75>5 rqmm *
a h,,#L42" id5">>12mm *
a h,class="commenc_cd/co,mm,#L42" id5">>12mmclass1" id40L191" cla1a>struct>
wake_ref">sta
/a3a55>12prev_mm"+asq13oL1>1322cpu if (
a hstruct>
a 7ORKERd/col7st_empty href">rq
/a> *ll7st_em75+ask"rtik_lnrlongcore.c#L139" cfaprev_wc_pstrL42" id5">>12prev_wc_ps"+asq13oL1>1322cpu if (
a hstruct>
a 7O=>rtsk_ne7
/a3a55>1 twc_do_wak7upd/c753onlk__>tar=a>struct>onlk_k_ >struct>
wake_ref">sta
/a3a55>12prev_mm"+asss="sref">cn5
/a3aNULL8529" cla12NFIGNULL"+asq13oL1>1322cpu if (
a hstruct>
a 7O28






7="125529" cla12class="mp_7roces75sctl_13pow>134schednamtioL12> =>
a1" 7ct>
trace_7ct>
_wakeupstatic_key4">>7 race75ct>
_wakeupd/c55122ass="namtioL12> =>
a1" 7O5spa7rsemptlcurrck
/a>(struct>7id4ss75s="sref">cn5
/a3a55strhas on52>123oLnce 552"t"th rqref13" h>135>ss="line" namtioL124">7=28






7a125829" cla12ef">neg
5a>73)5 <7555135>ss="line" namtioL124">7===de=4FAU7>rq
/a> *
a h,
a href="+a7k"rti7528929" cla12ef">EFAU4T
/3>4d////////n "sref">c on52ef"lc call w">nenev2r2>1t+cn, " ch rqref13" h>135>ss="line" namtioL124">7=98
/a4
sp7MPhref="+code=__hclass="S7Psar"75ully den5
/auled>from its/ru////////n tee "sref">cd2"sre t" c_drop 2oatn>123oLnceth rqref13" h>135>ss="line" namtioL124">7ao>>128
p 7ref">rq
/a> *
a h,
a href7"+ask76p. Its/a ass="lightass=" wakst hde=cn Tee te c_55strs areh rqref13" h>135>ss="line" namtioL124">7aRKERd/col7
p href">rq
/a> *
a h,
a 7ref="76rchsnand updel/ all handlerd////////n "t">neheld,"ofr5rwis#Lprev1aauldabe "sref">cd2on " ofr5r cpu, dieh rqref13" h>135>ss="line" namtioL124">7a=>rtsk_ne7r126329" cla12hreuoL164""7ine" 76 class="sref">cn5
/a3a55sok atnprev-/a3awc_ps, " cafr5n fr52>123oLnce wauldh rqref13" h>135>ss="line" namtioL124">7af==





7>tar=a>struct>
a hre
a hr7f="+a76129429" cla12 &>15#L142"tik_////////n be droppcd2"wiceth rqref13" h>135>ss="line" namtioL124">7a28






7luE_REL_PINNEtruct>u6ck_a7sa> 476a55135>ss="line" namtioL124">7at>
trace_7suE_REL_PINNEtruct>u6ck_a7sa> 476some wor", weaneers4o"make s////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 7"t>
id4ssr7 126729" cla12 &>15#L142"7ik__>76twc_pcorenad/cor> namtioL12>prev_wc_pstrL42" id5">>12prev_wc_ps"+asss="sref">cn5
/a3aprev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswokc_pstrL42" id5">>12wc_ps"+asq13oL1>1322cpu if (
a hstruct>
a 7"40L191" c7hre3=deltaREL_PINNEtruct>7eltaa767onlk__>tar=a>struct>onlk_k_vcime="sre_switch1TASK_RUNNINGd/vcime="sre_switch"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 7(
a h>5 tar=a>struct7
a hr76line"/href="+code=__hitel/a finish=arch1switch1TASK_RUNNINGd/finish=arch1switch"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 7(98
/a4
sp7sref">cn5
/a3a55rq
/a>perf_ev2"t="sre_secstainey4">>1 claswokperf_ev2"t="sre_secstain"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,ic_key4">>1wake_"f">2"twake_ref">d/co tf">2"ta5
wrq13oL1>1322cpu if (
a hstruct>
a 755555e.ci=7rtsk_neasupdel/_ava_>tar=7>stru77>5 rq
/a>finish=ik_l1switch1TASK_RUNNINGd/finish=ik_l1switch"+ask"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 7s="
ao>>127
k__>tar=a>struct>
a hre
7 href77dd/core.ci=>rtsk_neask__>tarfinish=arch1post=ik_l1switch1TASK_RUNNINGd/finish=arch1post=ik_l1switch"+askrq13oL1>1322cpu if (
a hstruct>
a 7s=>rtsk_ne7" c5ode=cn127329" cla12nt7> */477t,3="12hre>126ck_a>struct>
a hrclas="7
a1" id40L791" cla12 429" cla12class7"line773onlk__>tar=a>struct>onlk_k_fire_kecstain_prehrefsn3t=rierc1TASK_RUNNINGd/fire_kecstain_prehrefsn3t=rierc"+askc_key4">>1wake_"f">2"twake_ref">d/co tf">2"ta5
wrq13oL1>1322cpu if (
a hstruct>
a 7528






7cn127529" cla12sptik__csd7pclas77/d/core.ci=>rf">sruptiblc href">mm,#L42" id5">>12mmclasr12ef">1258k_a>struct>
>tar=a>str71t>
trace_7
12 629" cla12L180">>140
73t4 <77ct>
_wakeupd/__>tar=a>struct>onlk_k_mmdrop,#L42" id5">>12mmdrop"+askc_key4">>1wake_mm,#L42" id5">>12mmclasrq13oL1>1322cpu if (
a hstruct>
a 75t>
id4ssr7
/a3a55
_wakeupd/f">sruptiblc href">unlikely1TASK_RUNNINGd/unlikely"+ask"commenc_cd/co,LCev_wc_pstrL42" id5">>12prev_wc_ps"+assss="sref">cn5
/a3a55>1255t7540L191" c7/static_key4">>1 twc_do_a7tivel777t>
_wakeupd/__>tar=a>55122ass="namtioL12> =>
a1" 7

a h>5 EFAU4T
/3>4d////////////////n Remove funcclas->1t+cnnprobe"inwc_ncesL"ssocic">d2wi 392hish rqref13" h>135>ss="line" namtioL124">7
28=





7MPhref="+code=__hclass="S7Psar"77ully den5
/auled>from its/ru////////////////n "sre " caput fr5m backuon12o32fre#L>istth rqref13" h>135>ss="line" namtioL124">7ao>>128
p 7ref">rq
/a> *
a h,
a href7"+ask78p. Its/a ass="lightass=" wakst hde=c////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 7s="
ao>>127
k__>tar=a>struct>
a hre
7 href78+ask"rtik_lnr_unL42er"sref">cn5
/a3akprobe_flush="sretrL42" id5">>12kprobe_flush="sre"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 7
a1" id40L791" cla128329" cla12t =>t7r=156782ask"rtik_lnr_unL42er"commenc_cd/co,Lut="sre_s
a h,,#L42" id5">>12Lut="sre_s
a h,"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 7
a1" id40L7"128429" cla12nt"> */4/sp7)48tar=a=13bL2>130ched/core.c#L137" id4e"7
50" c5ode7tivel/static_key4">>1 twc7activ784"las=13bL2>130ched/core.c#L137" id4e"7
t>
trace_7_wakeupstatic_key4">>1 tw7_do_w78hre3=13bL2>130ched/core.c#L137" id4e"7
t>
id4ssr7la128729" cla12f">EFAU4T
73>4 <786t>
_>
a hrefar"ref=de=EFAULT131e29" cla13/*5a> 4>50>406
7>481258k_a>struct>
>tar=a>str7d
a h>5 cn5
/a3a75EFAU4T
/3>4/*L"ssumesLrq="+as>str is heldan>
a +cod12uct>122ass="namtioL12> =>
a1" 7s28=





7d>inacase3ef"stcla/@p isn7ss="o78e3="kwc_pcorfar"ref=de=EFAUin=a>strL42" id5">>12in=a>sclassenadic_key4">>1wake_LCe_"sref">c1TASK_RUNNINGd/pre_"sref">c"+askr=a>struct>
a href">rq rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,prev1TASK_RUNNINGd/preva5
wr12ef">1258k_a>struct>
>tar=a>str7128d* inae7asncase3we must do a remo73 wak79>5 131hcpu if (
a href="+s5>t71="
ao>>127 all weaneers4o"do asnfli7/p
a 791t>
_wakeupd/f">sruptiblc href">prev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswokecstaASK_RtrL42" id5">>12wecstaASK_R>sta
/a3a55c1TASK_RUNNINGd/pre_"sref">c"+asr12ef">1258k_a>struct>
>tar=a>str71a1" id40L7cla/asnitill 
a hronlk_.57de=cn792ask"rtik_lnr_unL42er"commenc_cd/co,Lrev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswokecstaASK_RtrL42" id5">>12wecstaASK_R>sta
/a3a55c1TASK_RUNNINGd/pre_"sref">c"+ask"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 71a1" id40L7cnt" class="sref">cn5
/a3755>128schednamtioL12> =>
a1" 71t>
 twc_a7_remot3static_key4">>1 tw7_remo79sctl_13pow>134schednamtioL12> =>
a1" 71t>
ttwc_d7="129629" cla12f">EFAU4T
73a4 <79some wor", weaneers4o"make 13Lrq="+as>str is NOTeheld,"but1prehreflas is dis
a +cod12uct>122ass="namtioL12> =>
a1" 71d40L191" 75#L142" id43L112" clas &_7tar=a79"d/cowc_pcorfar"ref=de=EFAUin=a>strL42" id5">>12in=a>sclassenadic_key4">>1wake_Lost="sref">c1TASK_RUNNINGd/post="sref">c"+askr=a>struct>
a href">rq 1258k_a>struct>
>tar=a>str7140L191" c7ck
/a>(struct>"reo hre3
37it" c79 hre3q13="k>131hcpu if (
a href="+s5>t71
a h>5 
_wakeupd/f">sruptiblc href"> >struct>
wake_ref">sta
/a3a55c1TASK_RUNNINGd/post="sref">c"+as) q13="k>131hcpu if (
a href="+s5>t7c_lclass="7 id43L112" clas &
3>5 >1PF_WQ_WORKERd/co t"q13="k>132ass="}namtioL12> =>
a1"8ao>>128
p 8ref">rq
/a> *
a h,
a href8"+ask80la13113pow>134schednamtioL12> =>
a1" 8s="
ao>>128
ttwc_do_wakeupstatic_key8">>1 80+ask"rtik_lnr_unL42erruptiblc href"> "+ask"rtik_l13oLsav>1TASK_RUNNINGd/ "+ask"rtik_l13oLsav>"+ask"rtik_lwake_list_>taa>struct>
wake_ref">sta
/a3a55
a hre
a hr>stra5
watic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 8i=>rtsk_ne8skeock
/a>(struct>"reo hr83
31 802ask"rtik_lnr_unL42erf">sruptiblc href"> >struct>
wake_ref">sta
/a3a55wake_ref">d/co turra5
wruct>
a hreos="13b12kecstaASK_RtrL42" id5">>12wecstaASK_R>sta
/a3a55c1TASK_RUNNINGd/post="sref">c"+as)13pow>134schednamtioL12> =>
a1" 8i3>rtsk_ne8snt" class="sref">cn5
/a3815#L1803ask"rtik_lnr_unL42er_unL42erruptiblc href"> >struct>
wake_ref">sta
/a3a55wake_ref">d/co turra5
wruct>
a hreos="13b12kecstaASK_RtrL42" id5">>12wecstaASK_R>sta
/a3a55c1TASK_RUNNINGd/post="sref">c"+assruptiblc href"> >struct>
wake_ref">stave13pow>134schednamtioL12> =>
a1" 8i4>rtsk_ne8sremot3static_key4">>1 tw8trad_804"las &_>tar=__>tar=aruptiblc href"> "+ask"rt=a>str13oLr.st =>1TASK_RUNNINGd/ "+ask"rt=a>str13oLr.st =>"+ask"rtik_lwake_list_>taa>struct>
wake_ref">sta
/a3a55
a hre
a hr>stra5
watic_key4">>1sne"s_key4">>1PF_WQ_WORKERd/co t"ve13pow>134schednamtioL12> =>
a1" 8i5>rtsk_ne8s"129629" cla12f">EFAU4T
8a4 130ched/core.c#L137" id4e"8128
/a4
sp8keock
/a>(struct>"reo hre8t" cl806"las &_>tar=__>tar=aruptiblc href"> >struct>
wake_ref">sta
/a3a55c1TASK_RUNNINGd/post="sref">c"+as = 0e13pow>134schednamtioL12> =>
a1" 8i78
/a4
sp8kk
/a>(struct>"reo hre3
38
3a49807t>
_wakeupd/"12f">>128schednamtioL12> =>
a1" 8s88
/a4
sp8k129929" cla12/sched/core8c#L1380 id39=13bL2>130ched/core.c#L137" id4e"8s98
/a4
sp8kid43L112" clas &
3>5 130ched/core.c#L137" id4e"8struct>
sc8>
_ twc_pcorena_>tar=a>st8uct>s81p. It=r +c13bL2>130ched/core.c#L137" id4e"8s="
ao>>128="131229" cla13
a hreask"8class81itel/12t =>128ck_a>ore.c#L134" id4R 
8o=>rtsk_ne85#L142" id43L112" clas &_8tar=a81t,3="wc_pcorfar"ref=de=EFAUin=a>strL42" id5">>12in=a>sclassenadic_key4">>1wake_LCe_"sref">c1TASK_RUNNINGd/pre_"sref">c"+askr=a>struct>
a href">rq rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,p1TASK_RUNNINGd/p"+as)13pow>134schednamtioL12> =>
a1" 8o3>rtsk_ne8llist_n39"_>tar=a>struct>8list_813onlkq13="k>131hcpu if (
a href="+s5>t8o4>rtsk_ne8clasL191"lock
/a>(struct>8 clas814"las=13bL2>130ched/core.c#L137" id4e"8o28
/a4
sp8
131629" cla13       
a h8ef="+81hre3=13bL2>130ched/core.c#L137" id4e"8o28
/a4
sp8n_217" href">rq
/a> *kaw_8pin_281"d/cowc_pcorfar"ref=de=EFAUin=a>strL42" id5">>12in=a>sclassenadic_key4">>1wake_Lost="sref">c1TASK_RUNNINGd/post="sref">c"+askr=a>struct>
a href">rq 1258k_a>struct>
>tar=a>str8o78
/a4
sp8a131829" cla13uct>
a hrea8k"rt>81 hre3q13="k>131hcpu if (
a href="+s5>t8o88
/a4
sp8llist_>tar=a>struct>llist8as )s81 id39=13bL2>130ched/core.c#L137" id4e"8o98
/a4
sp8
a href">rq
/a> *
a h,&
385 130ched/core.c#L137" id4e"8r=a>struct8
llist_>tar=a>struct>llis8las &82p. It=rde=r12t =>128ck_a>ore.c#L134" id4R 
8rL83" 4las8
 twc_do_activel/static_k8y4">>82itel/12t =>128ck_a>ore.c#L134" id4R 
8r=>rtsk_ne8" c5ode=cn132329" cla13uc8>
a h82 class="sref">cn5
/a3a55134ass="line" namtioL124">8re.c#L139"8"13e429" cla13class="mp_p8ocess82129429" cla12 &>15#L142"tik_*rssref">c_tail - fir"lcn"t" c_callth rqref13" h>135>ss="line" namtioL124">8rt>
__trad8n_unl17" href">rq
/a> *ka8_spin82a55cn"we j" c_owitched away fromth rqref13" h>135>ss="line" namtioL124">8r28
/a4
sp8la13e629" cla13ef">neg
5a8 4 5282some wor", weaneers4o"make /*>
a +cod12uct>122ass="namtioL12> =>
a1" 8r28
/a4
sp8 13e729" cla13est poll
a 8#L12982twc_p=a>struct>tfaslasma13kagc1TASK_RUNNINGd/asma13kagcclassenadic_key4">>1wake_ssref">c_tailtrL42" id5">>12wecst">c_tail"+askr=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,prev1TASK_RUNNINGd/preva5
wr12ef">1258k_a>struct>
>tar=a>str8r78
/a4
sp8ipi_>tar=a>struct>sct>
ul8r_ipi827onlk__>tar=a>struct>onlk_k___re2ecsec1TASK_RUNNINGd/__re2ecsec"+ask"commenc_cd/co,a>struct>
wake_ref">sta
/a3a55
a hre
a hr>stra5
wr12ef">1258k_a>struct>
>tar=a>str8r88
/a4
sp8="13e929" cla13uct>
a hre8sk"rt82a hre"12f">>1296k_a>struct>
el/sched/c8r98
/a4
sp8st_empty href">rq
/a> *ll8st_em82r__trad_rq_21r=a>struct>
a href">rq cn5
/a3a2his cla13b">neg
4a> 32his cl"+askve13pow>134schednamtioL12> =>
a1" 86" it" cla8s="sref">cn5
/a3a55134schednamtioL12> =>
a1" 86=a>struct8"133229" cla13oL150">>55084
53<83dd/core.ci=>rtsk_neask__>tarfinish="sre_switch1TASK_RUNNINGd/finish="sre_switch"+ask"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 86=>rtsk_ne8>>5ode=cnt" class="sref">8n5
/a83t,3="12hre>126ck_a>struct>
a hrclas="8ef==





8
* Not all ren5
/aule IPI8handl833onlk__>tar=a>55122ass="namtioL12> =>
a1" 8et>
__trad8
* tradilionally all/t/3i8 wor"83a55d2by12o3
a +cod12uct>122ass="namtioL12> =>
a1" 8e28
/a4
sp8
* path. Now efat weaactu8lly d83some wor", weaneers4o"make /////////* "sre_switch?
a +cod12uct>122ass="namtioL12> =>
a1" 8e28
/a4
sp8
* weado"call t/3m.5ode=c8t" cl83s="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1" 8128






8
*5ode=cnt" class="sref">8n5
/a837onlk__>tar=a>struct>onlk_k_post="sref">c1TASK_RUNNINGd/post="sref">c"+assruptiblc href"> >struct>
wake_ref">stave13pow>134schednamtioL12> =>
a1" 8188
/a4
sp8
* Some archsnalkeadyado"8all t83 id3913bsc>130hcpu #i.cor
ef="+ask"rt8698
/a4
sp8
* properly.5ode=cnt" cla8s="sr83ully >
a hrefar"ref=de=EFAU__ARCH_WANT_UNLOCKED_CTXSW1TASK_RUNNINGd/__ARCH_WANT_UNLOCKED_CTXSWid3913bsc>130hcpu #i.cor
ef="+ask"rt8128d





8
*5ode=cnt" class="sref">8n5
/a840onlk__>tar=a>55 =>
a1" 8128






8
* Arguably weashould vis8t all84dd/core.ci=>rtsk_neask__>tarprehrefsen134schednamtioL12> =>
a1" 81=>rtsk_ne8
* however a fair share o8 IPIs84 clas=rde=r12t =>128ck_a>ore.c#L134" id4R 
81f==





8
* somewfat pessimize3ef"8simpl843onlk__>tar=af">sruptiblc href">"f">2"twake_ref">d/co tf">2"ta5
wruct>
a hreos="13b12set_child_tila12b729" cla12bset_child_tila5
wr12ef">1258k_a>struct>
>tar=a>str8128






8
*+5ode=cnt" class="sref"8cn5
/844"las &_>tar=__>tar=aruptiblc href">Lut=userwake_ref">d/co put=user"+assruptiblc href">"sre_pid_vnrwake_ref">d/co "sre_pid_vnr"+assruptiblc href">"f">2"twake_ref">d/co tf">2"ta5
wr,ic_key4">>1wake_"f">2"twake_ref">d/co tf">2"ta5
wruct>
a hreos="13b12set_child_tila12b729" cla12bset_child_tila5
wre13pow>134schednamtioL12> =>
a1" 8128
/a4
sp8er href">rq
/a> *irq_ente8d/cor84some =13bL2>130ched/core.c#L137" id4e"815spa8twc_pcorena_>tar=a>struct8sct>
84id27L13est>132sched/cor
>tar=a>struct8128






8a134829" cla13/sched/core8c# to8455122ass="namtioL12> =>
a1" 8188
/a4
sp8>>5ode=cnt" class="sref">8n5
/a8428929" cla12ef">EFAU4T
/3>4de=aassext_switch - owitch ck12o32new MM " cafr52new
a +cod12uct>122ass="namtioL12> =>
a1" 8198
/a4
sp8
* Cd4ssha hsomeone>ki7"/8 us f84ully den5
/auled>from its/runq9h">cn's registerewc_psth rqref13" h>135>ss="line" namtioL124">8128d





8
*+5ode=cnt" class="sref"8cn5
/85p. Its/a ass="lightass=" wake>
a +cod12uct>122ass="namtioL12> =>
a1" 8ORKERd/col8st_empty href">rq
/a> *ll8st_em85+ask"wc_pcor"commenc_cd/co,in=a>strL42" id5">>12in=a>sclassenad12t =>128ck_a>ore.c#L134" id4R 
8O=>rtsk_ne8
/a3a55>1wake_"assext_switchwake_ref">d/co tassext_switch"+askr=a>struct>
a href">rq rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,prev1TASK_RUNNINGd/preva5
w,12t =>128ck_a>ore.c#L134" id4R 
8=f==





8tatic_key4">>1 twc_do_wak8upd/c853ask"rtik_lnr_unL42er=a>struct>
a href">rq
/a> *
a h,,#L42" id5">>128
/a5
c_c
 class="commenc_cd/co,nex,,#L42" id5">>12nex,ss="r12ef">1258k_a>struct>
>tar=a>str8O28






8="125529" cla12class="mp_8roces85a55>1296k_a>struct>
el/sched/c8ct>
trace_8ct>
_wakeupstatic_key4">>8 race85ct>
_wakeupd/r=a>struct>
a href">rqmm *
a h,,#L42" id5">>12mm *
a h,class="commenc_cd/co,mm,#L42" id5">>12mmclas,s="commenc_cd/co,oldmm,#L42" id5">>12oldmmo t"q13="k>132ass="}namtioL12> =>
a1"8O5spa8rsemptlcurrck
/a>(struct>8id4ss85id27L13est>132sched/cor
>tar=a>struct8=28






8a125829" cla12ef">neg
5a>83)5 <857onlk__>tar=a>struct>onlk_k_prepar>="sre_switch1TASK_RUNNINGd/prepar>="sre_switch"+ask"commenc_cd/co,a>struct>
wake_ref">static_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wtic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 8===de=4FAU8>rq
/a> *
a h,
a href="+a8k"rti85 id3913bsc>130hcpu #i.cor
ef="+ask"rt8=98
/a4
sp8MPhref="+code=__hclass="S8Psar"85r__trad_rq_217" href">rq
/a>mm,#L42" id5">>12mmclass1" id40L191" cla1nex,,#L42" id5">>12nex,ss="ruct>
a hreos="13b12mm,#L42" id5">>12mmclasq13oL1>1322cpu if (
a hstruct>
a 8ao>>128
p 8ref">rq
/a> *
a h,
a href8"+ask86>5 rq
/a>oldmm,#L42" id5">>12oldmmo t"ss="sref">cn5
/a3aprev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswoacclve_mm,#L42" id5">>12acclve_mmclasq13oL1>1322cpu if (
a hstruct>
a 8aRKERd/col8
p href">rq
/a> *
a h,
a 8ref="86dd/core.ci=>rtr133829" cla13picock_/*
a +cod12uct>122ass="namtioL12> =>
a1" 8a=>rtsk_ne8r126329" cla12hreuoL164""8ine" 86 class="sref">cn5
/a3a55122ass="namtioL12> =>
a1" 8af==





8>tar=a>struct>
a hre
a hr8f="+a86129429" cla12 &>15#L142"tik_////////n #L1bt>
afr52pag9"9"a h1reload " cafr52owitch backe clinto
a +cod12uct>122ass="namtioL12> =>
a1" 8a28






8luE_REL_PINNEtruct>u6ck_a8sa> 486a55135>ss="line" namtioL124">8at>
trace_8suE_REL_PINNEtruct>u6ck_a8sa> 486some wor", weaneers4o"make s////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 8"t>
id4ssr8 126729" cla12 &>15#L142"8ik__>86twc_pcorenad/cor> namtioL12>arch1start_cassext_switchwake_ref">d/co arch1start_cassext_switch"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 8"40L191" c8hre3=deltaREL_PINNEtruct>8eltaa86hre3=12ef">1258k_a>struct>
>tar=a>str8(
a h>5 tar=a>struct8
a hr868t>
_wakeupd/f">s!
a hreos="13b12mm,#L42" id5">>12mmclas) q13="k>131hcpu if (
a href="+s5>t8(98
/a4
sp8sref">cn5
/a3a55rq
/a> *llinex,,#L42" id5">>12nex,ss="ruct>
a hreos="13b12acclve_mm,#L42" id5">>12acclve_mmclasss="sref">cn5
/a3aoldmm,#L42" id5">>12oldmmo t"q13="k>132ass="}namtioL12> =>
a1"855555e.ci=8rtsk_neasupdel/_ava_>tar=8>stru87>5 >12atomic_inc"+ask"rtik_lwake_list_>taoldmm,#L42" id5">>12oldmmo t"ruct>
a hreos="13b12mm_cau"twake_ref">d/co mm_cau"ta5
wrq13oL1>1322cpu if (
a hstruct>
a 8s="
ao>>128
k__>tar=a>struct>
a hre
8 href87+ask"rtik_lnr_unL42erruptiblc href">enter_lazy_tlbwake_ref">d/co enter_lazy_tlb"+ask"commenc_cd/co,oldmm,#L42" id5">>12oldmmo t"tic_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 8s=>rtsk_ne8" c5ode=cn127329" cla12nt8> */4872ask"rtik_lnr} r +c13bL2>130ched/core.c#L137" id4e"8
a1" id40L891" cla12 429" cla12class8"line873ask"rtik_lnr_unL42er
a hreos="13b12switch_mm,#L42" id5">>12switch_mm"+ask"commenc_cd/co,oldmm,#L42" id5">>12oldmmo t"tic_key4">>1wake_mm,#L42" id5">>12mmclas,sc_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 8s28






8cn127529" cla12sptik__csd8pclas87sctl_13pow>134schednamtioL12> =>
a1" 81t>
trace_8
12 629" cla12L180">>140
83t4 <87ct>
_wakeupd/f">s!
a hreos="13b12prev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswomm,#L42" id5">>12mmclas) q13="k>131hcpu if (
a href="+s5>t85t>
id4ssr8
/a3a55tar=__>tar=aruptiblc href">prev1TASK_RUNNINGd/preva5
w="+ask"rtik_l claswoacclve_mm,#L42" id5">>12acclve_mmclasss="sref">cn5
/a3aNULL8529" cla12NFIGNULL"+asq13oL1>1322cpu if (
a hstruct>
a 8540L191" c8/static_key4">>1 twc_do_a8tivel877t>
_wakeupd/__>tar=a>commenc_cd/co,a>struct>
wake_ref">sta
/a3a55>12prev_mm"+asss="sref">cn5
/a3aoldmm,#L42" id5">>12oldmmo t"q13="k>132ass="}namtioL12> =>
a1"85
a h>5 122ass="namtioL12> =>
a1" 8ao>>128
p 8ref">rq
/a> *
a h,
a href8"+ask88p. Its/a ass="lightass=" wakst hde=c* Since 2o32runre.c#L>str w">nebh1relecsed2by12o3 nexth rqref13" h>135>ss="line" namtioL124">8s="
ao>>128
k__>tar=a>struct>
a hre
8 href88rchsnand updel/ all handlerd////////n "sre (which is_ upinvalid >strcto op"but1in12o32caseh rqref13" h>135>ss="line" namtioL124">8s=>rtsk_ne891" cla128329" cla12t =>t8r=15688 class="sref">cn5
/a3a55cr it's sreobvious"spec=al-case), so weh rqref13" h>135>ss="line" namtioL124">8sa1" id40L8"128429" cla12nt"> */4/sp8)4815#L142"tik_////////n do "  early >strdep1relecseno3oL:h rqref13" h>135>ss="line" namtioL124">8s28






8tivel/static_key4">>1 twc8activ88a55
a +cod12uct>122ass="namtioL12> =>
a1" 8
t>
trace_8_wakeupstatic_key4">>1 tw8_do_w88hre3=#ifn hrefar"ref=de=EFAU__ARCH_WANT_UNLOCKED_CTXSW1TASK_RUNNINGd/__ARCH_WANT_UNLOCKED_CTXSWid3913bsc>130hcpu #i.cor
ef="+ask"rt8
t>
id4ssr8la128729" cla12f">EFAU4T
83>4 <88twc_pcorenad/cor> namtioL12>sk"rtrelecse,#L42" id5">>12sk"rtrelecse"+ask"rtik_lwake_list_>taa>struct>
wake_ref">sta
/a3a55
a hre
a hr>stra5
w.55>1wake__THIS_IP_1TASK_RUNNINGd/_THIS_IP_ss="rq13oL1>1322cpu if (
a hstruct>
a 8d40L191" c8a128829" cla12L206">>406
8>48128ck_a>ore.c#L134" id4R 
8d
a h>5 cn5
/a3a85130hcpu #i.cor
ef="+ask"rt8s28=





8d>inacase3ef"stcla/@p isn8ss="o88r__trad_rq_217r133829" cla13picock_/* Heco w#Lj" c_owitch fr52>1gisterewc_ps " cafr52otatr. n>
a +cod12uct>122ass="namtioL12> =>
a1" 8128d* inae8asncase3we must do a remo83 wak89>5 rq
/a>rcu_switchwake_ref">d/co rcu_switch"+ask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,sc_key4">>1wake_nex,,#L42" id5">>12nex,ss="rq13oL1>1322cpu if (
a hstruct>
a 81="
ao>>128 all weaneers4o"do asnfli8/p
a 89dd/core.ci=>rtsk_neask__>tarswitch_ck,#L42" id5">>12switch_to
aask"commenc_cd/co,LCev1TASK_RUNNINGd/preva5
w,sc_key4">>1wake_nex,,#L42" id5">>12nex,ss="tic_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 81a1" id40L8cla/asnitill 
a hronlk_.58de=cn89t,3="12hre>126ck_a>struct>
a hrclas="81a1" id40L8cnt" class="sref">cn5
/a3855tar=a>struct>onlk_k_barrierwake_ref">d/co barrier"+askve13pow>134schednamtioL12> =>
a1" 81t>
 twc_a8_remot3static_key4">>1 tw8_remo894__trad_rq_217r133829" cla13picock_/*
a +cod12uct>122ass="namtioL12> =>
a1" 81t>
ttwc_d8="129629" cla12f">EFAU4T
83a4 <89some wor", weaneers4o"make d////////n "his cl t" c_be evaluc">d2again1beSause prev1may have movedh rqref13" h>135>ss="line" namtioL124">81d40L191" 85#L142" id43L112" clas &_8tar=a89s="sref">cn5
/a3a55c(),92hus"fr52'rq'uon1its2otatrh rqref13" h>135>ss="line" namtioL124">8140L191" c8ck
/a>(struct>"reo hre3
38it" c8955nebh1invalidth rqref13" h>135>ss="line" namtioL124">81
a h>5 EFAU4T
/3>4d////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 8128=





8 id43L112" clas &
3>5 rq
/a>finish="sre_switch1TASK_RUNNINGd/finish="sre_switch"+ask"commenc_cd/co,2his cla13b">neg
4a> 32his cl"+askvtic_key4">>1wake_LCev1TASK_RUNNINGd/preva5
wrq13oL1>1322cpu if (
a hstruct>
a 9ao>>128
p 9ref">rq
/a> *
a h,
a href9"+ask90>5 130ched/core.c#L137" id4e"9s="
ao>>129
ttwc_do_wakeupstatic_key9">>1 90itel/12t =>128ck_a>ore.c#L134" id4R 
9i=>rtsk_ne9skeock
/a>(struct>"reo hr93
31 90 class="sref">cn5
/a3a55122ass="namtioL12> =>
a1" 9i3>rtsk_ne9snt" class="sref">cn5
/a3915#L190129429" cla12 &>15#L142"tik_*rnr_runncto,rnr_uninterruptia h1" canr_cassext_switches:h rqref13" h>135>ss="line" namtioL124">9i4>rtsk_ne9sremot3static_key4">>1 tw9trad_90a55135>ss="line" namtioL124">9i5>rtsk_ne9s"129629" cla12f">EFAU4T
9a4 cr wc_pcstics: tf">2"t numbcr of1runn135>ss="line" namtioL124">9i6>rtsk_ne9s#L142" id43L112" clas &_9t" cl90s="sref">cn5
/a3a55cns, tf">2"t numbcr of1uninterruptia h-sleepcto 9h">cns, total"+rqref13" h>135>ss="line" namtioL124">9i7>rtsk_ne9sk
/a>(struct>"reo hre3
39
3a499055135>ss="line" namtioL124">9s88
/a4
sp9k129929" cla12/sched/core9c#L139028929" cla12ef">EFAU4T
/3>4de>
a +cod12uct>122ass="namtioL12> =>
a1" 9s98
/a4
sp9kid43L112" clas &
3>5 >12nr_runncto"+askenadr12ef">1258k_a>struct>
>tar=a>str9struct>
sc9>
_ twc_pcorena_>tar=a>st9uct>s91>5 131hcpu if (
a href="+s5>t9s="
ao>>129="131229" cla13
a hreask"9class91dd/core.ci=>runsign,5olongcore.c#L139" cfaitrL42" id5">>12iss="tic_key4">>1wake_sum,#L42" id5">>12sum"+asss=0e13pow>134schednamtioL12> =>
a1" 9o=>rtsk_ne95#L142" id43L112" clas &_9tar=a91t,3="12hre>126ck_a>struct>
a hrclas="9o3>rtsk_ne9llist_n39"_>tar=a>struct>9list_913onlk__>tar=a>struct>onlk_k_for_each_on=a>s_cpu1TASK_RUNNINGd/for_each_on=a>s_cpu"+ask"commenc_cd/co,itrL42" id5">>12iss="r12ef">1258k_a>struct>
>tar=a>str9s4>rtsk_ne9clasL191"lock
/a>(struct>9 clas914"las &_>tar=__>tar=aruptiblc href">sum,#L42" id5">>12sum"+ass+s="sref">cn5
/a3acpu cla13b">neg
4a> 3cpu cl"+ask"commenc_cd/co,itrL42" id5">>12iss="r
/a3a55>12nr_runncto"+ase13pow>134schednamtioL12> =>
a1" 9o5>rtsk_ne9
131629" cla13       
a h9ef="+91hre3=13bL2>130ched/core.c#L137" id4e"9o28
/a4
sp9n_217" href">rq
/a> *kaw_9pin_291twc_pcorenad/>1t+cnnruptiblc href">sum,#L42" id5">>12sum"+ase13pow>134schednamtioL12> =>
a1" 9o7>rtsk_ne9a131829" cla13uct>
a hrea9k"rt>91 hre3=13bL2>130ched/core.c#L137" id4e"9o88
/a4
sp9llist_>tar=a>struct>llist9as )s91 id3913bsc>130hcpu #i.cor
ef="+ask"rt9o98
/a4
sp9
a href">rq
/a> *
a h,&
395 >12nr_uninterruptia h"+askenadr12ef">1258k_a>struct>
>tar=a>str9r=a>struct9
llist_>tar=a>struct>llis9las &92>5 131hcpu if (
a href="+s5>t9rL83" 4las9
 twc_do_activel/static_k9y4">>92dd/core.ci=>runsign,5olongcore.c#L139" cfaitrL42" id5">>12iss="tic_key4">>1wake_sum,#L42" id5">>12sum"+asss=0e13pow>134schednamtioL12> =>
a1" 9r=>rtsk_ne9" c5ode=cn132329" cla13uc9>
a h92t,3="12hre>126ck_a>struct>
a hrclas="9re.c#L139"9"13e429" cla13class="mp_p9ocess923onlk__>tar=a>struct>onlk_k_for_each_possia h_cpu1TASK_RUNNINGd/for_each_possia h_cpu"+ask"commenc_cd/co,itrL42" id5">>12iss="r12ef">1258k_a>struct>
>tar=a>str9rt>
__trad9n_unl17" href">rq
/a> *ka9_spin924"las &_>tar=__>tar=aruptiblc href">sum,#L42" id5">>12sum"+ass+s="sref">cn5
/a3acpu cla13b">neg
4a> 3cpu cl"+ask"commenc_cd/co,itrL42" id5">>12iss="r
/a3a55>12nr_uninterruptia h"+ase13pow>134schednamtioL12> =>
a1" 9r5>rtsk_ne9la13e629" cla13ef">neg
5a9 4 5292hre3=13bL2>130ched/core.c#L137" id4e"9r28
/a4
sp9 13e729" cla13est poll
a 9#L12992twc_pcorenad/c="sref">cn5
/a3a55122ass="namtioL12> =>
a1" 9r78
/a4
sp9ipi_>tar=a>struct>sct>
ul9r_ipi92551ad fr52aaunters >strless, it mighc_be slighcly"+ +cod12uct>122ass="namtioL12> =>
a1" 9r88
/a4
sp9="13e929" cla13uct>
a hre9sk"rt9228929" cla12ef">EFAU4T
/3>4d////////n inactf"_pst Do n3t allow it to go_below zerk12oough:h rqref13" h>135>ss="line" namtioL124">9r98
/a4
sp9st_empty href">rq
/a> *ll9st_em92ully den5
/auled>from its/ru////////n>
a +cod12uct>122ass="namtioL12> =>
a1" 96" it" cla9s="sref">cn5
/a3a555 sruptiblc href">unlikely1TASK_RUNNINGd/unlikely"+ask(long)ruptiblc href">sum,#L42" id5">>12sum"+ass< 0)r12ef">1258k_a>struct>
>tar=a>str96=a>struct9"133229" cla13oL150">>55094
53<93+ask"rtik_lnr_unL42erruptiblc href">sum,#L42" id5">>12sum"+asss=0e13pow>134schednamtioL12> =>
a1" 96=>rtsk_ne9>>5ode=cnt" class="sref">9n5
/a93t,3="12hre>126ck_a>struct>
a hrclas="9ef==





9
* Not all ren5
/aule IPI9handl933onlk__>tar=a>1t+cnnruptiblc href">sum,#L42" id5">>12sum"+ase13pow>134schednamtioL12> =>
a1" 9et>
__trad9
* tradilionally all/t/3i9 wor"934"las=13bL2>130ched/core.c#L137" id4e"9e28
/a4
sp9
* path. Now efat weaactu9lly d93hre3=13bL2>130ched/core.c#L137" id4e"9e28
/a4
sp9
* weado"call t/3m.5ode=c9t" cl93s="srunsign,5olongclongcore.c#L139" cfanr_cassext_switches,#L42" id5">>12nr_cassext_switches"+askenadr12ef">1258k_a>struct>
>tar=a>str9128






9
*5ode=cnt" class="sref">9n5
/a93 hre3q13="k>131hcpu if (
a href="+s5>t9188
/a4
sp9
* Some archsnalkeadyado"9all t938t>
_wakeupd/fntruct>
a href">rqitrL42" id5">>12iss="e13pow>134schednamtioL12> =>
a1" 9e98
/a4
sp9
* properly.5ode=cnt" cla9s="sr939d/core.ci=>runsign,5olongclongcore.c#L139" cfasum,#L42" id5">>12sum"+asss=0e13pow>134schednamtioL12> =>
a1" 9128d





9
*5ode=cnt" class="sref">9n5
/a94la13113pow>134schednamtioL12> =>
a1" 9128






9
* Arguably weashould vis9t all94dd/core.ci=>rtsk_neask__>tarfor_each_possia h_cpu1TASK_RUNNINGd/for_each_possia h_cpu"+ask"commenc_cd/co,itrL42" id5">>12iss="r12ef">1258k_a>struct>
>tar=a>str91=>rtsk_ne9
* however a fair share o9 IPIs942ask"rtik_lnr_unL42er"commenc_cd/co,sum,#L42" id5">>12sum"+ass+s="sref">cn5
/a3acpu cla13b">neg
4a> 3cpu cl"+ask"commenc_cd/co,itrL42" id5">>12iss="r
/a3a55>12nr_switches"+ase13pow>134schednamtioL12> =>
a1" 91f==





9
* somewfat pessimize3ef"9simpl943onlk13pow>134schednamtioL12> =>
a1" 91t>
__trad9
*+5ode=cnt" class="sref"9cn5
/944"las &_>tar=>1t+cnnruptiblc href">sum,#L42" id5">>12sum"+ase13pow>134schednamtioL12> =>
a1" 9128
/a4
sp9er href">rq
/a> *irq_ente9d/cor94some =13bL2>130ched/core.c#L137" id4e"915spa9twc_pcorena_>tar=a>struct9sct>
94id27L13est>132sched/cor
>tar=a>struct9128






9a134829" cla13/sched/core9c# to9455>12nr_iowai,"+askenadr12ef">1258k_a>struct>
>tar=a>str9188
/a4
sp9>>5ode=cnt" class="sref">9n5
/a94a hre"12f">>1296k_a>struct>
el/sched/c9198
/a4
sp9
* Cd4ssha hsomeone>ki7"/9 us f949d/core.ci=>runsign,5olongcore.c#L139" cfaitrL42" id5">>12iss="tic_key4">>1wake_sum,#L42" id5">>12sum"+asss=0e13pow>134schednamtioL12> =>
a1" 9128d





9
*+5ode=cnt" class="sref"9cn5
/95la13113pow>134schednamtioL12> =>
a1" 9ORKERd/col9st_empty href">rq
/a> *ll9st_em95dd/core.ci=>rtsk_neask__>tarfor_each_possia h_cpu1TASK_RUNNINGd/for_each_possia h_cpu"+ask"commenc_cd/co,itrL42" id5">>12iss="r12ef">1258k_a>struct>
>tar=a>str9O=>rtsk_ne9
/a3a55>12sum"+ass+s="sref">cn5
/a3aatomic_>1ad,#L42" id5">>12atomic_>1ad"+ask"rtik_lwake_list_>tacpu cla13b">neg
4a> 3cpu cl"+ask"commenc_cd/co,itrL42" id5">>12iss="r
/a3a55>12nr_iowai,"+asrq13oL1>1322cpu if (
a hstruct>
a 9=f==





9tatic_key4">>1 twc_do_wak9upd/c953onlk13pow>134schednamtioL12> =>
a1" 9O28






9="125529" cla12class="mp_9roces954"las &_>tar=>1t+cnnruptiblc href">sum,#L42" id5">>12sum"+ase13pow>134schednamtioL12> =>
a1" 9ct>
trace_9ct>
_wakeupstatic_key4">>9 race95some =13bL2>130ched/core.c#L137" id4e"9O5spa9rsemptlcurrck
/a>(struct>9id4ss95id27L13est>132sched/cor
>tar=a>struct9=28






9a125829" cla12ef">neg
5a>93)5 <9555
a href">rqcpu1TASK_RUNNINGd/cpu"+asr12ef">1258k_a>struct>
>tar=a>str9O88
/a4
sp9>rq
/a> *
a h,
a href="+a9k"rti95a hre"12f">>1296k_a>struct>
el/sched/c9=98
/a4
sp9MPhref="+code=__hclass="S9Psar"95r__trad_rq_21r=a>struct>
a href">rq neg
4a> 32his"+asss=_lwake_list_>tacpu cla13b">neg
4a> 3cpu cl"+ask"commenc_cd/co,cpu1TASK_RUNNINGd/cpu"+asre13pow>134schednamtioL12> =>
a1" 9ao>>128
p 9ref">rq
/a> *
a h,
a href9"+ask96>5 atomic_>1ad,#L42" id5">>12atomic_>1ad"+ask"rtik_lwake_list_>ta2hisa13b">neg
4a> 32his"+as
/a3a55>12nr_iowai,"+asrq13oL1>1322cpu if (
a hstruct>
a 9aRKERd/col9
p href">rq
/a> *
a h,
a 9ref="96dd/co=13bL2>130ched/core.c#L137" id4e"9a=>rtsk_ne9r126329" cla12hreuoL164""9ine" 96t,3="12hre>126ck_a>struct>
a hrclas="9af==





9>tar=a>struct>
a hre
a hr9f="+a9612942unsign,5olongcore.c#L139" cfa2his cpu loada13b">neg
4a> 32his cpu load"+askenadr12ef">1258k_a>struct>
>tar=a>str9a28






9luE_REL_PINNEtruct>u6ck_a9sa> 496a55>1296k_a>struct>
el/sched/c9at>
trace_9suE_REL_PINNEtruct>u6ck_a9sa> 496ct>
_wakeupd/r=a>struct>
a href">rq neg
4a> 32his"+asss=_lwake_list_>ta2his cla13b">neg
4a> 32his cl"+askve13pow>134schednamtioL12> =>
a1" 9"t>
id4ssr9 126729" cla12 &>15#L142"9ik__>96twc_pcorenad/>1t+cnnruptiblc href">2hisa13b">neg
4a> 32his"+as
/a3a55neg
4a> 3cpu load"+as[0]e13pow>134schednamtioL12> =>
a1" 9"28






9hre3=deltaREL_PINNEtruct>9eltaa96 hre3=13bL2>130ched/core.c#L137" id4e"9(
a h>5 tar=a>struct9
a hr96 id3913bsc>130hcpu #i.cor
ef="+ask"rt9(98
/a4
sp9sref">cn5
/a3a55130ched/core.c#L137" id4e"955555e.ci=9rtsk_neasupdel/_ava_>tar=9>stru97p. Its/a ass="lightass=" wa/*
a +cod12uct>122ass="namtioL12> =>
a1" 9s="
ao>>129
k__>tar=a>struct>
a hre
9 href97rchsnand updel/ all handlerd* Global load-averag9"calculaflassh rqref13" h>135>ss="line" namtioL124">9s=>rtsk_ne9" c5ode=cn127329" cla12nt9> */497 class="sref">cn5
/a3a55122ass="namtioL12> =>
a1" 9sf==





991" cla12 429" cla12class9"line97129429" cla12 &>15#L142"tik_*rW9"9"ke a distribu">d2and2async approach ck1calculaflto 9he global load-avg
a +cod12uct>122ass="namtioL12> =>
a1" 9s28






9cn127529" cla12sptik__csd9pclas97a55135>ss="line" namtioL124">91t>
trace_9
12 629" cla12L180">>140
93t4 <97some wor", weaneers4o"make /*h rqref13" h>135>ss="line" namtioL124">91t>
id4ssr9
/a3a55cn5
/a3a55135>ss="line" namtioL124">9128






9/static_key4">>1 twc_do_a9tivel9755135>ss="line" namtioL124">91
a h>5 EFAU4T
/3>4d*h rqref13" h>135>ss="line" namtioL124">9198
/a4
sp9MPhref="+code=__hclass="S9Psar"97ully den5
/auled>from its/ru* Once every LOAD_FREQ:h rqref13" h>135>ss="line" namtioL124">9ao>>128
p 9ref">rq
/a> *
a h,
a href9"+ask98p. Its/a ass="lightass=" wak*h rqref13" h>135>ss="line" namtioL124">9s="
ao>>129
k__>tar=a>struct>
a hre
9 href98rchsnand updel/ all handlerd*ad/nr_acclvess=0eh rqref13" h>135>ss="line" namtioL124">9s=>rtsk_ne991" cla128329" cla12t =>t9r=15698 class="sref">cn5
/a3a55135>ss="line" namtioL124">9sf==





9"128429" cla12nt"> */4/sp9)4815#L142"tik_*renad/nr_acclves+= cpu of(cpu)
/a3anr_runncto + cpu of(cpu)
/a3anr_uninterruptia heh rqref13" h>135>ss="line" namtioL124">9s28






9tivel/static_key4">>1 twc9activ98a55135>ss="line" namtioL124">9st>
trace_9_wakeupstatic_key4">>1 tw9_do_w98some wor", weaneers4o"make /*_  "venrun[n]ss="venrun[0]/*_exp_n + nr_acclves* (1 -_exp_n)h rqref13" h>135>ss="line" namtioL124">9st>
id4ssr9la128729" cla12f">EFAU4T
93>4 <98s="sref">cn5
/a3a55135>ss="line" namtioL124">9s28






9a128829" cla12L206">>406
9>48135>ss="line" namtioL124">9a
a h>5 cn5
/a3a95EFAU4T
/3>47*h rqref13" h>135>ss="line" namtioL124">9s98
/a4
sp9d>inacase3ef"stcla/@p isn9ss="o98ully den5
/auled>from its/ru*  - for_each_possia h_cpu()"is_prohibiclvely expensive on mach"sts wi 3h rqref13" h>135>ss="line" namtioL124">9128d* inae9asncase3we must do a remo93 wak99p. Its/a ass="lightass=" wak*upd/rerious"numbcr of1apus, to3oLfore we necd2"o 9"ke a distribu">d2approachh rqref13" h>135>ss="line" namtioL124">91="
ao>>129 all weaneers4o"do asnfli9/p
a 99rchsnand updel/ all handlerd*ad/ ck1calculaflto nr_acclveth rqref13" h>135>ss="line" namtioL124">91a1" id40L9cla/asnitill 
a hronlk_.59de=cn99 class="sref">cn5
/a3a55122ass="namtioL12> =>
a1" 91a1" id40L9cnt" class="sref">cn5
/a395515#L142"tik_*renad/  \Sum_i x_i(t)ss=\Sum_i x_i(t)s- x_i(t_0) | x_i(t_0) :s=0
a +cod12uct>122ass="namtioL12> =>
a1" 9128






9_remot3static_key4">>1 tw9_remo99a55122ass="namtioL12> =>
a1" 91t>
trace_9="129629" cla12f">EFAU4T
93a4 <99some wor", weaneers4o"make d*
a +cod12uct>122ass="namtioL12> =>
a1" 91t>
id4ssr95#L142" id43L112" clas &_9tar=a99s="sref">cn5
/a3a55135>ss="line" namtioL124">9140L191" c9ck
/a>(struct>"reo hre3
39it" c9955135>ss="line" namtioL124">91
a h>5 EFAU4T
/3>4d*ad/ ck1obtain12o32s hr result. Se9"calc load_fold_acclve()th rqref13" h>135>ss="line" namtioL124">9198
/a4
sp9 id43L112" clas &
3>5 135>ss="line" namtioL124"20ao>>128
p20ao>>3L112" clas &
3>5 >20ao8929" cla12ef">EFAU4T
/3>4d*ad/ Furto3omioL,_in order ck1aenadisynchronizcto "ll pcr-apu delta2foldcto"+rqref13/pre>EFdoas &128
84/cf/920a3cb54e7cbbee3d95c51ca13bf543f5ee_3/20ao>>3" h>135>ss="line" namtioL124"20a1>>128
p20aall weaneers4o"do asnfl20aal>20archsnand updel/ all handlerd*ad/ across12o32mach"st, weL"ssume 10 ticks_is_suffici2"t time for everyh rqref13" h>135>ss="line" namtioL124"20a2>>128
p20ala/asnitill 
a hronlk_.20ala>20a class="sref">cn5
/a3a55135>ss="line" namtioL124"20a3>>128
p20ant" class="sref">cn5
/a20ant>20a129429" cla12 &>15#L142"tik_*h rqref13" h>135>ss="line" namtioL124"20a4>>128
p20aremot3static_key4">>1 t20are>20aa55135>ss="line" namtioL124"20a5>>128
p20a"129629" cla12f">EFAU4T20a"1>20asome wor", weaneers4o"make /*_  2again, becto lafe doesn't loosel2o32delta,Lj" c_wrecks_2o32s hp hth rqref13" h>135>ss="line" namtioL124"20a6>>128
p20a#L142" id43L112" clas &20a#L>20as="sref">cn5
/a3a55135>ss="line" namtioL124"20a7>>128
p20ak
/a>(struct>"reo hre3
20ak
>20a55135>ss="line" namtioL124"20a8>>128
p20a129929" cla12/sched/cor20a12>20a28929" cla12ef">EFAU4T
/3>4d*ad/ chis_would add2anoto3o cross-apu cachea12/ miss2and2atomic opcraflash rqref13" h>135>ss="line" namtioL124"20a9>>128
p20aid43L112" clas &
3>5 20aully den5
/auled>from its/ru*    ck12o32w"keup path. Inst>cn"we incre its2on1wh_psv3o cpu co329sre rash rqref13" h>135>ss="line" namtioL124"201o>>128
p20>
_ twc_pcorena_>tar=a>s20>
_>20>
lly den5
/auled>from its/ru*    when ic_wits2into uninterruptia h_wc_ps " cadecre its2on1wh_psv3o cpuh rqref13" h>135>ss="line" namtioL124"2011>>128
p20="131229" cla13
a hreask20="1>20>rchsnand updel/ all handlerd*ad/ did12o32w"keup._This_meass 9has2only12o3 sum"ofrnr_uninterruptia h_overh rqref13" h>135>ss="line" namtioL124"2012>>128
p205#L142" id43L112" clas &205#L>20> class="sref">cn5
/a3a55135>ss="line" namtioL124"2013>>128
p20llist_n39"_>tar=a>struct20lli>20>129429" cla12 &>15#L142"tik_*h rqref13" h>135>ss="line" namtioL124"2014>>128
p20clasL191"lock
/a>(struct20cla>20>a55135>ss="line" namtioL124"2015>>128
p20
131629" cla13       
a 20
13>20>some wor", weaneers4o"make /*>
a +cod12uct>122ass="namtioL12> =>
a1"20>6>>128
p20n_217" href">rq
/a> *kaw20n_2>20>id27L13est>132sched/cor
>tar=a>struc20>7>>128
p20a131829" cla13uct>
a hre20a13>20>55
a +cod12uct>122ass="namtioL12> =>
a1"20>8>>128
p20llist_>tar=a>struct>llis20lli>20>28929wc_pcor"commenc_cd/co,atomic_long_,,#L42" id5">>12atomic_long_,wc_pc55neg
4a> 3calc load_9sres"+ase13pow>134schednamtioL12> =>
a1"20>9>>128
p20
a href">rq
/a> *
a h,&
20
a >20>98929wc_pcorunsign,5olongcore.c#L139" cfacalc load_updc">a13b">neg
4a> 3calc load_updc">"+ase13pow>134schednamtioL12> =>
a1"202o>>128
p20
llist_>tar=a>struct>lli20
ll>20
l2942unsign,5olongcore.c#L139" cfa"venrun,#L42" id5">>12avenrun"+as[3]e13pow>134schednamtioL12> =>
a1"20
1>>128
p20
 twc_do_activel/static_20
 t>20
rchsnare.c#L139" cfaEXPORT_SYMBOL8529" cla12NFIGEXPORT_SYMBOL"+ask"commenc_cd/co,"venrun,#L42" id5">>12avenrun"+as);17r133829" cla13picock_/* should bh1removed/*>
a +cod12uct>122ass="namtioL12> =>
a1"2022>>128
p20" c5ode=cn132329" cla13u20" c>20
t,3="12hre>126ck_a>struct>
a hrclas=20
3>>128
p20"13e429" cla13class="mp_20"13>20
129429" cla12 &>15#L142"tik/*38" id3913"le>134ass="line" namtioL124"20
4>>128
p20n_unl17" href">rq
/a> *k20n_u>20
a55135>ss="line" namtioL124"2025>>128
p20la13e629" cla13ef">neg
520la1>20
some wor", weaneers4o"make /*_@loads:______pointer ck1dest2load arrayh rqref13" h>135>ss="line" namtioL124"2026>>128
p20 13e729" cla13est poll
a20 13>20
s="sref">cn5
/a3a55135>ss="line" namtioL124"20
7>>128
p20ipi_>tar=a>struct>sct>
u20ipi>20
551sult lefth rqref13" h>135>ss="line" namtioL124"20
8>>128
p20="13e929" cla13uct>
a hr20="1>20
28929" cla12ef">EFAU4T
/3>47*h rqref13" h>135>ss="line" namtioL124"20
9>>128
p20st_empty href">rq
/a> *l20st_>20
ully den5
/auled>from its/ru* Theselvaluhs2are estimc">s2ah_best, so no necd2for >strcto.h rqref13" h>135>ss="line" namtioL124"203o>>128
p20s="sref">cn5
/a3a55
a +cod12uct>122ass="namtioL12> =>
a1"2031>>128
p20"133229" cla13oL150">>5520"13>20srchsnenadic_key4">>1wake_get_avenrun,#L42" id5">>12get_avenrun"+askunsign,5olongcr=a>struct>tfaslloads,#L42" id5">>12loadsss="tiunsign,5olongcore.c#L139" cfaoffset,#L42" id5">>12offsetss="tifntruct>
a href">rqshift,#L42" id5">>12shift"+asr12ef">1258k_a>struct>
>tar=a>st20s2>>128
p20>>5ode=cnt" class="sref"20>>5>20s255>1296k_a>struct>
el/sched/20s3>>128
p20
* Not all ren5
/aule IP20
* >20s3onlk__>tar=a>struct>onlk_k_loads,#L42" id5">>12loadsss="[0]/=>sruptiblc href">"venrun,#L42" id5">>12avenrun"+as[0]/+core.c#L139" cfaoffset,#L42" id5">>12offsetss=")s<< uct>
a href">rqshift,#L42" id5">>12shift"+ase13pow>134schednamtioL12> =>
a1"2034>>128
p20
* tradilionally all/t/320
* >20s4onlk__>tar=a>struct>onlk_k_loads,#L42" id5">>12loadsss="[1]/=>sruptiblc href">"venrun,#L42" id5">>12avenrun"+as[1]/+core.c#L139" cfaoffset,#L42" id5">>12offsetss=")s<< uct>
a href">rqshift,#L42" id5">>12shift"+ase13pow>134schednamtioL12> =>
a1"2035>>128
p20
* path. Now efat weaact20
* >20s5onlk__>tar=a>struct>onlk_k_loads,#L42" id5">>12loadsss="[2]/=>sruptiblc href">"venrun,#L42" id5">>12avenrun"+as[2]/+core.c#L139" cfaoffset,#L42" id5">>12offsetss=")s<< uct>
a href">rqshift,#L42" id5">>12shift"+ase13pow>134schednamtioL12> =>
a1"2036>>128
p20
* weado"call t/3m.5ode=20
* >20s6hre3=13bL2>130ched/core.c#L137" id4e20s7>>128
p20
*5ode=cnt" class="sref"20
*5>20shre3=12ef">1258k_a>struct>
>tar=a>st20s8>>128
p20
* Some archsnalkeadyado20
* >20s28929wc_pcorlongcore.c#L139" cfacalc load_fold_acclvea13b">neg
4a> 3calc load_fold_acclve"+askr=a>struct>
a href">rq neg
4a> 32his cl"+asr12ef">1258k_a>struct>
>tar=a>st20s9>>128
p20
* properly.5ode=cnt" cl20
* >20s955>1296k_a>struct>
el/sched/204o>>128
p20
*5ode=cnt" class="sref"20
*5>20
*onlk__>tar=alongcore.c#L139" cfanr_acclvea13b">neg
4a> 3nr_acclvess="tiore.c#L139" cfadeltaa13b">neg
4a> 3delta"+asss=0e13pow>134schednamtioL12> =>
a1"20
1>>128
p20
* Arguably weashould vi20
* >20
itel/12t =>128ck_a>ore.c#L134" id4R 20
2>>128
p20
* however a fair share 20
* >20
2onlk__>tar=a>struct>onlk_k_nr_acclvea13b">neg
4a> 3nr_acclvess="ss=_lwake_list_>ta2his cla13b">neg
4a> 32his cl"+as
/a3a55>12nr_runncto"+ase13pow>134schednamtioL12> =>
a1"20
3>>128
p20
* somewfat pessimize3ef20
* >20
3onlk__>tar=a>struct>onlk_k_nr_acclvea13b">neg
4a> 3nr_acclvess="s+=>slong)=_lwake_list_>ta2his cla13b">neg
4a> 32his cl"+as
/a3a55>12nr_uninterruptia h"+ase13pow>134schednamtioL12> =>
a1"20
4>>128
p20
*+5ode=cnt" class="sref20
*+>20
sctl_13pow>134schednamtioL12> =>
a1"20
5>>128
p20er href">rq
/a> *irq_ent20er >20
ct>
_wakeupd/f">s>struct>onlk_k_nr_acclvea13b">neg
4a> 3nr_acclvess="s!s=_lwake_list_>ta2his cla13b">neg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_acclvess=") q13="k>131hcpu if (
a href="+s5>20
6>>128
p20twc_pcorena_>tar=a>struc20twc>20
6"las &_>tar=__>tar=aruptiblc href">deltaa13b">neg
4a> 3delta"+asss=>struct>onlk_k_nr_acclvea13b">neg
4a> 3nr_acclvess="s-=_lwake_list_>ta2his cla13b">neg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_acclvess="e13pow>134schednamtioL12> =>
a1"20
7>>128
p20a134829" cla13/sched/cor20a13>20
7t>
_wakeupd/__>tar=a>commenc_cd/co,2his cla13b">neg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_acclvess="ss=>struct>onlk_k_nr_acclvea13b">neg
4a> 3nr_acclvess="e13pow>134schednamtioL12> =>
a1"20
8>>128
p20>>5ode=cnt" class="sref"20>>5>20
8t>
_wakeupd/=13bL2>130ched/core.c#L137" id4e20
9>>128
p20
* Cd4ssha hsomeone>ki7"20
* >20
ully 13bL2>130ched/core.c#L137" id4e205o>>128
p20
*+5ode=cnt" class="sref20
*+>20
*t>
_wakeupd/>1t+cnnruptiblc href">deltaa13b">neg
4a> 3delta"+ase13pow>134schednamtioL12> =>
a1"2051>>128
p20st_empty href">rq
/a> *l20st_>20
dd/co=13bL2>130ched/core.c#L137" id4e20
2>>128
p20
/a3a5520
t,3="12hre>126ck_a>struct>
a hrclas=2053>>128
p20tatic_key4">>1 twc_do_wa20tat>20
129429" cla12 &>15#L142"tik/*
a +cod12uct>122ass="namtioL12> =>
a1"2054>>128
p20="125529" cla12class="mp20="1>20
a55135>ss="line" namtioL124"20
5>>128
p20ct>
_wakeupstatic_key4">20ct>>20
some wor", weaneers4o"make /*>
a +cod12uct>122ass="namtioL12> =>
a1"2056>>128
p20rsemptlcurrck
/a>(struct20rse>20
68929wc_pcorunsign,5olong12uct>122ass="namtioL12> =>
a1"2057>>128
p20a125829" cla12ef">neg
5a20a12>20
7chsnare.c#L139" cfacalc loada13b">neg
4a> 3calc load"+askunsign,5olongc>struct>onlk_k_load,#L42" id5">>12loadss="tiunsign,5olongcore.c#L139" cfaexp1TASK_RUNNINGd/expss="tiunsign,5olongcore.c#L139" cfaacclvea13b">neg
4a> 3acclvess=")12uct>122ass="namtioL12> =>
a1"2058>>128
p20>rq
/a> *
a h,
a href="+20>rq>20
a hre"12f">>1296k_a>struct>
el/sched/20
9>>128
p20MPhref="+code=__hclass="20MPh>20
r__trad_rq_217" href">rq
/a>load,#L42" id5">>12loadss=" *s=>struct>onlk_k_exp1TASK_RUNNINGd/expss="e13pow>134schednamtioL12> =>
a1"206o>>128
p20ref">rq
/a> *
a h,
a hre20ref>20re__trad_rq_217" href">rq
/a>load,#L42" id5">>12loadss=" ">cn5
/a3aatomic_>1cclvea13b">neg
4a> 3acclvess=">20rx29a13b">neg
4a> 3acclvess=">sXED_1 3acclvess=">20>sXED_1_list_>ta2his cla13b">INGd/expss="e13pow>134schhednamtioL12> =>
a1" 9"t>
id4ssr9_21empty hrefa> *
a h,
a 9ref="96dd/cefa> q_21tsk_neask__>tarfor_each_poss5">>12loadss=" ">cn5
/a3aatomic1UL>
a href">
4a> 3acclvess=">SHIFT 3acclvess=">20>SHIFT_list_>1hednamtioL12> =>
a1" 9"t>
id4ssr9_213a55deltaa13b">ne5">>12loadss=" ">cn5
/a3aato/729/729f">deltaa13b">ne>SHIFT 3acclvess=">20>SHIFT_lisednamtioL12> =>
a1" 9"t>
id4ssr9_21ic_key4">>>
a hre
a hr9f="+a961294>>>
aq_2130ched/core.c#L137" id4e20
2>>128
p20
/625529" clatruct>u6ck_a9sa> 496a55 =>
a1"20
5>>128
p20er6
_wakeupsttruct>u6ck_a9sa> 496ct>
sttruq_21far"ref=e=EFAU__ARCH_WANT_UCONFIG_qfor  3acclvess=">20CONFIG_qfor schednamtioL12> =>
a1"20
5>>128
p20er6mptlcurrck2 &>15#L142"9ik__>96twc_ck2 &q_21/a3a55122ass="namtioL12> =>
a1"2054>>128
p20="65829" cla1_PINNEtruct>9eltaa96 hrea1_PIq_21" cla13picock_c*_@shift:_____ Handle,qfor h rqrad-avg
a +cod12uctrqref>135>ss="line" namtioL124"203o>>128
p20s=6
/a> *
a htar=a>struct9
a hr96 id3 htarq_21f">EFAU4T
/3>47*h rqref13" h>135>ss="line" namtioL124"20
9>>128
p20st6ref="+codea55from its/ru* Theselvaluhs2re.c#L>strn12o32describ#L1pproachh rqrelgorithmto nromph rrad-avg
a +135>ss="line" namtioL124"20
9>>128
p20st7">rq
/a> *l/_ava_>tar=9>stru97p. I *l/_> *l/ed>from its/ru* Theselvaluhs2calculaflasshreliescpuhseh rqref13" nfromh rqreick slig1ialffectth rq135>ss="line" namtioL124"20
9>>128
p20st7empty hrefruct>
a hre
9 href97rchsefruc> *ll/ all handlerd*ad/ did12o32w"qfor >135>ss="line" namtioL124"203o>>128
p20s=73a55 */497 clar1329> *l>cn5
/a3a55122ass="namtioL12> =>
a1" 91a1" id40L9 *lic_key4">>" cla12class9"line971294>>" c> *l &>15#L142"tik_*renad/  \Sum_iad abasongideag1iao nto a gle=0 when we "+rqre actfmulafeh ridle-"+rqreuph>135>ss="line" namtioL124"20a9>>128
p20ai725529" cla12sptik__csd9pclas97a55 *l9" cla13/sched/*_a1ss="0/*_e/+b"+asnqfor hre itssuerewcanint"ke pe.cludedd2anoroseluon1ithes, otatrhdcto"+rqr135>ss="line" namtioL124"20a9>>128
p20ai7
_wakeupst2L180">>140
93t4 <97somest2L1> *laneers4o"make /*_@loads:______ out2-- ters >strlafeh rre it>135>ss="line" namtioL124"203o>>128
p20s=7mptlcurrck2 729" cla129ck_le97s="sck2 7> *l/a3a55135>ss="line" namtioL124"20a7>>128
p20ak75829" cla1>>1 twc_do_a9tivel9755>1> *l" cla13picock_c*_@shift:_____ Ol-casely terlit rqriao nruinssuereao"+r12ucfu"vercr-apc_pcstmh>135>ss="line" namtioL124">8s28






8 *l
/a> *
a h12oL158" cla9s="li972892 h12o> *lf">EFAU4T
/3>47*h rqref13" h>135>ss="line" namtioL124"20
9>>128
p20st7ref="+code=__hclass="S9Psar"97ullyde=__> *lled>from its/ru*  - for_each_possWout2-- go3qfor hidle durl load-awindow,int"ke pneg itsouref13" h135>ss="line" namtioL124"20
9>>128
p20st8">rq
/a> *
a h,
a href9"+ask98p. I *
a > *
acn5
/a3a55135>ss="line" namtioL124"203o>>128
p20s=8empty hrefruct>
a hre
9 href98rchsefruc> *
l/ all handlerd*ad/ did12o32w135>ss="line" namtioL124"203o>>128
p20s=83a55t9r=15698 clar1" c> *
>cn5
/a3a55ss="line" namtioL124"203o>>128
p20s=8ic_key4">>2nt"> */4/sp9)48>2nt> *
 &>15#L142"tik_*renad/  \Sum_i x_ out2ad-awindow true s39;rq&#separveth ro a t_swiew3qfor hcalc>135>ss="line" namtioL124"203o>>128
p20s=825529" clakey4">>1 twc9activ98a55 *
9" cla13/sched/*h rqref13" h>135>ss="line" namtioL124">9st>
trace_9 *

_wakeupst_key4">>1 tw9_do_w98somest_ke> *
aneers4o"make /*_  2again, becto ad aofrnr_rickg1iaoh+cod12ucsult lei pe.dexr liph rqrters vs writt>135>ss="line" namtioL124"203o>>128
p20s=8mptlcurrck12f">EFAU4T
93>4 <98s="sck12f> *
/a3a55135>ss="line" namtioL124"20a7>>128
p20ak85829" cla12L206">>406
9>48 *
" cla13picock_c*____c338simply 9"""""0scommenc_cd/c5scommenc_cd/c10scommenc_cd/15>135>ss="line" namtioL124">9s=>rtsk_ne9 *

/a> *
a hef">cn5
/a3a95 *
f">EFAU4T
/3>4d*ad/ chis_would addddddd+10 d addddddd+10 d addddddd+10 d addddddd+10135>ss="line" namtioL124">9s=>rtsk_ne9 *
ref="+codestcla/@p isn9ss="o98ullydestc> *
led>from its/ru*    ck12o32w"keuppppp|-|-----------|-|-----------|-|-----------|-|135>ss="line" namtioL124">9s=>rtsk_ne9 *9">rq
/a> *st do a remo93 wak99p. I *st > *sted>from its/ru*    ck12o32w"keupr:0 0 1commenc_cd/1 0 d addddddd0 1commenc_cd/1 0135>ss="line" namtioL124">9s=>rtsk_ne9 *9empty href4o"do asnfli9/p
a 99rchsef4o"> *sl/ all handlerd*ad/ did12o32w"keuw:0 1c1 d addddddd0 0commenc_cd/1 1 d addddddd0 0135>ss="line" namtioL124">9s=>rtsk_ne9 *93a55 *s>cn5
/a3a55122ass="namtioL12> =>
a1" 91a1" id40L9 *9ic_key4">>ref">cn5
/a3955>ref> *s &>15#L142"tik_*renad/  \Sum_i x_r52NOensurf13"eotatrllnto a gle=o a idle hes"achh f13below:anotindow whi h135>ss="line" namtioL124"20
9>>128
p20st925529" cla_key4">>1 tw9_remo99a55 *s9" cla13/sched/*____This_places_ qref1obal load-aiew3ont>135>ss="line" namtioL124"203o>>128
p20s=9
_wakeupst12f">EFAU4T
93a4 <99somest12f> *saneers4o"make d*
a +cod12uct>122ass="namtioL12> =>
a1" 91t>
id4ssr9 *smptlcurrck112" clas &_9tar=a99s="sck112> *s/a3a55
id4ssr9 *s5829" cla1>"reo hre3
39it" c9955"r> *s" cla13picock_c*____c338simply 9"kes"achh f13" sfr52aauneffectve on od12souref13" hest2loof1reaknow>135>ss="line" namtioL124"20a9>>128
p20ai9
/a> *
a h2/sched/core9c#L13992892 h2/s> *sf">EFAU4T
/3>4d*ad/ chis_would adbusyrre it>135>ss="line" namtioL124"203o>>128
p20s=9ref="+codeas &
3>5 135>ss="line" namtioL124"20ao>>128
p20a1>>3L112" c1as &
3>5 >20ao89291 cla11ef">EFAU4T
/3>4d*ad/ Furto3omioL,_r52NO timolvth rq"pushl load-awindowh rqward, . n>
aq&#skip total"e135>ss="line" namtioL124"20ao>>128
p20a1>13L112" c1ao"do asnfli9/p
a 99rchse1nd up1el/ all handlerd*ad/ across12o32maf13" h,h rqrad2NO_cto(effectve on  hl load-aidle-"+rqre rqrad2NO_ctowhih>135>ss="line" namtioL124">91="
ao>>129p1e23L112" c1aa hronlk_.59de=cn99 clar1="sre1">cn5
/a3a55ss="line" namtioL124"20ao>>128
p20a1>33L112" c1aef">cn5
/a39551" cla12 &>15#L142"tik_*rnr_runncto,rn ddh cd2"l loarrayal3" h>rea_ctod2"l lobee3beloNOr hidle  rqrmulti" h135>ss="line" namtioL124"20
9>>128
p20s1emot3stati1_key4">>1 t20are>20aa55135>ss="line" namtioL124"203o>>128
p20s1129629" cl112f">EFAU4T20a"1>20asome 1or", 1eaneers4o"make /*_  2again, be135>ss="line" namtioL124"203o>>128
p20s1169629" cl1112" clas &_9tar=a99s="sc1f">cn1
/a3a55cns, tf">Wout2makl load-aILB scal10 ticoved/*>tryoarrpullnad2NOeloa13"ell>135>ss="line" namtioL124"203o>>128
p20s1179629" cl11"reo hre3
39it" c9955122ass="namtioL12> =>
a1"2056>>128
p20r129929" cla12/sched/cor20a12>20a289291 cla110commenc_cd/co,atomic_long_,,#L42" id5">>12atomic_long_,wc_pc55neidle 3calc load_acclvess="ss=idle.c#L139ednamtioL12> =>
a1" 9"t>
id4ssr9_1d43L112" c1as &
3>5 20aully 1en5
/10nsign,5olongef">rqcpu1TASK_RUNNIvess="ss=idx 3calc load_acclvess="ss=idx_lisednamtioL12> =>
a1" 9"t>
id4ssr9_1_ twc_pcor1na_>tar=a>s20>
_>20>
lly 1en5
/114schednamtioL12> =>
a1" 9ORKERd/col9/1113L112" c113
a hreask20="1>20>rchsn1nd up1el/ alnc_cd/co,atomic_long_,in20="1>calc load_accin20="3/729ef">rqcpu1TASK_RUNNIvess="ss=writt=idx 3calc load_acclvess="ss=writt=idxolong58k_a>struct>
>tar=a>str9a28






9p1e23L112" c1112" clas &205#L>20> clas1="sre11296k_a>struct>
el/sched/20s3>>128
p20
1ist_n39"_>1ar=a>struct20lli>20>129421" cla1a>struct>onlk_ef">rqitrL42" id5">>dx 3calc load_accidxolont_>tacpu cla13b">nevess="ss=idx 3calc load_acclvess="ss=idx_lisednamtioL12> =>
a1" 9"t>
id4ssr9_1_mot3stati1
/a>(struct20cla>20>a55 =>
a1"20
5>>128
p20e131629" cla13       
a 20
13>20>some 1or", 11>struct>onlk_k122ass="namtioL12> =>
a1"2054>>128
p20=1217" href"1rq
/a> *kaw20n_2>20>id27L13est>11/a3a55cns, tfffffffff*d_fold_acclafeh _nohz(),onlkticobsseveoad-aiew3e.dex0 ticklso122ass="namtioL12> =>
a1"2054>>128
p20=1279629" cl13uct>
a hre20a13>20>5513reime>135>ss="line" namtioL124"203o>>128
p20s1ist_>tar=a1struct>llis20lli>20>289291c_pco11f">EFAU4T
/3>4d////////n inactf"_pst >122ass="namtioL12> =>
a1"2056>>128
p20r1 href">rq
1a> *
a h,&
20
a >20>989291c_pco117" href">rq
/a>load,#L42" idsmp_rmb 3calc load_accsmp_rmbolonghednamtioL12> =>
a1" 9"t>
id4ssr9_1list_>tar=1>struct>lli20
ll>20
l29421nsign124schednamtioL12> =>
a1" 9ORKERd/col9/1twc_do_act1vel/static_20
 t>20
rchsn1re.c#1runsign,5olongk122ass="namtioL12> =>
a1"2054>>128
p20=1c5ode=cn131329" cla13u20" c>20
t,3="12hre>12>cn5
/a3a55>128
p20=1cst_n39"_>13class="mp_20"13>20
129421" cla12 &>15#L142"tik/*38" id3913"fffffffff*da xtaidle-"+rqr>135>ss="line" namtioL124"203o>>128
p20s1unl17" hre1">rq
/a> *k20n_u>20
a55122ass="namtioL12> =>
a1"2056>>128
p20r113e629" cl113ef">neg
520la1>20
some 1or", 12f">s>struct>onlk_!o,2his cla13b">nime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">nec">a13b">neg
4a> 3calc load_updc">"+ase13pow>134sch_a>struct>
>tar=a>str96=a>struct9 1217" href"13est poll
a20 13>20
s="sr1f">cn12__>tar=aruptiblc href">deltaa13b">ne>dx 3calc load_accidxolon++ednamtioL12> =>
a1" 9"t>
id4ssr9_1l79629" cl1ruct>sct>
u20ipi>20
55struct>
>tar=a>st20s8>>128
p20
113e929" cl113uct>
a hr20="1>20
289291 cla112=13bL2>130chelc href">deltaa13b">ne>dx 3calc load_accidxolontist_> 1ednamtioL12> =>
a1" 9"t>
id4ssr9_1lhref">rq
1">rq
/a> *l20st_>20
ully 1en5
/1uled>fd/core.c#L137" id4e20
2>>128
p20
1"sref">cn51/a3a55 =>
a1" 9ORKERd/col9/133229" cla13oL150">>5520"13>20srchsn1nadic13l/ alnc_cd/co,atomic_long_,in20="1>calc load_accin20="3/729ef">rqcpu1TASK_RUNNIvess="ss=ters=idx 3calc load_acclvess="ss=ters=idxolong58k_a>struct>
>tar=a>str9a28






9p15ode=cnt" 1lass="sref"20>>5>20s25511296k_a>struct>
el/sched/20s3>>128
p20
1 Not all r1n5
/aule IP20
* >20s3onlk1_>tar1a>1t+cnnruptiblc href">sum,#L42" id5evess="ss=idx 3calc load_acclvess="ss=idx_listist_> 1ednamtioL12> =>
a1" 9"t>
id4ssr9_1 tradilion1lly all/t/320
* >20s4onlk1_>tar1130ched/core.c#L137" id4e"9e28
/a4
sp9r113e629" cl1efat weaact20
* >20s5onlk1_>tar130ched/core.c#L137" id4e"9e28
/a4
sp9r1317" href"1 t/3m.5ode=20
* >20s6hre3113bL21130che>1wake_get_avenrun,#lvess="ss=b"+aseidle 3calc load_acclvess="ss=b"+aseidleolong58k_a>struct>
>tar=a>str9a28






9p1579629" cl1lass="sref"20
*5>20shre3=12ef">1131hcpu if (
a href="+s5>t9188
/a4
sp9>113e929" cl1nalkeadyado20
* >20s289291c_pco1/fntruct>
a hr href">rq neg
4a> 32his cl"+asr12ef">1258k_t_>ta2his cla13b">neg
4a> 32his cl"+askve13pow>134schednamtioL12> =>
a1" 9"t>
id4ssr9o1/href">rq
1ode=cnt" cl20
* >20s9551runsign,5olong39" cfaacclvea13b">ng
4a> 3delta"+ase13pow>134schednamtioL12> =>
a1"2051>>128
p20s15ode=cnt" 1lass="sref"20
*5>20
*onlk1_>tar134schednamtioL12> =>
a1" 9128






9r133229" cla1eashould vi20
* >20
itel/12t =>14unsign,5olongk122ass="namtioL12> =>
a1"2054>>128
p20=1 however a1fair share 20
* >20
2onlk1_>tar14>cn5
/a3a55135>ss="line" namtioL124"20
8>>128
p20=1 somewfat 1essimize3ef20
* >20
3onlk1_>tar14 &>15#L142"tik/*38" id3913"fffffffff*destooThenpen/preaidle d+rqr>135>ss="line" namtioL124"203o>>128
p20s1+5ode=cnt"1class="sref20
*+>20
sctl_13pow>149" cla13/sched/*_get_avenrunctf"_pst >122ass="namtioL12> =>
a1"2056>>128
p20r1 href">rq
1a> *irq_ent20er >20
ct>
_1akeup1/f">s>struct>ofaacclvea13b">ng
4a> 3delta"+ase13pow>134scht_>tacpu cla13b">nevess="ss=3b">neg
4a> 3calc load_fold_acclve"+askr=a>struct>
ata2his cla13b">neg
4a> 32his cl"+askve13pow>134shednamtioL12> =>
a1" 9"t>
id4ssr9o1c_pcorena_1tar=a>struc20twc>20
6"las1&_>ta1=__>tar=aruptinlk_k_nr_acclvea13bg
4a> 3delta"+ase13pow>134schcpu if (
a href="+s5>20
6>>128
p20t134829" cla13/sched/cor20a13>20
7t>
_1akeup1/__>tar=a>commenc_cd/cef">rqitrL42" id5">>dx 3calc load_accidxolont_>tacpu cla13b">nevess="ss=writt=idx 3calc load_acclvess="ss=writt=idxolonghednamtioL12> =>
a1" 9"t>
id4ssr9o1c3e929" cl1lass="sref"20>>5>20
8t>
_1akeup1/=13bL2>130chestruct>ofaacclvea13b">nwc_pc5512atomic_>1ad"+ask"rtict>
ata2his cla13b">g
4a> 3delta"+ase13pow>134sch, ist_>tacpu cla13b">nesa13b">neidle 3calc load_acclvess="ss=idle.c#L1rqitrL42" id5">>dx 3calc load_accidxolon]hednamtioL12> =>
a1" 9"t>
id4ssr9o1chref">rq
1omeone>ki7"20
* >20
ully 13bL2>1runsign,5olongd/core.c#L137" id4e"9e28
/a4
sp9r1+5ode=cnt"1class="sref20
*+>20
*t>
_1akeup1/>1t+cd/core.c#L137" id4e"9e28
/a4
sp9r1+3229" cla1">rq
/a> *l20st_>20
dd/co113bL2158ck_a>ore.c#L134" id4R 20
2>>128
p20
1a3a5520
t,3="12hre>126ck_a>1wake_get_avenrun,#lvess="ss=bxiteidle 3calc load_acclvess="ss=bxiteidleolong58k_a>struct>
>tar=a>str9a28






9p1tic_key4">11 twc_do_wa20tat>20
129421" cla12 &>15u if (
a href="+s5>20
6>>128
p20t1125529" cl112class="mp20="1>20
a551t+cnnruptib href">rq neg
4a> 32his cl"+asr12ef">1258k_t_>ta2his cla13b">neg
4a> 32his cl"+askve13pow>134schednamtioL12> =>
a1" 9"t>
id4ssr9o1>
_wakeups1atic_key4">20ct>>20
some 1or", 150ched/core.c#L137" id4e"9e28
/a4
sp9r1emptlcurrc1
/a>(struct20rse>20
689291c_pco156nsign,5olongk122ass="namtioL12> =>
a1"2054>>128
p20=125829" cla12ef">neg
5a20a12>20
7chsn1re.c#15" cla13picock_/* Vari135>ss="line" namtioL124"203o>>128
p20s1q
/a> *
a 1,
a href="+20>rq>20
a hre112f">15f">EFAU4T
/3>4d////////n inactf"_pst >122ass="namtioL12> =>
a1"2056>>128
p20r1href="+cod1=__hclass="20MPh>20
r__tr1d_rq_117" href">rq
/nlk_k_nr_acclvea13bnime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">neneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134sch_a>struct>
>tar=a>str96=a>struct9 1f">rq
/a> 1
a h,
a hre20ref>20re__tr1d_rq_117" href">rq
/////////lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o11empty hre1a> *
a h,
a 9ref="96dd/ce1a> q_168ck_a>ore.c#L134" id4R 20
2>>128
p20
113a55122ass="namtioL12> =>
a1"2054>>128
p20=11ic_key4">1>
a hre
a hr9f="+a961294>1>
aq_16 &>15#L142"tik/*38" id3913"fffffffff*dWhawokn1whside or afoad aqref13" hawindow,its2only12o3ntotatrr- altersq135>ss="line" namtioL124"20
9>>128
p20s1625529" cl1truct>u6ck_a9sa> 496a55skipoad-ayctor- dyal3an>135>ss="line" namtioL124"20
7>>128
p20i16
_wakeups1truct>u6ck_a9sa> 496ct>
s1truq_16aneers4o"make /*_  2again, bctf"_pst   ck1cuph rqrad-aa xtawindow>135>ss="line" namtioL124"203o>>128
p20s16mptlcurrc12 &>15#L142"9ik__>96twc_c12 &q_11/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r165829" cla1_PINNEtruct>9eltaa96 hrea1_PIq_16__>tar=a>commfadeltaa13b">neneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134scht_>tacpu cla13b">nevess="ss=eg
4a> 3calc load_updc">"+ase13pow>134schednamtioL12> =>
a1"202o>>128
p20
16
/a> *
a 1tar=a>struct9
a hr96 id3 1tarq_168" href">rq
/nlk_k_nr_acclvea13bnime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">neneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134sch + 10_a>struct>
>tar=a>str96=a>struct9 1fref="+cod1a55rq
/////////fadeltaa13b">neneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134sch +_>tacpu cla13b">nqref13" h 3calc load_updqref13" h4schednamtioL12> =>
a1"202o>>128
p20
17">rq
/a> 1l/_ava_>tar=9>stru97p. I 1l/_> 17>1t+cd/core.c#L137" id4e"9e28
/a4
sp9r17empty hre1ruct>
a hre
9 href97rchse1ruc> 178ck_a>ore.c#L134" id4R 20
2>>128
p20
173a55 */497 clar1329> 1l>cn5
re.c#L139" cfacalc load_fold_acclvea13b">nidle 3calc load_acclvess="ss=3b">nidleolong58k_a>struct>
>tar=a>str9a28






9p1lic_key4">1" cla12class9"line971294>1" c> 17 &>15u if (
a href="+s5>20
6>>128
p20t1725529" cl112sptik__csd9pclas97a55 17>1t+cnnruptibef">rqitrL42" id5">>dx 3calc load_accidxolont_>tacpu cla13b">nevess="ss=ters=idx 3calc load_acclvess="ss=ters=idxolonghednamtioL12> =>
a1" 9"t>
id4ssr9o17
_wakeups12L180">>140
93t4 <97somes12L1> 17f">s>struct>o39" cfaacclvea13b">ng
4a> 3delta"+ase13pow>134sch4schednamtioL12> =>
a1"20
1>>128
p20
17mptlcurrc12 729" cla129ck_le97s="sc12 7> 172sched/cor
>tar=a>struc20>7>>128
p20a175829" cla1>>1 twc_do_a9tivel9755>1> 177" href">rq
/nlk_k_nr_acclvea13bask"rti1ad"+ask"rtitacpu cla13b">nesa13b">neidle 3calc load_acclvess="ss=idle.c#L1rqitrL42" id5">>dx 3calc load_accidxolon]ha>struct>
>tar=a>str9a28






9p1l
/a> *
a 112oL158" cla9s="li972892 112o> 17=13bL2>130chestruct>ofaacclvea13b">ng
4a> 3delta"+ase13pow>134scht_>tacpu cla13b">nask"rti12nr_runncto"+aask"rtiolongist_>tacpu cla13b">nesa13b">neidle 3calc load_acclvess="ss=idle.c#L1rqitrL42" id5">>dx 3calc load_accidxolon], 0hednamtioL12> =>
a1" 9"t>
id4ssr9o17ref="+cod1=__hclass="S9Psar"97ullyd1=__> 170ched/core.c#L137" id4e205o>>128
p20
18">rq
/a> 1
a h,
a href9"+ask98p. I 1
a > 18>1t+cnnruptiblc href">deltaa13b">neg
4a> 3delta"+ase13pow>134schednamtioL12> =>
a1"2051>>128
p20s18empty hre1ruct>
a hre
9 href98rchse1ruc> 1830ched/core.c#L137" id4e20
2>>128
p20
183a55t9r=15698 clar1" c> 186ck_a>struct>
a hrclas=2053>>128
p20t18ic_key4">12nt"> */4/sp9)4812nt> 1
 &>15#L142"tik_*renad/  \Sule>134ass="line" namtioL124"20
4>>128
p20n1825529" cl1key4">>1 twc9activ98a55 1
9" cla13/sched/*h rqref13" h> fixed_powaseif">-nromph r: x^n1aenaO(log n)reime134ass="line" namtioL124"20
4>>128
p20n18
_wakeups1_key4">>1 tw9_do_w98somes1_ke> 1
aneers4o"make /*_  2again, be134ass="line" namtioL124"20
4>>128
p20n18mptlcurrc112f">EFAU4T
93>4 <98s="sc112f> 1
/a3a55 @x:estruct>obasest.qThenpowas134ass="line" namtioL124"20
4>>128
p20n185829" cla12L206">>406
9>48 1
" cla13picock_c*____c338simply@frac_bits: frac f13al3bitsst.q@x134ass="line" namtioL124"20
4>>128
p20n18
/a> *
a 1ef">cn5
/a3a95 1
f">EFAU4T
/3>4d*ad/ chis_would@n:estruct>opowasao nraises@xao >135>ss="line" namtioL124"203o>>128
p20s1
ref="+cod1stcla/@p isn9ss="o98ullyd1stc> 1
led>from its/ru*    ck12o32w"135>ss="line" namtioL124"203o>>128
p20s19">rq
/a> 1st do a remo93 wak99p. I 1st > 1sted>from its/ru*    ck12o32w"kBn macloial load-arel3" h> betweut2ad-aeh rqref13st.qThenna hral3powas134ass="line" namtioL124"20
4>>128
p20n19empty hre14o"do asnfli9/p
a 99rchse14o"> 1sl/ all handlerd*ad/ did12o32w" calc lo: x^n stax*x*...*x (xrmulti" ith rq"itselfh rqrnreimes),3an>135>ss="line" namtioL124"20
7>>128
p20i193a55 1s>cn5
/a3a55qThenbinarn mnb">th rofus, to3s usth rq"romph rrs: n stat_j) n_it>q2^i,135>ss="line" namtioL124"20
7>>128
p20i19ic_key4">1ref">cn5
/a39551ref> 1s &>15#L142"tik_*renad/  \Sum_i(wecd2: n_it\elem {0, 1},qThenbinarn vectrqrtepreseneth rq),135>ss="line" namtioL124"20
7>>128
p20i1925529" cl1_key4">>1 tw9_remo99a55 1s9" cla13/sched/*____This_placewe find: x^n stax^(t_j) n_it>q2^i12uct\Prodax^(n_it>q2^i1,owhih> i>135>ss="line" namtioL124">9s=>rtsk_ne9 19
_wakeups112f">EFAU4T
93a4 <99somes112f> 1saneers4o"make d*
a +cod12uct>oLforourLj" rivia"verromph a actfnaO(log_2rq),rag9"aengthoLfoourebinarn135>ss="line" namtioL124">9s=>rtsk_ne9 19mptlcurrc1112" clas &_9tar=a99s="sc1112> 1s/a3a55135>ss="line" namtioL124"203o>>128
p20s1s5829" cla1>"reo hre3
39it" c9955"r> 1s" cla13picock_c*____c338simpl>122ass="namtioL12> =>
a1"2056>>128
p20r19
/a> *
a 12/sched/core9c#L13992892 12/s> 19commenc_cd/c12uct>122ass="namtioL12> =>
a1"2057>>128
p20a19ref="+cod1as &
3>5 nefixed_powaseif" 3delta"+ase13pfixed_powaseif"olongcore.c#L139" cfaacclvea13b">nx 3calc load_accx139" ccore.c#L1ef">rqitrL42" id5">frac_bits 3delta"+ase13pfrac_bits139" ccore.c#L1ef">rqitrL42" id5">>12avenrun"+as[2829" c"namtioL12> =>
a1"2057>>128
p20a2>>3L112" c2as &
3>5 >20ao89292 cla12ef">EFu if (
a href="+s5>20
6>>128
p20t2>13L112" c2ao"do asnfli9/p
a 99rchse2nd up20unsign,5olongcore.c#L139" cfaacclvea13b">nrqref1aslk__>tar=a>strqref14scht_>1UL>
a href">rqitrL42" id5">frac_bits 3delta"+ase13pfrac_bits139"ednamtioL12> =>
a1"2051>>128
p20s2e23L112" c2aa hronlk_.59de=cn99 clar2="sre206ck_a>struct>
a hrclas=2053>>128
p20t2>33L112" c2aef">cn5
/a39552" cla20>struct>onlk_elk_k_nr_acclvea13b"12avenrun"+as[2829" ch rqr(;;cpu if (
a href="+s5>20
6>>128
p20t2emot3stati2_key4">>1 t20are>20aa551t+cnnruptibct>onlk_elk_k_nr_acclvea13b"12avenrun"+as[2829" tist_> 1cpu if (
a href="+s5>20
6>>128
p20t2e5ot3stati2_2f">EFAU4T
93a4 <99somes2or", 2051t+cnnruptibct>onlk_struct>ofaacclvea13b">nrqref1aslk__>tar=a>strqref14schtlk_k_exp1TASK_RUNNx 3calc load_accx139"ednamtioL12> =>
a1"2051>>128
p20s2e6ot3stati2_12" clas &_9tar=a99s="sc2f">cn20__>tar=aruptiblc hrefstruct>ofaacclvea13b">nrqref1aslk__>tar=a>strqref14schtmic1UL>
a href">
4a> 3acclvess="frac_bits 3delta"+ase13pfrac_bits139"t_>1hednamtioL12> =>
a1" 9"t>
id4ssr9_2179629" cl21"reo hre3
39it" c9955tar=a>commenc_cd/cstruct>ofaacclvea13b">nrqref1aslk__>tar=a>strqref14scht/729/729k_k_exp1TASK_RUNNfrac_bits 3delta"+ase13pfrac_bits139"ednamtioL12> =>
a1"2051>>128
p20s2e89629" cl21/sched/core9c#L13992892 2 cla120=13bL2>130chestruct>od/core.c#L137" id4e20
2>>128
p20
2d43L112" c2as &
3>5 20aully 2en5
/209" href">rq
/////////fadeltaa13b">ne"12avenrun"+as[2829" ti729/729k_1ednamtioL12> =>
a1" 9"t>
id4ssr9_2_ twc_pcor2na_>tar=a>s20>
_>20>
lly 2en5
/217" href">rq
/////////nlk_!o,2his cla13b">>12avenrun"+as[2829" c"namtioL12> =>
a1"2057>>128
p20a2113L112" c213
a hreask20="1>20>rchsn2nd up211_>tar=a>commenc_cd/cstruct>obreakednamtioL12> =>
a1" 9"t>
id4ssr9_2_23L112" c2112" clas &205#L>20> clas2="sre212" href">rq
/////////fadeltaa13b">nex 3calc load_accx139"tlk_k_exp1TASK_RUNNx 3calc load_accx139"ednamtioL12> =>
a1"2051>>128
p20s2ist_n39"_>2ar=a>struct20lli>20>129422" cla2a>struct>onlk_////////fadeltaa13b">nex 3calc load_accx139"tmic1UL>
a href">
4a> 3acclvess="frac_bits 3delta"+ase13pfrac_bits139"t_>1hednamtioL12> =>
a1" 9"t>
id4ssr9_2_mot3stati2
/a>(struct20cla>20>a551t+cnnruptibct>onlk_fadeltaa13b">nex 3calc load_accx139"t/729/729k_k_exp1TASK_RUNNfrac_bits 3delta"+ase13pfrac_bits139"ednamtioL12> =>
a1"2051>>128
p20s231629" cla23       
a 20
13>20>some 2or", 21>struct>onlk_d/core.c#L137" id4e20
2>>128
p20
2217" href"2rq
/a> *kaw20n_2>20>id27L23est>232sched/cor
>tar=a>struc20>7>>128
p20a2279629" cl23uct>
a hre20a13>20>55tar=a>commlc href">deltaa13b">nerqref1aslk__>tar=a>strqref14schednamtioL12> =>
a1"2051>>128
p20s2389629" cl2struct>llis20lli>20>289292c_pco21f">EFd/core.c#L137" id4e20
2>>128
p20
2243L112" c2a> *
a h,&
20
a >20>989292c_pco210ched/core.c#L137" id4e205o>>128
p20
2list_>tar=2>struct>lli20
ll>20
l29422nsign22ted>from its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=2twc_do_act2vel/static_20
 t>20
rchsn2re.c#22l/ all handlerd*ad/ did12o32w"cas* (1 -_e)h rqref13" h>135>ss="line" namtioL124"20
5>>128
p20c2c5ode=cn132329" cla13u20" c>20
t,3="22hre>22>cn5
/a3a55122ass="namtioL12> =>
a1"2054>>128
p20=2tst_n39"_>23class="mp_20"13>20
129422" cla22 &>15#L142"tik/*38" id3913"fw"c2s* (1 -_e)h rqref13" h>135>ss="line" namtioL124"20
5>>128
p20c2cmot3stati2">rq
/a> *k20n_u>20
a55) -_e)h rqref13" h>135>ss="line" namtioL124"20
5>>128
p20c2c1629" cla213ef">neg
520la1>20
some 2or", 2eaneers4o"make /*_@loads:______---= (1 -_e^2)h rqref13" h>qref13+ h>135>ss="line" namtioL124"20
5>>128
p20c2c17" href"23est poll
a20 13>20
s="sr2f">cn2
/a3a55ss="line" namtioL124"20
5>>128
p20c2c79629" cl2ruct>sct>
u20ipi>20
55135>ss="line" namtioL124"20
5>>128
p20c2c89629" cl213uct>
a hr20="1>20
289292 cla12ef">EFAU4T
/3>47*h rqref13" h>----= ((1 -_e^2)h rqref13" h>qref13+ h>) -_e)h rqref13" h>135>ss="line" namtioL124"20
5>>128
p20c2c43L112" c2">rq
/a> *l20st_>20
ully 2en5
/2uled>from its/ru* Theselvaluhs2---= (1 -_e^3)h rqref13" h>qref13+ h3+ h^2>135>ss="line" namtioL124"20
5>>128
p20c2"sref">cn52/a3a55
a +cod12uct135>ss="line" namtioL124"20
5>>128
p20c2"wc_do_act23oL150">>5520"13>20srchsn2nadic23l/ all handlerd*ad/ across12o32..>135>ss="line" namtioL124"203o>>128
p20s25ode=cnt" 2lass="sref"20>>5>20s25523>cn5
/a3a55122ass="namtioL12> =>
a1"2054>>128
p20=2 Not all r2n5
/aule IP20
* >20s3onlk2_>tar23 &>15#L142"tik/*38" id3913"fw"cn-= (1 -_e^n)h rqref13" h>qref13+ h3+ ..>3+ h^n-1) [1]122ass="namtioL12> =>
a1"2054>>128
p20=2 mot3stati2lly all/t/320
* >20s4onlk2_>tar239" cla13/sched/*_get_avenrun_----= (1 -_e^n)h rqref13" h>qref13-_e^n)/f13" h>135>ss="line" namtioL124"20
5>>128
p20c213e629" cl2efat weaact20
* >20s5onlk2_>tar23aneers4o"make /*_@loads:______---= (1 -_e^n)h rqref13" h^n)135>ss="line" namtioL124"20
5>>128
p20c2117" href"2 t/3m.5ode=20
* >20s6hre3213bL223/a3a55ss="line" namtioL124"20
5>>128
p20c2579629" cl2lass="sref"20
*5>20shre3=22ef">23" cla13picock_c*_@shift:_____ 139"applicaef13st.qThengeome_ric series>135>ss="line" namtioL124">8s28






8 213e929" cl2nalkeadyado20
* >20s289292c_pco23f">EFAU4T
/3>47*h rqref13" h>135>ss="line" namtioL124"20
9>>128
p20s2/href">rq
2ode=cnt" cl20
* >20s95523led>from its/ru*    ck12o32w"keupppppppppppnppppppppp13" x^(n+1)135>ss="line" namtioL124"20
5>>128
p20c25ode=cnt" 2lass="sref"20
*5>20
*onlk2_>tar24f">EFAU4T
/3>4d*ad/ Furto3omioL,_ S_n stat_j) x^i-= -------------135>ss="line" namtioL124"20
5>>128
p20c25wc_do_act2eashould vi20
* >20
itel/22t =>24l/ all handlerd*ad/ across12o32ma/////////n=0 ppppppppp13" x135>ss="line" namtioL124"20
5>>128
p20c25ode=cnt" 2fair share 20
* >20
2onlk2_>tar24>cn5
/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r2 somewfat 2essimize3ef20
* >20
3onlk2_>tar24 &>15nc_cd/c12uct>122ass="namtioL12> =>
a1"2057>>128
p20a2+5ode=cnt"2class="sref20
*+>20
sctl_23pow>249" claacpu cla13b">nesa13b">ne>12avenrun"+as[2esa13b">ne>olongcore.c#L139" cfaacclvea13b">n5">>12loadss="tiunsign,5olongcore.c#L139" cfaexp1TASK_RUNNINGd/expss="tiunsign,5olon"namtioL12> =>
a1"2057>>128
p20a2+3e629" cl2a> *irq_ent20er >20
ct>
_2akeup2451t+cnnruptibct>ocore.c#L139" cfaacclvea13b">neg
4a> 3acclvess=")12uct>122ass ccore.c#L1ef">rqitrL42" id5">>12avenrun"+as[2829" c"namtioL12> =>
a1"2057>>128
p20a2c_pcorena_2tar=a>struc20twc>20
6"las2&_>ta2=__>tau if (
a href="+s5>20
6>>128
p20t234829" cla23/sched/cor20a13>20
7t>
_2akeup2458k_a>struct>
>tar=a>st20s8>>128
p20
2c3e929" cl2lass="sref"20>>5>20
8t>
_2akeup24=13bL2>130chelc href">deltaa13b">ne">neg
4a> 3calc load"+askunsign,5olongfaacclvea13b">n5">>12loadss="tiunsign,5olongr>deltaa13b">nefixed_powaseif" 3delta"+ase13pfixed_powaseif"olongfaexp1TASK_RUNNINGd/expss="tiunsign,5olonf">deltaa13b">ne>SHIFT 3acclvess=">20>SHIFT_lisnf">deltaa13b">ne>12avenrun"+as[2829" cnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122ass=ednamtioL12> =>
a1"2051>>128
p20s2chref">rq
2omeone>ki7"20
* >20
ully 23bL2>24led>fd/core.c#L137" id4e20
2>>128
p20
2+5ode=cnt"2class="sref20
*+>20
*t>
_2akeup254schednamtioL12> =>
a1" 9128






9r2+3229" cla2">rq
/a> *l20st_>20
dd/co213bL225l/ all handlerd*ad/ across1t>122ass="namtioL12> =>
a1"2054>>128
p20=2a3a5520
t,3="22hre>25>cn5
/a3a55qqfor hke pleave us mishl loallhseh rqreeicksld_al>134s2ass="namtioL12> =>
a1"2054>>128
p20=2asomewfat 21 twc_do_wa20tat>20
129422" cla22 &>15#L142"tik/*
a +cod12uct>qlvess="ss=>st2fr5=a>stru(),obut sfr52ae pedle CPU2to as"its "+rqre act4s2ass="namtioL12> =>
a1"2054>>128
p20=2a5ode=cnt"212class="mp20="1>20
a55st2fr5=idle(),oallhweda distridoO tito a4s2ass="namtioL12> =>
a1"2054>>128
p20=2a3e629" cl2atic_key4">20ct>>20
some 2or", 2eaneers4o"make /*>
a +cod12uctaesult.npen/preaidle d+rqr/nlkoureidlehsehiod crossth ahcalc cyclehb2frdary>135>ss="line" namtioL124"203o>>128
p20s2emptlcurrc2
/a>(struct20rse>20
689292c_pco25/a3a55ss="line" namtioL124"20
5>>128
p20c225829" cla22ef">neg
5a20a12>20
7chsn2re.c#25" cla13picock_/* Vari13s >strlafeh rhen we valu10 tica distriapplyoad-ayxponenet +135>ss="line" namtioL124"20
9>>128
p20s2q
/a> *
a 2,
a href="+20>rq>20
a hre212f">25f">EFAU4T
/3>4d////////n inacewe12ucs adjustdistriThenn, to3oLforycles mishec>135>ss="line" namtioL124"203o>>128
p20s2href="+cod2=__hclass="20MPh>20
r__tr2d_rq_25led>from its/ru*    ck12o32w">122ass="namtioL12> =>
a1"2056>>128
p20r2f">rq
/a> 2
a h,
a hre20ref>20re__tr2d_rq_217" hrnc_cd/c>1wake_get_avenrun,#lvesslafeh _nohz 3calc load"+askunsilafeh _nohzolong58k_a>struct>
>tar=a>str9a28






9p21empty hre2a> *
a h,
a 9ref="96dd/ce2a> q_268ck_au if (
a href="+s5>20
6>>128
p20t213a55ng
4a> 3delta"+ase13pow>134schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122assnf">deltaa13b">ne>12avenrun"+as[2829" ednamtioL12> =>
a1"2051>>128
p20s21ic_key4">2>
a hre
a hr9f="+a961294>2>
aq_26 &>15dnamtioL12> =>
a1"2051>>128
p20s215ode=cnt"2truct>u6ck_a9sa> 496a551t+cnnruptibelk_!o,2his cla13b">nime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">nec">a13b">neg
4a> 3calc load_updc">"+ase13pow>134sch + 10_apu if (
a href="+s5>20
6>>128
p20t26
_wakeups2truct>u6ck_a9sa> 496ct>
s2truq_2651t+cnnruptibct>onlk_l handlerd*ad/ across1t>122ass="namtioL12> =>
a1"2054>>128
p20=26mptlcurrc22 &>15#L142"9ik__>96twc_c22 &q_21/a3a55>128
p20=265829" cla2_PINNEtruct>9eltaa96 hrea2_PIq_21" cla13picock_c*_@shift:____ctf"_psttttttttt*>122ass="namtioL12> =>
a1"2056>>128
p20r2f
/a> *
a 2tar=a>struct9
a hr96 id3 2tarq_26=13bL2>130chestruct>ofaacclvea13b">ng
4a> 3delta"+ase13pow>134scht_>tacpu cla13b">njiffi>>12nr_switches"+jiffi>>139"t_>ta2his cla13b">c">a13b">neg
4a> 3calc load_updc">"+ase13pow>134sch - 10ednamtioL12> =>
a1"2051>>128
p20s21ref="+cod2a55rq
/////////fadeltaa13b">ne"12avenrun"+as[2829" t= 13+ ata2his cla13b">g
4a> 3delta"+ase13pow>134sch />tacpu cla13b">nqref13" h 3calc load_updqref13" h4sch=ednamtioL12> =>
a1"2051>>128
p20s27">rq
/a> 2l/_ava_>tar=9>stru97p. I 2l/_> 274schednamtioL12> =>
a1" 9128






9r27empty hre2ruct>
a hre
9 href97rchse2ruc> 271_>tar=a>commenc_cd/c">deltaa13b">neeg
4a> 3acclvess=")12uct>122asst_>tacpu cla13b">nask"rti1ad"+ask"rtitacpu cla13b">nesa13b">netasks 3calc load_updc">"+ase13tasks4sch=ednamtioL12> =>
a1"2051>>128
p20s273a55 */497 clar2329> 272" href">rq
/////////fadeltaa13b">neeg
4a> 3acclvess=")12uct>122asst_>tacpu cla13b">nag
4a> 3acclvess=")12uct>122asst/729f0 ?c_>1cclvea13b">neg
4a> 3acclvess=">20rx29a13b">neg">deltaa13b">ne>sXED_1 3acclvess=">20>sXED_1_list:chednamtioL12> =>
a1"20
1>>128
p20
2lic_key4">2" cla12class9"line971294>2" c> 27 &>15dnamtioL12> =>
a1"2051>>128
p20s2725529" cl212sptik__csd9pclas97a55 27>1t+cnnruptibct>onlk_fadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[0]t_>tacpu cla13b">nevess="ss=>12avenrun"+as[2esa13b">ne>olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[0] cfadeltaa13b">neEXP_1 3acclvess=">20EXP_14schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122assnf">deltaa13b">ne>12avenrun"+as[2829" =ednamtioL12> =>
a1"2051>>128
p20s27
_wakeups22L180">>140
93t4 <97somes22L1> 2751t+cnnruptibct>onlk_ladeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[1]t_>tacpu cla13b">nevess="ss=>12avenrun"+as[2esa13b">ne>olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[1] cfadeltaa13b">neEXP_5 3acclvess=">20EXP_54schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122assnf">deltaa13b">ne>12avenrun"+as[2829" =ednamtioL12> =>
a1"2051>>128
p20s27mptlcurrc22 729" cla129ck_le97s="sc22 7> 27__>tar=aruptiblc href">deltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[2]t_>tacpu cla13b">nevess="ss=>12avenrun"+as[2esa13b">ne>olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[2] cfadeltaa13b">neEXP_15 3acclvess=">20EXP_154schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122assnf">deltaa13b">ne>12avenrun"+as[2829" =ednamtioL12> =>
a1"2051>>128
p20s275829" cla2>>1 twc_do_a9tivel9755>1> 2758k_a>struct>
>tar=a>st20s8>>128
p20
2l
/a> *
a 212oL158" cla9s="li972892 212o> 27=13bL2>130chestruct>ofaacclvea13b">nlvea13b">neg
4a> 3calc load_updc">"+ase13pow>134sch +_>tacpu cla13b">n"12avenrun"+as[2829" teg">deltaa13b">neqref13" h 3calc load_updqref13" h4schednamtioL12> =>
a1"202o>>128
p20
27ref="+cod2=__hclass="S9Psar"97ullyd2=__> 27unsign,5olongd/core.c#L137" id4e"9e28
/a4
sp9r28">rq
/a> 2
a h,
a href9"+ask98p. I 2
a > 284schednamtioL12> =>
a1" 9128






9r28empty hre2ruct>
a hre
9 href98rchse2ruc> 28unsign,5olongk122ass="namtioL12> =>
a1"2054>>128
p20=283a55t9r=15698 clar2" c> 2
>cn5
/a3a55135>ss="line" namtioL124"203o>>128
p20s28ic_key4">22nt"> */4/sp9)4822nt> 2
 &>15#L142"tik_*renad/  \Sumssssssss*135>ss="line" namtioL124"203o>>128
p20s2825529" cl2key4">>1 twc9activ98a55 2
9" cla13/sched/*h rqref13" hssssssss* Measesurf2-- firs pwriteoad-aiew3eimeoad-nr liphad-ai.dex0 sriTha>135>ss="line" namtioL124"20
8>>128
p20=28
_wakeups2_key4">>1 tw9_do_w98somes2_ke> 2
aneers4o"make /*_  2again, bssssssss* lvess="ss=writt=idx() will seeoad-aiew3eimeo out2itrterssoad-aiew135>ss="line" namtioL124"20
8>>128
p20=28mptlcurrc212f">EFAU4T
93>4 <98s="sc212f> 2
/a3a55135>ss="line" namtioL124"203o>>128
p20s285829" cla22L206">>406
9>48 2
" cla13picock_c*____c338simpssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r28
/a> *
a 2ef">cn5
/a3a95 28=13bL2>130che">deltaa13b">nesmp_wmb 3calc load_accsmp_wmbolonghednamtioL12> =>
a1" 9"t>
id4ssr9_2
ref="+cod2stcla/@p isn9ss="o98ullyd2stc> 287" href">rq
/a>load,#L42" idevess="ss=idx 3calc load_acclvess="ss=idx_lis++ednamtioL12> =>
a1" 9"t>
id4ssr9_29">rq
/a> 2st do a remo93 wak99p. I 2st > 29>1t+cd/core.c#L137" id4e"9e28
/a4
sp9r29empty hre24o"do asnfli9/p
a 99rchse24o"> 2sl/ al#elsegk !CONFIG_qfor h*>122ass="namtioL12> =>
a1"2056>>128
p20r293a55 296ck_a>struct>
a hrclas=2053>>128
p20t29ic_key4">2ref">cn5
/a39552ref> 29 &>15nc_cd/ca>load,#L42" idin20="1>calc load_accin20="3/72939" cfacalc load_fold_acclvea13b">nidle 3calc load_acclvess="ss=3b">nidleolong58k_a {elc href0;gd/core.c#L137" id4e"9e28
/a4
sp9r2925529" cl2_key4">>1 tw9_remo99a55 2s9" clnc_cd/ca>load,#L42" idin20="1>calc load_accin20="3/729>1wake_get_avenrun,#lvesslafeh _nohz 3calc load"+askunsilafeh _nohzolong58k_a {ed/core.c#L137" id4e"9e28
/a4
sp9r29
_wakeups212f">EFAU4T
93a4 <99somes212f> 290ched/core.c#L137" id4e"9e28
/a4
sp9r29mptlcurrc2112" clas &_9tar=a99s="sc2112> 2s/a3a5#en/pfgk CONFIG_qfor h*>122ass="namtioL12> =>
a1"2056>>128
p20r295829" cla2>"reo hre3
39it" c9955"r> 2958k_a>struct>
>tar=a>st20s8>>128
p20
29
/a> *
a 22/sched/core9c#L13992892 22/s> 2sf">EFAU4T
/3>4d*ad/ chis_wot>122ass="namtioL12> =>
a1"2054>>128
p20=29ref="+cod2as &
3>5  lvess="ss -3pow>13red-aavenru"hcalc eseim>13s 10eeickslafoad aqr122ass="namtioL12> =>
a1"2054>>128
p20=3>>3L112" c3as &
3>5 >20ao89293 cla13ef">EFAU4T
/3>4d*ad/ Furto3omioCPUsod2"e uow>13s c">"+ase13tasks>135>ss="line" namtioL124"203o>>128
p20s3>13L112" c3ao"do asnfli9/p
a 99rchse3nd up3el/ all handlerd*ad/ across12o>122ass="namtioL12> =>
a1"2056>>128
p20r3e23L112" c3aa hronlk_.59de=cn99 clar3="sre306ck_a>1wake_get_avenrun,#lvesslafeh _
4a> 3calc load"+askunsilafeh _
4a>olongcore.c#L139" cfaacclvea13b">neicks 32his cl"+as
/aicks4sch="namtioL12> =>
a1"2056>>128
p20r3e33L112" c3aef">cn5
/a39553" cla30 &>15u if (
a href="+s5>20
6>>128
p20t3emot3stati3_key4">>1 t20are>20aa551t+cnnruptib39" cfaacclvea13b">neg
4a> 3acclvess=")12uct>122ass cta2his cla13b">g
4a> 3delta"+ase13pow>134schednamtioL12> =>
a1" 9"t>
id4ssr9_3e5ot3stati3_2f">EFAU4T
93a4 <99somes3or", 300ched/core.c#L137" id4e"9e28
/a4
sp9r3e6ot3stati3_12" clas &_9tar=a99s="sc3f">cn30__>tar=aruptinlk_k_nr_acclvea13bnime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">nec">a13b">neg
4a> 3calc load_updc">"+ase13pow>134sch + 10_a/core.c#L137" id4e"9e28
/a4
sp9r3e7ot3stati3_"reo hre3
39it" c9955tar=a>commenc_cd/clc hreednamtioL12> =>
a1" 9"t>
id4ssr9o3e89629" cl31/sched/core9c#L13992892 3 cla130=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o3e99629" cl31s &
3>5 rq
/AU4T
/3>4d*ad/ chis_wot>122ass="namtioL12> =>
a1"2054>>128
p20=3_ twc_pcor3na_>tar=a>s20>
_>20>
lly 3en5
/31f">EFAU4T
/3>4d*ad/ Furto3omssssssss* Fo a ed-aotatro aotatr idle-"+rqreto i.cludeoallhqfor hkpus>135>ss="line" namtioL124"203o>>128
p20s3113L112" c313
a hreask20="1>20>rchsn3nd up31l/ all handlerd*ad/ across12ssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r3_23L112" c3112" clas &205#L>20> clas3="sre312" href">rq
/faacclvea13b">ng
4a> 3delta"+ase13pow>134scht_>tacpu cla13b">nd_acclvea13b">nidle 3calc load_acclvess="ss=3b">nidleolonghednamtioL12> =>
a1" 9"t>
id4ssr9_3ist_n39"_>3ar=a>struct20lli>20>129423" cla31>struct>onlk_elk_k_nr_acclvea13bg
4a> 3delta"+ase13pow>134schcdnamtioL12> =>
a1" 9"t>
id4ssr9_3imot3stati3
/a>(struct20cla>20>a551t+cnnruptibct>onlk_fadeltaa13b">newc_pc5512atomic_>1ad"+ask"rtict>
ata2his cla13b">g
4a> 3delta"+ase13pow>134sch, ist_>tacpu cla13b">nesa13b">netasks 3calc load_updc">"+ase13tasks4sch=ednamtioL12> =>
a1"2051>>128
p20s331629" cla33       
a 20
13>20>some 3or", 310ched/core.c#L137" id4e"9e28
/a4
sp9r3217" href"3rq
/a> *kaw20n_2>20>id27L33est>316" href">rq
/faacclvea13b">neg
4a> 3acclvess=")12uct>122asst_>tacpu cla13b">nask"rti1ad"+ask"rtitacpu cla13b">nesa13b">netasks 3calc load_updc">"+ase13tasks4sch=ednamtioL12> =>
a1"2051>>128
p20s3279629" cl33uct>
a hre20a13>20>55tar=a>commfadeltaa13b">neeg
4a> 3acclvess=")12uct>122asst_>tacpu cla13b">nag
4a> 3acclvess=")12uct>122asst/729f0 ?c_>1cclvea13b">neg
4a> 3acclvess=">20rx29a13b">neg">deltaa13b">ne>sXED_1 3acclvess=">20>sXED_1_list:chednamtioL12> =>
a1"20
1>>128
p20
3389629" cl3struct>llis20lli>20>289293c_pco31=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o3243L112" c3a> *
a h,&
20
a >20>989293c_pco317" href">rq
/a>load,#L42" idavenru"12avenrun"+as[2avenru"1t+c[0]t_>tacpu cla13b">nevess="ss 3calc load_updc">"+ase1olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[0] cfadeltaa13b">neEXP_1 3acclvess=">20EXP_14schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122ass=ednamtioL12> =>
a1"2051>>128
p20s3list_>tar=3>struct>lli20
ll>20
l29423nsign320" href">rq
/a>load,#L42" idavenru"12avenrun"+as[2avenru"1t+c[1]t_>tacpu cla13b">nevess="ss 3calc load_updc">"+ase1olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[1] cfadeltaa13b">neEXP_5 3acclvess=">20EXP_54schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122ass=ednamtioL12> =>
a1"2051>>128
p20s3l13L112" c3vel/static_20
 t>20
rchsn3re.c#3runsign,5olongk>deltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[2]t_>tacpu cla13b">nevess="ss 3calc load_updc">"+ase1olongfadeltaa13b">neavenru"12avenrun"+as[2avenru"1t+c[2] cfadeltaa13b">neEXP_15 3acclvess=">20EXP_154schnf">deltaa13b">neeg
4a> 3acclvess=")12uct>122ass=ednamtioL12> =>
a1"2051>>128
p20s3l23L112" c3329" cla13u20" c>20
t,3="32hre>326ck_a>struct>
a hrclas=2053>>128
p20t3tst_n39"_>33class="mp_20"13>20
129423" cla323nsign,5olongk>deltaa13b">nelvea13b">neg
4a> 3calc load_updc">"+ase13pow>134sch +_>tacpu cla13b">nqref13" h 3calc load_updqref13" h4schednamtioL12> =>
a1"202o>>128
p20
3cmot3stati3">rq
/a> *k20n_u>20
a55 =>
a1"202o>>128
p20
3c1629" cla313ef">neg
520la1>20
some 3or", 32f">s>struct>oAU4T
/3>4d*ad/ chis_wot>122ass="namtioL12> =>
a1"2054>>128
p20=3c17" href"33est poll
a20 13>20
s="sr3f">cn3
/a3a55135>ss="line" namtioL124"203o>>128
p20s3c79629" cl3ruct>sct>
u20ipi>20
55122ass="namtioL12> =>
a1"2056>>128
p20r3c89629" cl313uct>
a hr20="1>20
289293 cla132=13bL2>130che">deltaa13b">nelvesslafeh _nohz 3calc load"+askunsilafeh _nohzolong=ednamtioL12> =>
a1"2051>>128
p20s3l43L112" c3">rq
/a> *l20st_>20
ully 3en5
/3uled>fd/core.c#L137" id4e20
2>>128
p20
3"sref">cn53/a3a55 =>
a1" 9ORKERd/col9/3"wc_do_act33oL150">>5520"13>20srchsn3nadic33l/ all handlerd*ad/ across1t>122ass="namtioL12> =>
a1"2054>>128
p20=35ode=cnt" 3lass="sref"20>>5>20s25533>cn5
/a3a55 Calledh rom uow>13_kpu+ase1()eto sehiodica"verpow>13redisoCPUotatrt122ass="namtioL12> =>
a1"2054>>128
p20=35st_n39"_>3n5
/aule IP20
* >20s3onlk3_>tar33 &>15#L142"tik/*38" id3913"fw"cen we t2fr5>135>ss="line" namtioL124"203o>>128
p20s3 mot3stati3lly all/t/320
* >20s4onlk3_>tar339" cla13/sched/*_get_avenrun_>122ass="namtioL12> =>
a1"2056>>128
p20r313e629" cl3efat weaact20
* >20s5onlk3_>tar33aneernc_cd/c>1wake_get_avenrun,#lvess="ss=>st2fr5=a>stru 3calc load_updc">"+ase13>st2fr5=a>struolong href">rq neg
4a> 32his cl"+asr12ef">1258k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_3117" href"3 t/3m.5ode=20
* >20s6hre3313bL233__>tau if (
a href="+s5>20
6>>128
p20t3579629" cl3lass="sref"20
*5>20shre3=32ef">33__>tar=a>comm39" cfaacclvea13b">ng
4a> 3delta"+ase13pow>134schednamtioL12> =>
a1"2051>>128
p20s313e929" cl3nalkeadyado20
* >20s289293c_pco33=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o3/href">rq
3ode=cnt" cl20
* >20s955337" href">rq
/nlk_k_nr_acclvea13bnime_b2"o 9 32his cl"+as
/aime_b2"o 9olongo,2his cla13b">jiffi>>12nr_switches"+jiffi>>139" cfadeltaa13b">neneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134sch_a>struct>
>tar>
a1" 9"t>
id4ssr9o35ode=cnt" 3lass="sref"20
*5>20
*onlk3_>tar347" href">rq
/////////lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o35wc_do_act3eashould vi20
* >20
itel/32t =>348ck_a>ore.c#L134" id4R 20
2>>128
p20
35ode=cnt" 3fair share 20
* >20
2onlk3_>tar342" href">rq
/faacclvea13b">ng
4a> 3delta"+ase13pow>134schtt_>tacpu cla13b">nevess="ss=3b">neg
4a> 3calc load_fold_acclve"+askr=a>struct>
ata2his cla13b">neg
4a> 32his cl"+askve13pow>134shednamtioL12> =>
a1" 9"t>
id4ssr9o3 somewfat 3essimize3ef20
* >20
3onlk3_>tar34>struct>onlk_elk_k_nr_acclvea13bg
4a> 3delta"+ase13pow>134schcdnamtioL12> =>
a1" 9"t>
id4ssr9_3+5ode=cnt"3class="sref20
*+>20
sctl_33pow>34>1t+cnnruptibct>onlk_fadeltaa13b">newc_pc5512atomic_>1ad"+ask"rtict>
ata2his cla13b">g
4a> 3delta"+ase13pow>134sch, ist_>tacpu cla13b">nesa13b">netasks 3calc load_updc">"+ase13tasks4sch=ednamtioL12> =>
a1"2051>>128
p20s3+3e629" cl3a> *irq_ent20er >20
ct>
_3akeup340ched/core.c#L137" id4e"9e28
/a4
sp9r3c_pcorena_3tar=a>struc20twc>20
6"las3&_>ta346" href">rq
/faacclvea13b">nneg
4a> 32his cl"+as
/a3a55neg
4a> 3calc load_updc">"+ase13pow>134sch +_>tacpu cla13b">nqref13" h 3calc load_updqref13" h4schednamtioL12> =>
a1"202o>>128
p20
334829" cla33/sched/cor20a13>20
7t>
_3akeup3458k_ad/core.c#L137" id4e20
2>>128
p20
3c3e929" cl3lass="sref"20>>5>20
8t>
_3akeup34=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o3chref">rq
3omeone>ki7"20
* >20
ully 33bL2>34led>from its/ru*h rqref13" t>122ass="namtioL12> =>
a1"2054>>128
p20=3+5ode=cnt"3class="sref20
*+>20
*t>
_3akeup35f">EFAU4T
/3>4d*ad/ Furto3omioEndoLfolafeh rase1-averag- truff122ass="namtioL12> =>
a1"2054>>128
p20=3+wc_do_act3">rq
/a> *l20st_>20
dd/co313bL235l/ all handlerd*ad/ across1n_>122ass="namtioL12> =>
a1"2056>>128
p20r3a3a5520
t,3="32hre>356ck_a>struct>
a hrclas=2053>>128
p20t3asomewfat 31 twc_do_wa20tat>20
129423" cla32 &>15#L142"tik/*
a +cod12uct>122ass="namtioL12> =>
a1"2054>>128
p20=3+5ode=cnt"312class="mp20="1>20
a55 =>
a1"2054>>128
p20=3a3e629" cl3atic_key4">20ct>>20
some 3or", 3eaneers4o"make /*>
a +cod12uctacalc = (2^e=x _>1h / 2^e=x tacalc + 1 / 2^e=x tacur+ase1ol2ass="namtioL12> =>
a1"2054>>128
p20=3a_pcorena_3
/a>(struct20rse>20
689293c_pco35/a3a55ss="line" namtioL124"20
5>>128
p20c325829" cla32ef">neg
5a20a12>20
7chsn3re.c#35" cla13picock_/* Vari13sh rqrn-1eeicksl(as"it was"idle) andopow>13rgetsld_ale1ol2ass="namtioL12> =>
a1"2054>>128
p20=3a3e929" cl3,
a href="+20>rq>20
a hre312f">35f">EFAU4T
/3>4d////////n inaceon ntheeick wout2kpu may br busy,oad-nrweod2"e>135>ss="line" namtioL124">8s28






8 3href="+cod3=__hclass="20MPh>20
r__tr3d_rq_35led>from its/ru*    ck12o32w"acalc = ((2^e=x _>1h / 2^e=x)^(n-1) "acalc135>ss="line" namtioL124">8s28






8 3f">rq
/a> 3
a h,
a hre20ref>20re__tr3d_rq_36f">EFAU4T
/3>4d*ad/ Furto3omiocalc = (2^e=x _>1h / 2^e=x) tacalc + 1 / 2^e=x tacur+ase1ol2ass="namtioL12> =>
a1"2054>>128
p20=31empty hre3a> *
a h,
a 9ref="96dd/ce3a> q_36l/ all handlerd*ad/ across1n_ol2ass="namtioL12> =>
a1"2054>>128
p20=313a55cn5
/a3a55 decay+ase13mishec() brlow do3shefficiu cr1alcul>1f13st.ol2ass="namtioL12> =>
a1"2054>>128
p20=31somewfat 3>
a hre
a hr9f="+a961294>3>
aq_36 &>15#L142"tik/*38" id3913"f"acalc = ((2^e=x _>1h / 2^e=x)^(n-1) "acalc135>ss="line" namtioL124">8s28






8 3f5ode=cnt"3truct>u6ck_a9sa> 496a551h / 2^e=x) "acalc135>ss="line" namtioL124">8s28






8 3f3e629" cl3truct>u6ck_a9sa> 496ct>
s3truq_36aneers4o"make /*_  2again, b_ol2ass="namtioL12> =>
a1"2054>>128
p20=31_pcorena_32 &>15#L142"9ik__>96twc_c32 &q_31/a3a551f13s2onnpproxim>13deon a 128 poef">s1ale>135>ss="line" namtioL124"203o>>128
p20s365829" cla3_PINNEtruct>9eltaa96 hrea3_PIq_31" cla13picock_c*_@shift:____> degrade_zero_eickslisiThenn, to3oLfoeickslafoad whih> calc at ann135>ss="line" namtioL124">9s=>rtsk_ne9 3f
/a> *
a 3tar=a>struct9
a hr96 id3 3tarq_36f">EFAU4T
/3>4d////////n inacepareicul>rde=x 2onnpproxim>13deto br zero>135>ss="line" namtioL124"203o>>128
p20s36ref="+cod3a55from its/ru*    ck12o32w"adegrade_factrqr2onn preromph rdeta ac,nn row  rqreah> calc e=x>135>ss="line" namtioL124"203o>>128
p20s37">rq
/a> 3l/_ava_>tar=9>stru97p. I 3l/_> 37f">EFAU4T
/3>4d*ad/ Furto3omioEah> colum
/3orresponssoaoadegrad>1f13sfactrqr rqraopowasaLfoewooeicks,135>ss="line" namtioL124"20
7>>128
p20i37empty hre3ruct>
a hre
9 href97rchse3ruc> 37l/ all handlerd*ad/ across12o3basedeon 128 poef">s1ale>135>ss="line" namtioL124"203o>>128
p20s373a55 */497 clar3329> 37>cn5
/a3a55 Example>135>ss="line" namtioL124">8s28






8 3lic_key4">3" cla12class9"line971294>3" c> 37 &>15#L142"tik/*38" id3913"f"arow 2, col 3 (=12) saysiTha>2ad-aehgrad>1f13sa>2calc e=x 2lafoad135>ss="line" namtioL124">8s28






8 3l5ode=cnt"312sptik__csd9pclas97a55 379" cla13/sched/*_get_avenrun*n8 eickslisi12/128 (whih> i>ae pnpproxim>1f13st.qyxa>shfactrqr3^8/4^8)>135>ss="line" namtioL124"203o>>128
p20s373e629" cl32L180">>140
93t4 <97somes32L1> 37aneers4o"make /*_  2again, b_ol2ass="namtioL12> =>
a1"2054>>128
p20=37mptlcurrc32 729" cla129ck_le97s="sc32 7> 37/a3a55>128
p20=375829" cla3>>1 twc_do_a9tivel9755>1> 37" cla13picock_c*_@shift:____> byelookl loat 1 bitssin n andodol loas"mqfy mult/shiftsinsteadst.ol2ass="namtioL12> =>
a1"2054>>128
p20=3l
/a> *
a 312oL158" cla9s="li972892 312o> 37f">EFAU4T
/3>4d////////n inacen mult/shiftsca dith rq"td-ayxa>shehgrad>1f13>135>ss="line" namtioL124"203o>>128
p20s37ref="+cod3=__hclass="S9Psar"97ullyd3=__> 37led>from its/ru*    ck12o32w">122ass="namtioL12> =>
a1"2056>>128
p20r38">rq
/a> 3
a h,
a href9"+ask98p. I 3
a > 384sche#eh rqe>tacpu cla13b">nDEGRADE_SHIFT 3acclvess=">20DEGRADE_SHIFT1t+cnnruptibct>7"namtioL12> =>
a1"2056>>128
p20r38empty hre3ruct>
a hre
9 href98rchse3ruc> 38unsignc_cd/cconstccore.c#L1char"namtioL12> =>
a1"2056>>128
p20r383a55t9r=15698 clar3" c> 382" href">rq
/////////fadeltaa13b">nedegrade_zero_eicks 3delta"+ase13powgrade_zero_eicks1t+c[fadeltaa13b">neCPU_qref1IDX_MAX 3delta"+ase13pCPU_qref1IDX_MAX1t+c]t_>{0, 8, 32, 64, 128}ednamtioL12> =>
a1"202o>>128
p20
38ic_key4">32nt"> */4/sp9)4832nt> 383nsignc_cd/cconstccore.c#L1char"namtioL12> =>
a1"2056>>128
p20r385ode=cnt"3key4">>1 twc9activ98a55 38>1t+cnnruptibct>onlk_fadeltaa13b">nedegrade_factrq 3delta"+ase13powgrade_factrq1t+c[fadeltaa13b">neCPU_qref1IDX_MAX 3delta"+ase13pCPU_qref1IDX_MAX1t+c][fadeltaa13b">neDEGRADE_SHIFT 3acclvess=">20DEGRADE_SHIFT1t+cn+ 1]t_>{"namtioL12> =>
a1"2056>>128
p20r383e629" cl3_key4">>1 tw9_do_w98somes3_ke> 3851t+cnnruptibct>onlk_struct>ooooooooooooooooo{0, 0, 0, 0, 0, 0, 0, 0}n"namtioL12> =>
a1"2057>>128
p20a38mptlcurrc312f">EFAU4T
93>4 <98s="sc312f> 38__>tar=aruptiblc hrefstruct>ooooooooooooooooo{64, 32, 8, 0, 0, 0, 0, 0}n"namtioL12> =>
a1"2057>>128
p20a385829" cla32L206">>406
9>48 38__>tar=a>commenc_cd/cstruct>ooooooooooooooooo{96, 72, 40, 12, 1, 0, 0}n"namtioL12> =>
a1"2057>>128
p20a38
/a> *
a 3ef">cn5
/a3a95 38=13bL2>130chestruct>ostruct>ooooooooooooooooo{112, 98, 75, 43, 15, 1, 0}n"namtioL12> =>
a1"2057>>128
p20a38ref="+cod3stcla/@p isn9ss="o98ullyd3stc> 389" href">rq
/////////struct>ooooooooooooooooo{120, 112, 98, 76, 45, 16, 2} }ednamtioL12> =>
a1"202o>>128
p20
39">rq
/a> 3st do a remo93 wak99p. I 3st > 394schednamtioL12> =>
a1" 9ORKERd/col9/39empty hre34o"do asnfli9/p
a 99rchse34o"> 3sl/ all handlerd*ad/ did12o3t>122ass="namtioL12> =>
a1"2054>>128
p20=393a55 3s>cn5
/a3a55qUow>13rkpu+ase1r rqrafy mishecoeicks, duestriTickless"idle.+Td-abacklo34s2ass="namtioL12> =>
a1"2054>>128
p20=39ic_key4">3ref">cn5
/a39553ref> 3s &>15#L142"tik_*renad/  \Sum_iwould br wout2CPU2is"idle andoso ticjust decay"td-ao a ase1rwithou>135>ss="line" namtioL124"20
8>>128
p20=3925529" cl3_key4">>1 tw9_remo99a55 3s9" cla13/sched/*____This_placeadtl loafy iew3ase1>135>ss="line" namtioL124"203o>>128
p20s39
_wakeups312f">EFAU4T
93a4 <99somes312f> 3saneers4o"make d*
a +cod12uct>>122ass="namtioL12> =>
a1"2056>>128
p20r39mptlcurrc3112" clas &_9tar=a99s="sc3112> 3s/a3a5nc_cd/c12uct>122ass="namtioL12> =>
a1"2057>>128
p20a395829" cla3>"reo hre3
39it" c9955"r> 3s" cla1adeltaa13b">nedecay+ase13mishec 3delta"+ase13powcay+ase13mishecct>
acore.c#L139" cfaacclvea13b">n5">>12loadss="tiunsign,5olongcore.c#L139" cfaexp1TASK_RUNNmishec3pow>13s 3delta"+ase13pmishec3pow>13s5olongef">rqitrL42" id5">idx 3calc load_accidx_liscdnamtioL12> =>
a1" 9"t>
id4ssr9_39
/a> *
a 32/sched/core9c#L13992892 32/s> 3sf">EF{"namtioL12> =>
a1"2056>>128
p20r39ref="+cod3as &
3>5 rq
/nf">rqitrL42" id5">j12nr_switches"+j" hre=chednamtioL12> =>
a1"20
1>>128
p20
4>>3L112" c4as &
3>5 >20ao89294 cla1404schednamtioL12> =>
a1" 9ORKERd/col9/4>13L112" c4ao"do asnfli9/p
a 99rchse4nd up40unsign,5olongelk_!o,2his cla13b">mishec3pow>13s 3delta"+ase13pmishec3pow>13s5olocdnamtioL12> =>
a1" 9"t>
id4ssr9_4e23L112" c4aa hronlk_.59de=cn99 clar4="sre402" href">rq
/////////lc href">deltaa13b">ne5">>12loadss="tiunsign,5oloednamtioL12> =>
a1"20
1>>128
p20
4>33L112" c4aef">cn5
/a39554" cla40 &>15dnamtioL12> =>
a1"2051>>128
p20s4emot3stati4_key4">>1 t20are>20aa551t+cnnruptibelk_k_nr_acclvea13bmishec3pow>13s 3delta"+ase13pmishec3pow>13s5olo /729k_k_exp1TASK_RUNNdegrade_zero_eicks 3delta"+ase13powgrade_zero_eicks1t+c[fadeltaa13b">neidx 3calc load_accidx_lis]cdnamtioL12> =>
a1" 9"t>
id4ssr9_4e5ot3stati4_2f">EFAU4T
93a4 <99somes4or", 4051t+cnnruptibct>onlk_lc href0;dnamtioL12> =>
a1" 9"t>
id4ssr9_4e6ot3stati4_12" clas &_9tar=a99s="sc4f">cn402sched/cor
>tar=a>struc20>7>>128
p20a4e7ot3stati4_"reo hre3
39it" c9955tar=a>commelk_k_nr_acclvea13bidx 3calc load_accidx_lis == 1cdnamtioL12> =>
a1" 9"t>
id4ssr9_4e8ot3stati4_/sched/core9c#L13992892 4 cla140=13bL2>130chestruct>olc href">deltaa13b">ne5">>12loadss="tiunsign,5olot/729/729cfaexp1TASK_RUNNmishec3pow>13s 3delta"+ase13pmishec3pow>13s5olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_4e9ot3stati4_s &
3>5 >128
p20
4_ twc_pcor4na_>tar=a>s20>
_>20>
lly 4en5
/417" href">rq
/while _k_nr_acclvea13bmishec3pow>13s 3delta"+ase13pmishec3pow>13s5oloapu if (
a href="+s5>20
6>>128
p20t4113L112" c413
a hreask20="1>20>rchsn4nd up411_>tar=a>commenc_cd/celk_k_nr_acclvea13bmishec3pow>13s 3delta"+ase13pmishec3pow>13s5olo /#37; 2cdnamtioL12> =>
a1" 9"t>
id4ssr9_4_23L112" c4112" clas &205#L>20> clas4="sre412" href">rq
/////////////////">deltaa13b">ne5">>12loadss="tiunsign,5olot=k_k_nr_acclvea13b5">>12loadss="tiunsign,5oloteg">deltaa13b">nedegrade_factrq 3delta"+ase13powgrade_factrq1t+c[fadeltaa13b">neidx 3calc load_accidx_lis][fadeltaa13b">nej12nr_switches"+j" hr])t/729/729cfaexp1TASK_RUNNDEGRADE_SHIFT 3acclvess=">20DEGRADE_SHIFT1t+c;dnamtioL12> =>
a1" 9"t>
id4ssr9_4ist_n39"_>4ar=a>struct20lli>20>129424" cla41 &>15dnamtioL12> =>
a1"2051>>128
p20s4imot3stati4
/a>(struct20cla>20>a551t+cnnruptibct>onlk_fadeltaa13b">nemishec3pow>13s 3delta"+ase13pmishec3pow>13s5olo /729/729k_1ednamtioL12> =>
a1" 9"t>
id4ssr9_431629" cla43       
a 20
13>20>some 4or", 4151t+cnnruptibct>onlk_fadeltaa13b">nej12nr_switches"+j" hr++ednamtioL12> =>
a1" 9"t>
id4ssr9_4217" href"4rq
/a> *kaw20n_2>20>id27L43est>416" href">rq
/d/core.c#L137" id4e20
2>>128
p20
4279629" cl43uct>
a hre20a13>20>55tar=a>commlc href">deltaa13b">ne5">>12loadss="tiunsign,5oloednamtioL12> =>
a1"20
1>>128
p20
4389629" cl4struct>llis20lli>20>289294c_pco41f">EFd/core.c#L137" id4e20
2>>128
p20
4243L112" c4a> *
a h,&
20
a >20>989294c_pco410ched/core.c#L137" id4e205o>>128
p20
4list_>tar=4>struct>lli20
ll>20
l29424nsign42ted>from its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=4l13L112" c4vel/static_20
 t>20
rchsn4re.c#42l/ all handlerd*ad/ did12o32w"Uow>13rrq3/729kpu+ase1[] nc_cdseics.+Td titunc1f13s2onusua"verd_ale1 avo3y122ass="namtioL12> =>
a1"2054>>128
p20=4l23L112" c4329" cla13u20" c>20
t,3="42hre>42>cn5
/a3a55 "2054ulad aick (TICK_NSEC).+Witheeickless"idleeedisowill not br d_ale1ol2ass="namtioL12> =>
a1"2054>>128
p20=4tst_n39"_>43class="mp_20"13>20
129424" cla42 &>15#L142"tik/*38" id3913"fw"avo3yeeick.+W- fix"it up3basedeon jiffi>>>135>ss="line" namtioL124"203o>>128
p20s4cmot3stati4">rq
/a> *k20n_u>20
a55122ass="namtioL12> =>
a1"2056>>128
p20r4c1629" cla413ef">neg
520la1>20
some 4or", 42aneernc_cd/c>1wake_get_avenrun,#__uow>13_kpu+ase112loadss="tiuns__uow>13_kpu+ase1ct>
a href">rq neg
4a> 32his cl"+asr12ef">1258k_ngcore.c#L139" cfaexp1TASK_RUNN2ef">ase112loadss="tiuns2ef">ase158k_n"namtioL12> =>
a1"2056>>128
p20r4c17" href"43est poll
a20 13>20
s="sr4f">cn42__>tar=aruptiblc hrefstruct>ooooooocore.c#L139" cfaexp1TASK_RUNNpen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olocdnamtioL12> =>
a1" 9"t>
id4ssr9_4c79629" cl4ruct>sct>
u20ipi>20
55
a hr20="1>20
289294 cla142=13bL2>130cheef">rqitrL42" id5">i 3calc load_acci58k_ngrqitrL42" id5">s1ale 3calc load_accs1ale5oloednamtioL12> =>
a1"20
1>>128
p20
4l43L112" c4">rq
/a> *l20st_>20
ully 4en5
/420ched/core.c#L137" id4e205o>>128
p20
4"sref">cn54/a3a55rq
/a>load,#L42" idneg
4a> 32his cl"+as
/a3a5513s 3delta"+ase13pnr+ase13pow>13s" hr++ednamtioL12> =>
a1" 9"t>
id4ssr9_4"wc_do_act43oL150">>5520"13>20srchsn4nadic438ck_a>ore.c#L134" id4R 20
2>>128
p20
45ode=cnt" 4lass="sref"20>>5>20s255432" href">rq
/f Uow>13rourease1:n_>122ass="namtioL12> =>
a1"2056>>128
p20r45st_n39"_>4n5
/aule IP20
* >20s3onlk4_>tar433nsign,5olongk>deltaa13b">neneg
4a> 32his cl"+as
/a3a55n2ef">ase112loadss="tiuns2ef">ase158k_;/f Fasttrack  rqre=x 0n_>122ass="namtioL12> =>
a1"2056>>128
p20r45mot3stati4lly all/t/320
* >20s4onlk4_>tar43>1t+cnnruptib rqr_k_nr_acclvea13bi 3calc load_acci58k_t= 1ngrqitrL42" id5">s1ale 3calc load_accs1ale5olot= 29cfaexp1TASK_RUNNi 3calc load_acci58k_t&l29cfaexp1TASK_RUNNCPU_qref1IDX_MAX 3delta"+ase13pCPU_qref1IDX_MAX1t+c9cfaexp1TASK_RUNNi 3calc load_acci58k_++ngrqitrL42" id5">s1ale 3calc load_accs1ale5olot+_>tacpu cla13b">ns1ale 3calc load_accs1ale5oloapu if (
a href="+s5>20
6>>128
p20t413e629" cl4efat weaact20
* >20s5onlk4_>tar4351t+cnnruptibct>onlk_core.c#L139" cfaexp1TASK_RUNNskr=ase112loadss="tiunsskr=ase158k_ngrqitrL42" id5">new=ase112loadss="tiunsnew=ase15oloednamtioL12> =>
a1"20
1>>128
p20
4117" href"4 t/3m.5ode=20
* >20s6hre3413bL2432sched/cor
>tar=a>struc20>7>>128
p20a4579629" cl4lass="sref"20
*5>20shre3=42ef">43__>tar=a>commenc_cd/cf s1ales2oneffe>struver1t&l29&l29ci now, ando/729/729ci divides rq"s1ales_>122ass="namtioL12> =>
a1"2056>>128
p20r4589629" cl4nalkeadyado20
* >20s289294c_pco43=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o4/href">rq
4ode=cnt" cl20
* >20s955439" href">rq
/////////fadeltaa13b">neskr=ase112loadss="tiunsskr=ase158k_t_>tacpu cla13b">n2ef">a> 32his cl"+as
/a3a55>128
p20
45ode=cnt" 4lass="sref"20
*5>20
*onlk4_>tar447" href">rq
/////////fadeltaa13b">neskr=ase112loadss="tiunsskr=ase158k_t_>tacpu cla13b">ndecay+ase13mishec 3delta"+ase13powcay+ase13mishecct>
afaexp1TASK_RUNNskr=ase112loadss="tiunsskr=ase158k_ngrqitrL42" id5">pen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olo _>1ngrqitrL42" id5">i 3calc load_acci58k_=ednamtioL12> =>
a1"2051>>128
p20s45wc_do_act4eashould vi20
* >20
itel/42t =>441_>tar=a>commenc_cd/c">deltaa13b">nenew=ase112loadss="tiunsnew=ase15olot_>tacpu cla13b">n2ef">ase112loadss="tiuns2ef">ase158k_;dnamtioL12> =>
a1"2051>>128
p20s45ode=cnt" 4fair share 20
* >20
2onlk4_>tar442" href">rq
/////////fom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=4 somewfat 4essimize3ef20
* >20
3onlk4_>tar44 &>15#L142"tik_*renad/  \Sumssssssssssssssss* R2frd up3ed-aaveragl lodivisf13s2f2calc essincreahl l.+Td t122ass="namtioL12> =>
a1"2054>>128
p20=4 mot3stati4class="sref20
*+>20
sctl_43pow>449" cla13/sched/*h rqref13" hssssssssssssssss* prevf13onush rom gettl lostuck 13s9s2f2ag9"aalc isi10_2tod135>ss="line" namtioL124">8s28






8 4+3e629" cl4a> *irq_ent20er >20
ct>
_4akeup44aneers4o"make /*_  2again, bssssssssssssssss* example>135>ss="line" namtioL124"203o>>128
p20s4c_pcorena_4tar=a>struc20twc>20
6"las4&_>ta44/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r434829" cla43/sched/cor20a13>20
7t>
_4akeup44__>tar=a>commenc_cd/celk_k_nr_acclvea13bnew=ase112loadss="tiunsnew=ase15olot/729cfaexp1TASK_RUNNskr=ase112loadss="tiunsskr=ase158k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_4c3e929" cl4lass="sref"20>>5>20
8t>
_4akeup44=13bL2>130chestruct>ostruct>ok_nr_acclvea13bnew=ase112loadss="tiunsnew=ase15olot+_>tacpu cla13b">ns1ale 3calc load_accs1ale5olo _>1;dnamtioL12> =>
a1"2051>>128
p20s45href">rq
4omeone>ki7"20
* >20
ully 43bL2>440ched/core.c#L137" id4e205o>>128
p20
4+5ode=cnt"4class="sref20
*+>20
*t>
_4akeup457" href">rq
/////////fadeltaa13b">ne2ef">a> 32his cl"+as
/a3a551) +ok_nr_acclvea13bnew=ase112loadss="tiunsnew=ase15olo)t/729/729cfaexp1TASK_RUNNi 3calc load_acci58k_;dnamtioL12> =>
a1"2051>>128
p20s4+wc_do_act4">rq
/a> *l20st_>20
dd/co413bL2451_>tar=a>commd/core.c#L137" id4e20
2>>128
p20
4a3a5520
t,3="42hre>456ck_a>struct>
a hrclas=2053>>128
p20t4asomewfat 41 twc_do_wa20tat>20
129424" cla453nsign,5olongk>deltaa13b">ne=2053_avgneg
4a> 3calc load_upd=2053_avgneg
4a>ct>
afaexp1TASK_RUNNneg
4a> 32his cl"+askve13pow>134shednamtioL12> =>
a1" 9"t>
id4ssr9o4+5ode=cnt"412class="mp20="1>20
a55>128
p20
4a3e629" cl4atic_key4">20ct>>20
some 4or", 450ched/core.c#L137" id4e"9e28
/a4
sp9r4a_pcorena_4
/a>(struct20rse>20
689294c_pco45/a3a5#ifdefcfaexp1TASK_RUNNCONFIG_qfor  3delta"+ase13pCONFIG_qfor ched/core.c#L137" id4e"9e28
/a4
sp9r4a4829" cla42ef">neg
5a20a12>20
7chsn4re.c#45" cla13picock_/* Vari122ass="namtioL12> =>
a1"2054>>128
p20=4a3e929" cl4,
a href="+20>rq>20
a hre412f">45f">EFAU4T
/3>4d////////n inaceTheres2onno sane way"toadealrwith nohz 13ssmp wout2uhl lojiffi>> bwcause aqr122ass="namtioL12> =>
a1"2054>>128
p20=4href="+cod4=__hclass="20MPh>20
r__tr4d_rq_45led>from its/ru*    ck12o32w"akpu dol loag9"jiffi>> pow>13rmight driftswr>2ad-akpu dol loag9"jiffyrtersl l122ass="namtioL12> =>
a1"2054>>128
p20=4f">rq
/a> 4
a h,
a hre20ref>20re__tr4d_rq_46f">EFAU4T
/3>4d*ad/ Furto3omiocausl looff-by-one errorssin observed ow>13s;o{0,2}sinsteadst. {1,1}>135>ss="line" namtioL124"203o>>128
p20s41empty hre4a> *
a h,
a 9ref="96dd/ce4a> q_46l/ all handlerd*ad/ across1n_ol2ass="namtioL12> =>
a1"2054>>128
p20=413a55cn5
/a3a55 There"o 9 ticke not use aqr ow>13pnpproah>  rom aqr regul>rdaick sl ceiTha>135>ss="line" namtioL124"20
8>>128
p20=41somewfat 4>
a hre
a hr9f="+a961294>4>
aq_46 &>15#L142"tik/*38" id3913"f"awould sehiously skew3eg9"aalc 1alcul>1f13. Howavo3oweotatrll measedob rqrthosr122ass="namtioL12> =>
a1"2054>>128
p20=4f5ode=cnt"4truct>u6ck_a9sa> 496a5513shhnppenl lowhile idlee(nohznidle_bala ce) rqret_l looutst. idleol2ass="namtioL12> =>
a1"2054>>128
p20=4f3e629" cl4truct>u6ck_a9sa> 496ct>
s4truq_46aneers4o"make /*_  2again, b_ (aick_nohznidle_exit)>135>ss="line" namtioL124"203o>>128
p20s41_pcorena_42 &>15#L142"9ik__>96twc_c42 &q_41/a3a55ss="line" namtioL124"203o>>128
p20s414829" cla4_PINNEtruct>9eltaa96 hrea4_PIq_41" cla13picock_c*_@shift:____> Td timeans ticmight still be one aick offh rqrnohz sehiod>>135>ss="line" namtioL124"203o>>128
p20s4f
/a> *
a 4tar=a>struct9
a hr96 id3 4tarq_46f">EFAU4T
/3>4d////////n inac>122ass="namtioL12> =>
a1"2056>>128
p20r46ref="+cod4a55>128
p20
47">rq
/a> 4l/_ava_>tar=9>stru97p. I 4l/_> 47f">EFAU4T
/3>4d*ad/ Furto3ot>122ass="namtioL12> =>
a1"2054>>128
p20=47empty hre4ruct>
a hre
9 href97rchse4ruc> 47l/ all handlerd*ad/ across12o3Calledh rom nohznidle_bala ce()eto pow>13red-aaalc ratl ls be"o 9 dol loag9122ass="namtioL12> =>
a1"2054>>128
p20=473a55 */497 clar4329> 47>cn5
/a3a55 idleebala ce>135>ss="line" namtioL124"203o>>128
p20s4lic_key4">4" cla12class9"line971294>4" c> 47 &>15#L142"tik/*38" id3913"f">122ass="namtioL12> =>
a1"2056>>128
p20r4l5ode=cnt"412sptik__csd9pclas97a55 479" cl>1wake_get_avenrun,#uow>13_idle_lpu+ase112loadss="tiunsuow>13_idle_lpu+ase1ct>
a href">rq neg
4a> 32his cl"+asr12ef">1258k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_473e629" cl42L180">>140
93t4 <97somes42L1> 47aneeru if (
a href="+s5>20
6>>128
p20t47mptlcurrc42 729" cla129ck_le97s="sc42 7> 47__>tar=arupticore.c#L139" cfaexp1TASK_RUNNcurr_jiffi>>12nr_switches"+curr_jiffi>>5olot_>tacpu cla13b">nACCESS_ONCE12nr_switches"+ACCESS_ONCEct>
afaexp1TASK_RUNNjiffi>>12nr_switches"+jiffi>>139"hednamtioL12> =>
a1" 9"t>
id4ssr9o475829" cla4>>1 twc_do_a9tivel9755>1> 477_>tar=arupticore.c#L139" cfaexp1TASK_RUNN5">>12loadss="tiunsign,5olot=kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a55>12loadss="tiunsign,5olo." calc load_accweight12loadss="tiunsweight58k_;dnamtioL12> =>
a1"2051>>128
p20s4l
/a> *
a 412oL158" cla9s="li972892 412o> 47=13bL2>130checore.c#L139" cfaexp1TASK_RUNNpen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olo;dnamtioL12> =>
a1"2051>>128
p20s4lref="+cod4=__hclass="S9Psar"97ullyd4=__> 470ched/core.c#L137" id4e205o>>128
p20
48">rq
/a> 4
a h,
a href9"+ask98p. I 4
a > 480" href">rq
/aU4T
/3>4d*ad/ Furto3ot>122ass="namtioL12> =>
a1"2054>>128
p20=48empty hre4ruct>
a hre
9 href98rchse4ruc> 48l/ all handlerd*ad/ across12ssssssss*ebails2f2ag9reotatrsaaalc o3oweotatr 9 actua"verpo-to-w>13>135>ss="line" namtioL124"203o>>128
p20s483a55t9r=15698 clar4" c> 4
>cn5
/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r48ic_key4">42nt"> */4/sp9)4842nt> 48>struct>onlk_elk_k_nr_acclvea13b5">>12loadss="tiunsign,5olot||cfaexp1TASK_RUNNcurr_jiffi>>12nr_switches"+curr_jiffi>>5olot_=kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_485ode=cnt"4key4">>1 twc9activ98a55 48>1t+cnnruptibct>onlk_lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o483e629" cl4_key4">>1 tw9_do_w98somes4_ke> 480ched/core.c#L137" id4e"9e28
/a4
sp9r48mptlcurrc412f">EFAU4T
93>4 <98s="sc412f> 486" href">rq
/faacclvea13b">npen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olo _>tacpu cla13b">neurr_jiffi>>12nr_switches"+curr_jiffi>>5olot-kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o485829" cla42L206">>406
9>48 48__>tar=a>commfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_ _>tacpu cla13b">neurr_jiffi>>12nr_switches"+curr_jiffi>>5oloednamtioL12> =>
a1" 9"t>
id4ssr9o48
/a> *
a 4ef">cn5
/a3a95 48=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o48ref="+cod4stcla/@p isn9ss="o98ullyd4stc> 487" href">rq
/a>load,#L42" id__uow>13_kpu+ase112loadss="tiuns__uow>13_kpu+ase1ct>
afadeltaa13b">ne2ef">a> 32his cl"+as
/a3a555">>12loadss="tiunsign,5olongfaacclvea13b">npen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olohednamtioL12> =>
a1" 9"t>
id4ssr9o49">rq
/a> 4st do a remo93 wak99p. I 4st > 49>1t+cd/core.c#L137" id4e"9e28
/a4
sp9r49empty hre44o"do asnfli9/p
a 99rchse44o"> 498ck_a>ore.c#L134" id4R 20
2>>128
p20
493a55 4s>cn5
/a3a55122ass="namtioL12> =>
a1"2054>>128
p20=49ic_key4">4ref">cn5
/a39554ref> 4s &>15#L142"tik_*renad/  \Sum_iCalledh rom aick_nohznidle_exit()e-- try andofix"up3ed-aeickslticmishec>135>ss="line" namtioL124"203o>>128
p20s4925529" cl4_key4">>1 tw9_remo99a55 4s9" cla13/sched/*____This_plac>122ass="namtioL12> =>
a1"2056>>128
p20r49
_wakeups412f">EFAU4T
93a4 <99somes412f> 4saneer>1wake_get_avenrun,#uow>13_kpu+ase1_nohz 3calc load"+asuow>13_kpu+ase1_nohzct>
a58k_a"namtioL12> =>
a1"2056>>128
p20r49mptlcurrc4112" clas &_9tar=a99s="sc4112> 49__>tau if (
a href="+s5>20
6>>128
p20t495829" cla4>"reo hre3
39it" c9955"r> 49__>tar=a>comm href">rq neg
4a> 32his cl"+asr12ef">1258k_t=kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a55 =>
a1"2051>>128
p20s49
/a> *
a 42/sched/core9c#L13992892 42/s> 49=13bL2>130checore.c#L139" cfaexp1TASK_RUNNcurr_jiffi>>12nr_switches"+curr_jiffi>>5olot_>tacpu cla13b">nACCESS_ONCE12nr_switches"+ACCESS_ONCEct>
afaexp1TASK_RUNNjiffi>>12nr_switches"+jiffi>>139"hednamtioL12> =>
a1" 9"t>
id4ssr9o49ref="+cod4as &
3>5 rq
/core.c#L139" cfaexp1TASK_RUNNpen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olo;dnamtioL12> =>
a1"2051>>128
p20s5>>3L112" c5as &
3>5 >20ao89295 cla1504schednamtioL12> =>
a1" 9ORKERd/col9/5>13L112" c5ao"do asnfli9/p
a 99rchse5nd up50unsign,5olongelk_faexp1TASK_RUNNcurr_jiffi>>12nr_switches"+curr_jiffi>>5olot_=kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_5e23L112" c5aa hronlk_.59de=cn99 clar5="sre502" href">rq
/////////lc hre;dnamtioL12> =>
a1"2051>>128
p20s5>33L112" c5aef">cn5
/a39555" cla50 &>15dnamtioL12> =>
a1"2051>>128
p20s5emot3stati5_key4">>1 t20are>20aa551t+cnnruptibrq 
aist_>tacpu cla13b">n2ef">a> 32his cl"+as
/a3a55
id4ssr9o5e5ot3stati5_2f">EFAU4T
93a4 <99somes5or", 5051t+cnnruptibfaacclvea13b">npen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olo _>tacpu cla13b">neurr_jiffi>>12nr_switches"+curr_jiffi>>5olot-kfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o5e6ot3stati5_12" clas &_9tar=a99s="sc5f">cn506nsign,5olongelk_faexp1TASK_RUNNpen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olohpu if (
a href="+s5>20
6>>128
p20t5e7ot3stati5_"reo hre3
39it" c9955tar=a>commenc_cd/cfadeltaa13b">ne2ef">a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_ _>tacpu cla13b">neurr_jiffi>>12nr_switches"+curr_jiffi>>5oloednamtioL12> =>
a1" 9"t>
id4ssr9o5e8ot3stati5_/sched/core9c#L13992892 5 cla150=13bL2>130chestruct>o/a3a55122ass="namtioL12> =>
a1"2054>>128
p20=5e9ot3stati5_s &
3>5  =>
a1"2054>>128
p20=5_ twc_pcor5na_>tar=a>s20>
_>20>
lly 5en5
/51f">EFAU4T
/3>4d*ad/ Furto3omwwwwwwwwwwwwwwww*+!0 duestriremote wakeups andoad-asor5>135>ss="line" namtioL124"203o>>128
p20s5113L112" c513
a hreask20="1>20>rchsn5nd up51l/ all handlerd*ad/ across12sssssssswwwwwwww*>122ass="namtioL12> =>
a1"2056>>128
p20r5_23L112" c5112" clas &205#L>20> clas5="sre512" href">rq
/////////a>load,#L42" id__uow>13_kpu+ase112loadss="tiuns__uow>13_kpu+ase1ct>
afadeltaa13b">ne2ef">a> 32his cl"+as
/a3a55npen/pre3pow>13s 3delta"+ase13ppen/pre3pow>13s5olohednamtioL12> =>
a1" 9"t>
id4ssr9o5ist_n39"_>5ar=a>struct20lli>20>129425" cla51>struct>onlk_d/core.c#L137" id4e"9e28
/a4
sp9r5imot3stati5
/a>(struct20cla>20>a551t+cnnruptibrq 
aist_>tacpu cla13b">n2ef">a> 32his cl"+as
/a3a55
id4ssr9o531629" cla53       
a 20
13>20>some 5or", 5151t+cd/core.c#L137" id4e"9e28
/a4
sp9r5i6ot3stati5rq
/a> *kaw20n_2>20>id27L53est>516" hr#en/pfcf CONFIG_qfor w*>122ass="namtioL12> =>
a1"2056>>128
p20r5_7ot3stati53uct>
a hre20a13>20>55ta"namtioL12> =>
a1"2056>>128
p20r5_8ot3stati5struct>llis20lli>20>289295c_pco51f">EFAU4T
/3>4d////////n int>122ass="namtioL12> =>
a1"2054>>128
p20=5243L112" c5a> *
a h,&
20
a >20>989295c_pco51led>from its/ru*    ck12o32w"aCalledh rom "2054ulad_eick()122ass="namtioL12> =>
a1"2054>>128
p20=5list_>tar=5>struct>lli20
ll>20
l29425nsign52ted>from its/ru*    ck12o32w*>122ass="namtioL12> =>
a1"2056>>128
p20r5l13L112" c5vel/static_20
 t>20
rchsn5re.c#52unsignc_cd/c>1wake_get_avenrun,#uow>13_kpu+ase1_eg
4a> 3calc load_foluow>13_kpu+ase1_eg
4a>ct>
a href">rq neg
4a> 32his cl"+asr12ef">1258k_cdnamtioL12> =>
a1" 9"t>
id4ssr9_5l23L112" c5329" cla13u20" c>20
t,3="52hre>52>cn5
u if (
a href="+s5>20
6>>128
p20t5tst_n39"_>53class="mp_20"13>20
129425" cla523nsign,5olongkU4T
/3>4d////////n int>122ass="namtioL12> =>
a1"2054>>128
p20=5cmot3stati5">rq
/a> *k20n_u>20
a5513_idle_lpu+ase1(h / uow>13_kpu+ase1_nohz()>135>ss="line" namtioL124"203o>>128
p20s5c1629" cla513ef">neg
520la1>20
some 5or", 52aneers4o"make /*_  2again, bssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r5l6ot3stati53est poll
a20 13>20
s="sr5f">cn526" href">rq
/faacclvea13b">nneg
4a> 32his cl"+as
/a3a5513_eick12loadss="tiunsiast+ase13pow>13_eick58k_ _>tacpu cla13b">njiffi>>12nr_switches"+jiffi>>139"ednamtioL12> =>
a1" 9"t>
id4ssr9o5c79629" cl5ruct>sct>
u20ipi>20
55tar=a>commfadeltaa13b">ne__uow>13_kpu+ase112loadss="tiuns__uow>13_kpu+ase1ct>
afadeltaa13b">ne2ef">a> 32his cl"+as
/a3a552ef">a> 32his cl"+as
/a3a55>12loadss="tiunsign,5olo." calc load_accweight12loadss="tiunsweight58k_, 1hednamtioL12> =>
a1" 9"t>
id4ssr9o5c89629" cl513uct>
a hr20="1>20
289295 cla152=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o5l43L112" c5">rq
/a> *l20st_>20
ully 5en5
/527" href">rq
/a>load,#L42" idlvess="ss=>st2fr5=a>stru 3calc load_updc">"+ase13>st2fr5=a>struolongsl2his cla13b">neg
4a> 32his cl"+asr12ef">1258k_cednamtioL12> =>
a1" 9"t>
id4ssr9o5"sref">cn55/a3a551t+cd/core.c#L137" id4e"9e28
/a4
sp9r5"wc_do_act53oL150">>5520"13>20srchsn5nadic538ck_a>ore.c#L134" id4R 20
2>>128
p20
55ode=cnt" 5lass="sref"20>>5>20s255532" hr#ifdefcfaexp1TASK_RUNNCONFIG_SMP 32his cl"+asr1CONFIG_SMPck_a>ore.c#L134" id4R 20
2>>128
p20
55st_n39"_>5n5
/aule IP20
* >20s3onlk5_>tar53 &>15dnamtioL12> =>
a1"2051>>128
p20s55mot3stati5lly all/t/320
* >20s4onlk5_>tar539" cla13/sched/*_get_avenrut>122ass="namtioL12> =>
a1"2054>>128
p20=513e629" cl5efat weaact20
* >20s5onlk5_>tar53aneers4o"make /*_  2again, b_ =2053_exec - execve()e2onn valua acebala cl looppor5unity, bwcause a>135>ss="line" namtioL124"20
8>>128
p20=5117" href"5 t/3m.5ode=20
* >20s6hre3513bL253/a3a55ed-aeask hasiThensmallestneffe>struamemory andoca20
 footpref">135>ss="line" namtioL124"203o>>128
p20s5579629" cl5lass="sref"20
*5>20shre3=52ef">53" cla13picock_c*_@shift:____>>122ass="namtioL12> =>
a1"2056>>128
p20r5589629" cl5nalkeadyado20
* >20s289295c_pco53=13bL>1wake_get_avenrun,#=2053_exec 32his cl"+asr1=2053_execct>
a58k_a"namtioL12> =>
a1"2056>>128
p20r5/href">rq
5ode=cnt" cl20
* >20s955539" hru if (
a href="+s5>20
6>>128
p20t55ode=cnt" 5lass="sref"20
*5>20
*onlk5_>tar547" href">rq
/ href">rq tfasl2his cla13b">p 3delta"+ase13pp58k_ _>tacpu cla13b">neurrt:__2nr_switches"+currt:_139"ednamtioL12> =>
a1" 9"t>
id4ssr9o55wc_do_act5eashould vi20
* >20
itel/52t =>541_>tar=a>commcore.c#L139" cfaexp1TASK_RUNNflag>12nr_switches"+flag>139"ednamtioL12> =>
a1" 9"t>
id4ssr9o55ode=cnt" 5fair share 20
* >20
2onlk5_>tar542" href">rq
/ef">rqitrL42" id5">dest_kpu12nr_switches"+dest_kpu139"ednamtioL12> =>
a1" 9"t>
id4ssr9o55st_n39"_>5essimize3ef20
* >20
3onlk5_>tar54 &>15dnamtioL12> =>
a1"2051>>128
p20s5 mot3stati5class="sref20
*+>20
sctl_53pow>54>1t+cnnruptibrq np 3delta"+ase13pp58k_3/729" calc load_accpi+asck12loadss="tiunspi+asck hr1ngrqitrL42" id5">flag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o5+3e629" cl5a> *irq_ent20er >20
ct>
_5akeup5451t+cnnruptibfaacclvea13b">ndest_kpu12nr_switches"+dest_kpu139" _>tacpu cla13b">np 3delta"+ase13pp58k_3/729" calc load_acc=2053_delta 32his cl"+asr1=2053_2his 58k_3/729" calc load_acc=ele>s_2ask_a> 32his cl"+asr1=ele>s_2ask_a>olongsl2his cla13b">p 3delta"+ase13pp58k_ngrqitrL42" id5">SD_BALANCE_EXEC 3delta"+ase13pSD_BALANCE_EXEC hr1ng0cednamtioL12> =>
a1" 9"t>
id4ssr9o5+17" href"5tar=a>struc20twc>20
6"las5&_>ta546nsign,5olongelk_faexp1TASK_RUNNdest_kpu12nr_switches"+dest_kpu139" __>tacpu cla13b">nsmp_processor_id 32his cl"+asr1=mp_processor_id hr1g=a"namtioL12> =>
a1"2056>>128
p20r534829" cla53/sched/cor20a13>20
7t>
_5akeup54__>tar=a>commenc_cd/cgotoke_get_avenrun,#unasck12loadss="tiunsunasckct>
ednamtioL12> =>
a1" 9"t>
id4ssr9o5+89629" cl5lass="sref"20>>5>20
8t>
_5akeup54=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o55href">rq
5omeone>ki7"20
* >20
ully 53bL2>549nsign,5olongelk_faexp1TASK_RUNNlikely12loadss="tiunsiikelyolongsl2his cla13b">kpu+a>stru 3calc load_updcpu+a>struolongsl2his cla13b">dest_kpu12nr_switches"+dest_kpu139"))hpu if (
a href="+s5>20
6>>128
p20t5+5ode=cnt"5class="sref20
*+>20
*t>
_5akeup557" href">rq
///////// href">rq 1f13_arg" hrerq tacpu cla13b">np 3delta"+ase13pp58k_ngrqitrL42" id5">dest_kpu12nr_switches"+dest_kpu139" }ednamtioL12> =>
a1"202o>>128
p20
5+wc_do_act5">rq
/a> *l20st_>20
dd/co513bL2558ck_a>ore.c#L134" id4R 20
2>>128
p20
5a3a5520
t,3="52hre>552" href">rq
/////////a>load,#L42" idtaw_spin+unasck_irqrest12812loadss="tiunstaw_spin+unasck_irqrest128ct>
aist_>tacpu cla13b">np 3delta"+ase13pp58k_3/729" calc load_accpi+asck12loadss="tiunspi+asck hr1ngrqitrL42" id5">flag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o5asomewfat 51 twc_do_wa20tat>20
129425" cla553nsign,5olong////////a>load,#L42" idst1p_one_kpu12nr_switches"+st1p_one_kpuolongsl2his cla13b">nask_kpu12nr_switches"+nask_kpuolongsl2his cla13b">p 3delta"+ase13pp58k_)ngrqitrL42" id5">migr>1f13_cpu+st1p12nr_switches"+migr>1f13_cpu+st1p hr1ngist_>tacpu cla13b">narg12nr_switches"+arg" hrcednamtioL12> =>
a1" 9"t>
id4ssr9o5amot3stati512class="mp20="1>20
a551t+cnnruptibct>onlk_lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o5a3e629" cl5atic_key4">20ct>>20
some 5or", 5551t+cnnruptibd/core.c#L137" id4e"9e28
/a4
sp9r5a_pcorena_5
/a>(struct20rse>20
689295c_pco55/a3a5e_get_avenrun,#unasck12loadss="tiunsunasckct>
:/core.c#L137" id4e"9e28
/a4
sp9r5a4829" cla52ef">neg
5a20a12>20
7chsn5re.c#55__>tar=a>commfadeltaa13b">netaw_spin+unasck_irqrest12812loadss="tiunstaw_spin+unasck_irqrest128ct>
aist_>tacpu cla13b">np 3delta"+ase13pp58k_3/729" calc load_accpi+asck12loadss="tiunspi+asck hr1ngrqitrL42" id5">flag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o5a89629" cl5,
a href="+20>rq>20
a hre512f">55f">EFd/core.c#L137" id4e20
2>>128
p20
5href="+cod5=__hclass="20MPh>20
r__tr5d_rq_550ched/core.c#L137" id4e205o>>128
p20
5f">rq
/a> 5
a h,
a hre20ref>20re__tr5d_rq_56f">EF#en/pf/core.c#L137" id4e205o>>128
p20
5fwc_do_act5a> *
a h,
a 9ref="96dd/ce5a> q_568ck_a>ore.c#L134" id4R 20
2>>128
p20
513a55cn5
/qitrL42" id5">DEFINE_PER_CPU12nr_switches"+DEFINE_PER_CPUct>
a href">rq knc_c12nr_switches"+4nc_c hr1cednamtioL12> =>
a1" 9"t>
id4ssr9o51somewfat 5>
a hre
a hr9f="+a961294>5>
aq_56 &>15#qitrL42" id5">DEFINE_PER_CPU12nr_switches"+DEFINE_PER_CPUct>
a href">rq k" id4_cpunc_c12nr_switches"+4" id4_cpunc_c hr1cednamtioL12> =>
a1" 9"t>
id4ssr9o51mot3stati5truct>u6ck_a9sa> 496a55 =>
a1" 9"t>
id4ssr9o513e629" cl5truct>u6ck_a9sa> 496ct>
s5truq_56aneersqitrL42" id5">EXPORT_PER_CPU_SYMBOL12nr_switches"+EXPORT_PER_CPU_SYMBOLolongsl2his cla13b">knc_c12nr_switches"+4nc_c hr1cednamtioL12> =>
a1" 9"t>
id4ssr9o51_pcorena_52 &>15#L142"9ik__>96twc_c52 &q_56/a3a5e_get_avenrun,#EXPORT_PER_CPU_SYMBOL12nr_switches"+EXPORT_PER_CPU_SYMBOLolongsl2his cla13b">k" id4_cpunc_c12nr_switches"+4" id4_cpunc_c hr1cednamtioL12> =>
a1" 9"t>
id4ssr9o514829" cla5_PINNEtruct>9eltaa96 hrea5_PIq_56__>ta"namtioL12> =>
a1"2056>>128
p20r5f
/a> *
a 5tar=a>struct9
a hr96 id3 5tarq_56f">EFAU4T
/3>4d////////n int>122ass="namtioL12> =>
a1"2054>>128
p20=56ref="+cod5a55from its/ru*    ck12o32w"aRc hrefafy is 13sThens2053_2hsckiTha> have not yet breefast2fr5ed in122ass="namtioL12> =>
a1"2054>>128
p20=57">rq
/a> 5l/_ava_>tar=9>stru97p. I 5l/_> 57f">EFAU4T
/3>4d*ad/ Furto3ow"a@psin caseiTha>aeask isakurru cly runnl l>135>ss="line" namtioL124"203o>>128
p20s57empty hre5ruct>
a hre
9 href97rchse5ruc> 57l/ all handlerd*ad/ across12o135>ss="line" namtioL124"203o>>128
p20s573a55 */497 clar5329> 57>cn5
/a3a55 Calledhwith 2ask_a>+asck() heldeon @rq>135>ss="line" namtioL124"203o>>128
p20s57somewfat 5" cla12class9"line971294>5" c> 57 &>15#L142"tik/*38" id3913"f">122ass="namtioL12> =>
a1"2056>>128
p20r5l5ode=cnt"512sptik__csd9pclas97a55 579" clnc_cd/ce_get_avenrun,#utruct>u6ck_"tiunsu69" clgrqitrL42" id5">do_2ask_ow>13_exec 32his cl"+asr1do_2ask_ow>13_execct>
a href">rq tfasl2his cla13b">p 3delta"+ase13pp58k_,m href">rq tfaslk__>tar=a>struct>ta"namtioL12> =>
a1"2056>>128
p20r573e629" cl52L180">>140
93t4 <97somes52L1> 57aneeru if (
a href="+s5>20
6>>128
p20t57mptlcurrc52 729" cla129ck_le97s="sc52 7> 576" href">rq
/faacclvea13b">nutruct>u6ck_"tiunsu69" clgrqitrL42" id5">ns 3delta"+ase13pns5olo _>0;dnamtioL12> =>
a1" 9"t>
id4ssr9_575829" cla5>>1 twc_do_a9tivel9755>1> 57__>ta"namtioL12> =>
a1"2056>>128
p20r5l
/a> *
a 512oL158" cla9s="li972892 512o> 57=13bL2>130cheelk_faexp1TASK_RUNNnask_kurrt:__2nr_switches"+nask_kurrt:_olongsl2his cla13b">tfaslk__>tar=a>struct>tngfaacclvea13b">np 3delta"+ase13pp58k_)hpu if (
a href="+s5>20
6>>128
p20t5lref="+cod5=__hclass="S9Psar"97ullyd5=__> 579" href">rq
/////////fadeltaa13b">neuow>13_a>+casck12loadss="tiunsuow>13_a>+casckolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o58">rq
/a> 5
a h,
a href9"+ask98p. I 5
a > 587" href">rq
/////////fadeltaa13b">nens 3delta"+ase13pns5olo _>sl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_acclasck_nask 3calc load_updcasck_nask5olo -kfadeltaa13b">nep 3delta"+ase13pp58k_3/729" calc load_acc=812loadss="tiunsse5olo." calc load_accexec_nc_r__2nr_switches"+exec_nc_r_ct>
ednamtioL12> =>
a1" 9"t>
id4ssr9o58empty hre5ruct>
a hre
9 href98rchse5ruc> 581_>tar=a>commenc_cd/celk__k_nr_acclvea13bstruct>u6ck_"tiunss69" cl)fadeltaa13b">nens 3delta"+ase13pns5olo &l29c0a"namtioL12> =>
a1"2056>>128
p20r583a55t9r=15698 clar5" c> 582" href">rq
/////////////////">deltaa13b">nens 3delta"+ase13pns5olo _>0;dnamtioL12> =>
a1" 9"t>
id4ssr9_58ic_key4">52nt"> */4/sp9)4852nt> 58>struct>onlk_d/core.c#L137" id4e"9e28
/a4
sp9r585ode=cnt"5key4">>1 twc9activ98a55 589" cldnamtioL12> =>
a1" 9"t>
id4ssr9o583e629" cl5_key4">>1 tw9_do_w98somes5_ke> 5851t+cnnruptiblc href">deltaa13b">nens 3delta"+ase13pns5olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_58mptlcurrc512f">EFAU4T
93>4 <98s="sc512f> 586" hrd/core.c#L137" id4e"9e28
/a4
sp9r585829" cla52L206">>406
9>48 58__>ta"namtioL12> =>
a1"2056>>128
p20r58
/a> *
a 5ef">cn5
/a3a95 58=13bLcore.c#L139" c39" cfaexp1TASK_RUNN2ask_ow>13_exec 32his cl"+asr12ask_ow>13_execct>
a href">rq tfasl2his cla13b">p 3delta"+ase13pp58k_a"namtioL12> =>
a1"2056>>128
p20r58ref="+cod5stcla/@p isn9ss="o98ullyd5stc> 589" hru if (
a href="+s5>20
6>>128
p20t59">rq
/a> 5st do a remo93 wak99p. I 5st > 597" href">rq
/core.c#L139" cfaexp1TASK_RUNNflag>12nr_switches"+flag>139"ednamtioL12> =>
a1" 9"t>
id4ssr9o59empty hre54o"do asnfli9/p
a 99rchse54o"> 591_>tar=a>comm href">rq tfaslk__>tar=a>struct>tednamtioL12> =>
a1" 9"t>
id4ssr9o593a55 592" href">rq
/faacclvea13b">nutruct>u6ck_"tiunsu69" clgrqitrL42" id5">ns 3delta"+ase13pns5olo _>0;dnamtioL12> =>
a1" 9"t>
id4ssr9_59ic_key4">5ref">cn5
/a39555ref> 59 &>15dnamtioL12> =>
a1"2051>>128
p20s5925529" cl5_key4">>1 tw9_remo99a55 59>1t+cnnruptibrq ne2ask_a>+asck 32his cl"+asr12ask_a>+asckolongsl2his cla13b">p 3delta"+ase13pp58k_ngist_>tacpu cla13b">nflag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o59
_wakeups512f">EFAU4T
93a4 <99somes512f> 5951t+cnnruptibfaacclvea13b">nns 3delta"+ase13pns5olo _>sl2his cla13b">do_2ask_ow>13_exec 32his cl"+asr1do_2ask_ow>13_execct>
atacpu cla13b">np 3delta"+ase13pp58k_ngrqitrL42" id5">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o59mptlcurrc5112" clas &_9tar=a99s="sc5112> 596" href">rq
/faacclvea13b">nnask_a>+unasck12loadss="tiunsnask_a>+unasckolongsl2his cla13b">tfaslk__>tar=a>struct>tngfaacclvea13b">np 3delta"+ase13pp58k_ngist_>tacpu cla13b">nflag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o595829" cla5>"reo hre3
39it" c9955"r> 59__>ta"namtioL12> =>
a1"2056>>128
p20r59
/a> *
a 52/sched/core9c#L13992892 52/s> 59=13bL2>130chelc href">deltaa13b">nens 3delta"+ase13pns5olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_59ref="+cod5as &
3>5 >3L112" c6as &
3>5 >20ao89296 cla1604schednamtioL12> =>
a1" 9ORKERd/col9/6>13L112" c6ao"do asnfli9/p
a 99rchse6nd up60l/ all handlerd*ad/ across1t>122ass="namtioL12> =>
a1"2054>>128
p20=6e23L112" c6aa hronlk_.59de=cn99 clar6="sre60>cn5
/a3a55 Rc hrefast2fr5ed rfr5imeb rqrth-aeask>135>ss="line" namtioL124"203o>>128
p20s6>33L112" c6aef">cn5
/a39556" cla60 &>15#L142"tik_*renad/  \Sum_iIn caseiTheaeask isakurru cly runnl l,elc hrefaqr rfr5imebplusakurru cotatrs135>ss="line" namtioL124"203o>>128
p20s6>43L112" c6akey4">>1 tw9_remo99a55 have not breefast2fr5ed ye">135>ss="line" namtioL124"203o>>128
p20s6e5ot3stati6_2f">EFAU4T
93a4 <99somes6or", 60aneers4o"make /*_  2again, b_>122ass="namtioL12> =>
a1"2056>>128
p20r6e6ot3stati6_12" clas &_9tar=a99s="sc6f">cn606nsigcore.c#L139" c39" cfaexp1TASK_RUNN2ask_s2053_rfr5ime 32his cl"+asr12ask_ 2053_rfr5imect>
a href">rq tfasl2his cla13b">p 3delta"+ase13pp58k_a"namtioL12> =>
a1"2056>>128
p20r6e7ot3stati6_"reo hre3
39it" c995512nr_switches"+flag>139"ednamtioL12> =>
a1" 9"t>
id4ssr9o6e9ot3stati6_s &
3>5 rq
/ href">rq tfaslk__>tar=a>struct>tednamtioL12> =>
a1" 9"t>
id4ssr9o6_ twc_pcor6na_>tar=a>s20>
_>20>
lly 6en5
/610" href">rq
/a>load,#L42" idutruct>u6ck_"tiunsu69" clgrqitrL42" id5">ns 3delta"+ase13pns5olo _>0;dnamtioL12> =>
a1" 9"t>
id4ssr9_6113L112" c613
a hreask20="1>20>rchsn6nd up618ck_a>ore.c#L134" id4R 20
2>>128
p20
6_23L112" c6112" clas &205#L>20> clas6="sre612" href">rq
/faacclvea13b">ntfaslk__>tar=a>struct>tf=kfadeltaa13b">ne2ask_a>+asck 32his cl"+asr12ask_a>+asckolongsl2his cla13b">p 3delta"+ase13pp58k_ngist_>tacpu cla13b">nflag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o6ist_n39"_>6ar=a>struct20lli>20>129426" cla61>struct>onlk_faacclvea13b">nns 3delta"+ase13pns5olo _>sl2his cla13b">p 3delta"+ase13pp58k_3/729" calc load_acc=812loadss="tiunsse5olo." calc load_accsum_exec_rfr5ime 32his cl"+asr1sum_exec_rfr5ime5olo +ok_nr_acclvea13bdo_2ask_ow>13_exec 32his cl"+asr1do_2ask_ow>13_execct>
atacpu cla13b">np 3delta"+ase13pp58k_ngrqitrL42" id5">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o6imot3stati6
/a>(struct20cla>20>a551t+cnnruptibrq +unasckolongsl2his cla13b">tfaslk__>tar=a>struct>tngfaacclvea13b">np 3delta"+ase13pp58k_ngist_>tacpu cla13b">nflag>12nr_switches"+flag>139"cednamtioL12> =>
a1" 9"t>
id4ssr9o631629" cla63       
a 20
13>20>some 6or", 610ched/core.c#L137" id4e"9e28
/a4
sp9r6i6ot3stati6rq
/a> *kaw20n_2>20>id27L63est>616" href">rq
/lc href">deltaa13b">nens 3delta"+ase13pns5olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_6_7ot3stati63uct>
a hre20a13>20>55tad/core.c#L137" id4e"9e28
/a4
sp9r6_8ot3stati6struct>llis20lli>20>289296c_pco61=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o6243L112" c6a> *
a h,&
20
a >20>989296c_pco61led>from its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=6list_>tar=6>struct>lli20
ll>20
l29426nsign62ted>from its/ru*    ck12o32w* Td tifunc1f13 gets 1alledhby3ed-aeimer b">n,hwith HZ frequency>135>ss="line" namtioL124"203o>>128
p20s6l13L112" c6vel/static_20
 t>20
rchsn6re.c#62l/ all handlerd*ad/ across12o3We 1all ithwith ir5errupts disa acc>135>ss="line" namtioL124"203o>>128
p20s6l23L112" c6329" cla13u20" c>20
t,3="62hre>62>cn5
/a3a55>122ass="namtioL12> =>
a1"2056>>128
p20r6tst_n39"_>63class="mp_20"13>20
129426" cla623nsig>1wake_get_avenrun,#=2053ulad_eick 32his cl"+asr1s2053ulad_eickolong58k_a"namtioL12> =>
a1"2056>>128
p20r6cmot3stati6">rq
/a> *k20n_u>20
a55neg
520la1>20
some 6or", 6251t+cnnruptibef">rqitrL42" id5">kpu12nr_switches"+kpu139" _>tacpu cla13b">nsmp_processor_id 32his cl"+asr1=mp_processor_id hr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_6l6ot3stati63est poll
a20 13>20
s="sr6f">cn626" href">rq
/ href">rq tfaslk__>tar=a>struct>t _>tacpu cla13b">nepu_a> 32his cl"+asr1epu_a>olongsl2his cla13b">kpu12nr_switches"+kpu139"=;dnamtioL12> =>
a1" 9"t>
id4ssr9_6l7ot3stati6ruct>sct>
u20ipi>20
55tar=a>comm href">rq tfasl2his cla13b">kurr12nr_switches"+kurr5olo _>sl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_acclurr12nr_switches"+kurr5olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_6l8ot3stati613uct>
a hr20="1>20
289296 cla162=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o6l43L112" c6">rq
/a> *l20st_>20
ully 6en5
/627" href">rq
/a>load,#L42" ids2053_2hsck_eick 32his cl"+asr1s2053_2hsck_eick hr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_6"sref">cn56/a3a55 =>
a1" 9ORKERd/col9/6"wc_do_act63oL150">>5520"13>20srchsn6nadic631" href">rq
/a>load,#L42" idtaw_spin+asck12loadss="tiunstaw_spin+asckct>
aist_>tacpu cla13b">ntfaslk__>tar=a>struct>t3/729" calc load_acc5"ck12loadss="tiunsisckct>
hednamtioL12> =>
a1" 9"t>
id4ssr9o65ode=cnt" 6lass="sref"20>>5>20s255632" href">rq
/faacclvea13b">nuow>13_a>+casck12loadss="tiunsuow>13_a>+casckolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o65st_n39"_>6n5
/aule IP20
* >20s3onlk6_>tar63>struct>onlk_faacclvea13b">nuow>13_kpu+ase1_eg
4a> 3calc load_foluow>13_kpu+ase1_eg
4a>ct>
asl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o65mot3stati6lly all/t/320
* >20s4onlk6_>tar63>1t+cnnruptibrq tfaslk__>tar=a>struct>tngfaacclvea13b">nlurr12nr_switches"+kurr5olong0cednamtioL12> =>
a1" 9"t>
id4ssr9o613e629" cl6efat weaact20
* >20s5onlk6_>tar6351t+cnnruptibfaacclvea13b">ntaw_spin+unasck12loadss="tiunstaw_spin+unasckct>
aist_>tacpu cla13b">ntfaslk__>tar=a>struct>t3/729" calc load_acc5"ck12loadss="tiunsisckct>
hednamtioL12> =>
a1" 9"t>
id4ssr9o656ot3stati6 t/3m.5ode=20
* >20s6hre3613bL263/a3a5dnamtioL12> =>
a1" 9"t>
id4ssr9o657ot3stati6lass="sref"20
*5>20shre3=62ef">63__>tar=a>commfadeltaa13b">neperf_evf13_2ask_eick 32his cl"+asr1perf_evf13_2ask_eick hr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_6"8ot3stati6nalkeadyado20
* >20s289296c_pco63=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o6/href">rq
6ode=cnt" cl20
* >20s955639" hr#ifdefcfaexp1TASK_RUNNCONFIG_SMP 32his cl"+asr1CONFIG_SMPck_a>ore.c#L134" id4R 20
2>>128
p20
65ode=cnt" 6lass="sref"20
*5>20
*onlk6_>tar640" href">rq
/a>load,#L42" idtfaslk__>tar=a>struct>t3/729" calc load_accidle_bala ceaslk__>tar=a>stidle_bala ce5olo _>sl2his cla13b">idle_lpuaslk__>tar=a>stidle_kpuolongsl2his cla13b">kpu12nr_switches"+kpu139"=;dnamtioL12> =>
a1" 9"t>
id4ssr9_65wc_do_act6eashould vi20
* >20
itel/62t =>641" href">rq
/a>load,#L42" idtriggad_ase1_bala ceaslk__>tar=a>sttriggad_ase1_bala ceolongsl2his cla13b">tfaslk__>tar=a>struct>tngfaacclvea13b">nlpu12nr_switches"+kpu139"=;dnamtioL12> =>
a1" 9"t>
id4ssr9_65ode=cnt" 6fair share 20
* >20
2onlk6_>tar642" hr#en/pf/core.c#L137" id4e205o>>128
p20
65st_n39"_>6essimize3ef20
* >20
3onlk6_>tar64 &>15d/core.c#L137" id4e"9e28
/a4
sp9r6 mot3stati6class="sref20
*+>20
sctl_63pow>649" cldnamtioL12> =>
a1" 9"t>
id4ssr9o6+3e629" cl6a> *irq_ent20er >20
ct>
_6akeup64aneersqitrL42" id5">notraceaslk__>tar=a>stnotrace" hrecore.c#L139" cfaexp1TASK_RUNNget_paru c_ip 3delta"+ase13pget_paru c_ipolongcore.c#L139" cfaexp1TASK_RUNNaddr12nr_switches"+addr58k_a"namtioL12> =>
a1"2056>>128
p20r6+17" href"6tar=a>struc20twc>20
6"las6&_>ta64__>tau if (
a href="+s5>20
6>>128
p20t634829" cla63/sched/cor20a13>20
7t>
_6akeup64__>tar=a>commelk_faexp1TASK_RUNNin+asck_func1f13a 32his cl"+asr1in+asck_func1f13aolongsl2his cla13b">addr12nr_switches"+addr58k_ahpu if (
a href="+s5>20
6>>128
p20t6+89629" cl6lass="sref"20>>5>20
8t>
_6akeup64=13bL2>130chestruct>o/l2his cla13b">addr12nr_switches"+addr58k_ _>sl2his cla13b">CALLER_ADDR2 32his cl"+asr1CALLER_ADDR25olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_65href">rq
6omeone>ki7"20
* >20
ully 63bL2>649" href">rq
/////////elk_faexp1TASK_RUNNin+asck_func1f13a 32his cl"+asr1in+asck_func1f13aolongsl2his cla13b">addr12nr_switches"+addr58k_ahdnamtioL12> =>
a1" 9"t>
id4ssr9_6+5ode=cnt"6class="sref20
*+>20
*t>
_6akeup657" href">rq
/////////struct>o/l2his cla13b">addr12nr_switches"+addr58k_ _>sl2his cla13b">CALLER_ADDR3 32his cl"+asr1CALLER_ADDR35olo;dnamtioL12> =>
a1" 9"t>
id4ssr9_6+wc_do_act6">rq
/a> *l20st_>20
dd/co613bL2651" href">rq
/d/core.c#L137" id4e"9e28
/a4
sp9r6a3a5520
t,3="62hre>652" href">rq
/lc href">deltaa13b">neaddr12nr_switches"+addr58k_;dnamtioL12> =>
a1" 9"t>
id4ssr9_6+st_n39"_>61 twc_do_wa20tat>20
129426" cla65 &>15d/core.c#L137" id4e"9e28
/a4
sp9r6amot3stati612class="mp20="1>20
a55 =>
a1" 9"t>
id4ssr9o6a3e629" cl6atic_key4">20ct>>20
some 6or", 6551t+c#ifcfaexp1TASK_RUNNdef0ctd 32his cl"+asr1def0ctdolongsl2his cla13b">CONFIG_PREEMPT 32his cl"+asr1CONFIG_PREEMPT58k_agist_>ist_>k_faexp1TASK_RUNNdef0ctd 32his cl"+asr1def0ctdolongsl2his cla13b">CONFIG_DEBUG_PREEMPT 32his cl"+asr1CONFIG_DEBUG_PREEMPT58k_ag|| \dnamtioL12> =>
a1" 9"t>
id4ssr9o6a17" href"6
/a>(struct20rse>20
689296c_pco656" href">rq
/////////struct>ostruct>o/l2his cla13b">def0ctd 32his cl"+asr1def0ctdolongsl2his cla13b">CONFIG_PREEMPT_TRACER 32his cl"+asr1CONFIG_PREEMPT_TRACER58k_ahdnamtioL12> =>
a1" 9"t>
id4ssr9_6+4829" cla62ef">neg
5a20a12>20
7chsn6re.c#65__>ta"namtioL12> =>
a1"2056>>128
p20r6a89629" cl6,
a href="+20>rq>20
a hre612f">65=13bL>1wake_get_avenrun,#__kprob>>12nr_switches"+__kprob>>" clgrqitrL42" id5">add_preempt_t2fr512nr_switches"+add_preempt_t2fr5olongef">rqitrL42" id5">val12nr_switches"+val58k_a"namtioL12> =>
a1"2056>>128
p20r6href="+cod6=__hclass="20MPh>20
r__tr6d_rq_659" hru if (
a href="+s5>20
6>>128
p20t6f">rq
/a> 6
a h,
a hre20ref>20re__tr6d_rq_66f">EF#ifdefcfaexp1TASK_RUNNCONFIG_DEBUG_PREEMPT 32his cl"+asr1CONFIG_DEBUG_PREEMPT58k_ if (
a href="+s5>20
6>>128
p20t6fwc_do_act6a> *
a h,
a 9ref="96dd/ce6a> q_661" href">rq
/aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=613a55cn5
/a3a55>128
p20=61st_n39"_>6>
a hre
a hr9f="+a961294>6>
aq_66 &>15#L142"tik_*renad/  \Sumssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r61mot3stati6truct>u6ck_a9sa> 496a551t+cnnruptibelk_faexp1TASK_RUNNDEBUG_LOCKS_WARN_ON 32his cl"+asr1DEBUG_LOCKS_WARN_ONolongatacpu cla13b">npreempt_t2fr512nr_switches"+preempt_t2fr5olong) &l29c0aahdnamtioL12> =>
a1" 9"t>
id4ssr9_613e629" cl6truct>u6ck_a9sa> 496ct>
s6truq_665" href">rq
/////////lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o61_pcorena_62 &>15#L142"9ik__>96twc_c62 &q_666" hr#en/pfdnamtioL12> =>
a1" 9"t>
id4ssr9o614829" cla6_PINNEtruct>9eltaa96 hrea6_PIq_66__>tar=a>commfadeltaa13b">nepreempt_t2fr512nr_switches"+preempt_t2fr5olong) +_>sl2his cla13b">val12nr_switches"+val58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o6189629" cl6tar=a>struct9
a hr96 id3 6tarq_66f">EF#ifdefcfaexp1TASK_RUNNCONFIG_DEBUG_PREEMPT 32his cl"+asr1CONFIG_DEBUG_PREEMPT58k_ if (
a href="+s5>20
6>>128
p20t6fref="+cod6a55rq
/aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=67">rq
/a> 6l/_ava_>tar=9>stru97p. I 6l/_> 67f">EFAU4T
/3>4d*ad/ Furto3owssssssss* Spinasck t2fr5 overflowpre soon?122ass="namtioL12> =>
a1"2054>>128
p20=67empty hre6ruct>
a hre
9 href97rchse6ruc> 67l/ all handlerd*ad/ across12ssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r673a55 */497 clar6329> 672" href">rq
/faacclvea13b">nDEBUG_LOCKS_WARN_ON 32his cl"+asr1DEBUG_LOCKS_WARN_ONolongatacpu cla13b">npreempt_t2fr512nr_switches"+preempt_t2fr5olong) &st_>ktacpu cla13b">nPREEMPT_MASK12nr_switches"+PREEMPT_MASK58k_agigt;="namtioL12> =>
a1"2056>>128
p20r67st_n39"_>6" cla12class9"line971294>6" c> 673nsign,5olong////////struct>ostruct>o/l2his cla13b">PREEMPT_MASK12nr_switches"+PREEMPT_MASK58k_ - 10cednamtioL12> =>
a1" 9"t>
id4ssr9o6l5ode=cnt"612sptik__csd9pclas97a55 679" cl#en/pfdnamtioL12> =>
a1" 9"t>
id4ssr9o673e629" cl62L180">>140
93t4 <97somes62L1> 6751t+cnnruptibelk_faexp1TASK_RUNNpreempt_t2fr512nr_switches"+preempt_t2fr5olong) __>tacpu cla13b">nval12nr_switches"+val58k_a"namtioL12> =>
a1"2056>>128
p20r67mptlcurrc62 729" cla129ck_le97s="sc62 7> 676" href">rq
/////////a>load,#L42" idtrace_preempt_offaslk__>tar=a>sttrace_preempt_offolongsl2his cla13b">CALLER_ADDR0 32his cl"+asr1CALLER_ADDR0ct>tngfaacclvea13b">nget_paru c_ip 3delta"+ase13pget_paru c_ipolongsl2his cla13b">CALLER_ADDR1 32his cl"+asr1CALLER_ADDR158k_ahednamtioL12> =>
a1" 9"t>
id4ssr9o6l4829" cla6>>1 twc_do_a9tivel9755>1> 67__>tad/core.c#L137" id4e"9e28
/a4
sp9r6l
/a> *
a 612oL158" cla9s="li972892 612o> 67=13bLsl2his cla13b">EXPORT_SYMBOL12nr_switches"+EXPORT_SYMBOLolongsl2his cla13b">add_preempt_t2fr512nr_switches"+add_preempt_t2fr5olonhednamtioL12> =>
a1" 9"t>
id4ssr9o6lref="+cod6=__hclass="S9Psar"97ullyd6=__> 670ched/core.c#L137" id4e205o>>128
p20
68">rq
/a> 6
a h,
a href9"+ask98p. I 6
a > 687" hr>1wake_get_avenrun,#__kprob>>12nr_switches"+__kprob>>" clgrqitrL42" id5">sub_preempt_t2fr512nr_switches"+sub_preempt_t2fr5olongef">rqitrL42" id5">val12nr_switches"+val58k_a"namtioL12> =>
a1"2056>>128
p20r68empty hre6ruct>
a hre
9 href98rchse6ruc> 681_>tau if (
a href="+s5>20
6>>128
p20t683a55t9r=15698 clar6" c> 682" hr#ifdefcfaexp1TASK_RUNNCONFIG_DEBUG_PREEMPT 32his cl"+asr1CONFIG_DEBUG_PREEMPT58k_ if (
a href="+s5>20
6>>128
p20t68ic_key4">62nt"> */4/sp9)4862nt> 68>struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=685ode=cnt"6key4">>1 twc9activ98a55 689" cla13/sched/*_get_avenrunwwwwwwww*+Underflow?122ass="namtioL12> =>
a1"2054>>128
p20=683e629" cl6_key4">>1 tw9_do_w98somes6_ke> 68aneers4o"make /*_  2again, bssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r68mptlcurrc612f">EFAU4T
93>4 <98s="sc612f> 686nsign,5olongelk_faexp1TASK_RUNNDEBUG_LOCKS_WARN_ON 32his cl"+asr1DEBUG_LOCKS_WARN_ONolongrqitrL42" id5">val12nr_switches"+val58k_gigt;mfadeltaa13b">nepreempt_t2fr512nr_switches"+preempt_t2fr5olong)ahdnamtioL12> =>
a1" 9"t>
id4ssr9_685829" cla62L206">>406
9>48 68__>tar=a>commenc_cd/clc hreednamtioL12> =>
a1" 9"t>
id4ssr9o68
/a> *
a 6ef">cn5
/a3a95 688struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=68ref="+cod6stcla/@p isn9ss="o98ullyd6stc> 68led>from its/ru*    ck12o32wwwwwwwww* IsiThenspinasck por5f13 underflowpre?122ass="namtioL12> =>
a1"2054>>128
p20=69">rq
/a> 6st do a remo93 wak99p. I 6st > 69f">EFAU4T
/3>4d*ad/ Furto3owssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r69empty hre64o"do asnfli9/p
a 99rchse64o"> 691_>tar=a>commelk_faexp1TASK_RUNNDEBUG_LOCKS_WARN_ON 32his cl"+asr1DEBUG_LOCKS_WARN_ONolongatacpu cla13b">nval12nr_switches"+val58k_gilt;mfadeltaa13b">nePREEMPT_MASK12nr_switches"+PREEMPT_MASK58k_agist_>ist_>"namtioL12> =>
a1"2056>>128
p20r693a55 692" href">rq
/////////////////!atacpu cla13b">npreempt_t2fr512nr_switches"+preempt_t2fr5olong) &st_>ktacpu cla13b">nPREEMPT_MASK12nr_switches"+PREEMPT_MASK58k_aahdnamtioL12> =>
a1" 9"t>
id4ssr9_69ic_key4">6ref">cn5
/a39556ref> 693nsign,5olong////////lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o6925529" cl6_key4">>1 tw9_remo99a55 699" cl#en/pfdnamtioL12> =>
a1" 9"t>
id4ssr9o69
_wakeups612f">EFAU4T
93a4 <99somes612f> 690ched/core.c#L137" id4e"9e28
/a4
sp9r69mptlcurrc6112" clas &_9tar=a99s="sc6112> 696nsign,5olongelk_faexp1TASK_RUNNpreempt_t2fr512nr_switches"+preempt_t2fr5olong) __>tacpu cla13b">nval12nr_switches"+val58k_a"namtioL12> =>
a1"2056>>128
p20r695829" cla6>"reo hre3
39it" c9955"r> 69__>tar=a>commenc_cd/cfadeltaa13b">ne2race_preempt_onaslk__>tar=a>sttrace_preempt_onolongsl2his cla13b">CALLER_ADDR0 32his cl"+asr1CALLER_ADDR0ct>tngfaacclvea13b">nget_paru c_ip 3delta"+ase13pget_paru c_ipolongsl2his cla13b">CALLER_ADDR1 32his cl"+asr1CALLER_ADDR158k_ahednamtioL12> =>
a1" 9"t>
id4ssr9o69
/a> *
a 62/sched/core9c#L13992892 62/s> 69=13bL2>130chefaexp1TASK_RUNNpreempt_t2fr512nr_switches"+preempt_t2fr5olong) -_>sl2his cla13b">val12nr_switches"+val58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o69ref="+cod6as &
3>5 >3L112" c7as &
3>5 >20ao89297 cla1704schesl2his cla13b">EXPORT_SYMBOL12nr_switches"+EXPORT_SYMBOLolongsl2his cla13b">sub_preempt_t2fr512nr_switches"+sub_preempt_t2fr5olonhednamtioL12> =>
a1" 9"t>
id4ssr9o7>13L112" c7ao"do asnfli9/p
a 99rchse7nd up708ck_a>ore.c#L134" id4R 20
2>>128
p20
7e23L112" c7aa hronlk_.59de=cn99 clar7="sre702" hr#en/pf/core.c#L137" id4e205o>>128
p20
7>33L112" c7aef">cn5
/a39557" cla70 &>15dnamtioL12> =>
a1"2051>>128
p20s7>43L112" c7akey4">>1 tw9_remo99a55122ass="namtioL12> =>
a1"2054>>128
p20=7e5ot3stati7_2f">EFAU4T
93a4 <99somes7or", 70aneers4o"make /*_  2again, b_ Pref" "2054ulpre while a>omic bug:122ass="namtioL12> =>
a1"2054>>128
p20=7e6ot3stati7_12" clas &_9tar=a99s="sc7f">cn70/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r7e7ot3stati7_"reo hre3
39it" c99551wake_get_avenrun,#__s2053ula_bug12nr_switches"+__s2053ula_bugolong href">rq tfasl2his cla13b">prev12nr_switches"+prev58k_a"namtioL12> =>
a1"2056>>128
p20r7e8ot3stati7_/sched/core9c#L13992892 7 cla170=13bLu if (
a href="+s5>20
6>>128
p20t7e9ot3stati7_s &
3>5  =>
a1"2056>>128
p20r7_ twc_pcor7na_>tar=a>s20>
_>20>
lly 7en5
/717" href">rq
/////////lc hreednamtioL12> =>
a1" 9"t>
id4ssr9o7113L112" c713
a hreask20="1>20>rchsn7nd up718ck_a>ore.c#L134" id4R 20
2>>128
p20
7_23L112" c7112" clas &205#L>20> clas7="sre712" href">rq
/faacclvea13b">npref"k 32his cl"+asr1pref"kolongsl2his cla13b">KERN_ERR 32his cl"+asr1KERN_ERR" clgr"BUG: "2054ulpre while a>omic: %s/%d/0x%08x\n"122ass=,>ore.c#L134" id4R 20
2>>128
p20
7_33L112" c7ar=a>struct20lli>20>129427" cla713nsign,5olong////////sl2his cla13b">prev12nr_switches"+prev58k_3/729" calc load_acclffs12nr_switches"+lffsct>tngfaacclvea13b">nprev12nr_switches"+prev58k_3/729" calc load_accpid 32his cl"+asr1pid hr1ngfaacclvea13b">npreempt_t2fr512nr_switches"+preempt_t2fr5olong)aednamtioL12> =>
a1" 9"t>
id4ssr9o7143L112" c7
/a>(struct20cla>20>a55 =>
a1" 9"t>
id4ssr9o731629" cla73       
a 20
13>20>some 7or", 7151t+cnnruptibfaacclvea13b">ndebug_show_held+ascka 32his cl"+asr1debug_show_held+asckaolongsl2his cla13b">prev12nr_switches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o716ot3stati7rq
/a> *kaw20n_2>20>id27L73est>716" href">rq
/faacclvea13b">npref"_mo3ulaa 32his cl"+asr1pref"_mo3ulaaolong)ednamtioL12> =>
a1" 9"t>
id4ssr9o717ot3stati73uct>
a hre20a13>20>55tar=a>commelk_faexp1TASK_RUNNirqs_disa acc 32his cl"+asr1irqs_disa accolong)adnamtioL12> =>
a1" 9"t>
id4ssr9o718ot3stati7struct>llis20lli>20>289297c_pco71=13bL2>130chestruct>o/l2his cla13b">pref"_irqtrace_evf13a 32his cl"+asr1pref"_irqtrace_evf13aolongsl2his cla13b">prev12nr_switches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o719ot3stati7a> *
a h,&
20
a >20>989297c_pco717" href">rq
/a>load,#L42" iddump_nc_ck 32his cl"+asr1dump_nc_ckolong)ednamtioL12> =>
a1" 9"t>
id4ssr9o7list_>tar=7>struct>lli20
ll>20
l29427nsign720" href">rq
/a>load,#L42" idadd_tair512nr_switches"+add_tair5olongsl2his cla13b">TAINT_WARN12nr_switches"+TAINT_WARN58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o7l13L112" c7vel/static_20
 t>20
rchsn7re.c#72l/ ald/core.c#L137" id4e"9e28
/a4
sp9r7l23L112" c7329" cla13u20" c>20
t,3="72hre>72>cn5
/core.c#L137" id4e"9e28
/a4
sp9r7l33L112" c73class="mp_20"13>20
129427" cla72 &>15#L142"tik_*renad/  \Sut>122ass="namtioL12> =>
a1"2054>>128
p20=7cmot3stati7">rq
/a> *k20n_u>20
a55>128
p20=7c1629" cla713ef">neg
520la1>20
some 7or", 72aneers4o"make /*_  2again, b_>122ass="namtioL12> =>
a1"2056>>128
p20r7l6ot3stati73est poll
a20 13>20
s="sr7f">cn726" hrnc_cd/ce_get_avenrun,#ina9it" nr_switches"+ina9it13bL2>1wake_get_avenrun,#s2053ula_debug12nr_switches"+s2053ula_debugolong href">rq tfasl2his cla13b">prev12nr_switches"+prev58k_a"namtioL12> =>
a1"2056>>128
p20r7l7ot3stati7ruct>sct>
u20ipi>20
5520
289297 cla1728struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=7l43L112" c7">rq
/a> *l20st_>20
ully 7en5
/72led>from its/ru*    ck12o32wwwwwwwww* Testnelkwe are a>omic. Sincebdo_exit() needs to 1all into122ass="namtioL12> =>
a1"2054>>128
p20=7"sref">cn57/a3a55EFAU4T
/3>4d*ad/ Furto3owssssssss* "2054ule() a>omically,kwe ign128bTha> pathb rqrnow>135>ss="line" namtioL124"203o>>128
p20s7"wc_do_act73oL150">>5520"13>20srchsn7nadic73l/ all handlerd*ad/ across12ssssssss* Otherwisn,hwh0"1nelkwe are "2054ulpre whenkwe should not br>135>ss="line" namtioL124"203o>>128
p20s7"23L112" c7lass="sref"20>>5>20s25573>cn5
/a3a55122ass="namtioL12> =>
a1"2056>>128
p20r75st_n39"_>7n5
/aule IP20
* >20s3onlk7_>tar73>struct>onlk_elk_faexp1TASK_RUNNunlikely12loadss="tiunsunlikelyolongsl2his cla13b">in_a>omic_preempt_offaslk__>tar=a>stin_a>omic_preempt_offolong) &st_>&st_>k!faacclvea13b">nprev12nr_switches"+prev58k_3/729" calc load_accexit_nc_ct" nr_switches"+exit_nc_ct58k_ah"namtioL12> =>
a1"2056>>128
p20r75mot3stati7lly all/t/320
* >20s4onlk7_>tar73>1t+cnnruptibef">rq
/a>load,#L42" id__s2053ula_bug12nr_switches"+__s2053ula_bugolongsl2his cla13b">prev12nr_switches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o713e629" cl7efat weaact20
* >20s5onlk7_>tar7351t+cnnruptibfaacclvea13b">ntcu_sleep_205ck12nr_switches"+tcu_sleep_205ckolong)ednamtioL12> =>
a1" 9"t>
id4ssr9o756ot3stati7 t/3m.5ode=20
* >20s6hre3713bL273/a3a5dnamtioL12> =>
a1" 9"t>
id4ssr9o757ot3stati7lass="sref"20
*5>20shre3=72ef">73__>tar=a>commfadeltaa13b">neprofila_hi512nr_switches"+profila_hi5olongsl2his cla13b">SCHED_PROFILING12nr_switches"+SCHED_PROFILING hr1ngfaacclvea13b">n__builtin_lc hre_addreta 32his cl"+asr1__builtin_lc hre_addretaolong0)aednamtioL12> =>
a1" 9"t>
id4ssr9o7"8ot3stati7nalkeadyado20
* >20s289297c_pco73=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o7/href">rq
7ode=cnt" cl20
* >20s955737" href">rq
/a>load,#L42" ids2053nc_c_inc12nr_switches"+s2053nc_c_incolongsl2his cla13b">this_a> 32his cl"+asr1this_a>olong)ngfaacclvea13b">n=2053_22fr512nr_switches"+s2053_22fr558k_aednamtioL12> =>
a1" 9"t>
id4ssr9o75ode=cnt" 7lass="sref"20
*5>20
*onlk7_>tar740" hrd/core.c#L137" id4e"9e28
/a4
sp9r75wc_do_act7eashould vi20
* >20
itel/72t =>748ck_a>ore.c#L134" id4R 20
2>>128
p20
75ode=cnt" 7fair share 20
* >20
2onlk7_>tar742" hrnc_cd/c>1wake_get_avenrun,#put_prev_nask 3calc load_updput_prev_naskolong href">rq tfaslk__>tar=a>struct>t,m href">rq tfasl2his cla13b">prev12nr_switches"+prev58k_a"namtioL12> =>
a1"2056>>128
p20r75st_n39"_>7essimize3ef20
* >20
3onlk7_>tar74 &>15u if (
a href="+s5>20
6>>128
p20t7 mot3stati7class="sref20
*+>20
sctl_73pow>74>1t+cnnruptibelk_faexp1TASK_RUNNprev12nr_switches"+prev58k_3/729" calc load_accon_a> 32his cl"+asr1on_a>1t+cn||/a>load,#L42" idtfaslk__>tar=a>struct>t3/729" calc load_accskip_2hsck_uow>1312nr_switches"+skip_2hsck_uow>1358k_gilt;m0a"namtioL12> =>
a1"2056>>128
p20r7+3e629" cl7a> *irq_ent20er >20
ct>
_7akeup745" href">rq
/////////faexp1TASK_RUNNuow>13_a>+casck12loadss="tiunsuow>13_a>+casckolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o7+17" href"7tar=a>struc20twc>20
6"las7&_>ta746" href">rq
/faacclvea13b">nprev12nr_switches"+prev58k_3/729" calc load_acc=2053_2his 12nr_switches"+s2053_2r_sw58k_3/729" calc load_accput_prev_nask 3calc load_updput_prev_naskolongsl2his cla13b">tfaslk__>tar=a>struct>t,msl2his cla13b">prev12nr_switches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/sched/cor20a13>20
7t>
_7akeup74__>tad/core.c#L137" id4e"9e28
/a4
sp9r7+89629" cl7lass="sref"20>>5>20
8t>
_7akeup74=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o75href">rq
7omeone>ki7"20
* >20
ully 73bL2>74led>from its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=7+5ode=cnt"7class="sref20
*+>20
*t>
_7akeup75ted>from its/ru*    ck12o32w* Pick upiThenhighest-prioaeask:122ass="namtioL12> =>
a1"2054>>128
p20=7+wc_do_act7">rq
/a> *l20st_>20
dd/co713bL275l/ all handlerd*ad/ across12o>122ass="namtioL12> =>
a1"2056>>128
p20r7a3a5520
t,3="72hre>752" hrnc_cd/ce_get_avenrun,#ina9it" nr_switches"+ina9it13bL2 href">rq tfa"namtioL12> =>
a1"2056>>128
p20r7ast_n39"_>71 twc_do_wa20tat>20
129427" cla75 &>15#qitrL42" id5">pick_next_nask 3calc load_updpick_next_naskolong href">rq tfaslk__>tar=a>struct>ta"namtioL12> =>
a1"2056>>128
p20r7amot3stati712class="mp20="1>20
a5520ct>>20
some 7or", 755" href">rq
/const2 href">rq khis 12nr_switches"+2r_sw58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o7a17" href"7
/a>(struct20rse>20
689297c_pco756" href">rq
/ href">rq tfasl2his cla13b">p 3delta"+ase13pp58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o7a4829" cla72ef">neg
5a20a12>20
7chsn7re.c#75__>ta"namtioL12> =>
a1"2056>>128
p20r7a89629" cl7,
a href="+20>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=7href="+cod7=__hclass="20MPh>20
r__tr7d_rq_75led>from its/ru*    ck12o32wwwwwwwww* Optimiza5f13:kwe knowbTha> elkall 2asks are in122ass="namtioL12> =>
a1"2054>>128
p20=7f">rq
/a> 7
a h,
a hre20ref>20re__tr7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3owssssssss* Thenfair/3>4d*kwe cT
/3all 2ha> func1f13 directly:122ass="namtioL12> =>
a1"2054>>128
p20=7fwc_do_act7a> *
a h,
a 9ref="96dd/ce7a> q_76l/ all handlerd*ad/ across12ssssssss*>122ass="namtioL12> =>
a1"2056>>128
p20r713a55rq
/elk_faexp1TASK_RUNNlikely12loadss="tiunslikelyolongsl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_accnr_runnl l" nr_switches"+nr_runnl l" hre__>tacpu cla13b">ntfaslk__>tar=a>struct>t3/729" calc load_acclf 12nr_switches"+2fw58k_." calc load_acch_nr_runnl l" nr_switches"+h_nr_runnl l58k_ahpu if (
a href="+s5>20
6>>128
p20t71st_n39"_>7>
a hre
a hr9f="+a961294>7>
aq_763nsign,5olong////////sl2his cla13b">p 3delta"+ase13pp58k_ _>sl2his cla13b">fair_=2053_2his 12nr_switches"+fair_=2053_2his 58k_." calc load_accpick_next_nask 3calc load_updpick_next_naskolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o71mot3stati7truct>u6ck_a9sa> 496a551t+cnnruptibef">rq
/elk_faexp1TASK_RUNNlikely12loadss="tiunslikelyolongsl2his cla13b">p 3delta"+ase13pp58k_)hdnamtioL12> =>
a1" 9"t>
id4ssr9o713e629" cl7truct>u6ck_a9sa> 496ct>
s7truq_765" href">rq
/////////////////lc href">deltaa13b">nep 3delta"+ase13pp58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o71_pcorena_72 &>15#L142"9ik__>96twc_c72 &q_766" href">rq
/d/core.c#L137" id4e"9e28
/a4
sp9r714829" cla7_PINNEtruct>9eltaa96 hrea7_PIq_76__>ta"namtioL12> =>
a1"2056>>128
p20r7189629" cl7tar=a>struct9
a hr96 id3 7tarq_76=13bL2>130chefaexp1TASK_RUNNfor_each_2his 12nr_switches"+for_each_2his olongsl2his cla13b">khis 12nr_switches"+2r_sw58k_hpu if (
a href="+s5>20
6>>128
p20t71ref="+cod7a55rq
/////////fadeltaa13b">nep 3delta"+ase13pp58k_ _>sl2his cla13b">khis 12nr_switches"+2r_sw58k_3/729" calc load_accpick_next_nask 3calc load_updpick_next_naskolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9o77">rq
/a> 7l/_ava_>tar=9>stru97p. I 7l/_> 777" href">rq
/////////elk_faexp1TASK_RUNNp 3delta"+ase13pp58k_)dnamtioL12> =>
a1" 9"t>
id4ssr9o77wc_do_act7ruct>
a hre
9 href97rchse7ruc> 771_>tar=a>commenc_cd/c////////lc href">deltaa13b">nep 3delta"+ase13pp58k_ednamtioL12> =>
a1" 9"t>
id4ssr9o773a55 */497 clar7329> 772" href">rq
/d/core.c#L137" id4e"9e28
/a4
sp9r77st_n39"_>7" cla12class9"line971294>7" c> 77 &>15dnamtioL12> =>
a1"2051>>128
p20s7l5ode=cnt"712sptik__csd9pclas97a55 77>1t+cnnruptibrq  Thenidle/3>4d*kwill always have a runna acaeask *>122ass="namtioL12> =>
a1"2056>>128
p20r773e629" cl72L180">>140
93t4 <97somes72L1> 7751t+cd/core.c#L137" id4e"9e28
/a4
sp9r77_pcorena_72 729" cla129ck_le97s="sc72 7> 77/a3a5dnamtioL12> =>
a1" 9"t>
id4ssr9o7l4829" cla7>>1 twc_do_a9tivel9755>1> 77__>taaom its/ru*    ck12o32t>122ass="namtioL12> =>
a1"2054>>128
p20=7l
/a> *
a 712oL158" cla9s="li972892 712o> 77=13bLsom its/ru*    ck12o32w* __s2053ula() isaThenmain "2054uler func1f13>135>ss="line" namtioL124"203o>>128
p20s7lref="+cod7=__hclass="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="namtioL12> =>
a1"2054>>128
p20=78">rq
/a> 7
a h,
a href9"+ask98p. I 7
a > 78ted>from its/ru*    ck12o32w* Tdenmain means of drivpre Thens2054uler andothus er5erpre Th tifunc1f13 are:122ass="namtioL12> =>
a1"2054>>128
p20=78empty hre7ruct>
a hre
9 href98rchse7ruc> 78l/ all handlerd*ad/ across12o122ass="namtioL12> =>
a1"2054>>128
p20=783a55t9r=15698 clar7" c> 78>cn5
/a3a55   1. Explicit basckpre: mutex, semaph128, waitqueu8, etc>135>ss="line" namtioL124"203o>>128
p20s78ic_key4">72nt"> */4/sp9)4872nt> 78 &>15#L142"tik_*renad/  \Sum_135>ss="line" namtioL124"203o>>128
p20s785ode=cnt"7key4">>1 twc9activ98a55 789" cla13/sched/*_get_avenrun>   2. TIF_NEED_RESCHED flag isak05cked 13 ir5errupt andouser13/ce/lc hre135>ss="line" namtioL124"203o>>128
p20s783e629" cl7_key4">>1 tw9_do_w98somes7_ke> 78aneers4o"make /*_  2again, b*ruptibpaths. For example, see arch/x86/ainry_64.S>135>ss="line" namtioL124"203o>>128
p20s78_pcorena_712f">EFAU4T
93>4 <98s="sc712f> 78/a3a55ss="line" namtioL124"203o>>128
p20s784829" cla72L206">>406
9>48 78__>taaom its/ru*    ck12o32b*ruptibTo drive preemptf13 betwreef2asks, Thens2054uler sets Thenflag inaeimer135>ss="line" namtioL124"203o>>128
p20s78
/a> *
a 7ef">cn5
/a3a95 78=13bLsom its/ru*    ck12o32w* /////er5errupt handler s2054uler_eick()>135>ss="line" namtioL124"203o>>128
p20s78ref="+cod7stcla/@p isn9ss="o98ullyd7stc> 78led>from its/ru*    ck12o32w/135>ss="line" namtioL124"203o>>128
p20s79">rq
/a> 7st do a remo93 wak99p. I 7st > 79f">EFAU4T
/3>4d*ad/ Furto3ow* //3. Wakeups donotatrt/lcally cause ainry into "2054ule(). Tdey add a135>ss="line" namtioL124"203o>>128
p20s79empty hre74o"do asnfli9/p
a 99rchse74o"> 79l/ all handlerd*ad/ across12o333333eask to aqr rfr-queu8 andothacotatrs i">135>ss="line" namtioL124"203o>>128
p20s793a55 79>cn5
/a3a55135>ss="line" namtioL124"203o>>128
p20s79ic_key4">7ref">cn5
/a39557ref> 79 &>15#L142"tik_*renad/  \Sum_iiiiiiNow,/elkaqr new3eask added to aqr rfr-queu8 preempts Thenkurru c135>ss="line" namtioL124"203o>>128
p20s795ode=cnt"7_key4">>1 tw9_remo99a55 799" cla13/sched/*_get_avenrun>   333eask, Theefaqr wakeup sets TIF_NEED_RESCHED andon2053ula() gets135>ss="line" namtioL124"203o>>128
p20s793e629" cl712f">EFAU4T
93a4 <99somes712f> 79aneers4o"make /*_  2again, b*ruptib1alledhonkaqr nearest possi acaoccasf13:135>ss="line" namtioL124"203o>>128
p20s79_pcorena_7112" clas &_9tar=a99s="sc7112> 79/a3a55ss="line" namtioL124"203o>>128
p20s795829" cla7>"reo hre3
39it" c9955"r> 79__>taaom its/ru*    ck12o32b*ruptib - Ilkaqr tioL12 isapreemptf aca(CONFIG_PREEMPT=y):135>ss="line" namtioL124"203o>>128
p20s79
/a> *
a 72/sched/core9c#L13992892 72/s> 79=13bLsom its/ru*    ck12o32w*135>ss="line" namtioL124"203o>>128
p20s79ref="+cod7as &
3>5 >128
p20s8>>3L112" c8as &
3>5 >20ao89298 cla180f">EFAU4T
/3>4d*ad/ Furto3ow* //////////preempt_ena ac(). (Th timight br as soon as aqr wake_up()otatrs135>ss="line" namtioL124"203o>>128
p20s8>13L112" c8ao"do asnfli9/p
a 99rchse8nd up80l/ all handlerd*ad/ across12o333333oss1221w* Op12o33!u1////////preempt_ena ac()r5221w* Op12o33!u1////////preueu8, etc>135>ss="line" namtioL124"203o>>128
p20s78ic_key4">72nt"> */4/sp9)4872nt> 78 &>15#L142"tik_*renad/  \Sum_135>ss="line" namtioL124"203o>>128
p20s785ode=cnt"7key4">>1 twc9activ98a55 789" cla13/sched/*_get_avenrun>   2. TIF_NEED_RESCHED>ss="line" namtioL124"203o>>128dnamt, nearest possi acaoccasf13:135>ss="l &_9tar=a9namt,9/p
a 99rc6lvea1Y6ne" n6tioL124"203o>>128dnamt, nearest possi acao>
id4ssr9o6_ twc_pcor6na_>tar=a1ONFIG9cmT
/3>4d*ad- Furto3o3>20srchsn7nadic73l/ all handlerd*ad/ acr8>
a1"2054>8128
p20=7e6ot3stati7_12" 8las &89tar=a99s="sc7f">cn70/a3a55<221w* Op12o33!u1////ck12or6na_>t20srchsn7nadic73l/ all handlerd*ad/ acr8>5a1"2054>81124"203o>>128
p20s7958298 hre3839it" c99556a1"2054>81ne" namtioL124"203o>>1288la_bu8olong href">rq 81ne" namtioL124"203o>>128858k_a80ef="+cod7as &
3>5 p20s8>13L11sys3all or exceptf13 cor5ext, atkaqr nex80r7_ twc_p8or7na_>tar=a>s20>
_>20>
l8y 7en8020s8>>3L112" c8as &
3>5 >20ao89298 cla180f">EFAU4T
/3>4d*ad/ 812> =>
a1"89"t>
id4ssr9o7113L112" c783
a h80ight br as soon as aqr wake_up()otatrsas r6nd_k12U4T
c71lineo>>20ao89298 cla180f">EFAU4T
/3>4d*ad/ 8q
/faacclv8a13b">npref"k 32his cl"+a8r1pre811////////preempt_ena ac()r5221w* Op12o3-amtey> 789=a99s="sc71lineo>>20ao89298 cla180f">EFAU4T
/3>4d*ad/ 8q> 78 &>15#rpre">"BUG: "2054ulp8e whi81ne" namtioL124"203o>>128
p20s785ode=cnt-r=a1ONFIG9cmTs="line" namtioL124"224"
93>-4 <98o>>20ao89298 cla180f">EFAU4T
/3>4d*ad/ 8qvenrun>   >ore.c#L134" id4R 20
2>>188
p20815ode=cnt"7key4">>1 twc9activ98a5ode=cnt-r=a1ONFIG9cmT
/3>4d*ad- Furto3o3>"
93>-4 <98o>>20ao89298 cla180f">EFAU4T
/3>4d*ad/ 8qamt,9/p
a ea13b">npreempt_t2fr512nr8switc8128dnamt, nearest possi acao>
a7>>1> 77__>taaom its/ru*    ck12o32t>128witches"+p8ev58k_aednamtioL12> =>
a18 9"t>8id4ssrrev12nr_switches"+prev58k_ated>fro cla129ck_le97sted>froe28
/ches"+prev58k_ated>fro="s cla129ck_le97sted>fro="sc72 7mp_processor_id 32his cl"+asr1=mp_pro8>id27L73es8>716" href">rq
/faacclvea83b">n8ref"_mnaskolongsl2his cla13b">tfaslk__>8c 32his cl8+asr1irqs_disa accolong)a8namti81,
a href="+20>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
a1ne>ki7"20
* >20
ully 73bL2,="namtioL12> =>
a3L11961294>7>
aq_763_>t2055 77>1t+cnnruptibrq  =>
aswit3/72t" 7fair share 20
* wit3/72t" 72055 77>1t+cnnruptibrq rq
/a8load,8L42" iddump_nc", 755" href">rq
/const2 href">rq  77>1t+cnnruptibrq  =>
a1"8olongsl2his cla13b">TAINT8WARN18nr_switches"+Ta>struct>tfasl2his cla13b">tfaslk__>tar=a>st 77>1t+cnnruptibrq 
hednamtioL12> =>
a1" 9"t>
id4ssr8ass="namti8L12> =>
a1"2054>>128
p20=8cmot38p_20"13amtioL12> =>
a3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"1:hednamtioL12> =>
a1" 9"t>
id4ssr8avenrun>   d/*_get_avenrun*nVarious 82054u82_33L112" c7ar=a>struct20lli>201/////L12> =>ki7"20
* >20
ully /////L12> =>c72 7> hednamtioL12> =>
a1" 9"t>
id4ssr8aamt,9/p
a amtioL12> =>
a1"2054>>1288p20=78212nr_switches"+kurr5olo3/729cla13b">tfaslk__>tar=a>struct>t _>tacpu cla13b">nepu_a> 32his cl"+asr1epu_a>olongsl2his cla13b">kpu12nr_switches"+kpu139"=;dnamti8b_>122ass=8namtioL12> =>
a1"2056>>128
p20r829e28
/a4
sp9r77_pcorena_72 7his cl"+asr12ask_ href"ct>tfasl2his cla13b">kurr12nr_switches"+kurr5olo _>sl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_acclurr12nr_switch83ula_debug82nr_switches"+s2053ula_de8ugolo82>tar=a>commfadeltaa13b">neprofilRUNe_r6na_>t_ wit3/s cl"+asr12ask_ filRUNe_r6na_>t_ wit3/olo _>sl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_acclurr12nr_switch83 32his cl8rev12nr_switches"+prev58k8a"nam8212nr_switches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssren5
/627" href">rq
/a>load,#L42" ids2053_2hsck_eick 32his cl"+asr1s2053_2hsck_eick hr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_8en5
/72led8from its/ru*    ck12o32ww8wwwww82f="+cod7a55sl2his cl
id4ssr9of="+s5>20
6>>128
p20t7l8ot3stati713uct>"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr/729" calc load_acclurr12nr_switch832> =>
a1"8sssssss* "2054ule() a>omi8ally,82switches"+val58k_a"namtioL12> =>
a1"28ss12ssssss8s* Otherwisn,hwh0"1nelkwe8are "83r9o773a55 */497 clary12loafea7fair share 20
* >20
2fea73uct>"+prev58k_aednaHRTIC>
a1" 9"t>
id4ssHRTIC>>rq
/d/core.c#L137" id4e"9e28
/a4
sp9r8*ad/1"ll a8usssssssss*>122ass="namti8L12> 83 &>15dnamtioL12> =>
aes"+fair_=2053_2rkeup_clear1s2053_2hsck_ei2rkeup_clear href97rchse7ruc> 771_>tar=a>commenc_cd/c////////lc href">deltaa13b">nep 3del8cla13b">in8a>omic_preempt_offaslk__>8ar=a>83()-5imebdebuggpre 205cka andonc_cdscd858k_3/729"8calc load_accexit_nc_ct" 8r_swi8r12nr_switches"+kurr5olo3/729s="sref"2a1" 9i1_>tar=a>commenc_c="sref"2a1" 9i1_ href3=62ef">63__>tar=a>commfadeltaa13b">neperf_evf13_2ask_eick 32his cl"+asr1perf_evf13_2ask_eick hr1g=;dnamtioL12> =>
a1" 9"t>
87_>tar73518+cnnruptibfaacclvea13b">n8cu_sl83d4ssr9o716ot3stati7rq
/a> *kaw20n_2>28ot3stati7l8ss="sref"20
*5>20shre3=728f">738_>tar=a>commfadeltaa13b">neprswit3/72t" 7fair share 20
* wit3/72t" 72055en53=62ef">63__>tar=a>cmtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/schenivcsw961294>7>
aq_763ivcswr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_8SCHED_PROF8LING hr1ngfaacclvea13b">n8_buil83e_preempt_onaslk__>tar=a>sttrace_proL12> =>
a1" 9"t>
id4ssr9o734829" cla73/schednamtioL12> =>
a1" 9d4ssr9o71ug12nr_switchioL12> =>
a1" 9"t>
id4ssr9o6925529" cl6_key4">>1 tw9_remo99a55 699" cl#en/pfdnamtioL12ACTIVE25529" cl6_key4amtioL12ACTIVE 3calc load_updpick_next_naskolongsl2his8in_lc hre_8ddretaolong0)aednamtioL128 =>
a83s cl"+asr1CALLER_ADDRct58k_ah"namtioL12> =>
a1"2056>>128
p20r75mot3stati7lly all/t/320
* >2K_RUal_pti7_ngednamtioL12> =>
a1" 9K_RUal_pti7_ngednamt3uct>"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/schednamtioL12> =>
a1" 9d4ssr9o719o75href">rq
7omeone>ki7"20
* >20
ully 73bL2>lc load_updpick_next_naskolongsl2his8ineeds to 8faacclvea13b">n=2053_22fr812nr_8342" iddump_nc_ck 32hiswitches"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/schednamtioL12> =>
a1" 9d4ssr9o71un5
/627" href">rqTASK_RUNN/href">rq
7ode=cntTASK_RUNN/hrr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_8S2> =>
a1"8id4ssr9o75ode=cnt" 7lass=8sref"83r9o77">rq
/a> 7l/_ava} else load_updpick_next_naskolongsl2his8put_prev_n8sk 3calc load_updput_prev8nasko84e"9e28
/a4
sp9r6a3a55deactiv2r_sid4ssr9o77wc_do_actdeactiv2r_sid4s href97rchse7ruc> 771_>tar=a>commenc_cd/c//9o75href">rq
7omeone>ki7"20
* >20
ully 73bL29o75href">rq
7omeDEQUEUE_SLEEPki7"20
* >20
ulDEQUEUE_SLEEPsk_eick hr1g=;dnamtioL12> =>
a1" 9"t>
8struct>tfa8l2his cla13b">tfaslk__>ta8=a>st84 &>15dnamtioL12> =>
a1"2051>>"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/sche/////////faexp1TASK_RUNNuow>13= 0ck hr1g=;dnamtioL12> =>
a1" 9"t>
8sla13b">in8+asr12ask_ href"ct>tfasl28is cl84()-5imebdebuggpre 205cka andonc_cdscd8load,#L42"8idtfaslk__>tar=a>struct>t8/729"84>140
93t4 <97somes62L1> 6751ts="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="n8hes"+skip_8hsck_uow>1358k_gilt;m0a"n8mtioL84s="sc612f> 686nsign,5olongelk_faexp11111111111111111* > 7a wor    wlono3>"5olon,/RUNify_9tar" nawor 8
p207led>from its/ru*    ck12o32w>122ass="n8ht3stati7l8ef">rq
/faacclvea13b">npr8v12nr84es"+val58k_gigt;mfadeltaa13b">nepree1111111111111111* wheIP20 it want150">"203_avea15#L142"t12t 37" 7led>from its/ru*    ck12o32w>122ass="n8hCHED_PROF8r=a>struct>t,msl2his cla18b">pr84long href">rq nepree1111111111111111* r6n2f">EFcyaqr new3eask added to aqr rfr-queu8 pree8ass="namti8L12> =>
a1"2054>>128
p20=8+5ode84ef="+cod7as &
3>5 nepree1111111111111111*a7>>1> 77__>taaom its/ru*    ck12o32t>128d>from its8ru*    ck12o32w* Pick upi8henhi8442" iddump_nc_ck 32hiswitchesslk__>tar=a>sttrace_proL12> =>
a1" 9"t>
id4ssr9o734829" cla73/scheyd7snr_switches"+2r_sd7sn9o71ug12nr 699" cl#en/pfdnaF_WQ_WORK_switches"+__kproaF_WQ_WORK_ssk_ei load_updpick_next_naskolongsl2his8p2> =>
a1"8p20=7+wc_do_act7">rq
/a> 8l20st84r9o77">rq
/a> 7l/_avaaaaaaaaaaaaaaaaa>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
ato_
p20s7aom its/ru*    co_
p20s7r1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_81"2056>>128
p20r7a3a55
hednamtioL12> =>
a1" 9"t>
id4ssr8sk_ href" 82his cl"+asr12ask_ href"c8>tfa"85 &>15dnamtioL12> =>
a1"2051>>>>>>>>>>namtioL12> =>
ato_
p20s7aom its/ru*    co_
p20s7r1g=un5
/627" href">rqwq_wor   i5olon." calc load_accpiwq_wor   i5olon." 3uct>"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr9o75href">rq
7ome>tfaslk__>tar=a>struct>t3/729" calc load_acclurr12nr_switch8la75 &>15#8itrL42" id5">pick_next_na8k 3ca85ign,5olong////////lc hreednamswitchesslk__>tar=a>sttraceto_
p20s7aom its/ru*    co_
p20s7r1g=d/core.c#L137" id4e"9e28
/a4
sp9r8712class="8p20="1>20
a55140
93t4 <97somes62L1> 6751t+cnnrupt>>>>>>>>namtioL12> =>
atry_co_
p20_up2a1"YMBOLolongsl2his try_co_
p20_up2a1"YM3uct>"+prev58k_aednato_
p20s7aom its/ru*    co_
p20s7r1g=d729" calc load_acclurr12nr_switch8les"+skip_88k_ednamtioL12> =>
a1" 9"8>
id485delta"+ase13pp58k_ednnnnnnnnn2oL158" cla9s="li972892 712o> 77=897c_pco7568 href">rq
/ href">rq  =>
a2oL158" cla9s="li972892 712o> 77=89CHED_PROF8 =>
a1"2056>>128
p20r7a89829" c87,
a href="+20>>>>>>>>namtioL12> =>
aswit3/72t" 7fair share 20
* wit3/72t" 72055en53=62ef">63__>tar=a>cmtioL12> =>
a1" 9"t>
id4ssr9o734829" cla73/schenvcsw961294>7>
aq_763vcswr1g=;dnamtioL12> =>
a1" 9"t>
id4ssr9_8_rq_75led>8rom its/ru*    ck12o32www8wwwww85s cl"+asr1CAL2oL158" cla9s="li972892 712o> 77=89>from its8ass="namtioL12> =>
a1"2058>>12885est-prioaeask:122ass="namtioL12> =>
a8sssssss* T8enfair/3>4d*kwe cT
/3all 8ha> f85
*5>20
*onlk7_>tar740" hrd/c>
ied>fro="s cla129ck_le97s>
ied>fro="s href97rchse7ruc> 771_>tar=a>commenc_cd/c//9o75href">rq
7omeone>ki7"20
* >20
ully 73bL2d729" calc load_acclurr12nr_switch8s12sssssss8*>122ass="namtioL12> =>
a8"205686kct>
hednamtioL12> =>
a1" 9"t>
id4ssr83b">tfaslk8_>tar=a>struct>t3/729" ca8c loa863a55
a1"2056>>128
p20r75mot3stati7llyhes"+__s2053ula_ref="+s5>20
6>>128
p20t71st_n39"_>7>
a hre
a hr9f="+a961294>7>
aq_763nsign,5olong//d/core.c#L137" id4e"9e28
/a4
sp9r8ruct>t3/728" calc load_acclf 12nr_sw8tches86ign,5olong////////lc n39"_>7>
a hre

id4_balancs cla129ck_le97s
id4_balancsolo _>sl2his cla13b">tfaslk__>tar=a>struct>t39o75href">rq
7ome1_>tar=a>commenc_cd/c////////lc href">deltaa13b">nep 3del8cla13b">tf8slk__>tar=a>struct>tcedna8tioL18656>>128
p20r773e629" cl72L180">>140
98q
////////8////////lc href">deltaa138">nep869e28
/a4
sp9r77_pcorena_72 7sp9r7+89629" cl7lass="sref"20>>5>20
8t>
_7akeup74=13bLdnamtioL12> =>
a1" 9"t>
id4ssr9o75href">rq
7omeone>ki7"20
* >20
ully 73bL2>74led>from its/ru*    ck12o32t>12814829" cla8_PINNEtruct>9eltaa96 hrea8_PIq_86>tar=a>commfadeltaa13b">nepr3L11961294>7>
aq_763_>t2055un5
/627" href">rq
a1" 9"t>
id4ssr9o77wc_do_act7ruct>
a hre
9 href97rchse7ruc> 771_>tar=a>commenc_cd/c////////lc href">deltaa13b">nep 3del8RUNNfor_ea8h_2his 12nr_switches"+for8each_8612nr_switches"+prev58k_aednaclear_tsct>
ed_k12U4T
961294>7>
aq_76clear_tsct>
ed_k12U4T
3uct>"+prev58k_aednamtioL12> =>
a1" 9"t>
id4ssr/729" calc load_acclurr12nr_switch8w58k_hpu i8 (
a href="+s5>20
6>>128
820t7186 9"t>
id4ssr9o7"8ot3stati7na"tiunsuow>13_a>+casckolongsl2his cla13b">tfaslk__>tar=a>struct>tcednamtioL12> =>
a1" 9"t>
id4ssr9= 0ck hr1g=;dnamtioL12> =>
a1" 9"t>
8_769" href8>rq
/////////fadeltaa13b"8nep 386est-prioaeask:122ass="namtioL12> =>
a8ar=a>struc8>tcednamtioL12> =>
a1" 9"8>
id486ask20="1>20>rchsn7nd up718ck_a>ot>
id4ssr9o71_pcorena_72 &>15#L142"9ik__>96twc_ctioL12> =>
a1" 9"t>
id4ssre!n5
/627" href">rq3L11961294>7>
aq_763_>t2055lc load_updpick_next_naskolongsl2his8a"+ase13pp88k_ednamtioL12> =>
a1" 9"8>
id48sr9o773a557>
a hre
a h wit3/uct>llis20lli>20>a h wit3/ucp20t++ck hr1g=;dnamtioL12> =>
a1" 9"t>
87st_n39"_>8" cla12class9"line971294>8" c> 87 &>15dnamtioL12> =>
a
/627" href">rq
/a>load,#L42" ids2053_2hsck_eick 32his cl"+asr1s2053_2hsck_eick hr1g=un5
/627" href">rq3L11961294>7>
aq_763_>t2055 77>1t+cnnruptibrq  =>
aswit3/72t" 7fair share 20
* wit3/72t" 72055 77>1t+cnnruptibrq 122ass="namtioL12> 8>
a1"8056>>128
p20r773e629" cl72L180">>140
98t4 <97some872L1> 7751t+cd/core.c#L138" id487delta"+ase13pp58k_edn_eick 32his cl"+6na_>t_ wit3/s cl"+asr12ask_r6na_>t_ wit3/olo _>sl2his cla13b"1_>tar=a>commenc_cd/c//9o75href">rq
7omeone>ki7"20
* >20
ully 73bL29o75href">rq
7ome3L11961294>7>
aq_763_>t2055l 77/a3a5dnamtioL12> =>
a1" ">>1 tioL124rq1*a7>>1> 77__>taaom its/ru*    ck12o32t>128ass="namti8L12> =>
a1"2054>>128
p20=8l
/a>87witches"+prev58k_3/729="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="n83bLsom its8ru*    ck12o32w* __s2053u8a() i87long href">rq nepree111111117" clar6na_>t  wit3/>1 twcflippoL12tclao7l1IG9cmT1TASK us78ic_key4">72nt"> */4/sp9)4872nne" namtio8124"203o>>128
p20s7lref="8cod7=8_hclass="S9Psar"97ullyd7=__>a">nepree111111117"9tark12o812L12tcla1"YM vari> =>s0s3o3/>we3>st twd_elk_78ic_key4">72nt"> */4/sp9)4872nn769" href8
a1"2054>>128
p20=78">rq
8a> 7
8 h,
a href9"+ask98p. I 7
a > ">nepree111111117" etc>5#L14aaom itd>from its/r/ru*  past.Nru*v////2f">EFAU4T
93a4 <99somes712f> 79aneers4o"make 8pre Th tif8nc1f13 are:122ass="namtio812> =8
a1"2054>>128
p20=78empty hre">nepree111111117"tc>st829"s4oRUNN, but it hrefbe movoL124"anoIP20 ruc/rqaqr new3eask added to aqr rfr-queu8 pree8handlerd*a8/ across12o122ass="namtio812> =8
a1"2054>>128
p20=783a55nepree111111117a7>>1> 77__>taaom its/ru*    ck12o32t>128tc>135>ss=8line" namtioL124"203o>>128
p20s88 &>15dnamtioL12> =>
a
/627" href">rqcla13b">tfaslk__>tar=a>struct>t _>tacpu cla13b">nepu_a> 32his cl"+asr1epu_a>olongsl2his cla13b">kpu12nr_switches"+kpu139"=;dnamti8um_135>ss=8line" namtioL124"203o>>128
p20s88ign,5olong////////lc n39"_>7>
a hre
his cl"+asr12ask_ href"ct>tfasl2his cla13b">kurr12nr_switches"+kurr5olo _>sl2his cla13b">tfaslk__>tar=a>struct>t3/729" calc load_acclurr12nr_switch8ouser13/ce8lc hre135>ss="line" namti8L124"88>140
93t4 <97} else29" calc load_acclurr12nr_switch8o4 <97some8in, b*ruptibpaths. For ex8mple,88delta"+ase13pp58k_edn_eick 32his cl"c="sref"2">>1 t9i1_>tar=a>commenc_c="sref"2">>1 t9i1_ href3=62ef">63__>tar=a>commfadeltaa13b">neperf_evf13_2ask_eick 32his cl"+asr1perf_evf13_2ask_eick hr1g=;dnamtioL12> =>
a1" 9"t>
8s="line" n8mtioL124"203o>>128
p20s788829" 88829" cla6>"reo hre3
39it" c9955"8sets Thenf8ag inaeimer135>ss="line" 8amtio8812nr_switches"+prev58k_aednamosted>fro="s cla129ck_le97s>osted>fro="s href97rchse7ruc> 771_>tar=a>commenc_cd/c////////lc href">deltaa13b">nep 3del8m its/ru* 8  ck12o32w* /////er5errup8 hand88f="+cod7a55>128
p20s79">rq
/a> 8st do88lta"+ase13pp58k_ _>sl2his cl
id4s42" id__s///pre_no_k12U4T
961294>7>
aq_76
id4s42" id__s///pre_no_k12U4T
a13b">kpu12nr_switches"+kpu139"=;dnamti8ure Th tif8dd a135>ss="line" namtioL824"2088ask20="1>20>rchsn7nd up718ck_a>o3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"19"t>
id4ssr9o719ot3stati7a> *
a h,&8d*ad/ acro8s12o333333eask to aqr rfr8queu889r9o773a55o3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"1kpu12nr_switches"+kpu139"=;dnamti8ine" namti8L124"203o>>128
p20s79ic_k8y4">789ati7">rq
/a> *k20n_u>20
a55ss="line" namtioL824"2089()-5imebdebuggpre 205cka andonc_cdscd8/*_get_ave8run>   333eask, Theefaqr 8akeup8sets T =>
a1"2056>>128
p20r7l7ot3stati7ruct>sct>
u20ipi>20
557>
aq_76
id4s4submit_wor 20"19>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
at4ssr9o77wc_do_actt
9 hret>
id4ssr9o719ot3stati7a> *
a h,&8d4 <97some8 b*ruptib1alledhonkaqr ne8rest 89r9o7a17" href"7
/a>(struct20rse>20
6898ine" namti8L124"203o>>128
p20s7958298 cla7895sk20="1>20>rchsnhes"+__s2053ula_t4ssr9o77wc_do_actt
9 hre9o734829" cla73/schednamtioL12> =>
a1" 9d4ssr9o71u_a>+casck12loadss=tsctis_pi_" claT
961294>7>
aq_76tsctis_pi_" claT
3uct>"+prev58k_aednat4ssr9o77wc_do_actt
9 hrett>
id4ssr9o719ot3stati7a> *
a h,&8dets Thenf8ine" namtioL124"203o>>1288p20s789,
a href="+20>>>>>>>>KERN_ERR 32his cl"+asr1KERN_ERR" clgrss="8ine" namtioL124"203o>>1288p20s789 9"t>
id4ssr9o="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="n8 outmosc138>ss="line" namtioL124"2038>>1288p20s8>>3L112" c8as &
3>5 tar73>sgou ck1>"5olon"9tartar1 twcpluggoL1IO 8
p20d,7led>from its/ru*    ck12o32w>122ass="n8 re Th tif8////////preempt_ena ac().8(Th t8might br as soon as aqr wake_111111117"m203_sus7"2>"5ubmit it 24"a51 tiaqr new3eask added to aqr rfr-queu8 pree9dlerd*ad/ 9cross12o333333oss1221w* O912o339u1////////preempt_ena ac()r52111111117a7>>1> 77__>taaom its/ru*    ck12o32t>129t> 78 &>159L142"tik_*renad/  \Sum_139>ss="903a55
eds_flush_plugsr9o77wc_do_actblct>
eds_flush_plug3uct>"+prev58k_aednat4ssr9o77wc_do_actt
9 hrett>
id4ssr9o719ot3stati7a> *
a h,&9avenrun>  92. TIF_NEED_RESCHED>ss="l9ne" n90ign,5olong////////lc n39"_>7>
a hre
blctt7l8ot3stflush_plugsr9o77wc_do_actblctt7l8ot3stflush_plug3uct>"+prev58k_aednat4ssr9o77wc_do_actt
9 hretRR 32his cl"+asr1KERN_ERR" clgr9128dna>rq
/a> *k20n_u>20
a55
a1"2054>9128
p20=7e6ot3stati7_12" 9las &90d4ssr9o716ot3stati7rq
/a> *kaw20n_2>29>5a1"2054>91124"203o>>128
p20s7958299 hre3939it" c+prev58k_aednaasm128kagtioL12> =>
a1" 9asm128kagt>20
55fro cla129ck_le97sted>froe28
/ches"+prev58k_ad>fro="s cla129ck_le97sd>fro="sc72 7mp_processor_id 32his cl"+asr1=mp_pro9>6a1"2054>91ne" namtioL124"203o>>1289la_bu9olong 17" href"7
/a>(struct20rse>20
6899a7a1"2054>91ne" namtioL124"203o>>128958k_a90 9"t>
id4ssr9>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
at4ssr9o77wc_do_actt
9 hrect>tfasl2his cla13bf">EFA1s2053_2hsck_eick he 72055 77>1t+cnnruptibrq tar=a>s20>
_>20>
l9y 7en90est-prioaeask:122ass="namtioL12> =>
a912> =>
a1"99"t>
id4ssr9o7113L112" c793
a h90
*5>20
*onlk7_>tar740" hrd/core.c_submit_wor 961294>7>
aq_76
id4s4submit_wor 20"19"+prev58k_aednat4ssr9o77wc_do_actt
9 hretRR 32his cl"+asr1KERN_ERR" clgrnpref"k 32his cl"+a9r1pre91L112" c7329" cla13u20" c>20
ted>fro="s cla129ck_le97sted>fro="sc72 7tRR 32his cl"+asr1KERN_ERR" clgr 78 &>159rpre">"BUG: "2054ulp9e whi91ati7">rq
/a> *k20n_u>20
a55  9>ore.c#L134" id4R 20
2>>198
p20915ode=cla13u20" c>20
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednad>fro="s cla129ck_le97sd>fro="sc72 tRR 32his cl"+asr1KERN_ERR" clgrnpreempt_t2fr512nr9switc9156>>128
p20r773e629" cl72L180">>140
99witches"+p9ev58k_aednamtioL12> =>
a19 9"t>9id4ssr#ifdef cla13u20" c>20
2w/c///RCU_USER_QS cla129ck_le97s2w/c///RCU_USER_QS6>>128
p20r773e629" cl72L180">>140
99w5a1"2054>9>716" href">rq
/faacclvea93b">n919it" c+prev58k_aednaasm128kagtioL12> =>
a1" 9asm128kagt>20
55fro cla129ck_le97sted>froe28
/ches"+prev58k_ad>fro="s_
93> cla129ck_le97sd>fro="s_
93>c72 7mp_processor_id 32his cl"+asr1=mp_pro9c 32his cl9+asr1irqs_disa accolong)a9namti91long 17" href"7
/a>(struct20rse>20
6899"_irqtrace9evf13a 32his cl"+asr1pref9_irqt91 9"t>
id4ssr9o="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="n9"r7_ twc_p99297c_pco717" href">rq
/a9load,9120s8>>3L112" c8as &
3>5 tar&
3ar1e3>saft/a3a r9taomf">rq
/oN_pct>
ed_k12U4T
(),7led>from its/ru*    ck12o32w>122ass="n9"2> =>
a1"9olongsl2his cla13b">TAINT9WARN191ight br as soon as aqr wake_111111117"orrtar1 twcb8refwokrefup>KEmotely but u*  IPIr1 s/RUNNyetr73L124d,7led>from its/ru*    ck12o32w>122ass="n972l/ ald/c9re.c#L137" id4e"9e28
/a4
9p9r7l92128
p20r713a55>128
pyetr"t>
2L12tclRCU 
id4sm8k_. Do it 1e3>smanus793auntieo>>20ao89298 cla180f">EFAU4T
/3>4d*ad/ 9ass="namti9L12> =>
a1"2054>>128
p20=9cmot392
a1"2056>>128
p20r75st_n39"_>7n5
/auletarfitar"p20st/a3solumeans of drivpre Thens2054uler andothus er5e9avenrun>  9d/*_get_avenrun*nVarious 92054u92in_a>omic_preempt_offolong) &st_>&st_>k!faacclvea13b">nprev12nr_switches"+pre9aamt,9/p
a9amtioL12> =>
a1"2054>>1289p20=79212nr_switches"+kurr5olo3/729 fil
93>c_do_>tar=a>commenc_cfil
93>c_do_c72 7tRR 32his cl"+asr1KERN_ERR" clgr122ass=9namtioL12> =>
a1"2056>>129
p20r929e28
/a4
sp9r77_pcorena_72 7d>fro="s cla129ck_le97sd>fro="sc72 7tRR 32his cl"+asr1KERN_ERR" clgr92nr_switches"+s2053ula_de9ugolo92>tar=a>commfadeltaa13b">neprofil
93>c_/3>4>tar=a>commenc_cfil
93>c_/3>4c72 7tRR 32his cl"+asr1KERN_ERR" clgrrq
/a> *k20n_u>20
a55
a92est-prioaeask:122ass="namtioL12> =>
a932> =>
a1"9sssssss* "2054ule() a>omi9ally,9220
dd/co713bL275l/ all handle77led>from its/ru*    ck12o32w>122ass="n9ss12ssssss9s* Otherwisn,hwh0"1nelkwe9are "931////////preempt_ena ac()r5221d>fro="s_ly /////L12> =>das raom itwith"203o>>128
pL12> =>d7led>from its/ru*    ck12o32w>122ass="n9sss="namti9usssssssss*>122ass="namti9L12> 93ic_key4">72nt"> */4/sp9)4872nt> 78 &>15#L142"tik_*renad/  \9cla13b">in9a>omic_preempt_offaslk__>9ar=a>935ode=cnt"7key4">>1 twc9activ98RERN_Estwith"203o>>128
pL12> =>d. Note:3!u1/////2t" 7 musss="l181294>72nt> 78 &>15#L142"tik_*renad/  \9camt,9/p
a9calc load_accexit_nc_ct" 9r_swi9328dnamt, nearest possi acao>
a7>>1> 77__>taaom its/ru*    ck12o32t>1297_>tar73519+cnnruptibfaacclvea13b">n9cu_sl93d4ssr5fro cla129ck_le97sted>froe28
/ches"+prev58k_ad>fro="s_ly /////L12> =>d cla129ck_le97sd>fro="s_ly /////L12> =>dc72 7mp_processor_id 32his cl"+asr1=mp_pro9ot3stati7l9ss="sref"20
*5>20shre3=729f">7393ef"_mnaskolongsl2his cla13b">tfaslk__>9SCHED_PROF9LING hr1ngfaacclvea13b">n9_buil9312nr_switches"+prev58k_aedna
id4s42" id__s///pre_no_k12U4T
961294>7>
aq_76
id4s42" id__s///pre_no_k12U4T
a13b">kpu12nr_switches"+kpu139"=;dnamti9in_lc hre_9ddretaolong0)aednamtioL129 =>
a93 9"t>
id4ssr9o7"8ot3stati7nad>fro="s cla129ck_le97sd>fro="sc72 7tRR 32his cl"+asr1KERN_ERR" clgrn=2053_22fr912nr_93lta"+ase13pp58k_ _>sl2his cl201/////L12> =>ki7"20
* >20
ully /////L12> =>c72 7> hednamtioL12> =>
a1" 9"t>
id4ssr9S2> =>
a1"9id4ssr9o75ode=cnt" 7lass=9sref"93r9o77>rq
/a> *k20n_u>20
a55
hednamtioL12> =>
a1" 9"t>
id4ssr9struct>tfa9l2his cla13b">tfaslk__>ta9=a>st94 &>15#ifdef cla13u20" c>20
2w/c///MUTEX_SPIN_ON_OWN_switches"+__kpro2w/c///MUTEX_SPIN_ON_OWN_sct>
hednamtioL12> =>
a1" 9"t>
id4ssr9sla13b">in9+asr12ask_ href"ct>tfasl29is cl94()-5imebdebuggpre 205cka andonc_cdscd9load,#L42"9idtfaslk__>tar=a>struct>t9/729"94ets T =>
a1"2056>>128
p20r7l7ot3stati7ruct>sct>
u20ipi>20
5n39"_>7>
a hre
booMBOLolongsl2his booM>20
5n39"_>7>
a hre
owne hr9f="+a961294>7>
aq_76owne hr9f="+a20"19>rq>20
a hre712f">758shed/*961294>7>
aq_76hed/*2ass="namtioL12> =>
as cl"+asr1perf_evf13_2ask_e,9>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
aowne 961294>7>
aq_76owne  hret>
id4ssr9o719ot3stati7a> *
a h,&9hes"+skip_9hsck_uow>1358k_gilt;m0a"n9mtioL94r9o7a17" href"7
/a>(struct20rse>20
6899ht3stati7l9ef">rq
/faacclvea13b">npr9v12nr945sk20="1>20>rchsnnamtioL12> =>
as cl"+asr1perf_evf13_2ask_e9o734829" cla73/sche/wne 961294>7>
aq_76owne  hree!n5
/627" href">rqowne 961294>7>
aq_76owne  hret>
id4ssr9o719ot3stati7a> *
a h,&9hCHED_PROF9r=a>struct>t,msl2his cla19b">pr94,
a href="+20>>>>>>>>KERN_Etruq_76>1t+cnnruptlsstati7ruct>sct>
ptlss2055 77>1t+cnnruptibrq >128
p20=9+5ode94f="+cod7a55from its9ru*    ck12o32w* Pick upi9henhi9420=7f">rq
/a> 7
a h,
a hre20ref>20re__tr7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow9p2> =>
a1"9p20=7+wc_do_act7">rq
/a> 9l20st94ight br as soon as aqr wake_111111117"Ensus7"taremit 2tclowne 9o734on_cpu, de">Ee>EFce _aft/a_20s78_"+a20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow91"2056>>129
p20r7a3a55st829"mat3/uclowne ts135>slk_fails,lowne >135>s20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow91truct>tfa92his cl"+asr12ask_ href"c9>tfa"95
a1"2056>>128
p20r75st_n39"_>7n5
/aulepoiono3>"fy /()d memoryts135789=t829"mat3/ucd7stclcfilread_>1 twc20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow91la13b">in9itrL42" id5">pick_next_na9k 3ca95in_a>omic_preempt_offolong) &st_>&st_ ensus7u*    cemorylao7ys valids of drivpre Thens2054uler andothus er5e9712class="9p20="1>20
a55&st_>&st_>k!faacclvea13b">nprev12nr_switches"+pre9les"+skip_98k_ednamtioL12> =>
a1" 9"9>
id4959e28
/a4
sp9r77_pcorena_72 7b73L1e 961294>7>
aq_76b73L1e c72 7> hednamtioL12> =>
a1" 9"t>
id4ssr997c_pco7569 href">rq
/ href">rq "reo hre3
39it" c9955"99CHED_PROF9 =>
a1"2056>>128
p20r7a89929" c97,
a href="+20KERN_Etruq_76>1t+cnnruowne 961294>7>
aq_76owne  hre9o734829" cla73/sche///>tfaslk__>tar=a>st///>tf2055 77>1t+cnnruptibrq 9rom its/ru*    ck12o32www9wwwww95s cl">rq
/a> *k20n_u>20
a55from its9ass="namtioL12> =>
a1"2059>>12895est-prioaeask:122ass="namtioL12> =>
a9sssssss* T9enfair/3>4d*kwe cT
/3all 9ha> f9nc1f13 directly:122ass="namte__tr7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow9s12sssssss9*>122ass="namtioL12> =>
a9"20569>128
p20r713a55713reuirely specul>
atwcpoi/3>4c7r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3ow9struct>tfa9_>tar=a>struct>t3/729" ca9c loa9_accnr_runnl l" nr_switches"+* acsl2h"9tarRUNNreli> =>s of drivpre Thens2054uler andothus er5e9ruct>t3/729" calc load_acclf 12nr_sw9tches965ode=cnt"7key4">>1 twc9activ9>k!faacclvea13b">nprev12nr_switches"+pre9cla13b">tf9slk__>tar=a>struct>tcedna9tioL19656>>1a>struct>tfasl2his hed/*sref"2///owne 961294>7>
aq_76hed/*sref"2///owne 20"19>rq>20
a hre712f">758shed/*961294>7>
aq_76hed/*2ass="namtioL12> =>
as cl"+asr1perf_evf13_2ask_e,9>rq>20
a hre712f">758struct>onlk_aom its/ru*    ck12o32t>122ass="namtioL12> =>
aowne 961294>7>
aq_76owne  hret>
id4ssr9o719ot3stati7a> *
a h,&9q
////////9////////lc href">deltaa139">nep96r9o7a17" href"7
/a>(struct20rse>20
689914829" cla9_PINNEtruct>9eltaa96 hrea9_PIq_965sk20="1>20>rchsnhes"+__s2053ula_
id4s4fea7fair share 20
* >20
2fea73uct>"+prev58k_aednaOWN_s_SPINfair share 20
*OWN_s_SPIN hrett>
id4ssr9o719ot3stati7a> *
a h,&9RUNNfor_ea9h_2his 12nr_switches"+for9each_96,
a href="+20>>>>>>>>KERN_Et0ck hr1g=;dnamtioL12> =>
a1" 9"t>
9w58k_hpu i9 (
a href="+s5>20
6>>128
920t719ef="+cod7a55rq
/////////fadeltaa13b"9nep 39elta"+ase13pp58k_ _>sl2his clcfilread_>1 t>tar=a>commenc_cfilread_>1 tc72 7> hednamtioL12> =>
a1" 9"t>
id4ssr9ar=a>struc9>tcednamtioL12> =>
a1" 9"9>
id496ask20="1>20>rwhi12o3n39"_>7>
a hre
owne hr9f="+a961294>7>
aq_76owne hr9f="+a20"19namtioL12> =>
as cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
aowne 961294>7>
aq_76owne  hretc load_updpick_next_naskolongsl2his9a"+ase13pp98k_ednamtioL12> =>
a1" 9"9>
id49sr9o773a55 */497 clar3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"19"t>
id4ssr9o719ot3stati7a> *
a h,&97st_n39"_>9" cla12class9"line971294>9" c> 97 &>15dnamtioL12> =>
a1"2051>>break hednamtioL12> =>
a1" 9"t>
id4ssr9"kerBUG12n9_switches"+BUGolong)e_aom9its/r97()-5imebdebuggpre 205cka andonc_cdscd9 runna aca9ask *>122ass="namtioL12> 9>
a1"97>140
93t4 <97somes62Lc+prev58k_aednaarch_hed/*s+kurrela*961294>7>
aq_76arch_hed/*s+kurrela*c72 7> hednamtioL12> =>
a1" 9"t>
id4ssr9t4 <97some972L1> 7751t+cd/core.c#L139" id497delta"+ase13p>rq
/a> *k20n_u>20
a55 =>
a1"2054>>128
p20=9l
/a>97>tar=a>commfadeltaa13b">neprofilread_">>1 t>tar=a>commenc_cfilread_">>1 tc72 7> hednamtioL12> =>
a1" 9"t>
id4ssr9tUNNfor_ea9ru*    ck12o32w* __s2053u9a() i9aThenmain "2054uler func1f13>135>ss="l9ne" namtio9124"203o>>128
p20s7lref="9cod7=97 9"t>
id4ssr9o="S9Psar"97ullyd7=__> 77led>from its/ru*    ck12o32w>122ass="n9n769" href9
a1"2054>>128
p20=78">rq
9a> 7
9 h,
a href9"+ask98p. I 7
a > ">nepree* We>break2" c12tcla1op abotwcon >
ed_k12U4T
()"9tart03o>>127led>from its/ru*    ck12o32w>122ass="n9nr=a>struc9nc1f13 are:122ass="namtio912> =9
a1"2054>>128
p20=78empty hre">nepree*lowne >changed,0s3o3/>tc>7 K_RU for heavyar6na_nmeans8RERN_E7led>from its/ru*    ck12o32w>122ass="n9handlerd*a9/ across12o122ass="namtio912> =9
a1"2054>>128
p20=783a55nepree* sucsl2h"only t03o>3_2a9o734owne >tc>NULLs of drivpre Thens2054uler andothus er5e9tc>135>ss=9line" namtioL124"203o>>129
p20s98ic_key4">72nt"> */4/sp9)48nepree*>k!faacclvea13b">nprev12nr_switches"+pre9um_135>ss=9line" namtioL124"203o>>129
p20s98ign,5olong///KERN_Etruq_76>1t+cnnrus cl"+asr1perf_evf13_2ask_e9o734829" cla73/sche/wne 961294>7>
aq_76owne  hree=n5
/627" href">rqNULL961294>7>
aq_76NULL2055 77>1t+cnnruptibrq ss="line" namti9L124"9828dna>rq
/a> *k20n_u>20
a55 *k20n_u>20
a55>128
p20s789829" 98829" cla6>"reo hre3
39it" c9955"9sets Thenf9ag inaeimer135>ss="line" 9amtio9812nr_#ifdef cla13u20" c>20
2w/c///amtioL1witches"+__kpro2w/c///amtioL129" cla6>"reo hre3
39it" c9955"9se" namtio9  ck12o32w* /////er5errup9 hand9er s2054uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="n9namtioL1249203o>>128
p20s79">rq
/a> 9st do9a remo93 wak99p. I 7st > 79f">E etc>iu*    r7
a hpoiono3>"d>fro="s()"G9cmT
/-    ck"203o>>128
7led>from its/ru*    ck12o32w>122ass="n9nr=a>struc9dd a135>ss="line" namtioL924"209o>>128
p20s79empty hre74o"do a off of3!u1////////pre. K   ck"203o>>128
s off =a1ONFIG9cmT
/3>4d*ad7led>from its/ru*    ck12o32w>122ass="n9d*ad/ acro9s12o333333eask to aqr rfr9queu89andothacotatrs i">135>ss="line"occur*   r\Sum_i">rq
d>fro="s diRUNNlyaqr new3eask added to aqr rfr-queu8 pree9ine" namti9L124"203o>>128
p20s79ic_k9y4">79ef">cn5
/a39557ref> >k!faacclvea13b">nprev12nr_switches"+pre9pts Thenku9ru c135>ss="line" namtioL924"20995ode=cla13u20" c>20
asm128kagtioL12> =>
a1" 9asm128kagt>20
55fro cla129ck_le97sted>froe28
/ches"+prev58k_anotracs cla129ck_le97snotracse28
/ches"+prev58k_a!u1/////d>fro="s cla129ck_le97s!u1/////d>fro="sc72 7mp_processor_id 32his cl"+asr1=mp_pro9/*_get_ave9run>   333eask, Theefaqr 9akeup9sets Tload_updpick_next_naskolongsl2his9d4 <97some9 b*ruptib1alledhonkaqr ne9rest 99delta"+ase13p>rq>20
a hre712f">758sthread_infoaom its/ru*    chread_info2ass="namtioL12> =>
atiaom its/ru*    ci hree=>tfasl2his cla13bf">EFA_thread_infoaom its/ru*    bf">EFA_thread_infoc72 7> hednamtioL12> =>
a1" 9"t>
id4ssr9ine" namti9L124"203o>>128
p20s7958299 cla799829" cla6>"reo hre3
39it" c9955"9dets Thenf9ine" namtioL124"203o>>1289p20s799,
a href="+2054uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="n9w*135>ss="9ine" namtioL124"203o>>1289p20s79ref="+cod7as &
3>5 nepree* > 79ler\Stc>7 non-zero3!u1/////2t" 7 or 
/3>4d*adsr73>sL12> =>d,7led>from its/ru*    ck12o32w>122ass="n9 outmosc139>ss="line" namtioL124"2039>>1289p20s8>>3L112" c8as &
3>5 sLorRUNNwanto3>"!u1////*    bf">EFA>5#L1. Jusss=a1ONF.aqr new3eask added to aqr rfr-queu8 pree9ir=a>struc9////////preempt_ena ac().9(Th t9might br as soon as aqr wake_111111117>k!faacclvea13b">nprev12nr_switches"+pr30dlerd*ad/30dler////preempt_ena ac()30dle>30dlsk20="1>20>rchsnnamtioL12> =>
as>
id4ssr9o71_pcorena_72 &>15#L142"9ik__>96twc_tiaom its/ru*    ci hre9o734829" cla73/schet>
id4ssr9o6925529" cl6_key4">>1 tw9_remo99a5u_a>+casck12loadss=irqs/L12> =>d cla129ck_le97sirqs/L12> =>d20"19"troc/">>><">>cla129ckdopt_ed*ad84/cf/920a3cb54e7cbbee3d95c51ca13bf543f5ee_3/30dle>vea13b">nprev12nr_switches"+pr30d1erd*ad/30d124"203o>>128
p20s79ic_30d12>30d &>15dnamtioL12> =>
aKERN_ERR 32his cl"+asr1KERN_ERR" clgr<30d2erd*ad/30du c135>ss="line" namtio30du >30d()-5imebdebuggpre 205cka andonc_cdsc30d3erd*ad/30dun>   333eask, Theefaqr30dun>30d>140
93t4 <97Lorload_updpick_next_naskolongsl2hi30d4erd*ad/30db*ruptib1alledhonkaqr n30db*>30ddelta"+ase13pp58k_edn_eick 32his cl"ads42" id__s_remo_notracs cla129ck_le97sads42" id__s_remo_notracs15#L142"9ik__>96twc_amtioL12ACTIVE25529" cl6_key4amtioL12ACTIVE 3calRR 32his cl"+asr1KERN_ERR" clgr<30d5erd*ad/30d124"203o>>128
p20s7958230d12>30dwitches"+prev58k_3/729133872" clau ited>fro="s cla129ck_le97sted>fro="sc72 7tRR 32his cl"+asr1KERN_ERR" clgr<30d6erd*ad/30dne" namtioL124"203o>>1230dne>30d,
a href="+20>>>>>>>>namtioL12> =>
asub42" id__s_remo_notracs cla129ck_le97ssub42" id__s_remo_notracs15#L142"9ik__>96twc_amtioL12ACTIVE25529" cl6_key4amtioL12ACTIVE 3calRR 32his cl"+asr1KERN_ERR" clgr<30d7erd*ad/30dne" namtioL124"203o>>1230dne>30df="+cod7a5530d42" iddump_nc_ck 32hi54uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="30d9erd*ad/30d///////preempt_ena ac()30d//>30da1"2054>>128
p20=78empty hre">nepree111111117"Cs78_ again/r/rcas7"tarmissear"p203o>>128
popportunity7led>from its/ru*    ck12o32w>122ass="301lerd*ad/30a13b">npref"k 32his cl"+30a13>30a11"2054>>128
p20=78empty hre">nepree111111117"betw8refd>fro="s 9tarRUwaqr new3eask added to aqr rfr-queu8 pre30a1erd*ad/30rpre">"BUG: "2054ul30rpr>30aic_key4">72nt"> */4/sp9)48nepree111111117>k!faacclvea13b">nprev12nr_switches"+pr3012erd*ad/30>ore.c#L134" id4R 20
2>>30>or>30aign,5olong////////lc n39"_>7>
a hre
b73L1e 961294>7>
aq_76b73L1e c72 7> hednamtioL12> =>
a1" 9"t>
id4ss30a3erd*ad/30ea13b">npreempt_t2fr512n30ea1>30a>140
93t4 <97} whi12o3n39"_>7>
a hre
3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"19"t hednamtioL12> =>
a1" 9"t>
id4ss30a4erd*ad/30ev58k_aednamtioL12> =>
a30ev5>30a48dna>rq
/a> *k20n_u>20
a55716" href">rq
/faacclve30>71>30a9it" c+prev58k_aednaEXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aedna!u1/////d>fro="s cla129ck_le97s!u1/////d>fro="sc72 t hednamtioL12> =>
a1" 9"t>
id4ss30a6erd*ad/30+asr1irqs_disa accolong)30+as>30aThenmain "2054uler func1f13>135>ss="30a7erd*ad/30evf13a 32his cl"+asr1pre30evf>30ar s2054uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="30a8erd*ad/309297c_pco717" href">rq
/30929>30a remo93 wak99p. I 7st > 79f">E etc>iu*    r7
a hpoiono3>"d>fro="s()"G9cmT    ck"203o>>128
7led>from its/ru*    ck12o32w>122ass="30a9erd*ad/30olongsl2his cla13b">TAIN30olo>30a>>128
p20s79empty hre74o"do a off of3irqar6na_>taqr new3eask added to aqr rfr-queu8 pre302lerd*ad/30re.c#L137" id4e"9e28
/a430re.>30re>128
p20s79empty hre74o"do a Note,5>slk_ etc>iu*raom it9tark11ONFIwith"irqspL12> =>d. Tetc>wileo>>20ao89298 cla180f">EFAU4T
/3>4d*ad/30r1erd*ad/30L12> =>
a1"2054>>128
p2030L12>30raccnr_runnl l" nr_switches"+* protect us againsss=abf"satwcraomu ckG9cmT
rqaqr new3eask added to aqr rfr-queu8 pre30r2erd*ad/30d/*_get_avenrun*nVarious30d/*>30r5ode=cnt"7key4">>1 twc9activ9>k!faacclvea13b">nprev12nr_switches"+pr30r3erd*ad/30amtioL12> =>
a1"2054>>1230amt>30r3ode=cla13u20" c>20
asm128kagtioL12> =>
a1" 9asm128kagt>20
55fro cla129ck_le97sted>froe28
/ches"+prev58k_a!u1/////d>fro="s9i1_>tar=a>commenc_!u1/////d>fro="s9i1_c72 7mp_processor_id 32his cl"+asr1=mp_pr30r4erd*ad/30namtioL12> =>
a1"2056>>130nam>30rr9o7a17" href"7
/a>(struct20rse>20
6830r5erd*ad/302nr_switches"+s2053ula_d302nr>30rwitches"+prev>rq>20
a hre712f">758sthread_infoaom its/ru*    chread_info2ass="namtioL12> =>
atiaom its/ru*    ci hree=>tfasl2his cla13bf">EFA_thread_infoaom its/ru*    bf">EFA_thread_infoc72 7> hednamtioL12> =>
a1" 9"t>
id4ss30r6erd*ad/30rev12nr_switches"+prev5830rev>30rThenmain "2054uler func1f13>135>ss="3027erd*ad/30from its/ru*    ck12o32w30fro>30r 9"t>
id4ssr9o="S9Psar"97ullyd7=__> 7 Cat3/*raom rs0s3o3/>3_edo3>"barfixedo9>k!faacclvea13b">nprev12nr_switches"+pr30r8erd*ad/30all into122ass="namtioL130all>30rlta"+ase13pp58k_ _>sl2his clBUG_ONfair share 20
*BUG_ON15#L142"9ik__>96twc_tiaom its/ru*    ci hre9o734829" cla73/schet>
id4ssr9o6925529" cl6_key4">>1 tw9_remo99a5u_a>hes"+__s2053ula_irqs/L12> =>d cla129ck_le97sirqs/L12> =>d20"19"t hednamtioL12> =>
a1" 9"t>
id4ss30r9erd*ad/30sssssss* "2054ule() a>om30sss>30rswitches"+val58k_a"namtioL12> =>
a1"303lerd*ad/30s* Otherwisn,hwh0"1nelkw30s* >30s*tar=a>commfadeltaa13b">neprofil
93>c_do_>tar=a>commenc_cfil
93>c_do_c72 7tRR 32his cl"+asr1KERN_ERR" clgr<30s1erd*ad/30usssssssss*>122ass="namt30uss>30s &>15dnamtioLLorload_updpick_next_naskolongsl2hi3032erd*ad/30a>omic_preempt_offaslk__30a>o>30sign,5olong////////lc n39"_>7>
a hre
ads42" id__s_remo cla129ck_le97sads42" id__s_remo15#L142"9ik__>96twc_amtioL12ACTIVE25529" cl6_key4amtioL12ACTIVE 3calRR 32his cl"+asr1KERN_ERR" clgr<3033erd*ad/30calc load_accexit_nc_ct"30cal>30s>140
93t4 <97somes62Lc+prev58k_aednaa1"YM9i1_////pre"+asr1perf_evf13_2YM9i1_////prec72 7tRR 32his cl"+asr1KERN_ERR" clgr<30s4erd*ad/30+cnnruptibfaacclvea13b">30+cn>30sdelta"+ase13pp58k_edn_eick 32his cl"ted>fro="s cla129ck_le97sted>fro="sc72 7tRR 32his cl"+asr1KERN_ERR" clgr<3035erd*ad/30ss="sref"20
*5>20shre3=730ss=>30switches"+prev58k_3/729133872" clau i3_2YM9i1_/L12> =>ki7"20
* >20
ul3_2YM9i1_/L12> =>c72 7tRR 32his cl"+asr1KERN_ERR" clgr<3036erd*ad/30LING hr1ngfaacclvea13b">30LIN>30s,
a href="+20>>>>>>>>namtioL12> =>
asub42" id__s_remo cla129ck_le97ssub42" id__s_remo15#L142"9ik__>96twc_amtioL12ACTIVE25529" cl6_key4amtioL12ACTIVE 3calRR 32his cl"+asr1KERN_ERR" clgr<3037erd*ad/30ddretaolong0)aednamtioL130ddr>30sf="+cod7a55n=2053_22f30faa>30s42" iddump_nc_ck 32hi54uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="3039erd*ad/30id4ssr9o75ode=cnt" 7lass30id4>30sa1"2054>>128
p20=78empty hre">nepree111111117"Cs78_ again/r/rcas7"tarmissear"p203o>>128
popportunity7led>from its/ru*    ck12o32w>122ass="304lerd*ad/30sk 3calc load_updput_pre30sk >30sk1"2054>>128
p20=78empty hre">nepree111111117"betw8refd>fro="s 9tarRUwaqr new3eask added to aqr rfr-queu8 pre3041erd*ad/30l2his cla13b">tfaslk__>t30l2h>30sic_key4">72nt"> */4/sp9)48nepree111111117>k!faacclvea13b">nprev12nr_switches"+pr3042erd*ad/30+asr12ask_ href"ct>tfasl30+as>30sign,5olong////////lc n39"_>7>
a hre
b73L1e 961294>7>
aq_76b73L1e c72 7> hednamtioL12> =>
a1" 9"t>
id4ss3043erd*ad/30idtfaslk__>tar=a>struct>30idt>30s>140
93t4 <97} whi12o3n39"_>7>
a hre
3Led_k12U4T
961294>7>
aq_763_ed_k12U4T
20"19"t hednamtioL12> =>
a1" 9"t>
id4ss3044erd*ad/30hsck_uow>1358k_gilt;m0a"30hsc>30s48dna>rq
/a> *k20n_u>20
a55rq
/faacclvea13b">np30ef">30s829" cla6>"reo hre3
39it" c995530s6erd*ad/30r=a>struct>t,msl2his cla30r=a>30s6elta#ti7_f9o="S9Psar"97ullyd7=__> 7 Cw/c///amtioL117>k!faacclvea13b">nprev12nr_switches"+pr3047erd*ad/30L12> =>
a1"2054>>128
p2030L12>30sf="+cod7a5530s42" ia>struct>tfasl2his default_
p20_func128
961294>7>
aq_76default_
p20_func128
15#L142"9ik__>96twc_wait_8
p20_o cla129ck_le97swait_8
p20_o2ass="namtioL12> =>
a+asr1s2053_2hsck_eick hr1g=, unK_RUe 7r133872" clau im8k_1s2053_2hsck_eim8k_r1g=, a>struct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=,od7a55rq
/a>30p20>30sr9o77">rq
/a> 7l/_avaaaaaaaaaaa5 =>
ake4ssr9o71_pcorenake4 3calod7a5530
p9o7a17" href"7
/a>(struct20rse>20
683051erd*ad/302his cl"+asr12ask_ href"302hi>30
 &>15dnamtioLKERN_Etruq_76>1t+cnnrutry_co_
p20_upaom its/ru*    cry_co_
p20_up15#L142"9ik__>96twc_+asr1s2053_2hsck_eick hr1g=9o734829" cla73/schet>ivamtioL12> =>
a1" 9t>ivamtr1g=, r133872" clau im8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4ss3052erd*ad/30itrL42" id5">pick_next_n30itr>30
28dna>rq
/a> *k20n_u>20
a5520
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednadefault_
p20_func128
961294>7>
aq_76default_
p20_func128
15#Lt hednamtioL12> =>
a1" 9"t>
id4ss3054erd*ad/308k_ednamtioL12> =>
a1" 9308k_>30
d4ssr9o716ot3stati7rq
/a> *kaw20n_2>30
5erd*ad/30 href">rq
/ href">rq 30
5 s2054uler_eick()>135>ss=" 77led>from its/ru*    ck12o32w>122ass="3056erd*ad/30 =>
a1"2056>>128
p20r7a830 =>>30
long href">rq c_dclusatwc== 0) jusd7led>from its/ru*    ck12o32w>122ass="30
7erd*ad/30rom its/ru*    ck12o32ww30rom>30
ef="+cod7as &
3>5 30
 remo93 wak99p. I 7st > 79f">Enumber)*   n"tartp20 >rq
/clanon-exclusatwc5#L1h"9tarone exclusatwc5#L1aqr new3eask added to aqr rfr-queu8 pre3059erd*ad/30enfair/3>4d*kwe cT
/3all30enf>30
>>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre306lerd*ad/30*>122ass="namtioL12> =>
30*>1>30*>ong href">rq scircumstancss/r/rs3o3/>we href
a htortp20 >>5#L14s3o3/>1 s/already7led>from its/ru*    ck12o32w>122ass="3061erd*ad/30_>tar=a>struct>t3/729" c30_>t>30*accnr_runnl l" nr_switches"+* startedo3>"run but is/RUNNr/rd4ssr TASK_RUNNING. cry_co_
p20_up()LKERN_Es78ic_key4">72nt"> */4/sp9)48730*2erd*ad/30" calc load_acclf 12nr_s30" c>30*5ode=cnt"7key4">>1 twc9activ98zero3r/ru*is/(r73>)rcas7, 9tartar1 nid4sit byar6nainuu ck1>"5href
cla8
p20aqr new3eask added to aqr rfr-queu8 pre3063erd*ad/30slk__>tar=a>struct>tcedn30slk>30*28dnamt, nearest possi acao>
a7>>1> 77__>taaom its/ru*    ck12o32t>130*4erd*ad/30////////lc href">deltaa130///>30*d4ssr =>
a1"57>
aq_76te
p20_up_ossi8
15#L142"9ik__>96twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,7__>taaom its/ru*    ck12o32t>130*5erd*ad/30_PINNEtruct>9eltaa96 hre30_PI>30*witches"+prev58k_3/7222222222a>struct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, a>struct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=,a5 =>
ake4ssr9o71_pcorenake4 3calod7a5530*long 17" href"7
/a>(struct20rse>20
6830*7erd*ad/30 (
a href="+s5>20
6>>12830 (
>30* 9"t>
id4ssr9o7"8ot3stati7nawait_8
p20_o cla129ck_le97swait_8
p20_o2ass="namtioL12> =>
a+asr1s2053_2hsck_eick hr1g=, "namtioL12> =>
a3L11961294>7>
aq_763_>t2055 77>1t+cnnruptibrq rq
/////////fadeltaa13b30>rq>30*est-prioaeask:122ass="namtioL12> =>
30*9erd*ad/30>tcednamtioL12> =>
a1" 930>tc>30*
*5>20
*onlk7_>tar740" hrd/clist_fo>c_ach_r7
a _saf>ki7"20
* >20
ul3ist_fo>c_ach_r7
a _saf>15#L142"9ik__>96twc_+asr1s2053_2hsck_eick hr1g=9o75href">rq
7ome3L11961294>7>
aq_763_>t2055, 3=62ef">63__>tar=a>c_>tar=a>commenc_qr1g=9o734829" cla73/scheck12o3istaom its/ru*    ck12o3istr1g=9o75href">rq
7omeck12o3istaom its/ru*    ck12o3istr1g=c load_updpick_next_naskolongsl2hi307lerd*ad/308k_ednamtioL12> =>
a1" 9308k_>308kitches"+prev58k_3/72unK_RUe 7r133872" clau ifd7snr_switches"+2r_fd7snr1g=e=>tfasl2his cla13bf">1s2053_2hsck_eick hr1g=9o734829" cla73/schefd7snr_switches"+2r_fd7snr1g= 77>1t+cnnruptibrq 3081st-prioaeask:122ass="namtioL12> =>
3072erd*ad/30_switches"+BUGolong)e_ao30_sw>308ign,5olong////////lc chsnnamtioL12> =>
abf">1s2053_2hsck_eick hr1g=9o734829" cla73/schefuncr_switches"+2r_func15#L142"9ik__>96twc_+asr1s2053_2hsck_eick hr1g=9o75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=, ruct>tfasl2his ke4ssr9o71_pcorenake4 3cal 3=62e3=62erioaeask:122ass="namtioL12> =>
3073erd*ad/30ask *>122ass="namtioL12>30ask>308>140
93t4 <97somes62LLLLLLLLLLLLLLLLL142"9ik__>96twc_fd7snr_switches"+2r_fd7snr1g=e3=62e ruct>tfasl2his WQ_FLAG_EXCLUSIVE25529" cl6_key4WQ_FLAG_EXCLUSIVE 3cal 3=62e3=62e !--ruct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=lod7a55 7751t+cd/core.c#L13072L>308delta"+ase13pp58k_ednnnnnnnnnbreak hednamtioL12> =>
a1" 9"t>
id4ss3085erd*ad/30L12> =>
a1"2054>>128
p2030L12>308witches"+prev>rq
/a> *k20n_u>20
a5530812nr_>rq
/a> *k20n_u>20
a55>128
p20s7lref=30124>308f="+cod7a55>128
p20=78">rq30
a1>308 remo93 wak99p. I 7st > 79fle77led>from its/ru*    ck12o32w>122ass="3089erd*ad/30nc1f13 are:122ass="namti30nc1>308>>128
p20s79empty hre74o"do a te
p20_up -rtp20 up threads " claT
con a wait8
p20aqr new3eask added to aqr rfr-queu8 pre308lerd*ad/30/ across12o122ass="namti30/ a>30/ >128
p20s79empty hre74o"do a @q:f
clawait8
p20qr new3eask added to aqr rfr-queu8 pre3081erd*ad/30line" namtioL124"203o>>130lin>30/accnr_runnl l" nr_switches"+* @m8k_:4s3o3/>threadsqr new3eask added to aqr rfr-queu8 pre3082erd*ad/30line" namtioL124"203o>>130lin>30/5ode=cnt"7key4">>1 twc9activ98@3>c_dclusatw: howsmanyrtp20-one orrtp20-manyrthreads tortp20 up15 new3eask added to aqr rfr-queu8 pre3083erd*ad/30lc hre135>ss="line" namt30lc >30/28dnamt, nearest possi acao>
 @ke4: is/diRUNNly passedo3>"
clawa20s7 func128
15 new3eask added to aqr rfr-queu8 pre3084erd*ad/30in, b*ruptibpaths. For e30in,>30/4>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre3085erd*ad/30mtioL124"203o>>128
p20s730mti>30/5 s2054uler_eick()>135>ss="e* >tsmay"barickum2L12tlk_ etc>func128
 impliec>7 writ  cemorylb73L1e "bafo>0qr new3eask added to aqr rfr-queu8 pre3086erd*ad/30ag inaeimer135>ss="line"30ag >30/long href">rq 30/ef="+cod7as &
3>5 rq
/a>30203>30/ remo57>
aq_76te
p20_up15#L142"9ik__>96twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,7__>taaom its/ru*    ck12o32t>13089erd*ad/30dd a135>ss="line" namtio30dd >30/r9o77">rq
/a> 7l/_avaaaaaaaaaa>struct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, 5 =>
ake4ssr9o71_pcorenake4 3calod7a5530s1ong 17" href"7
/a>(struct20rse>20
683091erd*ad/30L124"203o>>128
p20s79ic_30L12>30s &>15dnamtioLunK_RUe 7lo ck829" cla73/schefd7snr_switches"+2r_fd7snr1g= 77>1t+cnnruptibrq ss="line" namtio30ru >30s()-5imebdebuggpre 205cka andonc_cdsc3093erd*ad/30run>   333eask, Theefaqr30run>30s12nr_switches"+kurr5olo3/729ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>c_>tar=a>commenc_qr1g=9o734829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4ss3094erd*ad/30 b*ruptib1alledhonkaqr n30 b*>30s9e28
/a4
sp9r77_pcorena_72 7te
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L142"9ik__>96twc__>tar=a>commenc_qr1g=, 75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, 0, ruct>tfasl2his ke4ssr9o71_pcorenake4 3cal hednamtioL12> =>
a1" 9"t>
id4ss3095erd*ad/30L124"203o>>128
p20s7958230L12>30s>tar=a>commfadeltaa13b">neprref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>c_>tar=a>commenc_qr1g=9o734829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4ss3096erd*ad/30ine" namtioL124"203o>>1230ine>30s12nr_>rq
/a> *k20n_u>20
a55>1230ine>30s7ode=cla13u20" c>20
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednate
p20_up961294>7>
aq_76te
p20_up15#Lt hednamtioL12> =>
a1" 9"t>
id4ss3098erd*ad/30>ss="line" namtioL124"2030>ss>30sest-prioaeask:122ass="namtioL12> =>
3099erd*ad/30////////preempt_ena ac()30///>30sc1f13 directly:122ass="namte__tr7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o31dlerd*ad/31dler////preempt_ena ac()31dle>31u1////////preempt_ena ac()r52* Sa aric te
p20_up but raom itwith"1hwcref"3_2a/r/rsait_8
p20_head_o helds of drivpre Thens2054uler andothus er531u1erd*ad/31d124"203o>>128
p20s79ic_31d12>310f">cn5
/a39557ref> >k!faacclvea13b">nprev12nr_switches"+pr3102erd*ad/31du c135>ss="line" namtio31du >31d()-5i57>
aq_76te
p20_up_ claT
15#L142"9ik__>96twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,aa>struct>tfasl2his n>961294>7>
aq_763> 3calod7a55   333eask, Theefaqr31dun>310ets Tload_updpick_next_naskolongsl2hi3104erd*ad/31db*ruptib1alledhonkaqr n31db*>3109e28
/a4
sp9r77_pcorena_72 7te
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L142"9ik__>96twc__>tar=a>commenc_qr1g=, 75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his n>961294>7>
aq_763> 3ca, 0, ruct>tfasl2his NULL961294>7>
aq_76NULL2055t hednamtioL12> =>
a1" 9"t>
id4ss31d5erd*ad/31d124"203o>>128
p20s7958231d12>31dwitch>rq
/a> *k20n_u>20
a55>1231dne>31d,
a hcla13u20" c>20
EXPORT_SYMBOL_GPL cla129ck_le97sEXPORT_SYMBOL_GPL20"19"+prev58k_aednate
p20_up_ claT
961294>7>
aq_76te
p20_up_ claT
15#Lt hednamtioL12> =>
a1" 9"t>
id4ss31d7erd*ad/31dne" namtioL124"203o>>1231dne>31df="+cod7a55310 remo596twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,a5 =>
ake4ssr9o71_pcorenake4 3calod7a5531da1"20load_updpick_next_naskolongsl2hi311lerd*ad/31a13b">npref"k 32his cl"+31a13>311L112" c7329" cla13u20" c>20
te
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L142"9ik__>96twc__>tar=a>commenc_qr1g=, 75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, 1, 0, ruct>tfasl2his ke4ssr9o71_pcorenake4 3cal hednamtioL12> =>
a1" 9"t>
id4ss31a1erd*ad/31rpre">"BUG: "2054ul31rpr>311ati7">rq
/a> *k20n_u>20
a55ore.c#L134" id4R 20
2>>31>or>3115ode=cla13u20" c>20
EXPORT_SYMBOL_GPL cla129ck_le97sEXPORT_SYMBOL_GPL20"19"+prev58k_aednate
p20_up_ claT
_ke4ssr9o71_pcorenate
p20_up_ claT
_ke415#Ll hednamtioL12> =>
a1" 9"t>
id4ss31a3erd*ad/31ea13b">npreempt_t2fr512n31ea1>31156>>128
p20r773e629" cl72L180">>140
3114erd*ad/31ev58k_aednamtioL12> =>
a31ev5>3114>128
p20s79empty hre74o"dole77led>from its/ru*    ck12o32w>122ass="31a5erd*ad/31>716" href">rq
/faacclve31>71>3115 s2054uler_eick()>135>ss="e* te
p20_up_sync_ke4 -rtp20 up threads " claT
con a wait8
p20aqr new3eask added to aqr rfr-queu8 pre31a6erd*ad/31+asr1irqs_disa accolong)31+as>311long href">rq 31ar s2054uler_eick()>135>ss="+* @m8k_:4s3o3/>threadsqr new3eask added to aqr rfr-queu8 pre31a8erd*ad/319297c_pco717" href">rq
/31929>31a remo93 wak99p. I 7st > 79f">E@3>c_dclusatw: howsmanyrtp20-one orrtp20-manyrthreads tortp20 up15 new3eask added to aqr rfr-queu8 pre31a9erd*ad/31olongsl2his cla13b">TAIN31olo>31a>>128
p20s79empty hre74o"do a @ke4: opa8
p val
p 3>"barpassedo3>"wa20s7 targetsqr new3eask added to aqr rfr-queu8 pre312lerd*ad/31re.c#L137" id4e"9e28
/a431re.>31re>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre3121erd*ad/31L12> =>
a1"2054>>128
p2031L12>31raccnr_runnl l" nr_switches"+*  clasync"wa20s7 diff rs02tlk_ elawa20r knows02tlk_it>wilefd>fro="sqr new3eask added to aqr rfr-queu8 pre3122erd*ad/31d/*_get_avenrun*nVarious31d/*>31r5ode=cnt"7key4">>1 twc9activ9 away soon, so whi12o1hwc5#rgetrthread>wilefb7"tokrefup,_it>wilefnod7led>from its/ru*    ck12o32w>122ass="31r3erd*ad/31amtioL12> =>
a1"2054>>1231amt>31228dnamt, nearest possi acao>
 barmigratedo3>"anodh0r CPU -rie.o1hwc5worthreads 9s7">>128cynchronized>>1287led>from its/ru*    ck12o32w>122ass="31r4erd*ad/31namtioL12> =>
a1"2056>>131nam>3124>128
p20s79empty hre74o"do atwith"_ach odh0r. Tetc>hrefprevEFA>3_edll2h"bouncu ckbetw8refCPUsaqr new3eask added to aqr rfr-queu8 pre31r5erd*ad/312nr_switches"+s2053ula_d312nr>3125 s2054uler_eick()>135>ss="e*qr new3eask added to aqr rfr-queu8 pre31r6erd*ad/31rev12nr_switches"+prev5831rev>312long href">rq hrefprevEFA>extr"p203o>>128
aqr new3eask added to aqr rfr-queu8 pre31r7erd*ad/31from its/ru*    ck12o32w31fro>312r s2054uler_eick()>135>ss="+*qr new3eask added to aqr rfr-queu8 pre31r8erd*ad/31all into122ass="namtioL131all>312 remo93 wak99p. I 7st > 79f">E>tsmay"barickum2L12tlk_ etc>func128
 impliec>7 writ  cemorylb73L1e "bafo>0qr new3eask added to aqr rfr-queu8 pre31r9erd*ad/31sssssss* "2054ule() a>om31sss>31220
dd/co713bL275l/ all handa7"changu ck1hwc5#L1rd4ssr chs9taronly chs9tyc5#L1h"9s7"tokrefupaqr new3eask added to aqr rfr-queu8 pre313lerd*ad/31s* Otherwisn,hwh0"1nelkw31s* >3131////////preempt_ena ac()r522>k!faacclvea13b">nprev12nr_switches"+pr31s1erd*ad/31usssssssss*>122ass="namt31uss>31s &>15596twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,lvea13b">nprev12nr_switches"+pr31s2erd*ad/31a>omic_preempt_offaslk__31a>o>31sign,5olong////////lc aaaaaaaaa>struct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, 5 =>
ake4ssr9o71_pcorenake4 3calod7a55313ets Tload_updpick_next_naskolongsl2hi31s4erd*ad/31+cnnruptibfaacclvea13b">31+cn>31sdelta"+ase13punK_RUe 7lo ck829" cla73/schefd7snr_switches"+2r_fd7snr1g= 77>1t+cnnruptibrq 20shre3=731ss=>31switches"+preva>struct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=e=>tfasl2his cla13WF_SYNC25529" cl6_key4WF_SYNCr1g= 77>1t+cnnruptibrq 31LIN>313Thenmain "2054uler func1f13>135>ss="3137erd*ad/31ddretaolong0)aednamtioL131ddr>313 9"t>
id4ssr9chsnnamtioL12> =>
auns>
id4ssr9o71_pcorenauns>
id415#L1hes"+__s2053ula__>tar=a>commenc_qr1g="t>
id4ssr9o719ot3stati7a> *
a h,3138erd*ad/31faacclvea13b">n=2053_22f31faa>31s42" iddump_nc_ck 32hiKERN_ERR 32his cl"+asr1KERN_ERR" clgr<3139erd*ad/31id4ssr9o75ode=cnt" 7lass31id4>313switches"+val58k_a"namtioL12> =>
a1"314lerd*ad/31sk 3calc load_updput_pre31sk >314lsk20="1>20>rchsnnamtioL12> =>
auns>
id4ssr9o71_pcorenauns>
id415#L1hes"+__s2053ula_n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=lt>
id4ssr9o719ot3stati7a> *
a h,3141erd*ad/31l2his cla13b">tfaslk__>t31l2h>314 &>15dnamtioL12> =>
aruct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=e=>0ck hr1g=;dnamtioL12> =>
a1" 9"t>3142erd*ad/31+asr12ask_ href"ct>tfasl31+as>314()-5imebdebuggpre 205cka andonc_cdsc3143erd*ad/31idtfaslk__>tar=a>struct>31idt>31412nr_switches"+kurr5olo3/729ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>c_>tar=a>commenc_qr1g=9o734829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4ss3144erd*ad/31hsck_uow>1358k_gilt;m0a"31hsc>3149e28
/a4
sp9r77_pcorena_72 7te
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L142"9ik__>96twc__>tar=a>commenc_qr1g=, 75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, ruct>tfasl2his 
p20_fd7snr_switches"+2r_
p20_fd7snr1g=, ruct>tfasl2his ke4ssr9o71_pcorenake4 3cal hednamtioL12> =>
a1" 9"t>
id4ss3145erd*ad/31ef">rq
/faacclvea13b">np31ef">314>tar=a>commfadeltaa13b">neprref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>c_>tar=a>commenc_qr1g=9o734829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4sp31e6erd*ad/31r=a>struct>t,msl2his cla31r=a>31412nr_>rq
/a> *k20n_u>20
a55 =>
a1"2054>>128
p2031L12>3147ode=cla13u20" c>20
EXPORT_SYMBOL_GPL cla129ck_le97sEXPORT_SYMBOL_GPL20"19"+prev58k_aednate
p20_up_sync_ke4ssr9o71_pcorenate
p20_up_sync_ke415#Lt hednamtioL12> =>
a1" 9"t>
id4sp31e8erd*ad/31ru*    ck12o32w* Pick up31ru*>314est-prioaeask:122ass="namtioL12> =>
3149erd*ad/31p20=7+wc_do_act7">rq
/a>31p20>314c1f13 directly:122ass="namte__tr7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o315lerd*ad/31
p20r7a3a553151////////preempt_ena ac()r52* te
p20_up_sync - see te
p20_up_sync_ke4wc20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o3151erd*ad/312his cl"+asr12ask_ href"312hi>315f">cn5
/a39557ref> >k!faacclvea13b">nprev12nr_switches"+pr3152erd*ad/31itrL42" id5">pick_next_n31itr>315()-5i596twc_wait_8
p20_head_o cla129ck_le97swait_8
p20_head_o2ass="namtioL12> =>
a_>tar=a>commenc_qr1g=, unK_RUe 7a>struct>tfasl2his h8k_1s2053_2hsck_eim8k_r1g=,aa>struct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=t>
id4ssr9o719ot3stati7a> *
a h,3153erd*ad/31p20="1>20
a55315ets Tload_updpick_next_naskolongsl2hi3154erd*ad/318k_ednamtioL12> =>
a1" 9318k_>3159e28
/a4
sp9r77_pcorena_72 7te
p20_up_sync_ke4ssr9o71_pcorenate
p20_up_sync_ke415#L142"9ik__>96twc__>tar=a>commenc_qr1g=, 75href">rq
7omem8k_1s2053_2hsck_eim8k_r1g=, ruct>tfasl2his n>c_dclusatw961294>7>
aq_763>c_dclusatwr1g=, ruct>tfasl2his NULL961294>7>
aq_76NULL2055t hednamtioL12> =>
a1" 9"t>
id4ss31
5erd*ad/31 href">rq
/ href">rq 315witch>rq
/a> *k20n_u>20
a55
a1"2056>>128
p20r7a831 =>>315,
a hcla13u20" c>20
EXPORT_SYMBOL_GPL cla129ck_le97sEXPORT_SYMBOL_GPL20"19"+prev58k_aednate
p20_up_syncssr9o71_pcorenate
p20_up_sync15#L);4
sp9r7="S9Psar"97ullyd7=__> 7 For 
/3>4nal useronly  >k!faacclvea13b">nprev12nr_switches"+pr3157erd*ad/31rom its/ru*    ck12o32ww31rom>315f="+cod7a5531
 remo93 wak99p. I 7st > 79fle77led>from its/ru*    ck12o32w>122ass="3159erd*ad/31enfair/3>4d*kwe cT
/3all31enf>31
>>128
p20s79empty hre74o"do a hreplete: - s_RUalc>7 K_ng12o1hread>waitu cko/ru*is/hreplet28
15 new3eask added to aqr rfr-queu8 pre316lerd*ad/31*>122ass="namtioL12> =>
31*>1>31*>ong href">rq tar=a>struct>t3/729" c31_>t>31*accnr_runnl l" nr_switches"+*15 new3eask added to aqr rfr-queu8 pre3162erd*ad/31" calc load_acclf 12nr_s31" c>31*5ode=cnt"7key4">>1 twc9activ98Tetc>wilertp20 up 7 K_ng12o1hread>waitu cko/ru*is/hreplet28
. Tereads wilefb715 new3eask added to aqr rfr-queu8 pre3163erd*ad/31slk__>tar=a>struct>tcedn31slk>31*28dnamt, nearest possi acao>
 awakeUe 7a>*    da arorde >tn4s3o3/>they wlrar8
p20ds of drivpre Thens2054uler andothus er531*4erd*ad/31////////lc href">deltaa131///>3164>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre31*5erd*ad/31_PINNEtruct>9eltaa96 hre31_PI>3165 s2054uler_eick()>135>ss="e* Se0 >rso hreplete_all(),rsait_fo>chreplet28
()"9tarrelatedoroutu esaqr new3eask added to aqr rfr-queu8 pre3166erd*ad/31h_2his 12nr_switches"+fo31h_2>316long href">rq 20
6>>12831 (
>316r s2054uler_eick()>135>ss="+* >tsmay"barickum2L12tlk_ etc>func128
 impliec>7 writ  cemorylb73L1e "bafo>0qr new3eask added to aqr rfr-queu8 pre31*8erd*ad/31>rq
/////////fadeltaa13b31>rq>316 remo93 wak99p. I 7st > 79f">Echangu ck1hwc5#L1rd4ssr chs9taronly chs9tyc5#L1h"9s7"tokrefupaqr new3eask added to aqr rfr-queu8 pre31*9erd*ad/31>tcednamtioL12> =>
a1" 931>tc>316>>128
p20s79empty hre74o"do a>k!faacclvea13b">nprev12nr_switches"+pr317lerd*ad/318k_ednamtioL12> =>
a1" 9318k_>318kitch5rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=t>
id4ssr9o719ot3stati7a> *
a h,3171erd*ad/31" cla12class9"line97129431" c>3181st-pload_updpick_next_naskolongsl2hi3172erd*ad/31_switches"+BUGolong)e_ao31_sw>318ign,5olong///unK_RUe 7lo ck829" cla73/schefd7snr_switches"+2r_fd7snr1g= 77>1t+cnnruptibrq 122ass="namtioL12>31ask>31756>>128
p20r773e629" cl72L180">>140
3174erd*ad/3172L1> 7751t+cd/core.c#L13172L>3179e28
/a4
sp9r77_pcorena_72 7ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4sp3185erd*ad/31L12> =>
a1"2054>>128
p2031L12>317>tar=a>commfadeltaa13b">neprxssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g=++ hednamtioL12> =>
a1" 9"t>
id4sp3186erd*ad/31ru*    ck12o32w* __s205331ru*>3176tar=a>commfadeltaa13b">neprte
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,9namtioL12> =>
aTASK_NORMAL cla129ck_le97sTASK_NORMALr1g=, 1, 0, ruct>tfasl2his NULL961294>7>
aq_76NULL2055t hednamtioL12> =>
a1" 9"t>
id4ss3187erd*ad/31124"203o>>128
p20s7lref=31124>317 9"t>
id4ssr9o7"8ot3stati7naref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>
id4sp3188erd*ad/31
a1"2054>>128
p20=78">rq31
a1>318 remo>rq
/a> *k20n_u>20
a5520
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednahrepletessr9o71_pcorenahreplete20"1t hednamtioL12> =>
a1" 9"t>
id4sp318lerd*ad/31/ across12o122ass="namti31/ a>31/ >128hednamtioL12> =>
a1" 9"t>
id4sp3181erd*ad/31line" namtioL124"203o>>131lin>31/accnr_runnl l" nr_switches"le77led>from its/ru*    ck12o32w>122ass="3182erd*ad/31line" namtioL124"203o>>131lin>31/5ode=cnt"7key4">>1 twc9activ98hreplete_all: - s_RUalc>7rq
/creads waitu cko/ru*is/hreplet28
15 new3eask added to aqr rfr-queu8 pre3183erd*ad/31lc hre135>ss="line" namt31lc >31/28dnamt, nearest possi acao>
 @x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre3184erd*ad/31in, b*ruptibpaths. For e31in,>31/4>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre3185erd*ad/31mtioL124"203o>>128
p20s731mti>31/5 s2054uler_eick()>135>ss="e* Tetc>wilertp20 up 7rq
/creads waitu cko/ru*is/particular/hreplet28
 evEFAaqr new3eask added to aqr rfr-queu8 pre3186erd*ad/31ag inaeimer135>ss="line"31ag >31/long href">rq 5 func128
 impliec>7 writ  cemorylb73L1e "bafo>0qr new3eask added to aqr rfr-queu8 pre3188erd*ad/31203o>>128
p20s79">rq
/a>31203>318 remo93 wak99p. I 7st > 79f">Echangu ck1hwc5#L1rd4ssr chs9taronly chs9tyc5#L1h"9s7"tokrefupaqr new3eask added to aqr rfr-queu8 pre3189erd*ad/31dd a135>ss="line" namtio31dd >318>>128
p20s79empty hre74o"do a>k!faacclvea13b">nprev12nr_switches"+pr319lerd*ad/31s12o333333eask to aqr rf31s12>319kitch5rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=t>
id4ssr9o719ot3stati7a> *
a h,3191erd*ad/31L124"203o>>128
p20s79ic_31L12>3191st-pload_updpick_next_naskolongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla73/schefd7snr_switches"+2r_fd7snr1g= 77>1t+cnnruptibrq    333eask, Theefaqr31run>31956>>128
p20r773e629" cl72L180">>140
3194erd*ad/31 b*ruptib1alledhonkaqr n31 b*>31s9e28
/a4
sp9r77_pcorena_72 7ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>>>140
3195erd*ad/31L124"203o>>128
p20s7958231L12>31s>tar=a>commfadeltaa13b">neprxssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g= +=>tfasl2his cla13UINT_MAX_er9o71_pcorenaUINT_MAXr1g=/2 hednamtioL12> =>
a1" 9"t>>>140
3196erd*ad/31ine" namtioL124"203o>>1231ine>3196tar=a>commfadeltaa13b">neprte
p20_up_ossi8
961294>7>
aq_76te
p20_up_ossi8
15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,9namtioL12> =>
aTASK_NORMAL cla129ck_le97sTASK_NORMALr1g=, 0, 0, ruct>tfasl2his NULL961294>7>
aq_76NULL2055t hednamtioL12> =>
a1" 9"t>
id4ss3197erd*ad/31ine" namtioL124"203o>>1231ine>319 9"t>
id4ssr9o7"8ot3stati7naref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_e,9namtioL12> =>
afd7snr_switches"+2r_fd7snr1g=t hednamtioL12> =>
a1" 9"t>>>140
3198erd*ad/31>ss="line" namtioL124"2031>ss>319 remo>rq
/a> *k20n_u>20
a55319>>128
la13u20" c>20
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednahreplete_allssr9o71_pcorenahreplete_all20"1t hednamtioL12> =>
a1" 9"t>>>140
32dlerd*ad/32dler////preempt_ena ac()32dle>320 >128hednamtioL12> =>
a1" 9"t>
id4sp32u1erd*ad/32d124"203o>>128
p20s79ic_32d12>320f">cn =>
a1""+prev58k_aednain128
p2r9o71_pcorenain128
9"t>
lo ck829" cla73/scheted>fro cla129ck_le97sted>froe28
hednamtioL12> =>
a1" 9"t>
id4sp32u2erd*ad/32du c135>ss="line" namtio32du >3205ode=cla13u20" c>20
do_
pit_fo>chrei8
961294>7>
aq_76do_
pit_fo>chrei8
20"19>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=,
lo ck829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,aa>struct>tfasl2his d4ssr961294>7>
aq_76rtamtr1g=t>
id4ssr9o719ot3stati7a> *
a h,32d3erd*ad/32dun>   333eask, Theefaqr32dun>320ets Tload_updpick_next_naskolongsl2hi3204erd*ad/32db*ruptib1alledhonkaqr n32db*>3209e28
/a4
sp9rchsnhes"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g=c load_updpick_next_naskolongsl2hi32d5erd*ad/32d124"203o>>128
p20s7958232d12>320witches"+prev58k_3/729133872" clau iDECLARE_WAITQUEUE_er9o71_pcorenaDECLARE_WAITQUEUE15#L142"9ik__>96twc_wait cla129ck_le97swaitr1g=,9namtioL12> =>
abf">EFAssr9o71_pcorenahf">EFA20"1t hednamtioL12> =>
a1" 9"t>>>140
32d6erd*ad/32dne" namtioL124"203o>>1232dne>320Thenmain "2054uler func1f13>135>ss="32d7erd*ad/32dne" namtioL124"203o>>1232dne>3207itches"+prev58k_3/729133872" clau i__ads4wait_8
p20_oailc_dclusatw961294>7>
aq_76__ads4wait_8
p20_oailc_dclusatw15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,93=62ef">63__>tar=a>csait cla129ck_le97swaitr1g=t hednamtioL12> =>
a1" 9"t>>>140
32d8erd*ad/32dss="line" namtioL124"2032dss>32042" iddump_nc_ck 32hiLorload_updpick_next_naskolongsl2hi32d9erd*ad/32d///////preempt_ena ac()32d//>320r9o77">rq
/a> 7l/_avaaaaaaaaaahsnnamtioL12> =>
as_RUal_pti7_ng_d4ssr961294>7>
aq_76r_RUal_pti7_ng_d4ssr15#L142"9ik__>96twc_d4ssr961294>7>
aq_76rtamtr1g=,9namtioL12> =>
abf">EFAssr9o71_pcorenahf">EFA20"1tc load_updpick_next_naskolongsl2hi321lerd*ad/32a13b">npref"k 32his cl"+32a13>321kitches"+prev58k_3/72es"+prev58k_3/729133872" clau itimeoutaom its/ru*    cimeoutr1g= = -ruct>tfasl2his ERESTARTSYS cla129ck_le97sERESTARTSYSr1g= 77>1t+cnnruptibrq "BUG: "2054ul32rpr>321 &>15dnamtioL12> =>
aaaaaaaaaaaaaaaaabreak hednamtioL12> =>
a1" 9"t>
id4ss3212erd*ad/32>ore.c#L134" id4R 20
2>>32>or>321ign,5olong////////lc aaaaaaaa>rq
/a> *k20n_u>20
a55npreempt_t2fr512n32ea1>321>140
93t4 <97somes62LLLLLLLLL829" cla73/schetedet_hf">EFA_d4ssr961294>7>
aq_76tedet_hf">EFA_d4ssr15#L142"9ik__>96twc_d4ssr961294>7>
aq_76rtamtr1g=t hednamtioL12> =>
a1" 9"t>>>140
3214erd*ad/32ev58k_aednamtioL12> =>
a32ev5>321delta"+ase13pp58k_ednnnnnnnnno7"8ot3stati7naref"2">>1 t9i1_961294>7>
aq_76ref"2">>1 t9i1_15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_et hednamtioL12> =>
a1" 9"t>>>140
3215erd*ad/32>716" href">rq
/faacclve32>71>321witches"+prev58k_3/72222222229133872" clau itimeoutaom its/ru*    cimeoutr1g= = o7"8ot3stati7nar>fro="s_timeoutaom its/ru*    r>fro="s_timeout15#L142"9ik__>96twc_timeoutaom its/ru*    cimeoutr1g=t hednamtioL12> =>
a1" 9"t>>>140
3216erd*ad/32+asr1irqs_disa accolong)32+as>321,
a href="+20>>>>>>>>nnnnnnnno7"8ot3stati7naref"2>1 t9i1_961294>7>
aq_76ref"2>1 t9i1_15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_et hednamtioL12> =>
a1" 9"t>>>140
3217erd*ad/32evf13a 32his cl"+asr1pre32evf>3217itches"+prev58k_3/72} whi12o3hes"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g= 3=62e3=62e 42"9ik__>96twc_timeoutaom its/ru*    cimeoutr1g=t hednamtioL12> =>
a1" 9"t>>>140
3218erd*ad/329297c_pco717" href">rq
/32929>32142" iddump_nc_ck 32hi529" cla73/scheteremove4wait_8
p20961294>7>
aq_76teremove4wait_8
p2015#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,93=62ef">63__>tar=a>csait cla129ck_le97swaitr1g=t hednamtioL12> =>
a1" 9"t>>>140
32a9erd*ad/32olongsl2his cla13b">TAIN32olo>321r9o77">rq
/a> 7l/_avachsnhes"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g=chednamtioL12> =>
a1" 9"t>>>140
322lerd*ad/32re.c#L137" id4e"9e28
/a432re.>322kitches"+prev58k_3/72es"+prevKERN_Etruq_76>1t+cnnrutimeoutaom its/ru*    cimeoutr1g= hednamtioL12> =>
a1" 9"t>>>140
3221erd*ad/32L12> =>
a1"2054>>128
p2032L12>322 &>15dnamtioL>rq
/a> *k20n_u>20
a55322ign,5olong///es"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla73/schedopt_er9o71_pcorenadoptr1g=-- hednamtioL12> =>
a1" 9"t>>>140
3223erd*ad/32amtioL12> =>
a1"2054>>1232amt>322>140
93t4 <97KERN_Etruq_76>1t+cnnrutimeoutaom its/ru*    cimeoutr1g= ?: 1 hednamtioL12> =>
a1" 9"t>>>140
3224erd*ad/32namtioL12> =>
a1"2056>>132nam>32248dna>rq
/a> *k20n_u>20
a55322829" cla6>"reo hre3
39it" c995532r6erd*ad/32rev12nr_switches"+prev5832rev>322long  =>
a1"lo ck829" cla73/scheted>fro cla129ck_le97sted>froe28
hednamtioL12> =>
a1" 9"t>
id4sp32r7erd*ad/32from its/ru*    ck12o32w32fro>3227ode=cla13u20" c>20

pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=,
lo ck829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,aa>struct>tfasl2his d4ssr961294>7>
aq_76rtamtr1g=t>
id4ssr9o719ot3stati7a> *
a h,32r8erd*ad/32all into122ass="namtioL132all>322 remoload_updpick_next_naskolongsl2hi32r9erd*ad/32sssssss* "2054ule() a>om32sss>322
*5>20
*onlk7_>tar740" hrd/cmighA_dleep961294>7>
aq_76mighA_dleep20"19t hednamtioL12> =>
a1" 9"t>>>140
323lerd*ad/32s* Otherwisn,hwh0"1nelkw32s* >323 >128hednamtioL12> =>
a1" 9"t>
id4sp32s1erd*ad/32usssssssss*>122ass="namt32uss>3231*5>20
*onlk7_>tar740" hrd/cref"2>1 t9i1_961294>7>
aq_76ref"2>1 t9i1_15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_et hednamtioL12> =>
a1" 9"t>>>140
32s2erd*ad/32a>omic_preempt_offaslk__32a>o>323ign,5olong///es"+__s2053ula_timeoutaom its/ru*    cimeoutr1g= = o7"8ot3stati7nado_
pit_fo>chrei8
961294>7>
aq_76do_
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"9ik__>96twc_d4ssr961294>7>
aq_76rtamtr1g=t hednamtioL12> =>
a1" 9"t>>>140
3233erd*ad/32calc load_accexit_nc_ct"32cal>32312nr_switches"+kurr5olo3/729ref"2">>1 t9i1_961294>7>
aq_76ref"2">>1 t9i1_15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ask_et hednamtioL12> =>
a1" 9"t>>>140
32s4erd*ad/32+cnnruptibfaacclvea13b">32+cn>32sdelta"+ase13pKERN_Etruq_76>1t+cnnrutimeoutaom its/ru*    cimeoutr1g= hednamtioL12> =>
a1" 9"t>>>140
3235erd*ad/32ss="sref"20
*5>20shre3=732ss=>323witch>rq
/a> *k20n_u>20
a5532LIN>323Thenmain "2054uler func1f13>135>ss="3237erd*ad/32ddretaolong0)aednamtioL132ddr>323ef="+cod7as &
3>5 n=2053_22f32faa>323 remo93 wak99p. I 7st > 79f">Esait_fo>chreplet28
: -rtpits fo>/hreplet28
 of >>5#L17led>from its/ru*    ck12o32w>122ass="3239erd*ad/32id4ssr9o75ode=cnt" 7lass32id4>323>>128
p20s79empty hre74o"do a @x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre324lerd*ad/32sk 3calc load_updput_pre32sk >324e>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre3241erd*ad/32l2his cla13b">tfaslk__>t32l2h>324accnr_runnl l" nr_switches"+*  cisrtpits 3>"barr_RUaled fo>/hreplet28
 of >>specifa1"5#L1. >tsisrNOTqr new3eask added to aqr rfr-queu8 pre3242erd*ad/32+asr12ask_ href"ct>tfasl32+as>3245ode=cnt"7key4">>1 twc9activ98
/3>4ruptibles9tartclraris/RU cimeoutaqr new3eask added to aqr rfr-queu8 pre3243erd*ad/32idtfaslk__>tar=a>struct>32idt>32428dnamt, nearest possi acao>
qr new3eask added to aqr rfr-queu8 pre3244erd*ad/32hsck_uow>1358k_gilt;m0a"32hsc>3244>128
p20s79empty hre74o"do atSe0 >rso similar/routu es (i.e.Esait_fo>chreplet28
_timeout())twith"1imeoutr1 new3eask added to aqr rfr-queu8 pre3245erd*ad/32ef">rq
/faacclvea13b">np32ef">3245 s2054uler_eick()>135>ss="e* 9tar
/3>4rupt capability. Arso se0 hreplete()aqr new3eask added to aqr rfr-queu8 pre3246erd*ad/32r=a>struct>t,msl2his cla32r=a>324long href">rq nprev12nr_switches"+pr3247erd*ad/32L12> =>
a1"2054>>128
p2032L12>3247ode=5fro cla129ck_le97sted>froe28
9o7"8ot3stati7nawait_fo>chreplet28
961294>7>
aq_76
pit_fo>chreplet28
15#L9>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=t>
id4ssr9o719ot3stati7a> *
a h,32e8erd*ad/32ru*    ck12o32w* Pick up32ru*>324 remoload_updpick_next_naskolongsl2hi3249erd*ad/32p20=7+wc_do_act7">rq
/a>32p20>324
*5>20
*onlk7_>tar740" hrd/c
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/scheMAX_SCHEDULE_TIMEOUTssr9o71_pcorenaMAX_SCHEDULE_TIMEOUTr1g=,
829" cla73/scheTASK_UNINTERRUPTIBLE_er9o71_pcorenaTASK_UNINTERRUPTIBLEsk_et hednamtioL12> =>
a1" 9"t>>>140
325lerd*ad/32
p20r7a3a553251////>rq
/a> *k20n_u>20
a55325f">cn5uct>tfasl2his EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednawait_fo>chreplet28
961294>7>
aq_76
pit_fo>chreplet28
15#Lt hednamtioL12> =>
a1" 9"t>>>140
3252erd*ad/32itrL42" id5">pick_next_n32itr>325()-5imebdebuggpre 205cka andonc_cdsc3253erd*ad/32p20="1>20
a5532528dnamt, nearest possi acaole77led>from its/ru*    ck12o32w>122ass="3254erd*ad/328k_ednamtioL12> =>
a1" 9328k_>3254>128
p20s79empty hre74o"do atwait_fo>chreplet28
_timeout: -rtpits fo>/hreplet28
 of >>5#L1 (w/timeoutc20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o32
5erd*ad/32 href">rq
/ href">rq 3255 s2054uler_eick()>135>ss="e* @x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre3256erd*ad/32 =>
a1"2056>>128
p20r7a832 =>>325long href">rq 325r s2054uler_eick()>135>ss="+*qr new3eask added to aqr rfr-queu8 pre32
8erd*ad/32ass="namtioL12> =>
a1"2032ass>32
 remo93 wak99p. I 7st > 79f+*  cisrtpits fo>/eidh0r a/hreplet28
 of >>specifa1"5#L1 3>"barr_RUaled o>/fo>/aqr new3eask added to aqr rfr-queu8 pre32
9erd*ad/32enfair/3>4d*kwe cT
/3all32enf>32
>>128
p20s79empty hre74o"do a specifa2L12imeout 3>"expiu8   cla2imeout isrin jiffies. >tsisrnod7led>from its/ru*    ck12o32w>122ass="326lerd*ad/32*>122ass="namtioL12> =>
32*>1>32*>ong href">rq 4ruptibleaqr new3eask added to aqr rfr-queu8 pre3261erd*ad/32_>tar=a>struct>t3/729" c32_>t>32*accnr_runnl l" nr_switches"+*15 new3eask added to aqr rfr-queu8 pre3262erd*ad/32" calc load_acclf 12nr_s32" c>32*5ode=cnt"7key4">>1 twc9activ98TeepKERN_Etval
p is 0achs2imed out, 9tarpositive (at least 1, o>/numb0r of15 new3eask added to aqr rfr-queu8 pre3263erd*ad/32slk__>tar=a>struct>tcedn32slk>32*28dnamt, nearest possi acao>
 jiffies left 3ilertimeoutcachshrepleteds of drivpre Thens2054uler andothus er532*4erd*ad/32////////lc href">deltaa132///>3264>128
p20s79empty hre74o"do a>k!faacclvea13b">nprev12nr_switches"+pr32*5erd*ad/32_PINNEtruct>9eltaa96 hre32_PI>3265 s20unK_RUe 7lo ck829" cla73/scheted>fro cla129ck_le97sted>froe28
hednamtioL12> =>
a1" 9"t>
id4sp3266erd*ad/32h_2his 12nr_switches"+fo32h_2>326,
a hcla13u20" c>20
wait_fo>chreplet28
_timeout961294>7>
aq_76
pit_fo>chreplet28
_timeout15#L1>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=,
unK_RUe 7lo ck829" cla73/schetimeoutaom its/ru*    cimeoutr1g=thednamtioL12> =>
a1" 9"t>
id4sp3267erd*ad/32 (
a href="+s5>20
6>>12832 (
>326r s20load_updpick_next_naskolongsl2hi32*8erd*ad/32>rq
/////////fadeltaa13b32>rq>32642" iddump_ncKERN_Etruq_76>1t+cnnru
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"9ik__>96twc_TASK_UNINTERRUPTIBLE_er9o71_pcorenaTASK_UNINTERRUPTIBLEsk_et hednamtioL12> =>
a1" 9"t>>>140
32*9erd*ad/32>tcednamtioL12> =>
a1" 932>tc>326>>128>rq
/a> *k20n_u>20
a55 =>
a1" 9328k_>328kitch5uct>tfasl2his EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednawait_fo>chreplet28
_timeout961294>7>
aq_76
pit_fo>chreplet28
_timeout15#Lt hednamtioL12> =>
a1" 9"t>>>140
3271erd*ad/32" cla12class9"line97129432" c>3281st-phednamtioL12> =>
a1" 9"t>>>140
3272erd*ad/32_switches"+BUGolong)e_ao32_sw>3275ode=cnt"7key4">>1 twc9actile77led>from its/ru*    ck12o32w>122ass="3273erd*ad/32ask *>122ass="namtioL12>32ask>32728dnamt, nearest possi acao>
 
pit_fo>chreplet28
_
/3>4ruptible: -rtpits fo>/hreplet28
 of >>5#L1 (w/
/3rc20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o3274erd*ad/3272L1> 7751t+cd/core.c#L13272L>3274>128
p20s79empty hre74o"do at@x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre3285erd*ad/32L12> =>
a1"2054>>128
p2032L12>3275 s2054uler_eick()>135>ss="e*qr new3eask added to aqr rfr-queu8 pre3286erd*ad/32ru*    ck12o32w* __s205332ru*>327long href">rq /hreplet28
 of >>specifa1"5#L1 3>"barr_RUaled. >tsisqr new3eask added to aqr rfr-queu8 pre3287erd*ad/32124"203o>>128
p20s7lref=32124>327ef="+cod7as &
3>5 >128
p20=78">rq32
a1>327 remo93 wak99p. I 7st > 79f+*qr new3eask added to aqr rfr-queu8 pre3289erd*ad/32nc1f13 are:122ass="namti32nc1>327>>128
p20s79empty hre74o"do a TeepKERN_Etval
p is -ERESTARTSYSachs
/3>4rupted, 0achshrepleteds of drivpre Thens2054uler andothus er5328lerd*ad/32/ across12o122ass="namti32/ a>3281////////preempt_ena ac()r522>k!faacclvea13b">nprev12nr_switches"+pr3281erd*ad/32line" namtioL124"203o>>132lin>32/accnra>struct>tfasl2his ted>fro cla129ck_le97sted>froe28
9o7"8ot3stati7nawait_fo>chreplet28
_
/3>4ruptible961294>7>
aq_76
pit_fo>chreplet28
_
/3>4ruptible15#L9>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=t>
id4ssr9o719ot3stati7a> *
a h,3282erd*ad/32line" namtioL124"203o>>132lin>32/5ode=load_updpick_next_naskolongsl2hi3283erd*ad/32lc hre135>ss="line" namt32lc >32812nr_switcheslo ck829" cla73/schetaom its/ru*    cr1g= = o7"8ot3stati7na
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/scheMAX_SCHEDULE_TIMEOUTssr9o71_pcorenaMAX_SCHEDULE_TIMEOUTr1g=,
829" cla73/scheTASK_INTERRUPTIBLE_er9o71_pcorenaTASK_INTERRUPTIBLEsk_et hednamtioL12> =>
a1" 9"t>>>140
3284erd*ad/32in, b*ruptibpaths. For e32in,>3289e28
/a4
sp9rchsn829" cla73/schetaom its/ru*    cr1g= == -ruct>tfasl2his ERESTARTSYS cla129ck_le97sERESTARTSYSr1g=t>
id4ssr9o719ot3stati7a> *
a h,3285erd*ad/32mtioL124"203o>>128
p20s732mti>328witches"+prev58k_3/72KERN_Etruq_76>1t+cnnrutaom its/ru*    cr1g= hednamtioL12> =>
a1" 9"t>>>140
3286erd*ad/32ag inaeimer135>ss="line"32ag >328,
a href="+20KERN_Et0ck hr1g=;dnamtioL12> =>
a1" 9"t>3287erd*ad/32  ck12o32w* /////er5erru32  c>32/ef="+>rq
/a> *k20n_u>20
a55>128
p20s79">rq
/a>32203>328 remo9uct>tfasl2his EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednawait_fo>chreplet28
_
/3>4ruptible961294>7>
aq_76
pit_fo>chreplet28
_
/3>4ruptible15#Lt hednamtioL12> =>
a1" 9"t>>>140
3289erd*ad/32dd a135>ss="line" namtio32dd >328switches"+val58k_a"namtioL12> =>
a1"329lerd*ad/32s12o333333eask to aqr rf32s12>3291////////preempt_ena ac()r5le77led>from its/ru*    ck12o32w>122ass="3291erd*ad/32L124"203o>>128
p20s79ic_32L12>329accnr_runnl l" nr_switches"+* 
pit_fo>chreplet28
_
/3>4ruptible_timeout: -rtpits fo>/hreplet28
 (w/(to,
/3rcc20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o3292erd*ad/32ru c135>ss="line" namtio32ru >3295ode=cnt"7key4">>1 twc9activ98@x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre3293erd*ad/32run>   333eask, Theefaqr32run>32928dnamt, nearest possi acao>
 @timeout: "1imeout val
p in jiffiesqr new3eask added to aqr rfr-queu8 pre3294erd*ad/32 b*ruptib1alledhonkaqr n32 b*>3294>128
p20s79empty hre74o"do aqr new3eask added to aqr rfr-queu8 pre3295erd*ad/32L124"203o>>128
p20s7958232L12>3295 s2054uler_eick()>135>ss="e* Tetc>wpits fo>/eidh0r a/hreplet28
 of >>specifa1"5#L1 3>"barr_RUaled o>/fo>/aqr new3eask added to aqr rfr-queu8 pre3296erd*ad/32ine" namtioL124"203o>>1232ine>329long href">rq "expiu8  It isrin3>4ruptiblea  cla2imeout isrin jiffies.qr new3eask added to aqr rfr-queu8 pre3297erd*ad/32ine" namtioL124"203o>>1232ine>329r s2054uler_eick()>135>ss="+*qr new3eask added to aqr rfr-queu8 pre3298erd*ad/32>ss="line" namtioL124"2032>ss>329 remo93 wak99p. I 7st > 79f+*  cepKERN_Etval
p is -ERESTARTSYSachs
/3>4rupted, 0achs2imed out,qr new3eask added to aqr rfr-queu8 pre3299erd*ad/32////////preempt_ena ac()32///>329>>128
p20s79empty hre74o"do a positive (at least 1, o>/numb0r of jiffies left 3ilertimeoutcachshrepleteds of drivpre Thens2054uler andothus er533dlerd*ad/33dler////preempt_ena ac()33dle>3301////////preempt_ena ac()r522>k!faacclvea13b">nprev12nr_switches"+pr33u1erd*ad/33d124"203o>>128
p20s79ic_33d12>330f">cnlo ck829" cla73/scheted>fro cla129ck_le97sted>froe28
hednamtioL12> =>
a1" 9"t>
id4sp33u2erd*ad/33du c135>ss="line" namtio33du >3305ode=cla13u20" c>20

pit_fo>chreplet28
_
/3>4ruptible_timeout961294>7>
aq_76
pit_fo>chreplet28
_
/3>4ruptible_timeout15#L1>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=,hednamtioL12> =>
a1" 9"t>
id4sp33u3erd*ad/33dun>   333eask, Theefaqr33dun>330>140
93t4 <97somes62LLLLLLLLLLLLLLLLLLLLLLLLLLLunK_RUe 7lo ck829" cla73/schetimeoutaom its/ru*    cimeoutr1g=thednamtioL12> =>
a1" 9"t>
id4sp3304erd*ad/33db*ruptib1alledhonkaqr n33db*>3309e28
load_updpick_next_naskolongsl2hi33d5erd*ad/33d124"203o>>128
p20s7958233d12>330witches"+prevKERN_Etruq_76>1t+cnnru
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"9ik__>96twc_TASK_INTERRUPTIBLE_er9o71_pcorenaTASK_INTERRUPTIBLEsk_et hednamtioL12> =>
a1" 9"t>>>140
33d6erd*ad/33dne" namtioL124"203o>>1233dne>33012nr_>rq
/a> *k20n_u>20
a55>1233dne>3307ode=cla13u20" c>20
EXPORT_SYMBOL cla129ck_le97sEXPORT_SYMBOL20"19"+prev58k_aednawait_fo>chreplet28
_
/3>4ruptible_timeout961294>7>
aq_76
pit_fo>chreplet28
_
/3>4ruptible_timeout15#Lt hednamtioL12> =>
a1" 9"t>>>140
33d8erd*ad/33dss="line" namtioL124"2033dss>330est-prioaeask:122ass="namtioL12> =>
33d9erd*ad/33d///////preempt_ena ac()33d//>330c1f13 directly:122ass="namte_*qr new3eask added to aqr rfr-queu8 pre331lerd*ad/33a13b">npref"k 32his cl"+33a13>331>ong href">rq chreplet28
_kileable: -rtpits fo>/hreplet28
 of >>5#L1 (kileablec20r7d_rq_76f">EFAU4T
/3>4d*ad/ Furto3o33a1erd*ad/33rpre">"BUG: "2054ul33rpr>331accnr_runnl l" nr_switches"+* @x:  holdu*    d4ssr ofru*is/particular/hreplet28
15 new3eask added to aqr rfr-queu8 pre3312erd*ad/33>ore.c#L134" id4R 20
2>>33>or>3315ode=cnt"7key4">>1 twc9activ915 new3eask added to aqr rfr-queu8 pre3313erd*ad/33ea13b">npreempt_t2fr512n33ea1>33128dnamt, nearest possi acao>
  cisrtpits 3>"barr_RUaled fo>/hreplet28
 of >>specifa1"5#L1. >tshrefb715 new3eask added to aqr rfr-queu8 pre3314erd*ad/33ev58k_aednamtioL12> =>
a33ev5>3314>128
p20s79empty hre74o"do at
/3>4rupted by >>kilerr_RUals of drivpre Thens2054uler andothus er53315erd*ad/33>716" href">rq
/faacclve33>71>3315 s2054uler_eick()>135>ss="e*qr new3eask added to aqr rfr-queu8 pre3316erd*ad/33+asr1irqs_disa accolong)33+as>331long href">rq 4rupted, 0achshrepleteds of drivpre Thens2054uler andothus er53317erd*ad/33evf13a 32his cl"+asr1pre33evf>331r s2054uler_eick()>135>ss="+*>k!faacclvea13b">nprev12nr_switches"+pr3318erd*ad/339297c_pco717" href">rq
/33929>33142" ia>struct>tfasl2his ted>fro cla129ck_le97sted>froe28
9o7"8ot3stati7nawait_fo>chreplet28
_kileable961294>7>
aq_76
pit_fo>chreplet28
_kileable15#L9>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_pcorenaxr1g=t>
id4ssr9o719ot3stati7a> *
a h,33a9erd*ad/33olongsl2his cla13b">TAIN33olo>331r9o77load_updpick_next_naskolongsl2hi332lerd*ad/33re.c#L137" id4e"9e28
/a433re.>332kitches"+prevlo ck829" cla73/schetaom its/ru*    cr1g= = o7"8ot3stati7na
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" cla73/scheMAX_SCHEDULE_TIMEOUTssr9o71_pcorenaMAX_SCHEDULE_TIMEOUTr1g=,
829" cla73/scheTASK_KILLABLE_er9o71_pcorenaTASK_KILLABLE15#Lt hednamtioL12> =>
a1" 9"t>>>140
3321erd*ad/33L12> =>
a1"2054>>128
p2033L12>332 &>15dnamtioLchsn829" cla73/schetaom its/ru*    cr1g= == -ruct>tfasl2his ERESTARTSYS cla129ck_le97sERESTARTSYSr1g=t>
id4ssr9o719ot3stati7a> *
a h,3322erd*ad/33d/*_get_avenrun*nVarious33d/*>332ign,5olong////////lc KERN_Etruq_76>1t+cnnrutaom its/ru*    cr1g= hednamtioL12> =>
a1" 9"t>>>140
3323erd*ad/33amtioL12> =>
a1"2054>>1233amt>332>140
93t4 <97KERN_Et0ck hr1g=;dnamtioL12> =>
a1" 9"t>3324erd*ad/33namtioL12> =>
a1"2056>>133nam>33p20961294>7>
aq_76teremove4wait_8
p20153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+cnnruptibrq tshrefb715 new3eask added to603o>>1231ine>3196tataom its/ru*    cr1g= hednamamti2054uler_e2053ula_d322nr>322829" cl36>"re320n_u>20
a55fro c3a129ck_le97sted>froe28
he3namti32ler func1f13>135>ss="3237erd*ad/32ddretaolong0)aednamtioL132ddr>323ef3his d4ssr931294>7>
aq_76rtamtr1g=t>
3d4ssr32    ck12o32w>122ass="3238erd*ad/32faacclvea13b">no>>1231in =>
a1" 9328k_>3254>128
p20s79empty hre74o"do it_fa7"
pit_ffo>chreplet28
_kileable: -rtpits fo>/hrepnto122ass=3namtioL132all>322 remoloa3_updp32    ck12o32w>122ass="3239erd*ad/32id4ssr9o75ode=cnt" 7lass32id4>323>>128
p20s79empty hre74o"do a @x:  holdu*    d4ssr o3p961294>7>3aq_76mighA_dleep20"19t he3namti33 to aqr rfr-queu8 pre316lerd*ad/32run>   333eask, Theefaqr32run>32928dnamt, nearest possi acao>
 @timeou3therwisn,h3h0"1nelkw32s* >323 >128he3namti33 to aqr rfr-queu8 pre3261erd*ad/32_>tar=a>struct>t3/729" c32_>t>32*a3/sches cl"3asr1perf_evf13_2ask_et he3namti33 to aqr rfr-queu8 pre3162erd*ad/31" 24"203o>>128
p20s7958232L12>3295 s2054uler_eick()>135ad/32_>tar=a>struct>t3/729" c32_>t>32*a3/76>1t+cnnr294>7>
aq_76rtamtr1g=t he3namti33 to aqr rfr-queu8 pre3313erd*ass="e* Tetc>wpitsad/32ine" namtioL124"203o>>1232in>
  cisrtpits 3>"barr_RUaled fo>/hreplet28
 of/sches cl"3asr1perf_evf13_2ask_et he3namti33 to aqr rfr-queu8 pre3314erd*ad/33ev58k_aednamtioL12> =>
a3q "expiu8  It isrin3>4ruptible3timeoutaom3its/ru*    cimeoutr1g= he3namti332054uler andothus er53315erd*ad/33>716" href">rq
/faacclve33>71>3315 ref"20
*5>30shre3=732ss=>323witch>rq3/a> *33 to aqr rfr-queu8 pre3316erd*ad/33+asr1irqs_disa accolong)33+as>331long href">rq  79f+*  cepKERN_Etval
p is -ERESTARTSYSachs3 hr1ngfaac3lvea13b">32LIN>323Thenmai3 "2053uler func1f13>135>ss="3237erd*ad/32////////preempt_ena ac()32///>329>>128
p20s79empty hre74o"do a positive (at least 1, o>/numb0r of jiffies left "+cod7as &33>5 331r sts fo>/hre3let28
 of >>5#L17led>from3its/r3*    c2nr_switches"+pr33u1erd*ad/33d124"203o>>128
p20s79ic_33d12>330f">cnlo ck829" cla73/schru*is/part3cular/hreplet28
15 new3ea3k add340n_u>20
a55no>>1231in =>
a1" . >tshrefb715 new3eask added to603o>>1231in3>4ruptible_timeout961294>7>
aq_76
pit_fo>chreplet28
_
/3>4ruptible_timeout15#L1>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="nam128
p20s793mpty hre74o"do aqr new3ea3k add341t+cnnruptibrq 330>140
93t4 <97somes62LLLLLLLLLLLLLLLLLLLLLLLLLLLunK_RUe 7lo ck829" cla73/sche >>specifa3"5#L1. >tsisrNOTqr new3ea3k add34719ot3stati7a> *
a h,3282erd*ad/32line3les9tartcl3aris/RU cimeoutaqr new3ea3k add3412> =>
a1" 9"t>>>140
3223erd*ad/32a124"203o>>128
p20s7958233d12>330witches"+prevKERN_Etruq_76>1t+cnnru
pit_fo>chrei8
961294>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829IMEOUTssr9o71_pcorenaMAX_SCHEDULE_TIMEOUTr1g=,
829" cla73/scheTASK_KILLABLEdnamt, nea3est possi acao>
qr new3ea3k add34amtioL12> =>
a1" 9"t>3324erd*ad/33namti28
_timeou3())twith"1imeoutr1 new3ea3k add346teremove4wait_8
p20153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+cnnruptibrq 
a1" . >tshrefb715 new3eask added to603o>>1231in3>4ruptible_Tr1g=,
829" cla73/scheTASK_KILLABLEdef"20
*5>3 se0 hreplete()aqr new3ea3k add340n_u>20
a55rq3135>ss="3237erd*ad/32ddretaolong0)aednamtioL132ddr>323ef3tioL12> =>3axssr9o71_pcorenaxr1g=t>
3d4ssr34    ck12o32w>122ass="3238erd*aaaaaatry_ew3eask added to603328try24"2decre32380s7958232L12>3o at="keb/schingd/32ddretaolong0)aednamtioL132ddr>323ef3ts fo>/hre3 Pick up32ru*>324 remoloa3_updp34    ck12o32w>122ass="3239erd*aaaaaad/32iiii958232L12>3imeoutuy"barickum2L12tlk_ etc>func128
 impliec>73_pcorenaTA3K_UNINTERRUPTIBLEsk_et he3namti35 to aqr rfr-queu8 pre324lerd*ad/32sk 3calc load_updput_pre32sk >324e37a3a553251////>rq3/a> *35U4T
/3>4d*ad/ Furto3o33a1erd*aaaaaaR>>>14s:rq 
 notreem053u3o at="keb/schingd/32ddretaolong0)aednamtioL132ddr>323ef3>7>
aq_76
3it_fo>chreplet28
15#Lt he3namti35 to aqr rfr-queu8 pre3162erd*aaaaaaaaaaaaaaa1 /numb0r of jiffies left 42" id5">p3ck_next_n32itr>325()-5ime3debug3pre 205cka andonc_cdsc3253erd*ad/32sk 3calc load_updput_pre32sk >324e37namt, nea3st possi acaole77led>from3its/r3*    ck12o32w>122ass="3254erd*aaaaaaIf0s7958232L12>3a abe03o>usefaas0s795un>31/5958232L12>f+*  cepKERN_Etval
p is -ERESTARTSYSachs3et28
 of >35#L1 (w/timeoutc20r7d_rq_36f">E3AU4T
/3>4d*ad/ Furto3o32
5erd*aaaaaaattempt24"2decre32380o75o95un>2//o at="keb/sching.ad/31+*  cepKERN_Etval
p is -ERESTARTSYSachs3eef"20
*5>3cular/hreplet28
15 new3ea3k add3d to aqr rfr-queu8 pre3256erd*aaaaaaen31ins>us24"2a2nr_smti>31/531/5/numb0r of jiffies left 4ioL12> =>3ick()>135>ss="+*qr new3ea3k add3d to aqr rfr-queu8 pre32
8erd*ad/33evf13a 32his cl"+asr1pre33evf>331r s#L1 3>"bar3_RUaled o>/fo>/aqr new3ea3k add350n_u>20
a55rq
/33929>33142" iatry_ew3eask added to6038
20"19namtioL12ry_ew3eask added to603_fo>chreplet28
_kileable961294>7>
aq_76
pit_fo>chreplet28
_kileable15#L9>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="namut isrin j3ffies. >tsisrnod7led>from3its/r3*    c3stati7a> *
a h,3282erd*ad/32line3hre3="kere37"
/3>4ruptibleaqr new3ea3k add361t+cnnruptibrongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla733cnr_runnl 3" nr_switches"+*15 new3ea3k add36719ot3stati7a2nr_switches"+pr331t>>ine" namtio31rut>>9e28
/a93t4 <97KERN_Etruq_76>1t+cnnrutime3e (at leas3 1, o>/numb0r of15 new3ea3k add361t+cnnruptibrq >140
3194erd*ad/31 b*ruptib1alledhonkaqr n31 b*>31s9e28
/a4
sp9r77_pcorena_72 7ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"_Tr1g=,
829" cla73/scheTASK_KILLABLE28
p20s79e3pty hre74o"do a>k!faacclv3a13b"36k_next_naskol32a9erd*ad/32olongsl2his cla13b">TAIN32olo>321r9o77">rq
/a> 7l/_avachsnhes"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla3eted>fro c3a129ck_le97sted>froe28
he3namti3612> =>
a1" 9"t>>>140
switches"+pr331t>>ine" namtio31rut>>9e28
/a
3323erd*ad/33amtioL12> =>
a1"2054>timeoutaom3its/ru*    cimeoutr1g=the3namti3612> =>
a1" 9"else323erd*ad/33amtioL12> =>
a1"2054>tioL12> =>30
6>>12832 (
>326r s20loa3_updp3ck_next_naskolt>>>140
switches"+pr331*ad/32d/*_get_avenrun*nVarious32d/*>322ign,5olong///es"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla733_pcorenaTA3K_UNINTERRUPTIBLEsk_et he3namti36k_next_naskolongsl2hi3249erd*ad/31ine" namtioL124"203o>>1231ine>319 9"t>
id4ssr9o7"8ot3stati7naref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o734829" cla733namtioL12>3=>
a1" 932>tc>326>>128>rq3/a> *37k_next_naskolt>>>140
3223erd*ad/32at>>ine" namtio31rut>>9e28sr1perf_evf13_2ag=9o734829" cla733nre3="kere3replet28
_timeout15#Lt he3namti3L12> =L12> =>
a1" 9"t>3324erd*ad/33namtia12class9"3ine97129432" c>3281st-phe3namti3712> =>
a1" 9"t>
id4s153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+try_ew3eask added to6038
20"19namtioL12ry_ew3eask added to603_fo>asr1perf_evf13_2ag=9o734829" cla733n (at leas3">>1 twc9actile77led>from3its/r371t+cnnruptibrq >5#L1 (w/
/3rc20r7d_rq_36f">E3AU4T
/3>4d*ad/ Furto3o3274erd*ad/32ddretaolong0)aednamtioL132ddr>323ef3ru*is/part3cular/hreplet28
15 new3ea3k add3d to aqr rfr-queu8 pre3285erd* 2iiii958232L12>_053u3- T7"824"2f">3if0s7958232L12>3has0snysmti>er1+*  cepKERN_Etval
p is -ERESTARTSYSachs3s2054uler_3ick()>135>ss="e*qr new3ea3k add3d to aqr rfr-queu8 pre3286erd*aaaaaad/32iiii958232L12>3imeoutuy"barickum2L12tlk_ etc>func128
 impliec>73"5#L1 3>"b3rr_RUaled. >tsisqr new3ea3k add3d to aqr rfr-queu8 pre3287erd*barickum2L12tlk_ etc>func128
 impliec>73"ioL12> =>3* 
/3>4ruptibleaqr new3ea3k add3d to aqr rfr-queu8 pre3288erd*aaaaaaR>>>14s:rq t9p. Iti>er1 (ew3eask added to603()a7"sprogo7"sfo>chreplet28
_kileable: -rtpits fo>/hrepemo93 wak93p. I 7st > 79f+*qr new3ea3k add3d to aqr rfr-queu8 pre3289erd*aaaaaaaaaaaaaaa1 t9p. no Iti>er1e (at least 1, o>/numb0r of jiffies left /3>4rupted3 0achshrepleteds of drivp3e The3s2054uler andothus er5328lerd* (at least 1, o>/numb0r of jiffies left /re3="kere3pt_ena ac()r522>k!faacclv3a13b"38U4T
/3>4d*ad/ Furto3o33a1erd*ad/33evf13a 32his cl"+asr1pre33evf>331r stioL12> =>3axssr9o71_pcorenaxr1g=t>
3d4ssr3812> =>
a1" 9"t>
id4sbooT_SYMBOL cla129cbooT>rq
/33929>33142" ia958232L12>_053u76
pit_fo>chreplet28
_kil_053ula_xchreplet28
_kileable961294>7>
aq_76
pit_fo>chreplet28
_kileable15#L9>rq>20
a hre712f">758shreplet28
ssr9o71_pcorenahreplet28
15#L="nam namtioL123"203o>>132lin>32/5ode=loa3_updp38719ot3stati7a> *
a h,32d3erd*ad/32dun>371_pcorena3ASK_INTERRUPTIBLEsk_et he3namti3L12> =>
a1" 9"ongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla733SYS cla1293k_le97sERESTARTSYSr1g=t>
3d4ssr3o719ot3stati7a2nr_switches"+pr331t>>ine" namtio31rut>>9e28
/a93t4 <97KERN_Etruq_76>1t+cnnrutime3_76>1t+cnn3utaom its/ru*    cr1g= he3namti380n_u>20
a55338,
a href="+20KERN_Et0ck 3r1g=;3812> =>
a1" 9"t>
id4ss3197erd*ad/31 b*ruptib1alledhonkaqr n31 b*>31s9e28
/a4
sp9r77_pcorena_72 7ref"2 cla9i1_satw961294>7>
aq_76ref"2 cla9i1_satw15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"_Tr1g=,
829" cla73/scheTASK_KILLAk 3rioL12> =>3/er5erru32  c>32/ef="+>rq3/a> *38k_next_naskol32a9erd*ad/32olongsl2his cla13b">TAIN32olo>321r9o77">rq
/a> 7l/_avachsnhes"+__s2053ula_xssr9o71_pcorenaxr1g=9o734829" cla3fo>chreple328
_
/3>4ruptible15#Lt he3namti3812> =>
a1" 9"t>>>140
switches"+pr331t>>ine" namtio31rut>>9e28
/a
3323erd*ad/33amtioL12> =>
a1"2054>135>ss="li3e" namtio32dd >328switche3"+val3902> =>
a1" 9"t>
id4ss3197erd*ad/31ine" namtioL124"203o>>1231ine>319 9"t>
id4ssr9o7"8ot3stati7naref"2">>1 t9i1_rest>
i961294>7>
aq_76ref"2">>1 t9i1_rest>
i15#L13=62ef">63__>tar=a>cxssr9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o7> =>
a1"2054>1re3="kere3pt_ena ac()r5le77led>from3its/r391t+cnnruptibrt>>>140
3223erd*ad/32at>>ine" namtio31rut>>9e28sr1perf_evf13_2ag=9o734829" cla733o>/hreplet38
 (w/(to,
/3rcc20r7d_rq_36f">E3AU4T
/L12> =>
a1" 9"t>3324erd*ad/33namtiru*is/part3cular/hreplet28
15 new3ea3k add3d to aq
a1" 9"t>
id4s153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+958232L12>_053u76
pit_fo>chreplet28
_kil_053ula_xasr1perf_evf13_2ag=9o7> =>
a1"2054>11_pcorena3val
p in jiffiesqr new3ea3k add3d to ar1perf_evf13_2ag=9o7> =>
a1"2054>1YS cla1293mpty hre74o"do aqr new3ea3k add3d to a39it" c995532r6erd*ad/32rev12nr_switches"+prev5832rev>322long  =>
a1"lo ck829" cla73/sc3#L1 3>"bar3_RUaled o>/fo>/aqr new3ea3k add3912> =>
a1" 9"t>
id4ssss>3_il_>128
p20s7958233d12>3sss>3_il_>128
psnr1g= 77>1t+cnnru72" clhead_ . >tshrefb715 new3ea72" clhead_ eable15#L9>rq>20
a hrd_accexit_nc_ct"qesait orenaxr1g=,
lo ck829" cla73/schetimeoutaom its/rssr9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_ssr9o71_pcorenaxr1g=9o734829" cla3  cla2imeo3t isrin jiffies.qr new3ea3k add3912> =>
a1" 9"t>
id4sp3267erd*ad/32 (
a3s2054uler_3ick()>135>ss="+*qr new3ea3k add39k_next_naskolongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla733/3>4rupted3 0achs2imed out,qr new3ea3k add39k_next_naskolongsl2hi3249erd*ad/372" cla. >tshrefb715 new3ea72" clt>rq
/33929>33142" iai15#L13=62ef">63__>tar=a>cx5olong///unK_RUe 7lo ck829" cla7343ilertimeo4tcachshrepleteds of drivp4e The4012> =>
a1" 9"t>>>140
323lerd*ad/32s* 4//////pree4pt_ena ac()r522>k!faacclv4a13b"4012> =>
a1" 9"t>
id4sp32s1erdin3eatar=72" cl3a1ryL13=62ef">63__>in3eatar=72" cl3a1rystati7naref"2">>1 t9i1_re015#L13=62ef">63__>tar=a>cxss= 77>1t+915#L142"9ik__>96twc_d4ssr961294>75olong///unK_RUe 7lo ck829" cla73432////pree4p
 (w/(to,
/3rcc20r7d_rq_4namti4012> =>
a1" 9"t>>>140
3252erd*ad/32itr4tioL12> =>4axssr9o71_pcorenaxr1g=,he4namti4012> =>
a1" 9"t>>>140
3233erdeempt_t2fr512n32ea1>321>140
93t4 <97somes62LLLLLLLLL829" cla73/schetedet_hf">EFA_d4ssr961294>7>
aq_76tedet_hf">EFA_d4ssr15#L142"9ik__>964timeoutaom4its/ru*    cimeoutr1g=the4namti40 to ar1perf_evf13_2ag=9o7> =>
a1"20544ptib1alled4onkaqr n33db*>3309e28
loa4_updp4ck_next_naskolt>
id4ss3197erd*ad/31 b*ruptib1alledhonkaqr n31 b*>31s9e28
/a4
sp9r77_pcorena_72 7ref"2 cd_accexit_nc_ct"qesaief"2">>1 t9i1_rest>
r1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o7> =>
a1"2054471_pcorena4ASK_INTERRUPTIBLEsk_et he4namti4062> =>
a1" 9"t>>>140
3233erdeeadd17" href">rq
/32929>32142" iadd17" href">r29" cla73/schetedet_d_accexit_nc_ct"qesait r9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,93=62ef">63__>t4namtioL1244203o>>1233dne>33012nr_>rq4/a> *4012> =>
a1" 9"t>
id4ss3197erd*ad/3t>
id4203o>>1231ine>319 9"t>
id4p9r77_pcorena_72 7ref"2 cd_accexit_nc_ct"qesaief"2">>1 t9i1_rest>
r1g=9o734829" cla73/schesai29ck_le97swaitr1g=,93=62ef">63__>t4n8mtioL12442ck()>135>ss="+*qr new3ea4namti4082> =>
a1" 9"t>
id4ss3197erd">rq
/faacclve32>71>321witches"+prev58k_3/72222222229133872" clau itimeoutaom its/ru*    cimeoutr1g= = o7"8ot3stati7nar>fro="s_timeoutaom its/ru*    r>fro="s_timeout15#L142"9ik__>96twc_4"line" nam4ioL124"2033dss>330est-pri4aeask40k_next_naskolongsl2hi3249erd*ad/32usssssssss*>122ass="namt32uss>3231*5>20
*onlk7_>tar740" hrd/d_accexit_nc_ct"qesaief"2">>1 t9i1_rest>
r1g=9o734829" cla73/schesai29ck_le97swaitr1g=,93=62ef">63__>t413 directl4:122ass="namte_*qr new3ea4k add4102> =>
a1" 9"t>
id4ss3197erd97c_pco717" href">rq
/32929>32142" iddump_nc_ck 32hi529" cla73/schetedet_d_accexit_nc_ct"qesait r9o71_pcorenaxr1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=,93=62ef">63__>t4let28
 of 4>5#L1 (kileablec20r7d_rq_46f">E4112> =>
a1" 9"t>
id4sp32s1erd*ad/31ine" namtioL124"203o>>1231ine>319 9"t>
id4ssr9o7"8ot3stati7naref"2">>1 t9i1_red_accexit_nc_ct"qesaief"2">>1 t9i1_rest>
r1g=9o734829" cla73/schesait cla129ck_le97swaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o7> =>
a1"20544ru*is/part4cular/hreplet28
15 new3ea4k add4112> =>
a1" 9"t>>>140
3252erd*ad/32itr4de=cnt"7ke44">>1 twc9activ915 new3ea4k add4112> =>
a1" 9"t>>>140
3223erd*ad/32amtioL12> =>
a1"2054>>1232amt>322>sr1perf_evf13_2ag=9o7> =>
a1"20544rimeoutaom4"5#L1. >tshrefb715 new3ea4k add41amtioL12> =>
a1" 9"t>3324erd*ad/33namt43>4rupted 4y >>kilerr_RUals of drivp4e The410n_u>20
a55135>ss="e*qr new3ea4k add4d to a2nr_switches"+pr3247erd*ad/32L12> =>
a1"2054>>128
p2032L12>3247ode=53_ilL13=62ef">63__>ineplet28
_
/3sss>3_ilsnr1g= 77>1t+cnnru72" clhead_ . >tshrefb715 new3ea72" clhead_ eable15#L9>rq>20
a hrd_accexit_nc_ct"qesaissr9o71_pcorenaxr1g=9o734829" cla4/3>4rupted4 0achshrepleteds of drivp4e The4112> =>
a1" 9"t>
id4sp3267erd*ad/32 (
a42054uler_e4ck()>135>ss="+*>k!faacclv4a13b"4182> =>
a1" 9"t>
id4ss3197erdsss>3_il_>128
p20s7958233d12>3sss>3_il_>128
psnr1g= 77>1t+d_accexit_nc_ct"qesait = 77>1t+,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"94>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" clasr1perf_evf13_2ag=9o7> =>
a1"20544rline" nam4axssr9o71_pcorenaxr1g=t>
4d4ssr4112> =>
a1" 9"t>>>140
32*9erd*ad/32>tce4sl2his cla43b">TAIN33olo>331r9o77loa4_updp420n_u>20
a55 =>
a1" 9328k_>328kitch5uct>tfashreplet28
_
/3sss>3_ilL13=62ef">63__>ineplet28
_
/3sss>3_ilsnr1asr1perf_evf13_2ag=9o7> =>
a1"20544_er9o71_pc4renaTASK_KILLABLE15#Lt he4namti4212> =>
a1" 9"t>>>140
3271erd*ad/32" c4SYS cla1294k_le97sERESTARTSYSr1g=t>
4d4ssr4o719ot995532r6erd*ad/32rev12nr_switches"+prev5832rev>322long  =>
a1"lo ck829" cla73/sc4_76>1t+cnn4utaom its/ru*    cr1g= he4namti42 to aq
a1" 9"t>
id4sineplet28
_
/3sss>3_il" clau itimeoutaom its/ineplet28
_
/3sss>3_il" clau isnr1g= 77>1t+cnnru72" clhead_ . >tshrefb715 new3ea72" clhead_ eable15#L9>rq>20
a hrd_accexit_nc_ct"qesait r9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_ssr9o71_pcorenaxr1g=9o734829" cla4>1233amt>342>140
93t4 <97KERN_Et0ck 4r1g=;4212> =>
a1" 9"t>
id4sp3304erd*ad/33db*r4oL12> =>
a4"2056>>133nam>33p2096129447>
aq42k_next_naskolongsl2hi33d5erd*ad/33dsss>3_il_>128
p20s7958233d12>3sss>3_il_>128
psnr1g= 77>1t+d_accexit_nc_ct"qesait = 77>1t+,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"94>7>
aq_76
pit_fr>fro="s_timeoutaom its/ru*    r>fro="s_timeout15#L142"9ik__>96twc_4i2054uler_42053ula_d322nr>322829" cl46>"re4212> =>
a1" 9"t>>>140
33d6erd*ad/33dne"4eted>fro c4a129ck_le97sted>froe28
he4namti420n_u>20
a55>1233dne>3307ode=cla13u20"ineplet28
_
/3sss>3_il" clau itimeoutaom its/ineplet28
_
/3sss>3_il" clau isnr1fro="s_timeout15#L142"9ik__>96twc_4i054uler_e41294>7>
aq_76rtamtr1g=t>
4d4ssr4212> =>
a1" 9"t>>>140
33d8erd*ad/33dss4nto122ass=4namtioL132all>322 remoloa4_updp42    c2nr_switches"+pr3247erd*ad/32L12> =>
a1"2054>>128
p2032L12>3247ode=53_ilL13=62ef">63__>sss>3_ilsnr1g= 77>1t+cnnru72" clhead_ . >tshrefb715 new3ea72" clhead_ eable15#L9>rq>20
a hrd_accexit_nc_ct"qesaissr9o71_pcorenaxr1g=9o734829" cla4p961294>7>4aq_76mighA_dleep20"19t he4namti43    c3stati7a> *
a h,3282erd*ad/32line4therwisn,h4h0"1nelkw32s* >323 >128he4namti4312> =>
a1" 9"t>
id4sp32s1erd*ss>3_il_>128
p20s7958233d12>3sss>3_il_>128
psnr1g= 77>1t+d_accexit_nc_ct"qesait = 77>1t+,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"9ik_94>7>
aq_76
pit_fo>chrei8
20"19namtioL12> =>
axssr9o71_pcorenaxr1g=,
829" clasr1perf_evf13_2ag=9o7> =>
a1"20544/sches cl"4asr1perf_evf13_2ask_et he4namti43U4T
/L12> =>
a1" 9"t>3324erd*ad/33namt4/76>1t+cnn4294>7>
aq_76rtamtr1g=t he4namti43 to aq
a1" 9"t>
id4s153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+sss>3_ilL13=62ef">63__>sss>3_ilsnr1asr1perf_evf13_2ag=9o7> =>
a1"20544/1233amt>34asr1perf_evf13_2ask_et he4namti43 to ar1perf_evf13_2ag=9o7> =>
a1"20544timeoutaom4its/ru*    cimeoutr1g= he4namti432054u995532r6erd*ad/32rev12nr_switches"+prev5832rev>3"t>
id4sp32s1erd*ss>3_il_ clau itimeoutaom its/rss>3_il" clau isnr1g= 77>1t+cnnru72" clhead_ . >tshrefb715 new3ea72" clhead_ eable15#L9>rq>20
a hrd_accexit_nc_ct"qesait r9o71_pcorenahreplet28
15#L="namtioL12> =>
axssr9o71_ssr9o71_pcorenaxr1g=9o734829" cla4ref"20
*5>40shre3=732ss=>323witch>rq4/a> *43 to a3stati7a> *
a h,3282erd*ad/32line4tted>fro c4lvea13b">32LIN>323Thenmai4 "2054312> =>
a1" 9"ongsl2hi33d5erd*ad/33dsss>3_il_>128
p20s7958233d12>3sss>3_il_>128
psnr1g= 77>1t+d_accexit_nc_ct"qesait = 77>1t+,
829" cla73/schetimeoutaom its/ru*    cimeoutr1g=,a42"9ik_94>7>
aq_76
pit_fr>fro="s_timeoutaom its/ru*    r>fro="s_timeout15#L142"9ik__>96twc_4"+cod7as &43>5 3324erd*ad/33namt4/to122ass=4let28
 of >>5#L17led>from4its/r430n_u>20
a55 77>1t+sss>3_il_ clau itimeoutaom its/rss>3_il" clau isnr1fro="s_timeout15#L142"9ik__>96twc_4ru*is/part4cular/hreplet28
15 new3ea4k add4412> =>
a1" 9"t>>>140
323lerd*ad/32s* 4128
p20s794mpty hre74o"do aqr new3ea4k add441t+cn#ifdef4>7>
aq_76
pit_fCONFIG_1_pMUTEXEn829" cla73/scheCONFIG_1_pMUTEXEn2> =>
a1" 9"t>>>140
323lerd*ad/32s* 41sches cl"4"5#L1. >tsisrNOTqr new3ea4k add4412> =>
a1" 9"t>>>140
3252erd*ad/32itr4les9tartcl4aris/RU cimeoutaqr new3ea4k add44re 205cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 4dnamt, nea4est possi acao>
qr new3ea4k add44    ck12o32w>122ass="3254erd*art_mutex7somprio - som0o75o962LLLL prioritypty hre74od/33evf13a 32his cl"+asr1pre33evf>331r 4dimeoutaom4())twith"1imeoutr1 new3ea4k add44U4T
/3>4d*ad/ Furto3o32
5erd*adp:re74od/33evf13a 32his cl"+asr1pre33evf>331r 4def"20
*5>4 se0 hreplete()aqr new3ea4k add44 to aqr rfr-queu8 pre3256erd*adprio: priorqs_dis(cl"+as-ineplnal>wpimfo>chreplet28
_kileable: -rtpits fo>/hre4g href">rq4135>ss="3237erd* (at least 1, o>/numb0r of jiffies left4tioL12> =>4axssr9o71_pcorenaxr1g=t>
4d4ssr44    ck12o32w>122ass="3238erd*ad/31"funcL12>3changer9o75o'effec>3ve' prioritypty hre74o232indo>32928dnamt, nearest possi acao>
 @timeou4ts fo>/hre4 Pick up32ru*>324 remoloa4_updp44    ck12o32w>122ass="3239erd*ado 2touch ef"2"npimal_priorlike 97somru*    cr()e (at least 1, o>/numb0r of jiffies left4_pcorenaTA4K_UNINTERRUPTIBLEsk_et he4namti45 to aqr rfr-queu8 pre324lerd*ad/32sk 3calc load_updput_pre32sk >324e47a3a553251////>rq4/a> *45U4T
/3>4d*ad/ Furto3o33a1erd*aUs_aedna /33+t_mutex pit_24"2it28
mLLL prioritypinheritance r9gice (at least 1, o>/numb0r of jiffies left4_sches cl"4it_fo>chreplet28
15#Lt he4namti45 to aqr rfr-queu8 pre3162erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 442" id5">p4ck_next_n32itr>325()-5ime4debug4pre 202nr_switches"+pr3247rt_mutex7somprio829" cla73/schert_mutex7sompriosnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_94orenaxr1g=,
lo ck82prio829" cla73/schepriosnr1ssr9o71_pcorenaxr1g=9o734829" cla47namt, nea4st possi acaole77led>from4its/r4512> =>
a1" 9"t>
id4sp3304erd*ad/33db*r4et28
 of >45#L1 (w/timeoutc20r7d_rq_46f">E45719ot3stati7a2nr_switches"+pr331oldprio829" cla73/scheoldprio9ik_94>7>
aq_76
pit_fil"sssss*>122ass="nail"ss9ik_94>7>
aq_76
pit_frunning829" cla73/scherunning322>sr1perf_evf13_2ag=9o7> =>
a1"20544eef"20
*5>4cular/hreplet28
15 new3ea4k add4562> =>
a1" 9"hreplet28
_kileable961sssss*>122ass="nass9ik_e15#L9>rq>20
a hrsssss*>122ass="nass9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544e href">rq4val
p in jiffiesqr new3ea4k add4512> =>
a1" 9"const"hreplet28
_kileable9619o7> _p in timeoutaom its/ru*  _p in eable15#L9>rq>20
a hrprev_p in timeoutaom its/prev_p in 9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544eioL12> =>4ick()>135>ss="+*qr new3ea4k add4512> =>
a1" 9"t>>>140
33d8erd*ad/33dss4#L1 3>"bar4_RUaled o>/fo>/aqr new3ea4k add45k_next_naskolongsl2hi3249erdBUG_ONtimeoutaom its/BUG_ONsnr1g= 77>1t+prio829" cla73/schepriosnr1 < 0 ||naxr1g=,
lo ck82prio829" cla73/schepriosnr1 f"2"4>7>
aq_76
pit_fo>chPRIOL12> =>
axssr9o71_pPRIOsnr1fro="s_timeout15#L142"9ik__>96twc_4ut isrin j4ffies. >tsisrnod7led>from4its/r4612> =>
a1" 9"t>>>140
323lerd*ad/32s* 4hre3="kere47"
/3>4ruptibleaqr new3ea4k add4612> =>
a1" 9"t>
id4sp32s1erdsssss*>122ass="nass9ik_eev58k_3/722222222__s74o_rq_r1g=9o734829" cla73__s74o_rq_r1g=snr1g= 77>1t+ps_timeoutaom itp9ik_fro="s_timeout15#L142"9ik__>96twc_4usches cl"4" nr_switches"+*15 new3ea4k add4612> =>
a1" 9"t>>>140
3252erd*ad/32itr4e (at leas4 1, o>/numb0r of15 new3ea4k add4612> =>
a1" 9"tcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 43ilertimeo4tcachshrepleteds of drivp4e The46    ck12o32w>122ass="3254erddddddddd* Idle_eick(boos>31/5331r 43t28
 of >4pty hre74o"do a>k!faacclv4a13b"46U4T
/3>4d*ad/ Furto3o32
5erddddddddd* excepL12>f when PREEMPT_1_ and NOHZ53ve:la33evf13a 32his cl"+asr1pre33evf>331r 43ef"20
*5>4a129ck_le97sted>froe28
he4namti46 to aqr rfr-queu8 pre3256erddddddddd*la33evf13a 32his cl"+asr1pre33evf>331r 43 href">rq4its/ru*    cimeoutr1g=the4namti46ler func1f13>135>ss="3237erddddddddd* d/33idle_eick(callssget_next" clarchreplet28() and d4ssrla33evf13a 32his cl"+asr1pre33evf>331r 43ioL12> =>40
6>>12832 (
>326r s20loa4_updp46    ck12o32w>122ass="3238erddddddddd* t331r 43L1 3>"bar4K_UNINTERRUPTIBLEsk_et he4namti46    ck12o32w>122ass="3239erddddddddd* to"access t
  safelyla33evf13a 32his cl"+asr1pre33evf>331r 4namtioL12>4=>
a1" 932>tc>326>>128>rq4/a> *47 to aqr rfr-queu8 pre324lerddddddddd* ignpie0o75oboos>31/5request,aas0t/33idle_CPU runs7lass37>1tla33evf13a 32his cl"+asr1pre33evf>331r 4nre3="kere4replet28
_timeout15#Lt he4namti47U4T
/3>4d*ad/ Furto3o33a1erddddddddd* o at31long hres dis31ind and wempta positi0t/33r1g=sn33evf13a 32his cl"+asr1pre33evf>331r 4nsches cl"4ine97129432" c>3281st-phe4namti47 to aqr rfr-queu8 pre3162erddddddddd* protec>nd secL12>3o at="kebe03o>1long href". So f"ct>t331r 4n (at leas4">>1 twc9actile77led>from4its/r47re 205cka andonc_cdsc3253erddddddddd* real ne" naooboos>e (at least 1, o>/numb0r of jiffies left4eplet28
 o4 >>5#L1 (w/
/3rc20r7d_rq_46f">E4AU4T
/3>4d*ad/ Furto3o3274erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 4ru*is/part4cular/hreplet28
15 new3ea4k add47k_next_naskol32a9= 77>1t+unlikelyL13=62ef">63__>unlikelysnr1g= 77>1t+ps_timeoutaom itp9ik_8
p2t>
id4sp32s1erdsssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
idletimeoutaom its/idine>319) >
a1" 9"t>
id4sp3304erd*ad/33db*r4s2054uler_4ick()>135>ss="e*qr new3ea4k add4712> =>
a1" 9"t>>>140
switches"+pr331WARN_ONtimeoutaom its/WARN_ONsnr1g= 77>1t+ps_timeoutaom itp9ik_8!p2t>
id4sp32s1erdsssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
962Lsss*>122ass="na962L9ik_fro="s_timeout15#L142"9ik__>96twc_4"5#L1 3>"b4rr_RUaled. >tsisqr new3ea4k add4772> =>
a1" 9"t>>>140
switches"+pr331WARN_ONtimeoutaom its/WARN_ONsnr1g= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
pi_b/sch  _
p20s7958233d12>3pi_b/sch  _
p9ik_fro="s_timeout15#L142"9ik__>96twc_4"ioL12> =>4* 
/3>4ruptibleaqr new3ea4k add47k_next_naskolt>>>140
goaoo>7>
aq_76
pit_fiut3t>
id4203o>>1231ine>3iut3t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20544emo93 wak94p. I 7st > 79f+*qr new3ea4k add47k_next_naskolL12> =>
a1" 9"t>3324erd*ad/33namt4/3>4rupted4 0achshrepleteds of drivp4e The4812> =>
a1" 9"t>>>140
323lerd*ad/32s* 4/re3="kere4pt_ena ac()r522>k!faacclv4a13b"4812> =>
a1" 9"t>
id4sp32s1erdtracev5832r_pi_somprio829" cla73/schetracev5832r_pi_sompriosnr1g= 77>1t+ps_timeoutaom itp9ik_94>7>
aq_76
pit_fprio829" cla73/schepriosnr1ssr1perf_evf13_2ag=9o7> =>
a1"20544tioL12> =>4axssr9o71_pcorenaxr1g=t>
4d4ssr4822> =>
a1" 9"t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1sr1perf_evf13_2ag=9o7> =>
a1"20544t (at leas4"203o>>132lin>32/5ode=loa4_updp4812> =>
a1" 9"t>>>140
3233erdprev_p in timeoutaom its/prev_p in 9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eablsr1perf_evf13_2ag=9o7> =>
a1"20544tplet28
 o4ASK_INTERRUPTIBLEsk_et he4namti4L12> =>
a1" 9">7>
aq_76
pit_fil"sssss*>122ass="nail"ss9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
il"sssss*>122ass="nail"ss9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544tu*is/part4k_le97sERESTARTSYSr1g=t>
4d4ssr48k_next_naskolt>
id4ss3197erdrunning829" cla73/scherunning322>eev58k_3/722222222s74o_915#L142"9ik__>96twc_ds74o_915#L14snr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_fro="s_timeout15#L142"9ik__>96twc_4_76>1t+cnn4utaom its/ru*    cr1g= he4namti4812> =>
a1" 9"32a9= 77>1t+il"sssss*>122ass="nail"ss9ik_ssr9o71_pcorenaxr1g=9o734829" cla4ne"32ag >348,
a href="+20KERN_Et0ck 4r1g=;4872> =>
a1" 9"t>>>140
switches"+pr331de72" clt74osss*>122ass="nade72" clt74osnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, 0fro="s_timeout15#L142"9ik__>96twc_4_ioL12> =>4/er5erru32  c>32/ef="+>rq4/a> *48k_next_naskol32a9t>
id4ss3197erdrunning829" cla73/scherunning322>ssr9o71_pcorenaxr1g=9o734829" cla4nmo93 wak9428
_
/3>4ruptible15#Lt he4namti4812> =>
a1" 9"t>>>140
switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eablef"2">>1 t9i1_rest>
put3prev_t74osss*>122ass="naput3prev_t74osnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_fro="s_timeout15#L142"9ik__>96twc_4135>ss="li4e" namtio32dd >328switche4"+val4912> =>
a1" 9"t>>>140
323lerd*ad/32s* 41re3="kere4pt_ena ac()r5le77led>from4its/r491t+cnnruptibr32a9t>
id4ss3197erdrt_prio829" cla73/schert_priosnr1g= 77>1t+prio829" cla73/schepriosnr1sssr9o71_pcorenaxr1g=9o734829" cla4o>/hreplet48
 (w/(to,
/3rcc20r7d_rq_46f">E49719ot3stati7a> *
a h,switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eableev7naref"2">>1 t9i1_rert_9o7> _p in timeoutaom its/rt_9o7> _p in 9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544ru*is/part4cular/hreplet28
15 new3ea4k add4912> =>
a1" 9"else323erd*ad/33amtioL12> =>
a1"2054411_pcorena4val
p in jiffiesqr new3ea4k add49419ot3stati7a> *
a h,switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eableev7naref"2">>1 t9i1_refair_9o7> _p in timeoutaom its/fair_9o7> _p in 9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544ru*is/part4mpty hre74o"do aqr new3ea4k add490n_u>20
a55"bar4_RUaled o>/fo>/aqr new3ea4k add4962> =>
a1" 9"t>>>140
3233erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1eev58k_3/722222222prio829" cla73/schepriosnr1sr1perf_evf13_2ag=9o7> =>
a1"20544  cla2imeo4t isrin jiffies.qr new3ea4k add4912> =r1perf_evf13_2ag=9o7> =>
a1"20544 ioL12> =>4ick()>135>ss="+*qr new3ea4k add49k_next_naskol32a9t>
id4ss3197erdrunning829" cla73/scherunning322>ssr9o71_pcorenaxr1g=9o734829" cla4/3>4rupted4 0achs2imed out,qr new3ea4k add4912> =>
a1" 9"t>>>140
switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eablef"2">>1 t9i1_rest>
somes62L_t74osss*>122ass="nasomes62L_t74osnr1g= 77>1t+sssss*>122ass="nass9ik_fro="s_timeout15#L142"9ik__>96twc_53ilertimeo5tcachshrepleteds of drivp5e The500_next_naskol32a9t>
id4ss3197erdil"sssss*>122ass="nail"ss9ik_ssr9o71_pcorenaxr1g=9o734829" cla5//////pree5pt_ena ac()r522>k!faacclv5a13b"5012> =>
a1" 9"t>>>140
switches"+pr331en72" clt74osss*>122ass="naen72" clt74osnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_e< >>1 t9i1_rest>
prio829" cla73/schepriosnr1e? >>1 t9i1_rest>
ENQUEUE_HEAD829" cla73/scheENQUEUE_HEADsnr1e: 0fro="s_timeout15#L142"9ik__>96twc_532////pree5p
 (w/(to,
/3rcc20r7d_rq_5namti5012> =>
a1" 9"t>>>140
3252erd*ad/32itr5tioL12> =>5axssr9o71_pcorenaxr1g=,he5namti5012> =>
a1" 9"t>>>140
3233erd52eck_p in _change2nr_switches"+pr52eck_p in _change2snr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, t>
id4sp32s1erdprev_p in timeoutaom its/prev_p in 9ik_, t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_fro="s_timeout15#L142"9ik__>96twc_534oL12> =>5aal
p in jiffiesqr new3ea5namti50 to a>7>
aq_76
pit_fiut3t>
id4203o>>1231ine>3iut3t>
id49ik_:o="s_timeout15#L142"9ik__>96twc_535oL12> =>5apty hre74o"do aqr new3ea5_updp5ck_next_naskolt>
id4ss3197erd__s74o_rq_t>
id4203o>>1231ine>3__s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_fro="s_timeout15#L142"9ik__>96twc_536oL12> =>5aRUaled o>/fo>/aqr new3ea5namti5012> =>
a1" 9"t>>>140
33d6erd*ad/33dne"5namtioL1245203o>>1233dne>33012nr_>rq5/a> *5012> =#endif
a1" 9"t>>>140
33d6erd*ad/33dne"5n8mtioL12452ck()>135>ss="+*qr new3ea5namti5082> =2nr_switches"+pr3247someuser_nic"203o>>1231ine>31omeuser_nic"snr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_94r9o71_pcorenahrepletnic"203o>>1231ine>3nic"snr1ssr9o71_pcorenaxr1g=9o734829" cla5/9mtioL124520achs2imed out,qr new3ea5aeask50k_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r513 directl5:122ass="namte_*qr new3ea5k add5102> =>
a1" 9"2nr_switches"+pr331old_prio829" cla73/scheold_prio9ik_, t>
id4sp32s1erddeltasss*>122ass="nadelta9ik_, t>
id4sp32s1erdol"sssss*>122ass="nail"ss9ik_sr1perf_evf13_2ag=9o7> =>
a1"20545let28
 of 5>5#L1 (kileablec20r7d_rq_56f">E5112> =>
a1" 9"ongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla735ru*is/part5cular/hreplet28
15 new3ea5k add51719ot3stati7ahreplet28
_kileable961sssss*>122ass="nass9ik_e15#L9>rq>20
a hrsssss*>122ass="nass9ik_sr1perf_evf13_2ag=9o7> =>
a1"20545de=cnt"7ke54">>1 twc9activ915 new3ea5k add511t+cnnruptibrq tshrefb715 new3ea5k add51419ot3stati7a32a9t>
id4ss3197erd    cNICmeoutaom its/ru*    cNICmsnr1g= 77>1t+ps_timeoutaom itp9ik_)8
p2t>
id4sp32s1erdnic"203o>>1231ine>3nic"snr1 ||naxr1g=,
lo ck82nic"203o>>1231ine>3nic"snr1 < -20 ||naxr1g=,
lo ck82nic"203o>>1231ine>3nic"snr1 &"2"419ssr9o71_pcorenaxr1g=9o734829" cla53>4rupted 5y >>kilerr_RUals of drivp5e The51k_next_naskolllllllllongsl2sr1perf_evf13_2ag=9o7> =>
a1"20545d6oL12> =>5ick()>135>ss="e*qr new3ea5k add5162> =>
a1" 9"tcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5/3>4rupted5 0achshrepleteds of drivp5e The51ler func1f13>135>ss="3237erddddddddd* We have()>135 ca2hiul,"do aalind from sys_sompriority()f+*  cepKERN_Etval
p is -ERESTARTSYSachs52054uler_e5ck()>135>ss="+*>k!faacclv5a13b"51    ck12o32w>122ass="3238erddddddddd* ton ado 
p20CPUe (at least 1, o>/numb0r of jiffies left5rline" nam5axssr9o71_pcorenaxr1g=t>
5d4ssr51    ck12o32w>122ass="3239erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5sl2his cla53b">TAIN33olo>331r9o77loa5_updp5202> =>
a1" 9"t>
id4ss3197erdsssss*>122ass="nass9ik_eev58k_3/722222222s74o_rq_r1g=9o734829" cla73s74o_rq_r1g=snr1g= 77>1t+ps_timeoutaom itp9ik_t r9o71_pcorenaxr1g=9oaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o7> =>
a1"20545_er9o71_pc5renaTASK_KILLABLE15#Lt he5namti5212> =>
a1" 9"tcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5SYS cla1295k_le97sERESTARTSYSr1g=t>
5d4ssr52 to aqr rfr-queu8 pre3162erddddddddd* d/33RT priorit128
9p. som0via ru*  7somru*    cr(), but w. s9empd/33evf13a 32his cl"+asr1pre33evf>331r 5Se=cnt"7ke5utaom its/ru*    cr1g= he5namti52re 205cka andonc_cdsc3253erddddddddd* aliow9o75o'npimal' nic"rqs_dis)>135 som0- but as expec>ndd/33evf13a 32his cl"+asr1pre33evf>331r 5Simeoutaom52>140
93t4 <97KERN_Et0ck 5r1g=;52    ck12o32w>122ass="3254erddddddddd* it wonr_have(snyseffec>>on ru*    03o>un>3l t =>
a5"2056>>133nam>33p2096129457>
aq52U4T
/3>4d*ad/ Furto3o32
5erddddddddd* coren_FIFO/coren_RR:la33evf13a 32his cl"+asr1pre33evf>331r 5i2054uler_52053ula_d322nr>322829" cl56>"re52 to aqr rfr-queu8 pre3256erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5s3>4rupted5a129ck_le97sted>froe28
he5namti52719ot3stati7a32a9t>
id4ss3197erds74o_has_rt_policyL13=62ef">63__>s74o_has_rt_policysnr1g= 77>1t+ps_timeoutaom itp9ik_)) >
a1" 9"t>
id4sp3304erd*ad/33db*r5i054uler_e51294>7>
aq_76rtamtr1g=t>
5d4ssr52k_next_naskolt>>>140
switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
99it" _prio829" cla73/sche99it" _prio9ik_eev58k_3/722222222NICm_TOhPRIOL12> =>
axssr9oNICm_TOhPRIOsnr1g= 77>1t+nic"203o>>1231ine>3nic"snr1ssr1perf_evf13_2ag=9o7> =>
a1"20545_line" nam5namtioL132all>322 remoloa5_updp5212> =>
a1" 9"t>>>140
goaoo>7>
aq_76
pit_fiut3t>
id4203o>>1231ine>3iut3t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20545p961294>7>5aq_76mighA_dleep20"19t he5namti5302> =>
a1" 9">
a1" 9"t>>>140
33d6erd*ad/33dne"5therwisn,h5h0"1nelkw32s* >323 >128he5namti5312> =>
a1" 9"t>
id4sp32s1erdil"sssss*>122ass="nail"ss9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
il"sssss*>122ass="nail"ss9ik_sr1perf_evf13_2ag=9o7> =>
a1"20545/sches cl"5asr1perf_evf13_2ask_et he5namti53219ot3stati7a32a9t>
id4ss3197erdil"sssss*>122ass="nail"ss9ik_ssr9o71_pcorenaxr1g=9o734829" cla5/76>1t+cnn5294>7>
aq_76rtamtr1g=t he5namti533_next_naskolt>>>140
switches"+pr331de72" clt74osss*>122ass="nade72" clt74osnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, 0fro="s_timeout15#L142"9ik__>96twc_5/1233amt>35asr1perf_evf13_2ask_et he5namti53 to ar1perf_evf13_2ag=9o7> =>
a1"20545timeoutaom5its/ru*    cimeoutr1g= he5namti53k_next_naskolt>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
99it" _prio829" cla73/sche99it" _prio9ik_eev58k_3/722222222NICm_TOhPRIOL12> =>
axssr9oNICm_TOhPRIOsnr1g= 77>1t+nic"203o>>1231ine>3nic"snr1ssr1perf_evf13_2ag=9o7> =>
a1"20545ref"20
*5>50shre3=732ss=>323witch>rq5/a> *5362> =>
a1" 9"t>>>140
3233erd1omeload_weight203o>>1231ine>31omeload_weightsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20545r3>4rupted5lvea13b">32LIN>323Thenmai5 "2055312> =>
a1" 9"t>
id4ss3197erdold_prio829" cla73/scheold_prio9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1sr1perf_evf13_2ag=9o7> =>
a1"20545"+cod7as &53>5 
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1eev58k_3/722222222effec>3ve_prio829" cla73/scheeffec>3ve_priosnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20545rline" nam5let28
 of >>5#L17led>from5its/r53k_next_naskolongsl2hi3249erddeltasss*>122ass="nadelta9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr10- t>
id4ss3197erdold_prio829" cla73/scheold_prio9ik_sr1perf_evf13_2ag=9o7> =>
a1"20545ru*is/part5cular/hreplet28
15 new3ea5k add5412> =>
a1" 9"t>>>140
323lerd*ad/32s* 5128
p20s795mpty hre74o"do aqr new3ea5k add541t+cnnruptibr32a9t>
id4ss3197erdil"sssss*>122ass="nail"ss9ik_s >
a1" 9"t>
id4sp3304erd*ad/33db*r51sches cl"5"5#L1. >tsisrNOTqr new3ea5k add54719ot3stati7a> *
a h,switches"+pr331en72" clt74osss*>122ass="naen72" clt74osnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, 0fro="s_timeout15#L142"9ik__>96twc_5les9tartcl5aris/RU cimeoutaqr new3ea5k add543_next_naskolt>>>140
scka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5dnamt, nea5est possi acao>
qr new3ea5k add54    ck12o32w>122ass="3254erddddddddddddddddd* If t331r 5dimeoutaom5())twith"1imeoutr1 new3ea5k add54U4T
/3>4d*ad/ Furto3o32
5erddddddddddddddddd* lower_aeits priority, t331r 5def"20
*5>5 se0 hreplete()aqr new3ea5k add54 to aqr rfr-queu8 pre3256erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5g href">rq5 =>
a1" 9"t>>>140
32a9t>
id4ss3197erddeltasss*>122ass="nadelta9ik_e< 0 ||n9t>
id4ss3197erddeltasss*>122ass="nadelta9ik_e> 0 r9o71r9o71v58k_3/722222222s74o_running829" cla73/sches74o_runningsnr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_)sssr9o71_pcorenaxr1g=9o734829" cla5tioL12> =>5axssr9o71_pcorenaxr1g=t>
5d4ssr54k_next_naskolt>>>140
> *
a h,switches"+pr331reru*  lt74osss*>122ass="nareru*  lt74osnr1g= 77>1t+sssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
962Lsss*>122ass="na962L9ik_fro="s_timeout15#L142"9ik__>96twc_5ts fo>/hre5 Pick up32ru*>324 remoloa5_updp54k_next_naskolL12> =>
a1" 9"t>3324erd*ad/33namt5_pcorenaTA5K_UNINTERRUPTIBLEsk_et he5namti550n_u>20
a55
id4203o>>1231ine>3iut3t>
id49ik_:o="s_timeout15#L142"9ik__>96twc_57a3a553251////>rq5/a> *5512> =>
a1" 9"t>
id4sp32s1erdt74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_94>7>
aq_76
pit_fps_timeoutaom itp9ik_, r9o71_pcorenaxr1g=9oaitr1g=.829" cla73/sches cl"+asr1perf_evf13_2ag=9o7> =>
a1"20545_sches cl"5it_fo>chreplet28
15#Lt he5namti55U4T
/L12> =>
a1" 9"t>3324erd*ad/33namt542" id5">p5ck_next_n32itr>325()-5ime5debug55 to aq
a1" 9"t>
id4s153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+someuser_nic"203o>>1231ine>31omeuser_nic"snr1asr1perf_evf13_2ag=9o7> =>
a1"20545_namt, nea5st possi acaole77led>from5its/r55 to ar1perf_evf13_2ag=9o7> =>
a1"20545et28
 of >55#L1 (w/timeoutc20r7d_rq_56f">E55U4T
/3>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5eef"20
*5>5cular/hreplet28
15 new3ea5k add55 to aqr rfr-queu8 pre3256erd*acan_nic"0- 52eck3if0s7eick(can reducceits nic"rqs_did/33evf13a 32his cl"+asr1pre33evf>331r 5e href">rq5val
p in jiffiesqr new3ea5k add55ler func1f13>135>ss="3237erd*adp:re74od/33evf13a 32his cl"+asr1pre33evf>331r 5eioL12> =>5ick()>135>ss="+*qr new3ea5k add55    ck12o32w>122ass="3238erd*a@nic": nic"rqs_did/33evf13a 32his cl"+asr1pre33evf>331r 5es fo>/hre5_RUaled o>/fo>/aqr new3ea5k add55    ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5ut isrin j5ffies. >tsisrnod7led>from5its/r5612> =2nr_switches"+pr331can_nic"sss*>122ass="na9an_nic"snr1gconst"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_94const"2nr_switches"+pr331nic"203o>>1231ine>3nic"snr1ssr9o71_pcorenaxr1g=9o734829" cla5hre3="kere57"
/3>4ruptibleaqr new3ea5k add5612> =>
a1" 9"t>
id4sp3304erd*ad/33db*r5usches cl"5" nr_switches"+*15 new3ea5k add5622> =>
a1" 9"t>4d*ad/ Furto3o32
5erd*4convert nic"rqs_dis[19,-20]s)>1rlimit"hryl"rqs_dis[1,40]s*ad/33evf13a 32his cl"+asr1pre33evf>331r 5u2" id5">p5 1, o>/numb0r of15 new3ea5k add5612> =>
a1" 9"2nr_switches"+pr331nic"_rlim203o>>1231ine>3nic"_rlim9ik_eev200- t>
id4ss3197erdnic"203o>>1231ine>3nic"snr1sr1perf_evf13_2ag=9o7> =>
a1"205453ilertimeo5tcachshrepleteds of drivp5e The56 to ar1perf_evf13_2ag=9o7> =>
a1"205453t28
 of >5pty hre74o"do a>k!faacclv5a13b"56k_next_naskolongsl2hg= 77>1t+nic"_rlim203o>>1231ine>3nic"_rlim9ik_e<ev58k_3/722222222s74o_rlimit203o>>1231ine>3s74o_rlimitsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+RLIMITcNICmeoutaom its/ru*RLIMITcNICm9ik_s ||r1perf_evf13_2ag=9o7> =>
a1"205453ef"20
*5>5a129ck_le97sted>froe28
he5namti5612> =>
a1" 9"t>>>140
switches"+pr331cap31insss*>122ass="na9ap31insnr1g= 77>1t+CAPpcoScNICmeoutaom its/ru*CAPpcoScNICm9ik_)ssr1perf_evf13_2ag=9o7> =>
a1"205453 href">rq5its/ru*    cimeoutr1g=the5namti56ler fL12> =>
a1" 9"t>3324erd*ad/33namt53ioL12> =>50
6>>12832 (
>326r s20loa5_updp5612> =>
a1" 9"t>>>140
33d8erd*ad/33dss53L1 3>"bar5K_UNINTERRUPTIBLEsk_et he5namti56    c#ifdef4>7>
aq_76
pit_f__ARCH_WANTpcoScNICmeoutaom its/ru*__ARCH_WANTpcoScNICm2> =>
a1" 9"t>>>140
33d8erd*ad/33dss5namtioL12>5=>
a1" 932>tc>326>>128>rq5/a> *5712> =>
a1" 9"t>>>140
323lerd*ad/32s* 5nre3="kere5replet28
_timeout15#Lt he5namti57U4T
/3>4d*ad/ Furto3o33a1erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5nsches cl"5ine97129432" c>3281st-phe5namti57 to aqr rfr-queu8 pre3162erd* sys_nic"0- 52ange t/numb0r of jiffies left5n (at leas5">>1 twc9actile77led>from5its/r57re 205cka andonc_cdsc3253erd*a@3ncre3253: prioritypincre3253 (at least 1, o>/numb0r of jiffies left5nilertimeo5 >>5#L1 (w/
/3rc20r7d_rq_56f">E5AU4T
/3>4d*ad/ Furto3o3274erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5nt28
 of >5cular/hreplet28
15 new3ea5k add57U4T
/3>4d*ad/ Furto3o32
5erd*asys_sompriority53tha3 (at least 1, o>/numb0r of jiffies left5nef"20
*5>5ick()>135>ss="e*qr new3ea5k add57 to aqr rfr-queu8 pre3256erd*ado>3 similar7lasngse (at least 1, o>/numb0r of jiffies left5n href">rq5rr_RUaled. >tsisqr new3ea5k add57ler func1f13>135>ss="3237erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5"ioL12> =>5* 
/3>4ruptibleaqr new3ea5k add57k_nex>7>
aq_76
pit_fcoSCALL_DEFINE1eoutaom its/ru*coSCALL_DEFINE1snr1g= 77>1t+nic"203o>>1231ine>3nic"snr194oret = 77>1t+incre3253203o>>1231ine>3incre3253 (r1ssr9o71_pcorenaxr1g=9o734829" cla5emo93 wak95p. I 7st > 79f+*qr new3ea5k add57k_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r5/3>4rupted5 0achshrepleteds of drivp5e The5802> =>
a1" 9"r9o71_pcorenahrepletnic"203o>>1231ine>3nic"snr194>7>
aq_76
pit_fretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20545/re3="kere5pt_ena ac()r522>k!faacclv5a13b"5812> =>
a1" 9"t>>>140
3271erd*ad/32" c5tioL12> =>5axssr9o71_pcorenaxr1g=t>
5d4ssr5822> =>
a1" 9"t>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 5t (at leas5"203o>>132lin>32/5ode=loa5_updp58re 205cka andonc_cdsc3253erddddddddd* Sompriority5mightr52ange our prioritypam0o75osodeamp3253e (at least 1, o>/numb0r of jiffies left5tplet28
 o5ASK_INTERRUPTIBLEsk_et he5namti58    ck12o32w>122ass="3254erddddddddd* Weadon't have()>1worry. ConcepLuallya53u aali oc962s firs3 (at least 1, o>/numb0r of jiffies left5tu*is/part5k_le97sERESTARTSYSr1g=t>
5d4ssr58U4T
/3>4d*ad/ Furto3o32
5erddddddddd* and we have(a singl"rwinnere (at least 1, o>/numb0r of jiffies left5tef"20
*5>5utaom its/ru*    cr1g= he5namti58 to aqr rfr-queu8 pre3256erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 5ne"32ag >358,
a href="+20KERN_Et0ck 5r1g=;58719ot3stati7a32a9t>
id4ss3197erdincre3253203o>>1231ine>3incre3253 (r1 < -40ssr9o71_pcorenaxr1g=9o734829" cla5_ioL12> =>5/er5erru32  c>32/ef="+>rq5/a> *58k_next_naskolt>>>140
switches"+pr331incre3253203o>>1231ine>3incre3253 (r1 = -40sr1perf_evf13_2ag=9o7> =>
a1"20545/mo93 wak9528
_
/3>4ruptible15#Lt he5namti5812> =>
a1" 9"32a9t>
id4ss3197erdincre3253203o>>1231ine>3incre3253 (r1 > 40ssr9o71_pcorenaxr1g=9o734829" cla5135>ss="li5e" namtio32dd >328switche5"+val590_next_naskolt>>>140
switches"+pr331incre3253203o>>1231ine>3incre3253 (r1 = 40sr1perf_evf13_2ag=9o7> =>
a1"205451re3="kere5pt_ena ac()r5le77led>from5its/r5912> =>
a1" 9"t>>>140
3271erd*ad/32" c5o>/hreplet58
 (w/(to,
/3rcc20r7d_rq_56f">E5922> =>
a1" 9"t>
id4sp32s1erdnic"203o>>1231ine>3nic"snr1 ev58k_3/722222222    cNICmeoutaom its/ru*    cNICmsnr1g= 77>1t+915#L142"9ik__>96twc_d915#L14snr1) +
switches"+pr331incre3253203o>>1231ine>3incre3253 (r1sr1perf_evf13_2ag=9o7> =>
a1"205451 (at leas5cular/hreplet28
15 new3ea5k add5912> =>
a1" 9"32a9t>
id4ss3197erdnic"203o>>1231ine>3nic"snr1 < -20ssr9o71_pcorenaxr1g=9o734829" cla51plet28
 o5val
p in jiffiesqr new3ea5k add59419ot3stati7a> *
a h,switches"+pr331nic"203o>>1231ine>3nic"snr1 ev-20sr1perf_evf13_2ag=9o7> =>
a1"205451u*is/part5mpty hre74o"do aqr new3ea5k add59k_next_naskol32a9= 77>1t+nic"203o>>1231ine>3nic"snr1 &"2"419ssr9o71_pcorenaxr1g=9o734829" cla5#L1 3>"bar5_RUaled o>/fo>/aqr new3ea5k add5912> =>
a1" 9"t>>>140
switches"+pr331nic"203o>>1231ine>3nic"snr1 ev19sr1perf_evf13_2ag=9o7> =>
a1"205451e"32ag >35t isrin jiffies.qr new3ea5k add5912> =r1perf_evf13_2ag=9o7> =>
a1"20545 ioL12> =>5ick()>135>ss="+*qr new3ea5k add59k_next_naskol32a9t>
id4ss3197erdincre3253203o>>1231ine>3incre3253 (r1 < 0 r9o71r9o71v!switches"+pr331can_nic"sss*>122ass="na9an_nic"snr1g= 77>1t+915#L142"9ik__>96twc_d915#L14snr194>7>
aq_76
pit_fnic"203o>>1231ine>3nic"snr1sssr9o71_pcorenaxr1g=9o734829" cla5#mo93 wak95 0achs2imed out,qr new3ea5k add5912> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"205463ilertimeo6tcachshrepleteds of drivp6e The6012> =>
a1" 9"t>>>140
323lerd*ad/32s* 6//////pree6pt_ena ac()r522>k!faacclv6a13b"6012> =>
a1" 9"t>
id4sp32s1erdretqs_sss*>122ass="naretqs_snr1 ev58k_3/722222222se915ity_s74o_somnic"203o>>1231ine>31o915ity_s74o_somnic"snr1g= 77>1t+915#L142"9ik__>96twc_d915#L14snr194>7>
aq_76
pit_fnic"203o>>1231ine>3nic"snr1ssr1perf_evf13_2ag=9o7> =>
a1"2054632////pree6p
 (w/(to,
/3rcc20r7d_rq_6namti60219ot3stati7a32a9t>
id4ss3197erdretqs_sss*>122ass="naretqs_snr1ssr9o71_pcorenaxr1g=9o734829" cla6tioL12> =>6axssr9o71_pcorenaxr1g=,he6namti603_next_naskolt>>>140
ongsl2hi33d5erd*ad/33dretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"2054634oL12> =>6aal
p in jiffiesqr new3ea6namti60 to ar1perf_evf13_2ag=9o7> =>
a1"2054635oL12> =>6apty hre74o"do aqr new3ea6_updp6ck_next_naskolt>
id4ss3197erdsomeuser_nic"203o>>1231ine>31omeuser_nic"snr1g= 77>1t+915#L142"9ik__>96twc_d915#L14snr194>7>
aq_76
pit_fnic"203o>>1231ine>3nic"snr1ssr1perf_evf13_2ag=9o7> =>
a1"2054636oL12> =>6aRUaled o>/fo>/aqr new3ea6namti6012> =>
a1" 9"ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"20546namtioL1246203o>>1233dne>33012nr_>rq6/a> *60ler fL12> =>
a1" 9"t>3324erd*ad/33namt6n8mtioL12462ck()>135>ss="+*qr new3ea6namti6012> =>
a1" 9"t>>>140
33d8erd*ad/33dss6/9mtioL124620achs2imed out,qr new3ea6aeask60k_nex#endif
a1" 9"t>>>140
33d6erd*ad/33dne"613 directl6:122ass="namte_*qr new3ea6k add6112> =>
a1" 9"t>>>140
323lerd*ad/32s* 6let28
 of 6>5#L1 (kileablec20r7d_rq_66f">E61U4T
/3>4d*ad/ Furto3o33a1erd**d/33evf13a 32his cl"+asr1pre33evf>331r 6ru*is/part6cular/hreplet28
15 new3ea6k add61 to aqr rfr-queu8 pre3162erd* s74o_prio - ongsl2ht331r 6rioL12> =>64">>1 twc9activ915 new3ea6k add61re 205cka andonc_cdsc3253erd*a@p:re331r 6r4oL12> =>6"5#L1. >tshrefb715 new3ea6k add61U4T
/3>4d*ad/ Furto3o3274erd*d/33evf13a 32his cl"+asr1pre33evf>331r 63>4rupted 6y >>kilerr_RUals of drivp6e The61U4T
/3>4d*ad/ Furto3o32
5erd*ad/31"isht331r 6r6oL12> =>6ick()>135>ss="e*qr new3ea6k add61 to aqr rfr-queu8 pre3256erd*aRT hick8
9p. offsom0by -200. Npimal hick8
9p. celongndd/33evf13a 32his cl"+asr1pre33evf>331r 6/3>4rupted6 0achshrepleteds of drivp6e The61ler func1f13>135>ss="3237erd*
9pound 0,pqs_disgo>3 from -16()>1+152d/33evf13a 32his cl"+asr1pre33evf>331r 6r8mtioL1246ck()>135>ss="+*>k!faacclv6a13b"61    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6rline" nam6axssr9o71_pcorenaxr1g=t>
6d4ssr61    c2nr_switches"+pr331s74o_prio203o>>1231ine>3s74o_priosnr1gconst"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_ssr9o71_pcorenaxr1g=9o734829" cla6sl2his cla63b">TAIN33olo>331r9o77loa6_updp62    c3stati7a> *
a h,3282erd*ad/32line6_er9o71_pc6renaTASK_KILLABLE15#Lt he6namti6212> =>
a1" 9"ongsl2hi33d5erd*ad/33dps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr10- t>
id4ss3197erd71_pRThPRIOL12> =>
axssr9o71_pRThPRIOsnr1sr1perf_evf13_2ag=9o7> =>
a1"20546SYS cla1296k_le97sERESTARTSYSr1g=t>
6d4ssr62U4T
/L12> =>
a1" 9"t>3324erd*ad/33namt6Se=cnt"7ke6utaom its/ru*    cr1g= he6namti621t+cnnruptibrq 140
93t4 <97KERN_Et0ck 6r1g=;62    ck12o32w>122ass="3254erd**d/33evf13a 32his cl"+asr1pre33evf>331r 6oL12> =>
a6"2056>>133nam>33p2096129467>
aq62U4T
/3>4d*ad/ Furto3o32
5erd* s74o_nic"0- ongsl2ht331r 6i2054uler_62053ula_d322nr>322829" cl66>"re62 to aqr rfr-queu8 pre3256erd*a@p:re331r 6s3>4rupted6a129ck_le97sted>froe28
he6namti62ler func1f13>135>ss="3237erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6i054uler_e61294>7>
aq_76rtamtr1g=t>
6d4ssr62k_nex2nr_switches"+pr331s74o_nic"203o>>1231ine>3s74o_nic"snr1gconst"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_ssr9o71_pcorenaxr1g=9o734829" cla6sline" nam6namtioL132all>322 remoloa6_updp62k_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r6p961294>7>6aq_76mighA_dleep20"19t he6namti6302> =>
a1" 9"ongsl2hi33d5erd*ad/33d    cNICmeoutaom its/ru*    cNICmsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20546therwisn,h6h0"1nelkw32s* >323 >128he6namti6312> =L12> =>
a1" 9"t>3324erd*ad/33namt6/sches cl"6asr1perf_evf13_2ask_et he6namti63219otq
a1" 9"t>
id4s153r5erd*ad/33DULE_TIMEOUTssr9o71_pcore37snr1g= 77>1t+s74o_nic"203o>>1231ine>3s74o_nic"snr1)sr1perf_evf13_2ag=9o7> =>
a1"20546te=cnt"7ke6294>7>
aq_76rtamtr1g=t he6namti631t+cnnruptibrq 36asr1perf_evf13_2ask_et he6namti63    ck12o32w>122ass="3254erd**d/33evf13a 32his cl"+asr1pre33evf>331r 6timeoutaom6its/ru*    cimeoutr1g= he6namti63U4T
/3>4d*ad/ Furto3o32
5erd* idin_cpu0- 331r 6t2054uler_60shre3=732ss=>323witch>rq6/a> *63 to aqr rfr-queu8 pre3256erd*a@cpu:ht331r 6r3>4rupted6lvea13b">32LIN>323Thenmai6 "20563ler func1f13>135>ss="3237erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6"+cod7as &63>5 >1231ine>3idin_cpusnr1g2nr_switches"+pr331cpu203o>>1231ine>3cpusnr1ssr9o71_pcorenaxr1g=9o734829" cla6rline" nam6let28
 of >>5#L17led>from6its/r63k_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r6ru*is/part6cular/hreplet28
15 new3ea6k add6402> =>
a1" 9"hreplet28
_kileable961sssss*>122ass="nass9ik_e15#L9>rq>20
a hrsssss*>122ass="nass9ik_ ev58k_3/722222222cpu"sssss*>122ass="nacpu"sssnr1g= 77>1t+9pu203o>>1231ine>3cpusnr1ssr1perf_evf13_2ag=9o7> =>
a1"20546128
p20s796mpty hre74o"do aqr new3ea6k add6412> =>
a1" 9"t>>>140
3271erd*ad/32" c61sches cl"6"5#L1. >tsisrNOTqr new3ea6k add64219ot3stati7a32a9t>
id4ss3197erdrssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
962Lsss*>122ass="na962L9ik_8!p2t>
id4sp32s1erdsssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
idletimeoutaom its/idine>319>
a1" 9"t>>>140
3271erd*ad/32" c61e=cnt"7ke6aris/RU cimeoutaqr new3ea6k add643_next_naskolt>>>140
ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"20546dnamt, nea6est possi acao>
qr new3ea6k add64 to ar1perf_evf13_2ag=9o7> =>
a1"20546dimeoutaom6())twith"1imeoutr1 new3ea6k add64k_next_naskol32a9= 77>1t+sssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
nr_running829" cla73/schenr_runninge>319>
a1" 9"t>>>140
3271erd*ad/32" c612054uler_6 se0 hreplete()aqr new3ea6k add6412> =>
a1" 9"t>>>140
ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"20546d3>4rupted6 =r1perf_evf13_2ag=9o7> =>
a1"20546tioL12> =>6axssr9o71_pcorenaxr1g=t>
6d4ssr64k_nex#ifdef4>7>
aq_76
pit_fCONFIG_SMP829" cla73/scheCONFIG_SMP2> =r1perf_evf13_2ag=9o7> =>
a1"20546tline" nam6 Pick up32ru*>324 remoloa6_updp6412> =>
a1" 9"32a9!switches"+pr331llist_emptyL13=62ef">63__>llist_emptysnr1g7naref"2">>1 t9i1_rerssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
wake_listsss*>122ass="nawake_listsnr1sssr9o71_pcorenaxr1g=9o734829" cla6_pcorenaTA6K_UNINTERRUPTIBLEsk_et he6namti650_next_naskolt>>>140
ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"205467a3a553251////>rq6/a> *6512> =#endif
a1" 9"t>>>140
33d6erd*ad/33dne"6_sches cl"6it_fo>chreplet28
15#Lt he6namti6512> =>
a1" 9"t>>>140
3252erd*ad/32itr642" id5">p6ck_next_n32itr>325()-5ime6debug653_next_naskolongsl2h1sr1perf_evf13_2ag=9o7> =>
a1"205467namt, nea6st possi acaole77led>from6its/r65 to aL12> =>
a1" 9"t>3324erd*ad/33namt6et28
 of >65#L1 (w/timeoutc20r7d_rq_66f">E650n_u>20
a556cular/hreplet28
15 new3ea6k add65 to aqr rfr-queu8 pre3256erd**d/33evf13a 32his cl"+asr1pre33evf>331r 6e href">rq6val
p in jiffiesqr new3ea6k add65ler func1f13>135>ss="3237erd*aidin_hick(- ongsl2ht331r 6eioL12> =>6ick()>135>ss="+*qr new3ea6k add65    ck12o32w>122ass="3238erd*a@cpu:ht331r 6es fo>/hre6_RUaled o>/fo>/aqr new3ea6k add65    ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6ut isrin j6ffies. >tsisrnod7led>from6its/r6612> =hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hridin_hick203o>>1231ine>3idin_t74osnr1g2nr_switches"+pr331cpu203o>>1231ine>3cpusnr1ssr9o71_pcorenaxr1g=9o734829" cla6hre3="kere67"
/3>4ruptibleaqr new3ea6k add6612> =>
a1" 9"t>
id4sp3304erd*ad/33db*r6usches cl"6" nr_switches"+*15 new3ea6k add6622> =>
a1" 9"ongsl2hi33d5erd*ad/33dcpu"sssss*>122ass="nacpu"sssnr1g= 77>1t+9pu203o>>1231ine>3cpusnr1sef"2">>1 t9i1_rest>
idletimeoutaom its/idine>31sr1perf_evf13_2ag=9o7> =>
a1"20546u2" id5">p6 1, o>/numb0r of15 new3ea6k add6612> =L12> =>
a1" 9"t>3324erd*ad/33namt63ilertimeo6tcachshrepleteds of drivp6e The66 to ar1perf_evf13_2ag=9o7> =>
a1"205463t28
 of >6pty hre74o"do a>k!faacclv6a13b"66U4T
/3>4d*ad/ Furto3o32
5erd**d/33evf13a 32his cl"+asr1pre33evf>331r 63ef"20
*5>6a129ck_le97sted>froe28
he6namti66 to aqr rfr-queu8 pre3256erd* find_process_by_pid(- findtaaprocess o at3a matcasng PIDrqs_di2d/33evf13a 32his cl"+asr1pre33evf>331r 63 href">rq6its/ru*    cimeoutr1g=the6namti66ler func1f13>135>ss="3237erd*a@pid:ht331r 63ioL12> =>60
6>>12832 (
>326r s20loa6_updp66    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6us fo>/hre6K_UNINTERRUPTIBLEsk_et he6namti66    c99it" "hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrfind_process_by_pids_timeoutaom itfind_process_by_pidsnr1g= 77>1t+pid_es_timeoutaom itpid_eeable= 77>1t+pids_timeoutaom itpidsnr1ssr9o71_pcorenaxr1g=9o734829" cla6namtioL12>6=>
a1" 932>tc>326>>128>rq6/a> *67    c3stati7a> *
a h,3282erd*ad/32line6nre3="kere6replet28
_timeout15#Lt he6namti6712> =>
a1" 9"ongsl2hi33d5erd*ad/33dpids_timeoutaom itpidsnr1e? >>1 t9i1_rest>
find_s74o_by_vpids_timeoutaom itfind_s74o_by_vpidsnr1g= 77>1t+pids_timeoutaom itpidsnr1s :hi33d5erd*ad/33dc15#L142"9ik__>96twc_d915#L14snr1sr1perf_evf13_2ag=9o7> =>
a1"20546nsches cl"6ine97129432" c>3281st-phe6namti67U4T
/L12> =>
a1" 9"t>3324erd*ad/33namt6n (at leas6">>1 twc9actile77led>from6its/r671t+cnnruptibrq >5#L1 (w/
/3rc20r7d_rq_66f">E6AU4T
/3>4d*ad/ Furto3o3274er/* AcLuallyado priorityp52ange: must hold rq 
id4.d*ad/33evf13a 32his cl"+asr1pre33evf>331r 6nt28
 of >6cular/hreplet28
15 new3ea6k add67U4T
/99it" "2nr_13a 32his cl"+asr1pre33evf>331r 6nef"20
*5>6ick()>135>ss="e*qr new3ea6k add67 to aq33d5erd*ad/33d_7somru*    cr2"9ik__>96twc_d_7somru*    crsnr1ghreplet28
_kileable961sssss*>122ass="nass9ik_e15#L9>rq>20
a hrsssss*>122ass="nass9ik_,"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_942nr_switches"+pr331policyL13=62ef">63__>policysnr1942nr_switches"+pr331prio829" cla73/schepriosnr1s13a 32his cl"+asr1pre33evf>331r 6n href">rq6rr_RUaled. >tsisqr new3ea6k add67ler f3stati7a> *
a h,3282erd*ad/32line6nioL12> =>6* 
/3>4ruptibleaqr new3ea6k add6782> =>
a1" 9"t>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1eev58k_3/722222222policyL13=62ef">63__>policysnr1sr1perf_evf13_2ag=9o7> =>
a1"20546ns fo>/hre6p. I 7st > 79f+*qr new3ea6k add67k_next_naskolongsl2hi3249erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rt_prioritysss*>122ass="nast_prioritysnr1eev58k_3/722222222prio829" cla73/schepriosnr1sr1perf_evf13_2ag=9o7> =>
a1"20546/3>4rupted6 0achshrepleteds of drivp6e The6802> =>
a1" 9"ongsl2hi3249erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
npimal_prio203o>>1231ine>3npimal_priosnr1eev58k_3/722222222npimal_prio203o>>1231ine>3npimal_priosnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20546/re3="kere6pt_ena ac()r522>k!faacclv6a13b"6812> =>
a1" 9"tcka andonc_cdsc3253erd* we 9p. holdsng pef"2"pi_r1g= alreadyd*ad/33evf13a 32his cl"+asr1pre33evf>331r 6tioL12> =>6axssr9o71_pcorenaxr1g=t>
6d4ssr6822> =>
a1" 9"t>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1eev58k_3/722222222st_mutex_gompriosss*>122ass="nast_mutex_gompriosnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20546/ (at leas6"203o>>132lin>32/5ode=loa6_updp6812> =>
a1" 9"32a9t>
id4ss3197erdrt_prio829" cla73/schert_priosnr1g= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1sssr9o71_pcorenaxr1g=9o734829" cla6tplet28
 o6ASK_INTERRUPTIBLEsk_et he6namti68419ot3stati7a> *
a h,switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eableev7naref"2">>1 t9i1_rert_9o7> _p in timeoutaom its/rt_9o7> _p in 9ik_sr1perf_evf13_2ag=9o7> =>
a1"20546tu*is/part6k_le97sERESTARTSYSr1g=t>
6d4ssr68k_next_naskolelse323erd*ad/33amtioL12> =>
a1"20546tef"20
*5>6utaom its/ru*    cr1g= he6namti6812> =>
a1" 9"t>>>140
switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
9o7> _p in timeoutaom its/ru*  _p in eableev7naref"2">>1 t9i1_refair_9o7> _p in timeoutaom its/fair_9o7> _p in 9ik_sr1perf_evf13_2ag=9o7> =>
a1"20546ne"32ag >368,
a href="+20KERN_Et0ck 6r1g=;6812> =>
a1" 9"t>
id4ss3197erd1omeload_weight203o>>1231ine>31omeload_weightsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20546_ioL12> =>6/er5erru32  c>32/ef="+>rq6/a> *68k_nexL12> =>
a1" 9"t>3324erd*ad/33namt6/mo93 wak9628
_
/3>4ruptible15#Lt he6namti6812> =12> =>
a1" 9"t>3324erd*ad/33namt6135>ss="li6e" namtio32dd >328switche6"+val690_next>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 61re3="kere6pt_ena ac()r5le77led>from6its/r69U4T
/3>4d*ad/ Furto3o33a1erd*ac2eck3e/hreplet68
 (w/(to,
/3rcc20r7d_rq_66f">E69 to aqr rfr-queu8 pre3162erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 61 (at leas6cular/hreplet28
15 new3ea6k add6912> =99it" "= 77>1t+boo_sss*>122ass="naboo_eable= 77>1t+c2eck_sode_owncr2"9ik__>96twc_dc2eck_sode_owncrsnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_ssr9o71_pcorenaxr1g=9o734829" cla61plet28
 o6val
p in jiffiesqr new3ea6k add69419ot3stati7a> *
a h,3282erd*ad/32line61u*is/part6mpty hre74o"do aqr new3ea6k add69k_next_naskolconst"hreplet28
_kileable961cre2nr_switches"+pr5re2snr1e15#L9>rq>20
a hrcre2nr_switches"+pr5re2snr1eev58k_3/722222222c62LLLL_cre2nr_switches"+pr562LLLL_cre2snr1g),e15#L9>rq>20
a hrpcre2nr_switches"+prpcre2snr1sr1perf_evf13_2ag=9o7> =>
a1"20546#L1 3>"bar6_RUaled o>/fo>/aqr new3ea6k add6962> =>
a1" 9"t>>>140
3233erdboo_sss*>122ass="naboo_eable= 77>1t+matcasss*>122ass="namatcasnr1sr1perf_evf13_2ag=9o7> =>
a1"20546#e"32ag >36t isrin jiffies.qr new3ea6k add6912> =r1perf_evf13_2ag=9o7> =>
a1"20546 ioL12> =>6ick()>135>ss="+*qr new3ea6k add6982> =>
a1" 9"t>
id4ss3197erdrcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20546#mo93 wak96 0achs2imed out,qr new3ea6k add69k_next_naskolongsl2hi3249erdpcre2nr_switches"+prpcre2snr1eev58k_3/722222222__s74o_cre2nr_switches"+pr__s74o_cre2snr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205473ilertimeo7tcachshrepleteds of drivp7e The7002> =>
a1" 9"ongsl2hi3249erdmatcasss*>122ass="namatcasnr1eevg= 77>1t+uid_essss*>122ass="nauid_essnr1g= 77>1t+9re2nr_switches"+pr5re2snr1ef"2">>1 t9i1_rest>
euids_timeoutaom iteuidsnr194ongsl2hi3249erdpcre2nr_switches"+prpcre2snr1ef"2">>1 t9i1_rest>
euids_timeoutaom iteuidsnr1s ||r1perf_evf13_2ag=9o7> =>
a1"20547//////pree7pt_ena ac()r522>k!faacclv7a13b"7012> =>
a1" 9"t>>>140
4ongsl2hi3249erduid_essss*>122ass="nauid_essnr1g= 77>1t+9re2nr_switches"+pr5re2snr1ef"2">>1 t9i1_rest>
euids_timeoutaom iteuidsnr194ongsl2hi3249erdpcre2nr_switches"+prpcre2snr1ef"2">>1 t9i1_rest>
uids_timeoutaom ituidsnr1s)sr1perf_evf13_2ag=9o7> =>
a1"2054732////pree7p
 (w/(to,
/3rcc20r7d_rq_7namti7022> =>
a1" 9"t>
id4sp32s1erdrcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20547tioL12> =>7axssr9o71_pcorenaxr1g=,he7namti703_next_naskolongsl2h= 77>1t+matcasss*>122ass="namatcasnr1sr1perf_evf13_2ag=9o7> =>
a1"2054734oL12> =>7aal
p in jiffiesqr new3ea7namti70 to aL12> =>
a1" 9"t>3324erd*ad/33namt735oL12> =>7apty hre74o"do aqr new3ea7_updp700n_u>20
a55 =>7aRUaled o>/fo>/aqr new3ea7namti7012> =99it" "2nr_switches"+pr331__9o7> _somru*    cr2"9ik__>96twc_d_7so7> _somru*    crsnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_942nr_switches"+pr331policyL13=62ef">63__>policysnr1920
a55 =>7a isrin jiffies.qr new3ea7/a> *7072> =>
a1" 9"t>>>140
















const"hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable15#L9>rq>20
a hrparam203o>>1231ine>3parameabl94ongsl2hi3249erdboo_sss*>122ass="naboo_eable= 77>1t+users_timeoutaom ituscrsnr1ssr9o71_pcorenaxr1g=9o734829" cla7n8mtioL12472ck()>135>ss="+*qr new3ea7namti7012> =3stati7a> *
a h,3282erd*ad/32line7/9mtioL124720achs2imed out,qr new3ea7aeask7012> =>
a1" 9"3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1, t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_, t>
id4sp32s1erdoldpolicyL13=62ef">63__>oldpolicysnr1eev-1, t>
id4sp32s1erdol"sssss*>122ass="nail"ss9ik_94>7>
aq_76
pit_frunning829" cla73/scherunninge>31sr1perf_evf13_2ag=9o7> =>
a1"2054713 directl7:122ass="namte_*qr new3ea7k add7102> =>
a1" 9"ongsl2hi3192erd*ad/31ru c135>ss="line" namtio31ru >319ign,5olong///unK_RUe 7lo ck829" cla737let28
 of 7>5#L1 (kileablec20r7d_rq_76f">E7112> =>
a1" 9"const"hreplet28
_kileable961so7> _p in timeoutaom its/ru*  _p in eable15#L9>rq>20
a hrprev_p in timeoutaom its/prev_p in ign,5olong///unK_RUe 7lo ck829" cla737l2////pree7cular/hreplet28
15 new3ea7k add71719ot3stati7ahreplet28
_kileable961sssss*>122ass="nass9ik_e15#L9>rq>20
a hrsssss*>122ass="nass9ik_sr1perf_evf13_2ag=9o7> =>
a1"20547rioL12> =>74">>1 twc9activ915 new3ea7k add7112> =>
a1" 9"2nr_switches"+pr331re1omeil"forosss*>122ass="nareromeil"foro9ik_sr1perf_evf13_2ag=9o7> =>
a1"20547r4oL12> =>7"5#L1. >tshrefb715 new3ea7k add71 to ar1perf_evf13_2ag=9o7> =>
a1"205473>4rupted 7y >>kilerr_RUals of drivp7e The71k_next_naskoltcka andonc_cdsc3253erd* may grab non-irq protec>nd spin_r1g=sd*ad/33evf13a 32his cl"+asr1pre33evf>331r 7r6oL12> =>7ick()>135>ss="e*qr new3ea7k add7162> =>
a1" 9"t>>>140
3233erdBUG_ONsss*>122ass="naBUG_ONsnr1g= 77>1t+in_ilongrup3203o>>1231ine>3in_ilongrup3snr1g))sr1perf_evf13_2ag=9o7> =>
a1"20547/3>4rupted7 0achshrepleteds of drivp7e The71ler fuwitches"+pr331rec2ecksss*>122ass="narec2ecker f:o="s_timeout15#L142"9ik__>96twc_7r8mtioL1247ck()>135>ss="+*>k!faacclv7a13b"718_next_naskoltcka andonc_cdsc3253erd* double_92eck3policy once rq 
id4 heldd*ad/33evf13a 32his cl"+asr1pre33evf>331r 7r9mtioL1247axssr9o71_pcorenaxr1g=t>
7d4ssr7112> =>
a1" 9"32a9t>
id4ss3197erdpolicyL13=62ef">63__>policysnr1e< 0s >
a1" 9"t>
id4sp3304erd*ad/33db*r7sl2his cla73b">TAIN33olo>331r9o77loa7_updp720_next_naskolt>>>140
switches"+pr331re1omeil"forosss*>122ass="nareromeil"foro9ik_eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _re1omeil"forosss*>122ass="naru*  _re1omeil"foro9ik_sr1perf_evf13_2ag=9o7> =>
a1"20547_er9o71_pc7renaTASK_KILLABLE15#Lt he7namti7212> =>
a1" 9"t>>>140
>>1 t9i1_rest>
policyL13=62ef">63__>policysnr1eev58k_3/722222222oldpolicyL13=62ef">63__>oldpolicysnr1eevt>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1sr1perf_evf13_2ag=9o7> =>
a1"20547_2////pree7k_le97sERESTARTSYSr1g=t>
7d4ssr72719ot3stati7a}lelse >
a1" 9"t>
id4sp3304erd*ad/33db*r7sioL12> =>7utaom its/ru*    cr1g= he7namti723_next_naskolt>>>140
switches"+pr331re1omeil"forosss*>122ass="nareromeil"foro9ik_eev!!9t>
id4ss3197erdpolicyL13=62ef">63__>policysnr1e&9o71v58k_3/722222222coren_RESET_ON_FORKL13=62ef">63__>coren_RESET_ON_FORK9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20547Simeoutaom72>140
93t4 <97KERN_Et0ck 7r1g=;72419ot3stati7a> *
a h,switches"+pr331policyL13=62ef">63__>policysnr1e&9o71= ~58k_3/722222222coren_RESET_ON_FORKL13=62ef">63__>coren_RESET_ON_FORK9ik_sr1perf_evf13_2ag=9o7> =>
a1"20547S>4rupted 7"2056>>133nam>33p2096129477>
aq720n_u>20
a55322829" cl76>"re7212> =>
a1" 9"t>>>140
32a9t>
id4ss3197erdpolicyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_FIFOL12> =>
axssr9ocoren_FIFOsnr1e&9o71&9o71v58k_3/722222222policyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_RRL13=62ef">63__>coren_RRsnr1e&9o71&9o7120
a554rupted7a129ck_le97sted>froe28
he7namti7272> =>
a1" 9"t>>>140
















58k_3/722222222policyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_NORMA33DULE_TIMEOUTsscoren_NORMA3snr1e&9o71&9o71v58k_3/722222222policyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_BATCH3DULE_TIMEOUTsscoren_BATCHsnr1e&9o71&9o7120
a557>
aq_76rtamtr1g=t>
7d4ssr72k_next_naskolt>>>140
> *
a h,







58k_3/722222222policyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_IDLmeoutaom its/ru*coren_IDLmsnr1ssr9o71_pcorenaxr1g=9o734829" cla7sline" nam7namtioL132all>322 remoloa7_updp7212> =>
a1" 9"t>>>140








ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20547p961294>7>7aq_76mighA_dleep20"19t he7namti7302> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt7therwisn,h7h0"1nelkw32s* >323 >128he7namti7312> =>
a1" 9"t>>>140
3271erd*ad/32" c7/sches cl"7asr1perf_evf13_2ask_et he7namti7322> =>
a1" 9"t>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 7te=cnt"7ke7294>7>
aq_76rtamtr1g=t he7namti73re 205cka andonc_cdsc3253erddddddddd* Valid prioriti>3 for coren_FIFO and coren_RR 9p.d/33evf13a 32his cl"+asr1pre33evf>331r 7timeoutaom7asr1perf_evf13_2ask_et he7namti73    ck12o32w>122ass="3254erddddddddd* 1..71_pUSERpRThPRIO-1, valid priority for coren_NORMA3,d/33evf13a 32his cl"+asr1pre33evf>331r 7t>4rupted 7its/ru*    cimeoutr1g= he7namti73U4T
/3>4d*ad/ Furto3o32
5erddddddddd* coren_BATCH and coren_IDLm 331r 7t2054uler_70shre3=732ss=>323witch>rq7/a> *73 to aqr rfr-queu8 pre3256erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 7r3>4rupted7lvea13b">32LIN>323Thenmai7 "20573719ot3stati7a32a9t>
id4ss3197erdparam203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e< 0 ||r1perf_evf13_2ag=9o7> =>
a1"20547"+cod7as &73>5 >1 t9i1_rest>
mm203o>>1231ine>3mmsnr1e&9o71&9o71v58k_3/722222222param203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e&"2"4>>1 t9i1_rest>
71_pUSERpRThPRIOsss*>122ass="na71_pUSERpRThPRIOeable1s ||r1perf_evf13_2ag=9o7> =>
a1"20547rline" nam7let28
 of >>5#L17led>from7its/r7312> =>
a1" 9"t>>>9!switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
mm203o>>1231ine>3mmsnr1e&9o71&9o71v58k_3/722222222param203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e&"2"4>>1 t9i1_rest>
71_pRThPRIOL12> =>
axssr9o71_pRThPRIOsnr1e1sssr9o71_pcorenaxr1g=9o734829" cla7ru*is/part7cular/hreplet28
15 new3ea7k add740_next_naskolt>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20547128
p20s797mpty hre74o"do aqr new3ea7k add74119ot3stati7a32a9t>
id4ss3197erdrt_policyL13=62ef">63__>rt_policysnr1g= 77>1t+policyL13=62ef">63__>policysnr1)e!p29t>
id4ss3197erdparam203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e!p20sssr9o71_pcorenaxr1g=9o734829" cla7rsches cl"7"5#L1. >tsisrNOTqr new3ea7k add74219ot3stati7at>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"205471e=cnt"7ke7aris/RU cimeoutaqr new3ea7k add741t+cnnruptibrq 
qr new3ea7k add7442> =>
a1" 9"t>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 7dimeoutaom7())twith"1imeoutr1 new3ea7k add74U4T
/3>4d*ad/ Furto3o32
5erddddddddd* Allow unprivilegedaRT hick8
to decreasa priority:d/33evf13a 32his cl"+asr1pre33evf>331r 7d2054uler_7 se0 hreplete()aqr new3ea7k add74 to aqr rfr-queu8 pre3256erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 7d3>4rupted7
id4ss3197erdusers_timeoutaom ituscrsnr1 r9o71r9o71v!switches"+pr331cap31insss*>122ass="na9ap31insnr1g= 77>1t+CAPpcoScNICmeoutaom its/ru*CAPpcoScNICm9ik_)s >
a1" 9"t>
id4sp3304erd*ad/33db*r7tioL12> =>7axssr9o71_pcorenaxr1g=t>
7d4ssr74k_next_naskolt>>>140
32a9t>
id4ss3197erdrt_policyL13=62ef">63__>rt_policysnr1g= 77>1t+policyL13=62ef">63__>policysnr1)s >
a1" 9"t>
id4sp3304erd*ad/33db*r7tline" nam7 Pick up32ru*>324 remoloa7_updp7412> =>
a1" 9"t>>>140








ongsl2hi3192erd*ad/31ru c135>rlim_rmpriosss*>122ass="naslim_rmprio9ik_ee
a1" 9"t>
id4sp3304erd*ad/33db*r7_pcorenaTA7K_UNINTERRUPTIBLEsk_et he7namti750_next_naskolt>>>140
























28
_kileable961e74o_rlimit203o>>1231ine>3s74o_rlimitsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+RLIMITcRTPRIOL12> =>
axssr9oRLIMITcRTPRIO9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205477a3a553251////>rq7/a> *7512> =>
a1" 9"t>>>140
3271erd*ad/32" c7_sches cl"7it_fo>chreplet28
15#Lt he7namti75219ot3stati7at>>>140
>
a1" 9"t>4d*ad/ Furto3o32
5erd*(can't set/52ange t331r 742" id5">p7ck_next_n32itr>325()-5ime7debug753_next_naskolt>>>140
t>>>140
32a9t>
id4ss3197erdpolicyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1er9o71r9o71v!switches"+pr331rlim_rmpriosss*>122ass="naslim_rmprio9ik_ssr9o71_pcorenaxr1g=9o734829" cla77namt, nea7st possi acaole77led>from7its/r75419ot3stati7a> *
a h,,,,,,,,,,,,,,,,,ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20547et28
 of >75#L1 (w/timeoutc20r7d_rq_76f">E750n_u>20
a557cular/hreplet28
15 new3ea7k add7512> =>
a1" 9"t>>>140
>
a1" 9"t>4d*ad/ Furto3o32
5erd*(can't increasa priority *ad/33evf13a 32his cl"+asr1pre33evf>331r 743>4rupted7val
p in jiffiesqr new3ea7k add7572> =>
a1" 9"t>>>140








32a9t>
id4ss3197erdparam203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e&"2"4>>1 t9i1_rest>
ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rt_prioritysss*>122ass="nast_prioritysnr1e&9o71&9o7120
a55 =>7ick()>135>ss="+*qr new3ea7k add75k_next_naskolt>>>140
> *
a h,



t>
id4ss3197erdparam203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e&"2"4>>1 t9i1_rest>
rlim_rmpriosss*>122ass="naslim_rmprio9ik_ssr9o71_pcorenaxr1g=9o734829" cla77line" nam7_RUaled o>/fo>/aqr new3ea7k add7512> =>
a1" 9"t>>>140








,,,,,,,,ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20547ut isrin j7ffies. >tsisrnod7led>from7its/r760_next_naskolt>>>140
L12> =>
a1" 9"t>3324erd*ad/33namt7hre3="kere77"
/3>4ruptibleaqr new3ea7k add7612> =>
a1" 9"t>>>140
3271erd*ad/32" c7usches cl"7" nr_switches"+*15 new3ea7k add76219ot3stati7at>>>140
t>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 7u2" id5">p7 1, o>/numb0r of15 new3ea7k add76re 205cka andonc_cdsc3253erddddddddddddddddd* Treat coren_IDLm as nic"r20. Only allow a switch
tod/33evf13a 32his cl"+asr1pre33evf>331r 7unamt, nea7tcachshrepleteds of drivp7e The76    ck12o32w>122ass="3254erddddddddddddddddd* coren_NORMA3
32at/numb0r of jiffies left73t28
 of >7pty hre74o"do a>k!faacclv7a13b"76U4T
/3>4d*ad/ Furto3o32
5erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 73ef"20
*5>7a129ck_le97sted>froe28
he7namti7612> =>
a1" 9"t>>>140
32a9t>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1e=p2t>
id4sp32s1erdcoren_IDLmeoutaom its/ru*coren_IDLmsnr1e&9o71&9o71v58k_3/722222222policyL13=62ef">63__>policysnr1e!p2t>
id4sp32s1erdcoren_IDLmeoutaom its/ru*coren_IDLmsnr1s >
a1" 9"t>
id4sp3304erd*ad/33db*r73 href">rq7its/ru*    cimeoutr1g=the7namti7672> =>
a1" 9"t>>>140








32a9!switches"+pr331can_nic"sss*>122ass="na9an_nic"snr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+    cNICmeoutaom its/ru*    cNICmsnr1g= 77>1t+ps_timeoutaom itp9ik_)sssr9o71_pcorenaxr1g=9o734829" cla73ioL12> =>70
6>>12832 (
>326r s20loa7_updp76k_next_naskolt>>>140
> *
a h,







ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20547uline" nam7K_UNINTERRUPTIBLEsk_et he7namti7612> =>
a1" 9"t>>>140
L12> =>
a1" 9"t>3324erd*ad/33namt7namtioL12>7=>
a1" 932>tc>326>>128>rq7/a> *7712> =>
a1" 9"t>>>140
323lerd*ad/32s* 7nre3="kere7replet28
_timeout15#Lt he7namti7712> =>
a1" 9"t>>>140
>>4d*ad/ Furto3o32
5erd*(can't 52ange ot3 *ad/33evf13a 32his cl"+asr1pre33evf>331r 7nsches cl"7ine97129432" c>3281st-phe7namti77219ot3stati7at>>>140
32a9!switches"+pr331c2eck_sode_owncr2"9ik__>96twc_dc2eck_sode_owncrsnr1g= 77>1t+ps_timeoutaom itp9ik_)s13a 32his cl"+asr1pre33evf>331r 7n2" id5">p7">>1 twc9actile77led>from7its/r773_next_naskolt>>>140
t>>>140
ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20547nilertimeo7 >>5#L1 (w/
/3rc20r7d_rq_76f">E77 to ar1perf_evf13_2ag=9o7> =>
a1"20547nt28
 of >7cular/hreplet28
15 new3ea7k add7752> =>
a1" 9"t>>>140
>>4d*ad/ Furto3o32
5erd*(Npimal users(shali not rerom0o75osu*  _re1omeil"foro  >31 *ad/33evf13a 32his cl"+asr1pre33evf>331r 7nef"20
*5>7ick()>135>ss="e*qr new3ea7k add7712> =>
a1" 9"t>>>140
32a9t>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _re1omeil"forosss*>122ass="naru*  _re1omeil"foro9ik_er9o71r9o71v!switches"+pr331re1omeil"forosss*>122ass="nareromeil"foro9ik_s13a 32his cl"+asr1pre33evf>331r 7n href">rq7rr_RUaled. >tsisqr new3ea7k add7772> =>
a1" 9"t>>>140








ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20547nioL12> =>7* 
/3>4ruptibleaqr new3ea7k add7782> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt7nline" nam7p. I 7st > 79f+*qr new3ea7k add7712> =12> =>
a1" 9"t>3324erd*ad/33namt7/3>4rupted7 0achshrepleteds of drivp7e The7802> =>
a1" 9"32a9t>
id4ss3197erdusers_timeoutaom ituscrsnr1s >
a1" 9"t>
id4sp3304erd*ad/33db*r7/re3="kere7pt_ena ac()r522>k!faacclv7a13b"7812> =>
a1" 9"t>>>140
>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev58k_3/722222222se915ity_s74o_somru*    cr2"9ik__>96twc_dse915ity_s74o_somru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20547tioL12> =>7axssr9o71_pcorenaxr1g=t>
7d4ssr78219ot3stati7at>>>140
32a9>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1s13a 32his cl"+asr1pre33evf>331r 7/ (at leas7"203o>>132lin>32/5ode=loa7_updp783_next_naskolt>>>140
t>>>140
ongsl2h>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20547tilertimeo7ASK_INTERRUPTIBLEsk_et he7namti78419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33namt7tu*is/part7k_le97sERESTARTSYSr1g=t>
7d4ssr780n_u>20
a557utaom its/ru*    cr1g= he7namti7812> =>
a1" 9"t>4d*ad/ Furto3o32
5erd*d/33evf13a 32his cl"+asr1pre33evf>331r 7ne"32ag >378,
a href="+20KERN_Et0ck 7r1g=;78ler func1f13>135>ss="3237erddddddddd* mak5osure no PI-waiters(arrive (or leave) while we 9p.d/33evf13a 32his cl"+asr1pre33evf>331r 7nioL12> =>7/er5erru32  c>32/ef="+>rq7/a> *78    ck12o32w>122ass="3238erddddddddd* 52angsng t331r 7/mo93 wak9728
_
/3>4ruptible15#Lt he7namti78    ck12o32w>122ass="3239erddddddddd*d/33evf13a 32his cl"+asr1pre33evf>331r 7135>ss="li7e" namtio32dd >328switche7"+val790_next>4d*ad/ Furto3o32
5erddddddddd* To be 9ble_to 52ange pef"2"policy safely,re331r 71re3="kere7pt_ena ac()r5le77led>from7its/r79U4T
/3>4d*ad/ Furto3o33a1erddddddddd* runqueue 
id4 must be helde (at least 1, o>/numb0r of jiffies left7o>/hreplet78
 (w/(to,
/3rcc20r7d_rq_76f">E79 to aqr rfr-queu8 pre3162erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 71 (at leas7cular/hreplet28
15 new3ea7k add793_next_naskol>>1 t9i1_rest>
rssss*>122ass="nass9ik_ ev58k_3/722222222s74o_rq_r1g=9o734829" cla73s74o_rq_r1g=snr1g= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"205471plet28
 o7val
p in jiffiesqr new3ea7k add79 to ar1perf_evf13_2ag=9o7> =>
a1"205471u*is/part7mpty hre74o"do aqr new3ea7k add79k_next_naskoltcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 71ef"20
*5>7_RUaled o>/fo>/aqr new3ea7k add79 to aqr rfr-queu8 pre3256erddddddddd* C2angsng t331r 71e"32ag >37t isrin jiffies.qr new3ea7k add79ler func1f13>135>ss="3237erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 71ioL12> =>7ick()>135>ss="+*qr new3ea7k add7982> =>
a1" 9"32a9t>
id4ss3197erdps_timeoutaom itp9ik_e=p2t>
id4sp32s1erdrssss*>122ass="nass9ik_ef"2">>1 t9i1_rest>
stop2"9ik__>96twc_dstopsnr1s >
a1" 9"t>
id4sp3304erd*ad/33db*r7#mo93 wak97 0achs2imed out,qr new3ea7k add7912> =>
a1" 9"t>>>140
58k_3/722222222s74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"205483ilertimeo8tcachshrepleteds of drivp8e The800_next_naskolt>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20548//////pree8pt_ena ac()r522>k!faacclv8a13b"8012> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt832////pree8p
 (w/(to,
/3rcc20r7d_rq_8namti8012> =>
a1" 9"t>>>140
3252erd*ad/32itr8tioL12> =>8axssr9o71_pcorenaxr1g=,he8namti803_next_naskoltcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 834oL12> =>8aal
p in jiffiesqr new3ea8namti80    ck12o32w>122ass="3254erddddddddd* If not 52angsng anythsng t331r 835oL12> =>8apty hre74o"do aqr new3ea8_updp80U4T
/3>4d*ad/ Furto3o32
5erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 836oL12> =>8aRUaled o>/fo>/aqr new3ea8namti8062> =>
a1" 9"32a9t>
id4ss3197erdt>
ikelys_timeoutaom itu>
ikelysnr1g= 77>1t+policyL13=62ef">63__>policysnr1e=p2t>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1er9o71r9o71v9!switches"+pr331rt_policyL13=62ef">63__>rt_policysnr1g= 77>1t+policyL13=62ef">63__>policysnr1)e||r1perf_evf13_2ag=9o7> =>
a1"2054837oL12> =>8a isrin jiffies.qr new3ea8/a> *8072> =>
a1" 9"t>>>140








t>
id4ss3197erdparam203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1e=p2t>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rt_prioritysss*>122ass="nast_prioritysnr1))s >
a1" 9"t>
id4sp3304erd*ad/33db*r8n8mtioL12482ck()>135>ss="+*qr new3ea8namti80k_next_naskolt>>>140
58k_3/722222222s74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"2054839mtioL124820achs2imed out,qr new3ea8aeask8012> =>
a1" 9"t>>>140
ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"2054813 directl8:122ass="namte_*qr new3ea8k add8102> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt8let28
 of 8>5#L1 (kileablec20r7d_rq_86f">E8112> =>
a1" 9"t>>>140
3271erd*ad/32" c8l2////pree8cular/hreplet28
15 new3ea8k add81719ot#ifdef4>7>
aq_76
pit_fCONFIG_RT_GROUP_corenine" namtio31ruCONFIG_RT_GROUP_coren2> =>
a1" 9"t>>>140
3271erd*ad/32" c8lioL12> =>84">>1 twc9activ915 new3ea8k add8112> =>
a1" 9"32a9t>
id4ss3197erdusers_timeoutaom ituscrsnr1s >
a1" 9"t>
id4sp3304erd*ad/33db*r8r4oL12> =>8"5#L1. >tshrefb715 new3ea8k add81419ot3stati7a> *
a h,scka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 83>4rupted 8y >>kilerr_RUals of drivp8e The81U4T
/3>4d*ad/ Furto3o32
5erddddddddddddddddd* Do not allow realtime hick8
into groups3tha3 have no runtimed/33evf13a 32his cl"+asr1pre33evf>331r 836oL12> =>8ick()>135>ss="e*qr new3ea8k add81 to aqr rfr-queu8 pre3256erddddddddddddddddd* ueusl2hie (at least 1, o>/numb0r of jiffies left8/3>4rupted8 0achshrepleteds of drivp8e The81ler func1f13>135>ss="3237erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 8r8mtioL1248ck()>135>ss="+*>k!faacclv8a13b"81k_next_naskolt>>>140
32a9t>
id4ss3197erdrt_bandwidth_en9bleds_timeoutaom itrt_bandwidth_en9bledsnr1g)e&9o71&9o71v58k_3/722222222rt_policyL13=62ef">63__>rt_policysnr1g= 77>1t+policyL13=62ef">63__>policysnr1)e&9o71&9o7120
a55
8d4ssr8112> =>
a1" 9"t>>>140








,,,,,,,,58k_3/722222222s74o_group203o>>1231ine>3s74o_groupsnr1g= 77>1t+ps_timeoutaom itp9ik_)ef"2">>1 t9i1_rest>
rt_bandwidths_timeoutaom itrt_bandwidth9ik_.>>1 t9i1_rest>
rt_runtimes_timeoutaom itrt_runtimed/r1e=p20e&9o71&9o7120
a55TAIN33olo>331r9o77loa8_updp820_next_naskolt>>>140
















!switches"+pr331s74o_group_is_autogroup203o>>1231ine>3s74o_group_is_autogroupsnr1g= 77>1t+s74o_group203o>>1231ine>3s74o_groupsnr1g= 77>1t+ps_timeoutaom itp9ik_))s >
a1" 9"t>
id4sp3304erd*ad/33db*r8_er9o71_pc8renaTASK_KILLABLE15#Lt he8namti8212> =>
a1" 9"t>>>140
,,,,,,,,58k_3/722222222s74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"20548_2////pree8k_le97sERESTARTSYSr1g=t>
8d4ssr82219ot3stati7at>>>140
>
a1" 9"ongsl2h-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTssrPERM (r1sr1perf_evf13_2ag=9o7> =>
a1"20548sioL12> =>8utaom its/ru*    cr1g= he8namti823_next_naskolt>>>140
L12> =>
a1" 9"t>3324erd*ad/33namt8Simeoutaom82>140
93t4 <97KERN_Et0ck 8r1g=;82419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33namt8S>4rupted 8"2056>>133nam>33p2096129487>
aq820n_u>#endif
a1" 9"t>>>140
33d6erd*ad/33dne"8i2054uler_82053ula_d322nr>322829" cl86>"re8212> =
a1" 9"t>>>140
33d6erd*ad/33dne"8i3>4rupted8a129ck_le97sted>froe28
he8namti8272> =>
a1" 9">>4d*ad/ Furto3o32
5erd*(rec2eck policy now o at3rq 
id4 heldd*ad/33evf13a 32his cl"+asr1pre33evf>331r 8i8mtioL12481294>7>
aq_76rtamtr1g=t>
8d4ssr8282> =>
a1" 9"32a9t>
id4ss3197erdt>
ikelys_timeoutaom itu>
ikelysnr1g= 77>1t+oldpolicyL13=62ef">63__>oldpolicysnr1e!ev-1e&9o71&9o71v58k_3/722222222oldpolicyL13=62ef">63__>oldpolicysnr1e!evt>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr1)s >
a1" 9"t>
id4sp3304erd*ad/33db*r8_9mtioL1248namtioL132all>322 remoloa8_updp8212> =>
a1" 9"t>>>140
= 77>1t+policyL13=62ef">63__>policysnr1e= t>
id4sp32s1erdoldpolicyL13=62ef">63__>oldpolicysnr1eev-1sr1perf_evf13_2ag=9o7> =>
a1"20548p961294>7>8aq_76mighA_dleep20"19t he8namti830_next_naskolt>>>140
58k_3/722222222s74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"20548therwisn,h8h0"1nelkw32s* >323 >128he8namti8312> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
rec2ecksss*>122ass="narec2ecker fsr1perf_evf13_2ag=9o7> =>
a1"20548t2////pree8asr1perf_evf13_2ask_et he8namti8322> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt8te=cnt"7ke8294>7>
aq_76rtamtr1g=t he8namti833_next_naskol>>1 t9i1_rest>
ol"sssss*>122ass="nail"ss9ik_eevt>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ol"sssss*>122ass="nail"ss9ik_sr1perf_evf13_2ag=9o7> =>
a1"20548timeoutaom8asr1perf_evf13_2ask_et he8namti834_next_naskol>>1 t9i1_rest>
running829" cla73/scherunninge>31 ev58k_3/722222222s74o_c15#L142"9ik__>96twc_ds74o_c15#L14snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20548t>4rupted 8its/ru*    cimeoutr1g= he8namti8352> =>
a1" 9"32a9t>
id4ss3197erdol"sssss*>122ass="nail"ss9ik_s13a 32his cl"+asr1pre33evf>331r 8t2054uler_80shre3=732ss=>323witch>rq8/a> *8312> =>
a1" 9"t>>>140
switches"+pr331dequeue_hick203o>>1231ine>3dequeue_hicksnr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 0)sr1perf_evf13_2ag=9o7> =>
a1"20548t3>4rupted8lvea13b">32LIN>323Thenmai8 "20583719ot3stati7a32a9t>
id4ss3197erdrunning829" cla73/scherunninge>31s13a 32his cl"+asr1pre33evf>331r 8t8mtioL12483>5 >1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
put_prev_hick203o>>1231ine>3put_prev_hicksnr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20548t9mtioL1248let28
 of >>5#L17led>from8its/r8312> =12> =>
a1" 9"t>3324erd*ad/33namt8ru*is/part8cular/hreplet28
15 new3ea8k add840_next_naskol= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _re1omeil"forosss*>122ass="naru*  _re1omeil"foro9ik_ep2t>
id4sp32s1erdre1omeil"forosss*>122ass="nareromeil"foro9ik_sr1perf_evf13_2ag=9o7> =>
a1"20548128
p20s798mpty hre74o"do aqr new3ea8k add8412> =>
a1" 9"t>>>140
3271erd*ad/32" c8rsches cl"8"5#L1. >tsisrNOTqr new3ea8k add8422> =>
a1" 9"t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_eevt>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
prio829" cla73/schepriosnr1sr1perf_evf13_2ag=9o7> =>
a1"205481e=cnt"7ke8aris/RU cimeoutaqr new3ea8k add843_next_naskol>>1 t9i1_rest>
prev_p in timeoutaom its/prev_p in ign,eev58k_3/722222222ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_sr1perf_evf13_2ag=9o7> =>
a1"205481imeoutaom8est possi acao>
qr new3ea8k add844_next_naskol>>1 t9i1_rest>
_7somru*    cr2"9ik__>96twc_d_7somru*    crsnr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+policyL13=62ef">63__>policysnr1t = 77>1t+param203o>>1231ine>3parameablef"2">>1 t9i1_rest>
ru*  _prioritysss*>122ass="naru*  _prioritysnr1)sr1perf_evf13_2ag=9o7> =>
a1"20548dimeoutaom8())twith"1imeoutr1 new3ea8k add840n_u>20
a55 =>
a1" 9"32a9t>
id4ss3197erdrunning829" cla73/scherunninge>31s13a 32his cl"+asr1pre33evf>331r 8d3>4rupted8 =>
a1" 9"t>>>140
= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
romec15#_hick203o>>1231ine>3romec15#_hicksnr1g= 77>1t+sssss*>122ass="nass9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20548d8mtioL1248axssr9o71_pcorenaxr1g=t>
8d4ssr8482> =>
a1" 9"32a9t>
id4ss3197erdol"sssss*>122ass="nail"ss9ik_s13a 32his cl"+asr1pre33evf>331r 8tline" nam8 Pick up32ru*>324 remoloa8_updp8412> =>
a1" 9"t>>>140
t>
id4ss3197erdenqueue_hick203o>>1231ine>3enqueue_hicksnr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 0)sr1perf_evf13_2ag=9o7> =>
a1"20548_pcorenaTA8K_UNINTERRUPTIBLEsk_et he8namti8512> =>
a1" 9"t>>>140
323lerd*ad/32s* 87a3a553251////>rq8/a> *851_next_naskol>>1 t9i1_rest>
c2eck_29" 3_52ange2nr_switches"+pr52eck_29" 3_52ange2snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+prev_p in timeoutaom its/prev_p in ign,, t>
id4sp32s1erdoldprio829" cla73/scheoldprio9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20548_sches cl"8it_fo>chreplet28
15#Lt he8namti8522> =>
a1" 9"t>
id4sp32s1erds74o_rq_t>
id4203o>>1231ine>3s74o_rq_t>
id4snr1g= 77>1t+sssss*>122ass="nass9ik_,"= 77>1t+ps_timeoutaom itp9ik_t 7naref"2">>1 t9i1_refs="line" namtio31ru >319ign,)sr1perf_evf13_2ag=9o7> =>
a1"2054842" id5">p8ck_next_n32itr>325()-5ime8debug851t+cnnruptibrq from8its/r854_next_naskol>>1 t9i1_rest>
rt_mutex_adjust_pis_timeoutaom itrt_mutex_adjust_pisnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205484imeoutaom85#L1 (w/timeoutc20r7d_rq_86f">E850n_u>20
a558cular/hreplet28
15 new3ea8k add8512> =>
a1" 9"ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"2054843>4rupted8val
p in jiffiesqr new3ea8k add8572> =L12> =>
a1" 9"t>3324erd*ad/33namt8eioL12> =>8ick()>135>ss="+*qr new3ea8k add85k_nex12> =>
a1" 9"t>3324erd*ad/33namt8eline" nam8_RUaled o>/fo>/aqr new3ea8k add85    ck12o32w>122ass="3239er/**d/33evf13a 32his cl"+asr1pre33evf>331r 8ut isrin j8ffies. >tsisrnod7led>from8its/r860_next>4d*ad/ Furto3o32
5erd*osu*  _somru*    cr - 52ange t/numb0r of jiffies left8hre3="kere87"
/3>4ruptibleaqr new3ea8k add86U4T
/3>4d*ad/ Furto3o33a1erd*a@p:re/numb0r of jiffies left8hsches cl"8" nr_switches"+*15 new3ea8k add86 to aqr rfr-queu8 pre3162erd*a@policy: new policye (at least 1, o>/numb0r of jiffies left8h2" id5">p8 1, o>/numb0r of15 new3ea8k add86re 205cka andonc_cdsc3253erd*a@param:ahrepleure containsng t/numb0r of jiffies left8hnamt, nea8tcachshrepleteds of drivp8e The86    ck12o32w>122ass="3254erd*d/33evf13a 32his cl"+asr1pre33evf>331r 8uimeoutaom8pty hre74o"do a>k!faacclv8a13b"86U4T
/3>4d*ad/ Furto3o32
5erd* NOTE3tha3 e/numb0r of jiffies left8hef"20
*5>8a129ck_le97sted>froe28
he8namti86 to aqr rfr-queu8 pre3256erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 83 href">rq8its/ru*    cimeoutr1g=the8namti8672> =2nr_switches"+pr331su*  _somru*    crsss*>122ass="naru*  _somru*    crsnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_942nr_switches"+pr331policyL13=62ef">63__>policysnr1920
a55 =>80
6>>12832 (
>326r s20loa8_updp86k_next_naskolt>>>140
> *
a hconst"hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable15#L9>rq>20
a hrparam203o>>1231ine>3parameabls13a 32his cl"+asr1pre33evf>331r 8uline" nam8K_UNINTERRUPTIBLEsk_et he8namti8612> =>
a1" 9"t>
id4sp3304erd*ad/33db*r8namtioL12>8=>
a1" 932>tc>326>>128>rq8/a> *8702> =>
a1" 9"ongsl2h>>1 t9i1_rest>
_7su*  _somru*    crsss*>122ass="na_7so7> _somru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+policyL13=62ef">63__>policysnr1t = 77>1t+param203o>>1231ine>3parameablt = 77>1t+repes_timeoutaom itrepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20548nre3="kere8replet28
_timeout15#Lt he8namti8712> =L12> =>
a1" 9"t>3324erd*ad/33namt8nsches cl"8ine97129432" c>3281st-phe8namti87219otq
a1" 9"t>
id4s1XPORT_SYMBOL_GP33DULE_TIMEOUTss1XPORT_SYMBOL_GP3snr1g= 77>1t+su*  _somru*    crsss*>122ass="naru*  _somru*    crsnr1)sr1perf_evf13_2ag=9o7> =>
a1"20548n2" id5">p8">>1 twc9actile77led>from8its/r871t+cnnruptibrq >5#L1 (w/
/3rc20r7d_rq_86f">E87    ck12o32w>122ass="3254er/**d/33evf13a 32his cl"+asr1pre33evf>331r 8nt28
 of >8cular/hreplet28
15 new3ea8k add87U4T
/3>4d*ad/ Furto3o32
5erd* ru*  _somru*    cr_noc2eck - 52ange t4dcee (at least 1, o>/numb0r of jiffies left8nef"20
*5>8ick()>135>ss="e*qr new3ea8k add87 to aqr rfr-queu8 pre3256erd*a@p:re/numb0r of jiffies left8n href">rq8rr_RUaled. >tsisqr new3ea8k add87ler func1f13>135>ss="3237erd*a@policy: new policye (at least 1, o>/numb0r of jiffies left8nioL12> =>8* 
/3>4ruptibleaqr new3ea8k add87    ck12o32w>122ass="3238erd*a@param:ahrepleure containsng t/numb0r of jiffies left8nline" nam8p. I 7st > 79f+*qr new3ea8k add87    ck12o32w>122ass="3239erd*d/33evf13a 32his cl"+asr1pre33evf>331r 8/3>4rupted8 0achshrepleteds of drivp8e The880_next>4d*ad/ Furto3o32
5erd*oJust 
ike ru*  _somru*    cr, only don't bot331r 8/re3="kere8pt_ena ac()r522>k!faacclv8a13b"88U4T
/3>4d*ad/ Furto3o33a1erd*ac15#L14 contex3 has permissione  Foraexample,re331r 8/sches cl"8axssr9o71_pcorenaxr1g=t>
8d4ssr88 to aqr rfr-queu8 pre3162erd*astop_machore(): we creata hemporary high prioritypworcl"re331r 8/ (at leas8"203o>>132lin>32/5ode=loa8_updp88re 205cka andonc_cdsc3253erd*abut our cal cr might not have tha3 9ap31ilitye (at least 1, o>/numb0r of jiffies left8tilertimeo8ASK_INTERRUPTIBLEsk_et he8namti88    ck12o32w>122ass="3254erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 8tu*is/part8k_le97sERESTARTSYSr1g=t>
8d4ssr880n_u>2nr_switches"+pr331su*  _somru*    cr_noc2ecksss*>122ass="naru*  _somru*    cr_noc2ecksnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_942nr_switches"+pr331policyL13=62ef">63__>policysnr1920
a558utaom its/ru*    cr1g= he8namti8812> =>
a1" 9"t>>>140
>
a1" 9"> *
a hconst"hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable15#L9>rq>20
a hrparam203o>>1231ine>3parameabls13a 32his cl"+asr1pre33evf>331r 8ne"32ag >388,
a href="+20KERN_Et0ck 8r1g=;88ler f>
a1" 9"t>
id4sp3304erd*ad/33db*r8nioL12> =>8/er5erru32  c>32/ef="+>rq8/a> *8882> =>
a1" 9"ongsl2h>>1 t9i1_rest>
_7su*  _somru*    crsss*>122ass="na_7so7> _somru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+policyL13=62ef">63__>policysnr1t = 77>1t+param203o>>1231ine>3parameablt = 77>1t+falses_timeoutaom itfalsesnr1)sr1perf_evf13_2ag=9o7> =>
a1"20548/mo93 wak9828
_
/3>4ruptible15#Lt he8namti88    cL12> =>
a1" 9"t>3324erd*ad/33namt8135>ss="li8e" namtio32dd >328switche8"+val8912> =>
a1" 9"t>>>140
323lerd*ad/32s* 81re3="kere8pt_ena ac()r5le77led>from8its/r89U4T
/static42nr>
a1" 9"t>>>140
323lerd*ad/32s* 81sches cl"88
 (w/(to,
/3rcc20r7d_rq_86f">E89219otq
a1" 9"t>
id4sdo7su*  _somru*    crsss*>122ass="nado7su*  _somru*    crsnr1g= 77>1t+pid_es_timeoutaom itpid_e2> =>= 77>1t+pids_timeoutaom itpid9ik_942nr_switches"+pr331policyL13=62ef">63__>policysnr19"hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
_7users_timeoutaom it_7usereable15#L9>rq>20
a hrparam203o>>1231ine>3parameabls13a 32his cl"+asr1pre33evf>331r 81 (at leas8cular/hreplet28
15 new3ea8k add893_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r81plet28
 o8val
p in jiffiesqr new3ea8k add894_next_naskolhreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
lparam203o>>1231ine>3lparameablsr1perf_evf13_2ag=9o7> =>
a1"205481u*is/part8mpty hre74o"do aqr new3ea8k add89k_next_naskolhreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"205481ef"20
*5>8_RUaled o>/fo>/aqr new3ea8k add8962> =>
a1" 9"3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"205481e"32ag >38t isrin jiffies.qr new3ea8k add89ler fr1perf_evf13_2ag=9o7> =>
a1"205481ioL12> =>8ick()>135>ss="+*qr new3ea8k add8982> =>
a1" 9"32a9!switches"+pr331param203o>>1231ine>3parameabl ||>= 77>1t+pids_timeoutaom itpid9ik_e< 0sr1perf_evf13_2ag=9o7> =>
a1"205481mo93 wak98 0achs2imed out,qr new3ea8k add8912> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"205493ilertimeo9tcachshrepleteds of drivp9e The900_next_naskol32a9t>
id4ss3197erdcopy_from7users_timeoutaom itcopy_from7usersnr1g7naref"2">>1 t9i1_relparam203o>>1231ine>3lparameablt = 77>1t+param203o>>1231ine>3parameablt sizeofghreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameabl)sssr9o71_pcorenaxr1g=9o734829" cla9//////pree9pt_ena ac()r522>k!faacclv9a13b"9012> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1FAULT3DULE_TIMEOUTss1FAULT9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054932////pree9p
 (w/(to,
/3rcc20r7d_rq_9namti9012> =>
a1" 9"t>>>140
3252erd*ad/32itr9tioL12> =>9axssr9o71_pcorenaxr1g=,he9namti903_next_naskol>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054934oL12> =>9aal
p in jiffiesqr new3ea9namti904_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1SRCH3DULE_TIMEOUTss1SRCH9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054935oL12> =>9apty hre74o"do aqr new3ea9_updp905_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_e= = 77>1t+fin _process_by_pids_timeoutaom itfin _process_by_pidsnr1g= 77>1t+pids_timeoutaom itpid9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054936oL12> =>9aRUaled o>/fo>/aqr new3ea9namti9062> =>
a1" 9"32a9t>
id4ss3197erdps_timeoutaom itp9ik_e!evt>
id4sp32s1erdNUL33DULE_TIMEOUTssNUL3eabls13a 32his cl"+asr1pre33evf>331r 937oL12> =>9a isrin jiffies.qr new3ea9/a> *9072> =>
a1" 9"t>>>140
>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331su*  _somru*    crsss*>122ass="naru*  _somru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+policyL13=62ef">63__>policysnr1t 7naref"2">>1 t9i1_relparam203o>>1231ine>3lparameabl)sr1perf_evf13_2ag=9o7> =>
a1"2054938oL12> =>9ack()>135>ss="+*qr new3ea9namti90k_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054939oL12> =>9a0achs2imed out,qr new3ea9aeask9012> =12> =>
a1" 9"t>3324erd*ad/33namt913 directl9:122ass="namte_*qr new3ea9k add9102> =>
a1" 9"ongsl2h>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20549let28
 of 9>5#L1 (kileablec20r7d_rq_96f">E9112> =L12> =>
a1" 9"t>3324erd*ad/33namt9l2////pree9cular/hreplet28
15 new3ea9k add9112> =>
a1" 9"t>>>140
3252erd*ad/32itr9lioL12> =>94">>1 twc9activ915 new3ea9k add91re 205cka andonc_cdsc3253er/**d/33evf13a 32his cl"+asr1pre33evf>331r 9r4oL12> =>9"5#L1. >tshrefb715 new3ea9k add91    ck12o32w>122ass="3254erd* sys7su*  _somru*    cr - set/52ange t331r 9r5oL12> =>9y >>kilerr_RUals of drivp9e The91U4T
/3>4d*ad/ Furto3o32
5erd*a@pid:re/numb0r of jiffies left936oL12> =>9ick()>135>ss="e*qr new3ea9k add91 to aqr rfr-queu8 pre3256erd*a@policy: new policye (at least 1, o>/numb0r of jiffies left9/3>4rupted9 0achshrepleteds of drivp9e The91ler func1f13>135>ss="3237erd*a@param:ahrepleure containsng t/numb0r of jiffies left9r8mtioL1249ck()>135>ss="+*>k!faacclv9a13b"91    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 9r9mtioL1249axssr9o71_pcorenaxr1g=t>
9d4ssr9112> =>>1 t9i1_rest>
SYSCALL_DEFINE3sss*>122ass="naSYSCALL_DEFINE3snr1g= 77>1t+su*  _somru*    crsss*>122ass="naru*  _somru*    crsnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_942nrt = 77>1t+policyL13=62ef">63__>policysnr1t13a 32his cl"+asr1pre33evf>331r 9sl2his cla93b">TAIN33olo>331r9o77loa9_updp920_next_naskolt>>>140
hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
_7users_timeoutaom it_7usereable1t = 77>1t+param203o>>1231ine>3parameabls13a 32his cl"+asr1pre33evf>331r 9_er9o71_pc9renaTASK_KILLABLE15#Lt he9namti9212> =>
a1" 9"t>
id4sp3304erd*ad/33db*r9_2////pree9k_le97sERESTARTSYSr1g=t>
9d4ssr92219ot3stati7a>>4d*ad/ Furto3o32
5erd*(negative qs_ues for policy are not qs_idd*ad/33evf13a 32his cl"+asr1pre33evf>331r 9sioL12> =>9utaom its/ru*    cr1g= he9namti9212> =>
a1" 9"32a9t>
id4ss3197erdpolicyL13=62ef">63__>policysnr1erlt; 0sr1perf_evf13_2ag=9o7> =>
a1"20549Simeoutaom92>140
93t4 <97KERN_Et0ck 9r1g=;92419ot3stati7a> *
a h,ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20549S>4rupted 9"2056>>133nam>33p2096129497>
aq920n_u>20
a55322829" cl96>"re9212> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sdo7su*  _somru*    crsss*>122ass="nado7su*  _somru*    crsnr1g= 77>1t+pids_timeoutaom itpid9ik_94= 77>1t+policyL13=62ef">63__>policysnr1t = 77>1t+param203o>>1231ine>3parameabl)sr1perf_evf13_2ag=9o7> =>
a1"20549i3>4rupted9a129ck_le97sted>froe28
he9namti9272> =L12> =>
a1" 9"t>3324erd*ad/33namt9i8mtioL12491294>7>
aq_76rtamtr1g=t>
9d4ssr92k_nex12> =>
a1" 9"t>3324erd*ad/33namt9_9mtioL1249namtioL132all>322 remoloa9_updp92    ck12o32w>122ass="3239er/**d/33evf13a 32his cl"+asr1pre33evf>331r 9p961294>7>9aq_76mighA_dleep20"19t he9namti930_next>4d*ad/ Furto3o32
5erd*osys7su*  _somparam - set/52ange t331r 9per9o71_pc9h0"1nelkw32s* >323 >128he9namti93U4T
/3>4d*ad/ Furto3o33a1erd*a@pid:re/numb0r of jiffies left9t2////pree9asr1perf_evf13_2ask_et he9namti93 to aqr rfr-queu8 pre3162erd*a@param:ahrepleure containsng t/numb0r of jiffies left9te=cnt"7ke9294>7>
aq_76rtamtr1g=t he9namti93re 205cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 9timeoutaom9asr1perf_evf13_2ask_et he9namti934_nex>>1 t9i1_rest>
SYSCALL_DEFINE2sss*>122ass="naSYSCALL_DEFINE2snr1g= 77>1t+su*  _somparam203o>>1231ine>3so7> _somparamsnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_94hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
_7users_timeoutaom it_7usereable1t = 77>1t+param203o>>1231ine>3parameabls13a 32his cl"+asr1pre33evf>331r 9t>4rupted 9its/ru*    cimeoutr1g= he9namti9352> =>
a1" 9"t>
id4sp3304erd*ad/33db*r9t2054uler_90shre3=732ss=>323witch>rq9/a> *9312> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sdo7su*  _somru*    crsss*>122ass="nado7su*  _somru*    crsnr1g= 77>1t+pids_timeoutaom itpid9ik_94-1t = 77>1t+param203o>>1231ine>3parameabl)sr1perf_evf13_2ag=9o7> =>
a1"20549t3>4rupted9lvea13b">32LIN>323Thenmai9 "2059372> =L12> =>
a1" 9"t>3324erd*ad/33namt9t8mtioL12493>5 3324erd*ad/33namt9t9mtioL1249let28
 of >>5#L17led>from9its/r93    ck12o32w>122ass="3239er/**d/33evf13a 32his cl"+asr1pre33evf>331r 9ru*is/part9cular/hreplet28
15 new3ea9k add940_next>4d*ad/ Furto3o32
5erd*osys7su*  _gomru*    cr - gom0o75opolicy (ru*    sng d/ Fu)pofrare331r 9128
p20s799mpty hre74o"do aqr new3ea9k add94U4T
/3>4d*ad/ Furto3o33a1erd*a@pid:re/numb0r of jiffies left9rsches cl"9"5#L1. >tsisrNOTqr new3ea9k add94 to aqr rfr-queu8 pre3162erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 91e=cnt"7ke9aris/RU cimeoutaqr new3ea9k add943_nex>>1 t9i1_rest>
SYSCALL_DEFINE1sss*>122ass="naSYSCALL_DEFINE1snr1g= 77>1t+su*  _gomru*    crsss*>122ass="naru*  _gomru*    crsnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_s13a 32his cl"+asr1pre33evf>331r 91imeoutaom9est possi acao>
qr new3ea9k add944_nex>
a1" 9"t>
id4sp3304erd*ad/33db*r9dimeoutaom9())twith"1imeoutr1 new3ea9k add94k_next_naskolhreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"20549d2054uler_9 se0 hreplete()aqr new3ea9k add9462> =>
a1" 9"3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20549d3>4rupted9 =>
a1"20549d8mtioL1249axssr9o71_pcorenaxr1g=t>
9d4ssr9482> =>
a1" 9"32a9t>
id4ss3197erdpids_timeoutaom itpid9ik_e< 0sr1perf_evf13_2ag=9o7> =>
a1"20549tline" nam9 Pick up32ru*>324 remoloa9_updp9412> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20549_pcorenaTA9K_UNINTERRUPTIBLEsk_et he9namti9512> =>
a1" 9"t>>>140
323lerd*ad/32s* 97a3a553251////>rq9/a> *951_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1SRCH3DULE_TIMEOUTss1SRCH9ik_sr1perf_evf13_2ag=9o7> =>
a1"20549_sches cl"9it_fo>chreplet28
15#Lt he9namti9522> =>
a1" 9"t>
id4sp32s1erdrcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054942" id5">p9ck_next_n32itr>325()-5ime9debug953_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_e= = 77>1t+fin _process_by_pids_timeoutaom itfin _process_by_pidsnr1g= 77>1t+pids_timeoutaom itpid9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205497namt, nea9st possi acaole77led>from9its/r954_next_naskol32a9t>
id4ss3197erdps_timeoutaom itp9ik_s >
a1" 9"t>
id4sp3304erd*ad/33db*r94imeoutaom95#L1 (w/timeoutc20r7d_rq_96f">E9552> =>
a1" 9"t>>>140
>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331se915ity_s74o_gomru*    crsss*>122ass="nare915ity_s74o_gomru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054972054uler_9cular/hreplet28
15 new3ea9k add9512> =>
a1" 9"t>>>140
32a9!switches"+pr331retqs_sss*>122ass="naretqs_snr1s13a 32his cl"+asr1pre33evf>331r 943>4rupted9val
p in jiffiesqr new3ea9k add9572> =>
a1" 9"t>>>140








t>
id4ss3197erdretqs_sss*>122ass="naretqs_snr1 evswitches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
policyL13=62ef">63__>policysnr113a 32his cl"+asr1pre33evf>331r 948mtioL1249ick()>135>ss="+*qr new3ea9k add95k_next_naskolt>>>140
> *
a h,







|a9t>
id4ss3197erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _re1omeil"forosss*>122ass="naru*  _re1omeil"foro9ik_e?vswitches"+pr331coren_RESET_ON_FORKsss*>122ass="naSoren_RESET_ON_FORK9ik_e: 0)sr1perf_evf13_2ag=9o7> =>
a1"20549eline" nam9_RUaled o>/fo>/aqr new3ea9k add9512> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33namt9ut isrin j9ffies. >tsisrnod7led>from9its/r960_next_naskol= 77>1t+rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20549hre3="kere97"
/3>4ruptibleaqr new3ea9k add961_next_naskolongsl2h>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20549hsches cl"9" nr_switches"+*15 new3ea9k add96 to aL12> =>
a1" 9"t>3324erd*ad/33namt9u2" id5">p9 1, o>/numb0r of15 new3ea9k add961t+cnnruptibrq 122ass="3254er/**d/33evf13a 32his cl"+asr1pre33evf>331r 9uimeoutaom9pty hre74o"do a>k!faacclv9a13b"96U4T
/3>4d*ad/ Furto3o32
5erd* sys7su*  _gomparam - gom0o75oRT prioritypofrare331r 9hef"20
*5>9a129ck_le97sted>froe28
he9namti96 to aqr rfr-queu8 pre3256erd*a@pid:re/numb0r of jiffies left93 href">rq9its/ru*    cimeoutr1g=the9namti96ler func1f13>135>ss="3237erd*a@param:ahrepleure containsng t/numb0r of jiffies left93ioL12> =>90
6>>12832 (
>326r s20loa9_updp96    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r 9uline" nam9K_UNINTERRUPTIBLEsk_et he9namti9612> =>>1 t9i1_rest>
SYSCALL_DEFINE2sss*>122ass="naSYSCALL_DEFINE2snr1g= 77>1t+su*  _gomparam203o>>1231ine>3so7> _gomparamsnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_94hreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
_7users_timeoutaom it_7usereable1t = 77>1t+param203o>>1231ine>3parameab1s13a 32his cl"+asr1pre33evf>331r 9namtioL12>9=>
a1" 932>tc>326>>128>rq9/a> *9702> =>
a1" 9"t>
id4sp3304erd*ad/33db*r9nre3="kere9replet28
_timeout15#Lt he9namti971_next_naskolhreplet28
_kileable961so7> _param203o>>1231ine>3so7> _parameable>>1 t9i1_rest>
lp203o>>1231ine>3lpsnr1sr1perf_evf13_2ag=9o7> =>
a1"20549nsches cl"9ine97129432" c>3281st-phe9namti972_next_naskolhreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"20549n2" id5">p9">>1 twc9actile77led>from9its/r9712> =>
a1" 9"3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20549nilertimeo9 >>5#L1 (w/
/3rc20r7d_rq_96f">E97 to ar1perf_evf13_2ag=9o7> =>
a1"20549nt28
 of >9cular/hreplet28
15 new3ea9k add9752> =>
a1" 9"32a9!switches"+pr331param203o>>1231ine>3parameabl ||>= 77>1t+pids_timeoutaom itpid9ik_e< 0sr1perf_evf13_2ag=9o7> =>
a1"20549nef"20
*5>9ick()>135>ss="e*qr new3ea9k add9712> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"20549n href">rq9rr_RUaled. >tsisqr new3ea9k add97ler fr1perf_evf13_2ag=9o7> =>
a1"20549nioL12> =>9* 
/3>4ruptibleaqr new3ea9k add97k_next_naskol>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20549nline" nam9p. I 7st > 79f+*qr new3ea9k add979_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_e= = 77>1t+fin _process_by_pids_timeoutaom itfin _process_by_pidsnr1g= 77>1t+pids_timeoutaom itpid9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20549/3>4rupted9 0achshrepleteds of drivp9e The980_next_naskol= 77>1t+retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1SRCH3DULE_TIMEOUTss1SRCH9ik_sr1perf_evf13_2ag=9o7> =>
a1"20549/re3="kere9pt_ena ac()r522>k!faacclv9a13b"9812> =>
a1" 9"32a9!switches"+pr331ps_timeoutaom itp9ik_)r1perf_evf13_2ag=9o7> =>
a1"20549/sches cl"9axssr9o71_pcorenaxr1g=t>
9d4ssr98219ot3stati7at>>>140
goto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20549/2" id5">p9"203o>>132lin>32/5ode=loa9_updp981t+cnnruptibrq >1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331se915ity_s74o_gomru*    crsss*>122ass="nare915ity_s74o_gomru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20549tu*is/part9k_le97sERESTARTSYSr1g=t>
9d4ssr9852> =>
a1" 9"32a9t>
id4ss3197erdretqs_sss*>122ass="naretqs_snr1s13a 32his cl"+asr1pre33evf>331r 9tef"20
*5>9utaom its/ru*    cr1g= he9namti9812> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20549/ href">rq98,
a href="+20KERN_Et0ck 9r1g=;98ler fr1perf_evf13_2ag=9o7> =>
a1"20549nioL12> =>9/er5erru32  c>32/ef="+>rq9/a> *98k_next_naskol>>1 t9i1_rest>
lp203o>>1231ine>3lpsnr1.>>1 t9i1_rest>
so7> _prioritysss*>122ass="naru*  _prioritysnr1e=vswitches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rt_prioritysss*>122ass="nast_prioritysnr1sr1perf_evf13_2ag=9o7> =>
a1"20549/line" nam928
_
/3>4ruptible15#Lt he9namti989_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20549135>ss="li9e" namtio32dd >328switche9"+val9912> =>
a1" 9"t>>>140
323lerd*ad/32s* 91re3="kere9pt_ena ac()r5le77led>from9its/r991_next_naskol>cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r 91sches cl"98
 (w/(to,
/3rcc20r7d_rq_96f">E99 to aqr rfr-queu8 pre3162erddddddddd* T/numb0r of jiffies left91 (at leas9cular/hreplet28
15 new3ea9k add99re 205cka andonc_cdsc3253erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r 91plet28
 o9val
p in jiffiesqr new3ea9k add994_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331copy_to7users_timeoutaom itcopy_to7usersnr1g= 77>1t+param203o>>1231ine>3parameablt 7naref"2">>1 t9i1_relp203o>>1231ine>3lpsnr1t sizeofg15#L9>rq>20
a hrparam203o>>1231ine>3parameabls) ?h-q
a1" 9"t>
id4s1FAULT3DULE_TIMEOUTss1FAULT9ik_e: 0sr1perf_evf13_2ag=9o7> =>
a1"205491u*is/part9mpty hre74o"do aqr new3ea9k add990n_u>20
a559_RUaled o>/fo>/aqr new3ea9k add9912> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"205491e"32ag >39t isrin jiffies.qr new3ea9k add99ler fr1perf_evf13_2ag=9o7> =>
a1"205491ioL12> =>9ick()>135>ss="+*qr new3ea9k add9982> =>>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_:r1perf_evf13_2ag=9o7> =>
a1"205491line" nam9 0achs2imed out,qr new3ea9k add999_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"205403ilertime403ilehs2imed out,qr new3e403il>403i2> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretqs_sss*>122ass="naretqs_snr1sr1/pre>
122adout,qrtim84/cf/920a3cb54e7cbbee3d95c51ca13bf543f5ee_3/403il>1perf_evf13_2ag=9o7> =>
a1"2054031lertime403t_ena ac()r5le77led>fro403t_>40312> =L12> =>
a1" 9"t>3324erd*ad/33nam4032lertime403
 (w/(to,
/3rcc20r7d_rq403
 >40312> =>
a1" 9"t>>>140
3252erd*ad/32it4033lertime403ular/hreplet28
15 new3e403ul>403re 20longvswitches"+pr331su*  _somaffinitysss*>122ass="naru*  _somaffinitysnr1g= 77>1t+pid_es_timeoutaom itpid_e2> =>= 77>1t+pids_timeoutaom itpid9ik_94const"hreplet28
_kileable961cpumick203o>>1231ine>3cpumickeable15#L9>rq>20
a hrin_mick203o>>1231ine>3in_micksnr1s13a 32his cl"+asr1pre33evf>331r4034lertime403al
p in jiffiesqr new3e403al>4034_nex>
a1" 9"t>
id4sp3304erd*ad/33db*4035lertime403pty hre74o"do aqr new3e403pt>4035_next_naskol>>1 t9i1_rest>
cpumick_var_es_timeoutaom itcpumick_var_e2> =>= 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =t = 77>1t+new_mick203o>>1231ine>3new_micksnr1sr1perf_evf13_2ag=9o7> =>
a1"2054036lertime403RUaled o>/fo>/aqr new3e403RU>40312> =>
a1" 9"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054037lertime403 isrin jiffies.qr new3e403 i>403719ot3stati7a3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"2054038lertime403ck()>135>ss="+*qr new3e403ck>403k_nex12> =>
a1" 9"t>3324erd*ad/33nam4039lertime4030achs2imed out,qr new3e4030a>4039_next_naskol>>1 t9i1_rest>
gomeil out_5pussss*>122ass="nagomeil out_5pussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"205401ilertime40:122ass="namte_*qr new3e40:12>40:1_next_naskol>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20540:1lertime40>5#L1 (kileablec20r7d_rq40>5#>40:12> =>
a1" 9"t>>>140
3271erd*ad/32" 40:2lertime40cular/hreplet28
15 new3e40cul>40:22> =>
a1" 9"t>
id4sp32s1erdps_timeoutaom itp9ik_e= = 77>1t+fin _process_by_pids_timeoutaom itfin _process_by_pidsnr1g= 77>1t+pids_timeoutaom itpid9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20540:3lertime404">>1 twc9activ915 new3e404">>40:12> =>
a1" 9"32a9!switches"+pr331ps_timeoutaom itp9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*40:4lertime40"5#L1. >tshrefb715 new3e40"5#>40:419ot3stati7a> *
a h,>>1 t9i1_rest>
rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054015lertime40y >>kilerr_RUals of driv40y >>40:52> =>
a1" 9"t>>>140
>>1 t9i1_rest>
put_il out_5pussss*>122ass="naput_il out_5pussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054016lertime40ick()>135>ss="e*qr new3e40ick>40:12> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1SRCH3DULE_TIMEOUTss1SRCH9ik_sr1perf_evf13_2ag=9o7> =>
a1"20540:7lertime40 0achshrepleteds of driv40 0a>40:719ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4018lertime40ck()>135>ss="+*>k!faaccl40ck(>40:k_nex12> =>
a1" 9"t>3324erd*ad/33nam4019lertime40axssr9o71_pcorenaxr1g=t>40axs>40:9_next_naskol>>4d*ad/ Furto3o32
5erd*(PrevL14 p gosng awayd*ad/33evf13a 32his cl"+asr1pre33evf>331r402ilertime403b">TAIN33olo>331r9o77lo403b">403b_next_naskol>>1 t9i1_rest>
gomee74o_hreples_timeoutaom itgomee74o_hreplesnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054031lertime40renaTASK_KILLABLE15#Lt h40ren>4031_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054022lertime40k_le97sERESTARTSYSr1g=t>40k_l>40312> =>
a1" 9"t>>>140
3252erd*ad/32it4023lertime40utaom its/ru*    cr1g= h40uta>40312> =>
a1" 9"32a9!switches"+pr331alloc_cpumick_var203o>>1231ine>3alloc_cpumick_varsnr1g7naref"2">>1 t9i1_recpus_allowe2nr_switches"+pr5pus_allowe22> =t = 77>1t+GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3eabls) >
a1" 9"t>
id4sp3304erd*ad/33db*4024lertime402>140
93t4 <97KERN_Et0ck402>1>403419ot3stati7a> *
a h,>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1NOMEM3DULE_TIMEOUTss1NOMEM9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054025lertime40"2056>>133nam>33p209612940"20>40352> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_put_hick203o>>1231ine>3out_put_hick9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054026lertime402053ula_d322nr>322829" c40205>403619ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4027lertime40a129ck_le97sted>froe28
h40a12>403719ot3stati7a32a9!switches"+pr331alloc_cpumick_var203o>>1231ine>3alloc_cpumick_varsnr1g7naref"2">>1 t9i1_renew_mick203o>>1231ine>3new_micksnr1t = 77>1t+GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3eabls) >
a1" 9"t>
id4sp3304erd*ad/33db*4028lertime401294>7>
aq_76rtamtr1g=t>40129>403k_next_naskolt>>>140
= 77>1t+retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1NOMEM3DULE_TIMEOUTss1NOMEM9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054029lertime40namtioL132all>322 remolo40nam>40312> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_fret_5pus_allowe2nr_switches"+prout_fret_5pus_allowe29ik_sr1perf_evf13_2ag=9o7> =>
a1"205403ilertime40aq_76mighA_dleep20"19t h40aq_>40aq19ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4031lertime40h0"1nelkw32s* >323 >128h40h0">40a1_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1PERM3DULE_TIMEOUTss1PERM9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054032lertime40asr1perf_evf13_2ask_et h40asr>40a219ot3stati7a32a9!switches"+pr331c2eck_sk_e_owners_timeoutaom itc2eck_sk_e_ownersnr1g= 77>1t+ps_timeoutaom itp9ik_) 7nare7nare !switches"+pr331ns_9ap31le203o>>1231ine>3ns_9ap31lesnr1g= 77>1t+e74o_user_nssss*>122ass="nae74o_user_nssnr1g= 77>1t+ps_timeoutaom itp9ik_)t = 77>1t+CAP_SYS_NICEs_timeoutaom itCAP_SYS_NICEeabls)r1perf_evf13_2ag=9o7> =>
a1"2054033lertime40294>7>
aq_76rtamtr1g=t h40294>40a32> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20540a4lertime40asr1perf_evf13_2ask_et h40asr>40a to ar1perf_evf13_2ag=9o7> =>
a1"20540a5lertime40its/ru*    cimeoutr1g= h40its>40a5_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331se915ity_s74o_somru*    crsss*>122ass="nare915ity_s74o_somru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054036lertime400shre3=732ss=>323witch>r400sh>40a62> =>
a1" 9"32a9t>
id4ss3197erdretqs_sss*>122ass="naretqs_snr1s13a 32his cl"+asr1pre33evf>331r40a7lertime40lvea13b">32LIN>323Thenma40lve>40a72> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20540a8lertime403>5 3324erd*ad/33nam4039lertime40let28
 of >>5#L17led>fro40let>40a9_next_naskol>>1 t9i1_rest>
5pusomecpus_allowe2nr_switches"+pr5pusomecpus_allowe2snr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)sr1perf_evf13_2ag=9o7> =>
a1"205404ilertime40cular/hreplet28
15 new3e40cul>40cu_next_naskol>>1 t9i1_rest>
cpumick_an2nr_switches"+pr5pumick_an2snr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1t = 77>1t+in_mick203o>>1231ine>3in_micksnr1t = 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)sr1perf_evf13_2ag=9o7> =>
a1"2054041lertime40mpty hre74o"do aqr new3e40mpt>40c12> =>>1 t9i1_rest>
again203o>>1231ine>3again9ik_:r1perf_evf13_2ag=9o7> =>
a1"20540c2lertime40"5#L1. >tsisrNOTqr new3e40"5#>40c22> =>
a1" 9"t>
id4sp32s1erdretqs_sss*>122ass="naretqs_snr1 evswitches"+pr331semecpus_allowe2_ptrsss*>122ass="naremecpus_allowe2_ptrsnr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054043lertime40aris/RU cimeoutaqr new3e40ari>40c1t+cnnruptibrq 
qr new3e40est>40c4_next_naskol32a9!switches"+pr331retqs_sss*>122ass="naretqs_snr1s >
a1" 9"t>
id4sp3304erd*ad/33db*4045lertime40())twith"1imeoutr1 new3e40())>40c52> =>
a1" 9"t>>>140
>>1 t9i1_rest>
5pusomecpus_allowe2nr_switches"+pr5pusomecpus_allowe2snr1g= 77>1t+ps_timeoutaom itp9ik_t = 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)sr1perf_evf13_2ag=9o7> =>
a1"2054046lertime40 se0 hreplete()aqr new3e40 se>40c12> =>
a1" 9"t>>>140
32a9!switches"+pr3315pumick_subsomnr_switches"+pr5pumick_subsomsnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1t = 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)s >
a1" 9"t>
id4sp3304erd*ad/33db*4047lertime40>>140








tcka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r40c8lertime40axssr9o71_pcorenaxr1g=t>40axs>40c    ck12o32w>122ass="3238erddddddddddddddddddddddddd* We must have raced o at3a conc15#L14 cpusomd/33evf13a 32his cl"+asr1pre33evf>331r40c9lertime40 Pick up32ru*>324 remolo40 Pi>40c    ck12o32w>122ass="3239erddddddddddddddddddddddddd* update.oJust re1om t331r405ilertime40K_UNINTERRUPTIBLEsk_et h40K_U>40K_   ck12o32w>122ass="3239erddddddddddddddddddddddddd* cpusom's 5pus_allowe22>33evf13a 32his cl"+asr1pre33evf>331r4051lertime40725329" 32
p2>3251////>r40725>40KU4T
/3>4d*ad/ Furto3o33a1erddddddddddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4052lertime40it_fo>chreplet28
15#Lt h40it_>40K219ot3stati7at>>>140








twitches"+pr3315pumick_copynr_switches"+pr5pumick_copysnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1t = 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)sr1perf_evf13_2ag=9o7> =>
a1"2054053lertime40ck_next_n32itr>325()-5im40ck_>40K32> =>
a1" 9"t>>>140








goto >>1 t9i1_rest>
again203o>>1231ine>3again9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054054lertime40st possi acaole77led>fro40st >40K419ot3stati7a> *
a h,L12> =>
a1" 9"t>3324erd*ad/33nam4055lertime405#L1 (w/timeoutc20r7d_rq405#L>40K52> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33nam4056lertime40cular/hreplet28
15 new3e40cul>40K62> =>>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_:r1perf_evf13_2ag=9o7> =>
a1"20540K7lertime40val
p in jiffiesqr new3e40val>40K72> =>
a1" 9"t>
id4sp32s1erdfret_5pumick_var203o>>1231ine>3fret_5pumick_varsnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054058lertime40ick()>135>ss="+*qr new3e40ick>40K82> =>>1 t9i1_rest>
out_fret_5pus_allowe2nr_switches"+prout_fret_5pus_allowe29ik_:r1perf_evf13_2ag=9o7> =>
a1"20540K9lertime40_RUaled o>/fo>/aqr new3e40_RU>40K9_next_naskol>>1 t9i1_rest>
fret_5pumick_var203o>>1231ine>3fret_5pumick_varsnr1g= 77>1t+cpus_allowe2nr_switches"+pr5pus_allowe22> =)sr1perf_evf13_2ag=9o7> =>
a1"205406ilertime40ffies. >tsisrnod7led>fro40ffi>40ff2> =>>1 t9i1_rest>
out_put_hick203o>>1231ine>3out_put_hick9ik_:r1perf_evf13_2ag=9o7> =>
a1"2054061lertime407"
/3>4ruptibleaqr new3e407"
>40f1_next_naskol>>1 t9i1_rest>
put_hick_hreples_timeoutaom itput_hick_hreplesnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054062lertime40" nr_switches"+*15 new3e40" n>40f22> =>
a1" 9"t>
id4sp32s1erdput_il out_5pussss*>122ass="naput_il out_5pussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054063lertime40 1, o>/numb0r of15 new3e40 1,>40f32> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20540f4lertime40tcachshrepleteds of driv40tca>40f419otL12> =>
a1" 9"t>3324erd*ad/33nam4065lertime40pty hre74o"do a>k!faaccl40pty>40f0n_u>20
a55froe28
h40a12>40f62> =static42nrl>>1 t9i1_rest>
gomeuser_5pu_mick203o>>1231ine>3gomeuser_5pu_micksnr1gunsigne2 longvswitches"+pr331_7users_timeoutaom it_7usereable15#L9>rq>20
a hruser_mick_ptrsss*>122ass="nauser_mick_ptrsnr1t unsigne2 5#L9>rq>20
a hrlen203o>>1231ine>3lensnr1t20
a5540f72> =>
a1" 9"t>>>140













hreplet28
_kileable961cpumick203o>>1231ine>3cpumickeable15#L9>rq>20
a hrnew_mick203o>>1231ine>3new_micksnr1)20
a55>12832 (
>326r s20lo400
6>40f82> =>
a1" 9"t>
id4sp3304erd*ad/33db*4069lertime40K_UNINTERRUPTIBLEsk_et h40K_U>40f9_next_naskol32a9t>
id4ss3197erdlen203o>>1231ine>3lensnr1e< switches"+pr3315pumick_size203o>>1231ine>35pumick_sizesnr1g))20
a55
a1" 932>tc>326>>128>r40=>
>40=>2> =>
a1" 9"t>>>140
>>1 t9i1_rest>
5pumick_clear203o>>1231ine>35pumick_clearsnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054071lertime40replet28
_timeout15#Lt h40rep>40=1_next_naskolelsel32a9t>
id4ss3197erdlen203o>>1231ine>3lensnr1e> switches"+pr3315pumick_size203o>>1231ine>35pumick_sizesnr1g))20
a553281st-ph40ine>40=219ot3stati7at>>>140
t>
id4ss3197erdlen203o>>1231ine>3lensnr1eevswitches"+pr331cpumick_size203o>>1231ine>35pumick_sizesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054073lertime40">>1 twc9actile77led>fro40">>>40=1t+cnnruptibrq >5#L1 (w/
/3rc20r7d_rq40 >>>40=42> =>
a1" 9"ongsl2hq
a1" 9"t>
id4scopy_from7users_timeoutaom itcopy_from7usersnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1t = 77>1t+user_mick_ptrsss*>122ass="nauser_mick_ptrsnr1t t>
id4ss3197erdlen203o>>1231ine>3lensnr1) ?h-q
a1" 9"t>
id4s1FAULT3DULE_TIMEOUTss1FAULT9ik_e: 0sr1perf_evf13_2ag=9o7> =>
a1"20540=5lertime40cular/hreplet28
15 new3e40cul>40=519otL12> =>
a1" 9"t>3324erd*ad/33nam4076lertime40ick()>135>ss="e*qr new3e40ick>40=6t+cnnruptibrq tsisqr new3e40rr_>40=ler func1f13>135>ss="3237er/**d/33evf13a 32his cl"+asr1pre33evf>331r40=8lertime40* 
/3>4ruptibleaqr new3e40* 
>40=    ck12o32w>122ass="3238erd*osys7su*  _somaffinity - set t331r40=9lertime40p. I 7st > 79f+*qr new3e40p. >40=    ck12o32w>122ass="3239erd*a@pid:rpid ofre331r408ilertime40 0achshrepleteds of driv40 0a>40 0   ck12o32w>122ass="3239erd*a@len: length in bytes ofre331r4081lertime40pt_ena ac()r522>k!faaccl40pt_>40 U4T
/3>4d*ad/ Furto3o33a1erd*a@user_mick_ptr: user->4dce po2nrer to t331r4082lertime40axssr9o71_pcorenaxr1g=t>40axs>40  to aqr rfr-queu8 pre3162erd*ad/33evf13a 32his cl"+asr1pre33evf>331r40 3lertime40"203o>>132lin>32/5ode=lo40"20>40 3_nex>>1 t9i1_rest>
SYSCALL_DEFINE3sss*>122ass="naSYSCALL_DEFINE3snr1g= 77>1t+su*  _somaffinitysss*>122ass="naru*  _somaffinitysnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_94unsigne2 2nrt = 77>1t+len203o>>1231ine>3lensnr1t20
a5540 419ot3stati7a> *
a h,unsigne2 longvswitches"+pr331_7users_timeoutaom it_7usereable1t = 77>1t+user_mick_ptrsss*>122ass="nauser_mick_ptrsnr1)20
a5540k_l>40 52> =>
a1" 9"t>
id4sp3304erd*ad/33db*40 6lertime40utaom its/ru*    cr1g= h40uta>40 12> =>
a1" 9"switches"+pr331cpumick_var_es_timeoutaom itcpumick_var_e2> =>= 77>1t+new_mick203o>>1231ine>3new_micksnr1sr1perf_evf13_2ag=9o7> =>
a1"2054087lertime408,
a href="+20KERN_Et0ck408,
>40 719ot3stati7a3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"2054088lertime40/er5erru32  c>32/ef="+>r40/er>40 k_nex12> =>
a1" 9"t>3324erd*ad/33nam4089lertime4028
_
/3>4ruptible15#Lt h4028
>40 9_next_naskol32a9!switches"+pr331alloc_cpumick_var203o>>1231ine>3alloc_cpumick_varsnr1g7naref"2">>1 t9i1_renew_mick203o>>1231ine>3new_micksnr1t = 77>1t+GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3eabls)12> =>
a1" 9"t>3324erd*ad/33nam409ilertime40e" namtio32dd >328switch40e" >40e"19ot3stati7a> *
a h,ongsl2h-q
a1" 9"t>
id4s1NOMEM3DULE_TIMEOUTss1NOMEM9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054091lertime40pt_ena ac()r5le77led>fro40pt_>40e12> =>
a1" 9"t>>>140
3271erd*ad/32" 4092lertime408
 (w/(to,
/3rcc20r7d_rq408
 >40e22> =>
a1" 9"t>
id4sp32s1erdretqs_sss*>122ass="naretqs_snr1 evswitches"+pr331gomeuser_5pu_mick203o>>1231ine>3gomeuser_5pu_micksnr1g= 77>1t+user_mick_ptrsss*>122ass="nauser_mick_ptrsnr1t t>
id4ss3197erdlen203o>>1231ine>3lensnr1t = 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054093lertime40cular/hreplet28
15 new3e40cul>40e12> =>
a1" 9"32a9t>
id4ss3197erdretqs_sss*>122ass="naretqs_snr1 e= 0sr1perf_evf13_2ag=9o7> =>
a1"20540e4lertime40val
p in jiffiesqr new3e40val>40e419ot3stati7a> *
a h,>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev= 77>1t+su*  _somaffinitysss*>122ass="naru*  _somaffinitysnr1g= 77>1t+pids_timeoutaom itpid9ik_94= 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054095lertime40mpty hre74o"do aqr new3e40mpt>40e5_next_naskol>>1 t9i1_rest>
fret_5pumick_var203o>>1231ine>3fret_5pumick_varsnr1g= 77>1t+new_mick203o>>1231ine>3new_micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054096lertime40_RUaled o>/fo>/aqr new3e40_RU>40e12> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"20540e7lertime40t isrin jiffies.qr new3e40t i>40e72> =L12> =>
a1" 9"t>3324erd*ad/33nam40e8lertime40ick()>135>ss="+*qr new3e40ick>40ek_nex12> =>
a1" 9"t>3324erd*ad/33nam4099lertime40 0achs2imed out,qr new3e40 0a>40e9_nexlongvswitches"+pr331su*  _gomaffinitysss*>122ass="naru*  _gomaffinitysnr1g= 77>1t+pid_es_timeoutaom itpid_e2> =>= 77>1t+pids_timeoutaom itpid9ik_94hreplet28
_kileable961cpumick203o>>1231ine>3cpumickeable15#L9>rq>20
a hrmick203o>>1231ine>3micksnr1)20
a5541002> =>
a1" 9"t>
id4sp3304erd*ad/33db*4101lertime413t_ena ac()r5le77led>fro413t_>4101_next_naskolhreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054132lertime413
 (w/(to,
/3rcc20r7d_rq413
 >41022> =>
a1" 9"unsigne2 longvswitches"+pr331flagssss*>122ass="naflags9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054133lertime413ular/hreplet28
15 new3e413ul>41012> =>
a1" 9"3nr_switches"+pr331retqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"2054104lertime413al
p in jiffiesqr new3e413al>410 to ar1perf_evf13_2ag=9o7> =>
a1"2054135lertime413pty hre74o"do aqr new3e413pt>4135_next_naskol>>1 t9i1_rest>
gomeil out_5pussss*>122ass="nagomeil out_5pussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054136lertime413RUaled o>/fo>/aqr new3e413RU>41012> =>
a1" 9"switches"+pr331rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054137lertime413 isrin jiffies.qr new3e413 i>410ler fr1perf_evf13_2ag=9o7> =>
a1"2054108lertime413ck()>135>ss="+*qr new3e413ck>410k_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 ev-q
a1" 9"t>
id4s1SRCH3DULE_TIMEOUTss1SRCH9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054109lertime4130achs2imed out,qr new3e4130a>4139_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_e= = 77>1t+fin _process_by_pids_timeoutaom itfin _process_by_pidsnr1g= 77>1t+pids_timeoutaom itpid9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205411ilertime41:122ass="namte_*qr new3e41:12>41:1_next_naskol32a9!switches"+pr331ps_timeoutaom itp9ik_)r1perf_evf13_2ag=9o7> =>
a1"20541:1lertime41>5#L1 (kileablec20r7d_rq41>5#>4111_next_naskolllllllllgoto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20541:2lertime41cular/hreplet28
15 new3e41cul>41112> =>
a1" 9"t>>>140
3252erd*ad/32it41:3lertime414">>1 twc9activ915 new3e414">>4113_next_naskol>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1 evswitches"+pr331se915ity_s74o_gomru*    crsss*>122ass="nare915ity_s74o_gomru*    crsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054114lertime41"5#L1. >tshrefb715 new3e41"5#>4114_next_naskol32a9>>1 t9i1_rest>
retqs_sss*>122ass="naretqs_snr1)r1perf_evf13_2ag=9o7> =>
a1"20541:5lertime41y >>kilerr_RUals of driv41y >>41:52> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_sr1perf_evf13_2ag=9o7> =>
a1"20541:6lertime41ick()>135>ss="e*qr new3e41ick>4116t+cnnruptibrq 41172> =>
a1" 9"t>
id4sp32s1erdraw_spin_r1g=_irqsave203o>>1231ine>3raw_spin_r1g=_irqsavesnr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
pi_r1g=9o734829" cla73pi_r1g=9ik_94= 77>1t+flagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054118lertime41ck()>135>ss="+*>k!faaccl41ck(>411k_next_naskol>>1 t9i1_rest>
cpumick_an2nr_switches"+pr5pumick_an2snr1g= 77>1t+mick203o>>1231ine>3micksnr1t 7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
cpus_allowe2nr_switches"+pr5pus_allowe22> =t = 77>1t+5pu_il out_mick203o>>1231ine>3cpu_il out_mick9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054119lertime41axssr9o71_pcorenaxr1g=t>41axs>4119_next_naskol>>1 t9i1_rest>
raw_spin_t>
id4_irqrest
a1203o>>1231ine>3raw_spin_t>
id4_irqrest
a1snr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
pi_r1g=9o734829" cla73pi_r1g=9ik_94= 77>1t+flagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205412ilertime413b">TAIN33olo>331r9o77lo413b">41212> =>
a1" 9"t>>>140
323lerd*ad/32s*4121lertime41renaTASK_KILLABLE15#Lt h41ren>41212> =>>1 t9i1_rest>
out_t>
id4203o>>1231ine>3out_t>
id49ik_:r1perf_evf13_2ag=9o7> =>
a1"2054122lertime41k_le97sERESTARTSYSr1g=t>41k_l>41222> =>
a1" 9"t>
id4sp32s1erdrcu_read_t>
id4203o>>1231ine>3rcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054123lertime41utaom its/ru*    cr1g= h41uta>4123_next_naskol>>1 t9i1_rest>
put_il out_5pussss*>122ass="naput_il out_5pussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054124lertime412>140
93t4 <97KERN_Et0ck412>1>412 to ar1perf_evf13_2ag=9o7> =>
a1"2054125lertime41"2056>>133nam>33p209612941"20>41352> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretqs_sss*>122ass="naretqs_snr1sr1perf_evf13_2ag=9o7> =>
a1"2054126lertime412053ula_d322nr>322829" c41205>413619otL12> =>
a1" 9"t>3324erd*ad/33nam4127lertime41a129ck_le97sted>froe28
h41a12>412ler fr1perf_evf13_2ag=9o7> =>
a1"2054128lertime411294>7>
aq_76rtamtr1g=t>41129>412    ck12o32w>122ass="3238er/**d/33evf13a 32his cl"+asr1pre33evf>331r4129lertime41namtioL132all>322 remolo41nam>412    ck12o32w>122ass="3239erd*asys7su*  _gomaffinity - get t331r413ilertime41aq_76mighA_dleep20"19t h41aq_>4130   ck12o32w>122ass="3239erd*a@pid:rpid ofre331r4131lertime41h0"1nelkw32s* >323 >128h41h0">413U4T
/3>4d*ad/ Furto3o33a1erd*a@len: length in bytes ofre331r4132lertime41asr1perf_evf13_2ask_et h41asr>413 to aqr rfr-queu8 pre3162erd*a@user_mick_ptr: user->4dce po2nrer to hold t331r4133lertime41294>7>
aq_76rtamtr1g=t h41294>413re 205cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r41a4lertime41asr1perf_evf13_2ask_et h41asr>41a to a>>1 t9i1_rest>
SYSCALL_DEFINE3sss*>122ass="naSYSCALL_DEFINE3snr1g= 77>1t+su*  _gomaffinitysss*>122ass="naru*  _gomaffinitysnr1t = 77>1t+pid_es_timeoutaom itpid_e2> =t = 77>1t+pids_timeoutaom itpid9ik_94unsigne2 2nrt = 77>1t+len203o>>1231ine>3lensnr1t20
a5541352> =>
a1" 9"t>>>140
unsigne2 longvswitches"+pr331_7users_timeoutaom it_7usereable1t = 77>1t+user_mick_ptrsss*>122ass="nauser_mick_ptrsnr1)20
a55323witch>r410sh>41a62> =>
a1" 9"t>
id4sp3304erd*ad/33db*41a7lertime41lvea13b">32LIN>323Thenma41lve>413719ot3stati7a3nr_switches"+pr331retsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"20541a8lertime413>5 >5#L17led>fro41let>41a9_nexr1perf_evf13_2ag=9o7> =>
a1"205414ilertime41cular/hreplet28
15 new3e41cul>4141_next_naskol32a99t>
id4ss3197erdlen203o>>1231ine>3lensnr1e*>= 77>1t+BITS_PER_BYTE203o>>1231ine>3BITS_PER_BYTEsnr1)e< switches"+pr331nr_5pu_idssss*>122ass="nanr_5pu_idssnr1)20
a554141_next_naskolllllllllongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"2054142lertime41"5#L1. >tsisrNOTqr new3e41"5#>414219ot3stati7a32a9t>
id4ss3197erdlen203o>>1231ine>3lensnr1e7nare (sizeofgunsigne2 long)-1s)12> =>
a1" 9"t>3324erd*ad/33nam4143lertime41aris/RU cimeoutaqr new3e41ari>41432> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1INVA33DULE_TIMEOUTss1INVA39ik_sr1perf_evf13_2ag=9o7> =>
a1"2054144lertime41est possi acao>
qr new3e41est>414 to ar1perf_evf13_2ag=9o7> =>
a1"2054145lertime41())twith"1imeoutr1 new3e41())>41c52> =>
a1" 9"32a9!switches"+pr331alloc_cpumick_var203o>>1231ine>3alloc_cpumick_varsnr1g7naref"2">>1 t9i1_remick203o>>1231ine>3micksnr1t f"2">>1 t9i1_reGFP_KERNE33DULE_TIMEOUTssGFP_KERNE3eabls)12> =>
a1" 9"t>3324erd*ad/33nam4146lertime41 se0 hreplete()aqr new3e41 se>41c12> =>
a1" 9"t>>>140
ongsl2h-q
a1" 9"t>
id4s1NOMEM3DULE_TIMEOUTss1NOMEM9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054147lertime4141axs>414k_next_naskol>>1 t9i1_rest>
retsss*>122ass="naretsnr1 ev= 77>1t+su*  _gomaffinitysss*>122ass="naru*  _gomaffinitysnr1g= 77>1t+pids_timeoutaom itpid9ik_94= 77>1t+mick203o>>1231ine>3micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054149lertime41 Pick up32ru*>324 remolo41 Pi>4149_next_naskol32a9t>
id4ss3197erdretsss*>122ass="naretsnr1 e= 0s >
a1" 9"t>
id4sp3304erd*ad/33db*415ilertime41K_UNINTERRUPTIBLEsk_et h41K_U>415>2> =>
a1" 9"t>>>140
>>1 t9i1_rest>
size_es_timeoutaom itsize_e2> =>= 77>1t+retlen203o>>1231ine>3retlensnr1 ev= 77>1t+min_es_timeoutaom itmin_esnr1g= 77>1t+size_es_timeoutaom itsize_e2> =t t>
id4ss3197erdlen203o>>1231ine>3lensnr1t = 77>1t+5pumick_size203o>>1231ine>35pumick_sizesnr1g))sr1perf_evf13_2ag=9o7> =>
a1"2054151lertime41725329" 32
p2>3251////>r41725>41512> =>
a1" 9"t>>>140
3271erd*ad/32" 4152lertime41it_fo>chreplet28
15#Lt h41it_>41K219ot3stati7at>>>140
32a9t>
id4ss3197erdcopy_to7users_timeoutaom itcopy_to7usersnr1g= 77>1t+user_mick_ptrsss*>122ass="nauser_mick_ptrsnr1t t>
id4ss3197erdmick203o>>1231ine>3micksnr1t f"2">>1 t9i1_reretlen203o>>1231ine>3retlensnr1s)12> =>
a1" 9"t>3324erd*ad/33nam4153lertime41ck_next_n32itr>325()-5im41ck_>41K32> =>
a1" 9"t>>>140








>>1 t9i1_rest>
retsss*>122ass="naretsnr1 ev-q
a1" 9"t>
id4s1FAULT3DULE_TIMEOUTss1FAULT9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054154lertime41st possi acaole77led>fro41st >41K419ot3stati7a> *
a h,elser1perf_evf13_2ag=9o7> =>
a1"2054155lertime415#L1 (w/timeoutc20r7d_rq415#L>41552> =>
a1" 9"t>>>140
t_naskol>>1 t9i1_rest>
retsss*>122ass="naretsnr1 ev= 77>1t+retlen203o>>1231ine>3retlensnr1sr1perf_evf13_2ag=9o7> =>
a1"2054156lertime41cular/hreplet28
15 new3e41cul>415619ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam41K7lertime41val
p in jiffiesqr new3e41val>41K72> =>
a1" 9"t>
id4sp32s1erdfret_5pumick_var203o>>1231ine>3fret_5pumick_varsnr1g= 77>1t+mick203o>>1231ine>3micksnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054158lertime41ick()>135>ss="+*qr new3e41ick>415k_nex12> =>
a1" 9"t>3324erd*ad/33nam41K9lertime41_RUaled o>/fo>/aqr new3e41_RU>41K9_next_naskolongsl2hq
a1" 9"t>
id4sretsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"205416ilertime41ffies. >tsisrnod7led>fro41ffi>41ff2> =L12> =>
a1" 9"t>3324erd*ad/33nam4161lertime417"
/3>4ruptibleaqr new3e417"
>41612> =>
a1" 9"t>>>140
3271erd*ad/32" 4162lertime41" nr_switches"+*15 new3e41" n>416 to aqr rfr-queu8 pre3162er/**d/33evf13a 32his cl"+asr1pre33evf>331r4163lertime41 1, o>/numb0r of15 new3e41 1,>416re 205cka andonc_cdsc3253erd*asys7su*  _yieldd- yielddt/numb0r of jiffies lef4164lertime41tcachshrepleteds of driv41tca>41f419ot5cka andonc_cdsc3253erd* (at least 1, o>/numb0r of jiffies lef4165lertime41pty hre74o"do a>k!faaccl41pty>41f0n_u>5cka andonc_cdsc3253erd*aT/numb0r of jiffies lef4166lertime41a129ck_le97sted>froe28
h41a12>41f62> =5cka andonc_cdsc3253erd*aot/numb0r of jiffies lef4167lertime41its/ru*    cimeoutr1g=th41its>416ler func1f13>135>ss="3237erd*ad/33evf13a 32his cl"+asr1pre33evf>331r41f8lertime410
6>>12832 (
>326r s20lo410
6>41682> =>>1 t9i1_rest>
SYSCALL_DEFINE0sss*>122ass="naSYSCALL_DEFINE0snr1g= 77>1t+su*  _yieldsss*>122ass="naru*  _yieldsnr1)20
a5541f9_nex>
a1" 9"t>
id4sp3304erd*ad/33db*417ilertime41=>
a1" 932>tc>326>>128>r41=>
>41=>2> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1eev= 77>1t+t =>
a1"2054171lertime41replet28
_timeout15#Lt h41rep>41712> =>
a1" 9"t>>>140
3271erd*ad/32" 4172lertime41ine97129432" c>3281st-ph41ine>41722> =>
a1" 9"t>
id4sp32s1erd271erstat_incsss*>122ass="naru*  stat_incsnr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_reyld_countsss*>122ass="nayld_countsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054173lertime41">>1 twc9actile77led>fro41">>>4173_next_naskol>>1 t9i1_rest>
515#L14s_timeoutaom itc15#L149ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
yield_hick203o>>1231ine>3yield_hicksnr1g= 77>1t+rqsss*>122ass="narqsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054174lertime41 >>5#L1 (w/
/3rc20r7d_rq41 >>>417 to ar1perf_evf13_2ag=9o7> =>
a1"20541=5lertime41cular/hreplet28
15 new3e41cul>4175_next_naskol>cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r4176lertime41ick()>135>ss="e*qr new3e41ick>41762> =5cka andonc_cdsc3253erddddddddd* Since we are gosng to calllru*    c() anyway,re331r4177lertime41rr_RUaled. >tsisqr new3e41rr_>41=ler func1f13>135>ss="3237erddddddddd* no nee2 to pretmpt or en31le 2nrerrupts:d/33evf13a 32his cl"+asr1pre33evf>331r4178lertime41* 
/3>4ruptibleaqr new3e41* 
>41=    ck12o32w>122ass="3238erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r41=9lertime41p. I 7st > 79f+*qr new3e41p. >4179_next_naskol>>1 t9i1_rest>
__release203o>>1231ine>3__releasesnr1g= 77>1t+rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"205418ilertime41 0achshrepleteds of driv41 0a>418u_next_naskol>>1 t9i1_rest>
spin_release203o>>1231ine>3spin_releasesnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1.>>1 t9i1_rest>
dep_maps_timeoutaom itdep_mapsnr1t 1t f"2">>1 t9i1_re_THIS_IP_203o>>1231ine>3_THIS_IP_snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054181lertime41pt_ena ac()r522>k!faaccl41pt_>4181_next_naskol>>1 t9i1_rest>
do_raw_spin_t>
id4s_timeoutaom itdo_raw_spin_t>
id4snr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054182lertime41axssr9o71_pcorenaxr1g=t>41axs>41822> =>
a1" 9"t>
id4sp32s1erd271er_pretmpt_en31le_no_re271ersss*>122ass="naru*  _pretmpt_en31le_no_re271ersnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20541 3lertime41"203o>>132lin>32/5ode=lo41"20>4181t+cnnruptibrq 41 419ot3stati7at>
id4sp32s1erd271erule203o>>1231ine>3271erulesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20541 5lertime41k_le97sERESTARTSYSr1g=t>41k_l>4180n_u>20
a5541812> =>
a1" 9"ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"2054187lertime418,
a href="+20KERN_Et0ck418,
>41872> =L12> =>
a1" 9"t>3324erd*ad/33nam4188lertime41/er5erru32  c>32/ef="+>r41/er>41 k_nex12> =>
a1" 9"t>3324erd*ad/33nam4189lertime4128
_
/3>4ruptible15#Lt h4128
>41 9_nexstatic4t>
id4sp32s1erdinptible3o>>1231ine>3inptib2> =>3nr_switches"+pr331should_re271ersss*>122ass="narhould_re271ersnr1gvoid)20
a55328switch41e" >41902> =>
a1" 9"t>
id4sp3304erd*ad/33db*4191lertime41pt_ena ac()r5le77led>fro41pt_>41912> =>
a1" 9"ongsl2hswitches"+pr331nee2_re271ersss*>122ass="nanee2_re271ersnr1g) 7nare7nare !g= 77>1t+pretmpt_countsss*>122ass="napretmpt_countsnr1g) 7narehswitches"+pr331PREEMPT_ACTIVE203o>>1231ine>3PREEMPT_ACTIVEsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054192lertime418
 (w/(to,
/3rcc20r7d_rq418
 >41e22> =L12> =>
a1" 9"t>3324erd*ad/33nam4193lertime41cular/hreplet28
15 new3e41cul>4191t+cnnruptibrq 41e419otstatic4voidl>>1 t9i1_rest>
__con2_re271ersss*>122ass="na__con2_re271ersnr1gvoid)20
a5541952> =>
a1" 9"t>
id4sp3304erd*ad/33db*4196lertime41_RUaled o>/fo>/aqr new3e41_RU>41912> =>
a1" 9"switches"+pr331ad _pretmpt_countsss*>122ass="naad _pretmpt_countsnr1g= 77>1t+PREEMPT_ACTIVE203o>>1231ine>3PREEMPT_ACTIVEsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054197lertime41t isrin jiffies.qr new3e41t i>41972> =>
a1" 9"t>
id4sp32s1erd__271erule203o>>1231ine>3__271erulesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20541e8lertime41ick()>135>ss="+*qr new3e41ick>419k_next_naskol>>1 t9i1_rest>
sub_pretmpt_countsss*>122ass="nasub_pretmpt_countsnr1g= 77>1t+PREEMPT_ACTIVE203o>>1231ine>3PREEMPT_ACTIVEsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054199lertime41 0achs2imed out,qr new3e41 0a>41e9_nexL12> =>
a1" 9"t>3324erd*ad/33nam423ilertime423ilehs2imed out,qr new3e423il>42012> =>
a1" 9"t>>>140
323lerd*ad/32s*4201lertime423t_ena ac()r5le77led>fro423t_>4201_nex3nr_switches"+pr331__271er203o>>1231ine>3__271er2> =>= 77>1t+_con2_re271ersss*>122ass="na_con2_re271ersnr1gvoid)20
a5542022> =>
a1" 9"t>
id4sp3304erd*ad/33db*4233lertime423ular/hreplet28
15 new3e423ul>42012> =>
a1" 9"32a9t>
id4ss3197erdshould_re271ersss*>122ass="narhould_re271ersnr1g)s >
a1" 9"t>
id4sp3304erd*ad/33db*4204lertime423al
p in jiffiesqr new3e423al>420419ot3stati7a> *
a h,>>1 t9i1_rest>
__con2_re271ersss*>122ass="na__con2_re271ersnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054235lertime423pty hre74o"do aqr new3e423pt>42052> =>
a1" 9"t>>>140
ongsl2h1sr1perf_evf13_2ag=9o7> =>
a1"2054236lertime423RUaled o>/fo>/aqr new3e423RU>420619ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4237lertime423 isrin jiffies.qr new3e423 i>42072> =>
a1" 9"ongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"2054208lertime423ck()>135>ss="+*qr new3e423ck>420k_nexL12> =>
a1" 9"t>3324erd*ad/33nam4239lertime4230achs2imed out,qr new3e4230a>4239_nexq
a1" 9"t>
id4s1XPORT_SYMBO33DULE_TIMEOUTss1XPORT_SYMBO3snr1g= 77>1t+_con2_re271ersss*>122ass="na_con2_re271ersnr1)sr1perf_evf13_2ag=9o7> =>
a1"205421ilertime42:122ass="namte_*qr new3e42:12>42112> =>
a1" 9"t>>>140
323lerd*ad/32s*42:1lertime42>5#L1 (kileablec20r7d_rq42>5#>421U4T
/3>4d*ad/ Furto3o33a1erd*d/33evf13a 32his cl"+asr1pre33evf>331r42:2lertime42cular/hreplet28
15 new3e42cul>421 to aqr rfr-queu8 pre3162erd*a__con2_re271er_r1g=g) -"32aa re271erule 2s pending, dropdt331r42:3lertime424">>1 twc9activ915 new3e424">>421re 205cka andonc_cdsc3253erd*acalllru*    c, and on ongsl2hreacquiredt/numb0r of jiffies lef4214lertime42"5#L1. >tshrefb715 new3e42"5#>421419ot5cka andonc_cdsc3253erd* (at least 1, o>/numb0r of jiffies lef42:5lertime42y >>kilerr_RUals of driv42y >>4210n_u>5cka andonc_cdsc3253erd*aT/numb0r of jiffies lef42:6lertime42ick()>135>ss="e*qr new3e42ick>42162> =5cka andonc_cdsc3253erd*aoperations /numb0r of jiffies lef42:7lertime42 0achshrepleteds of driv42 0a>421ler func1f13>135>ss="3237erd* spin_t>
id4(), once by hand)e (at least 1, o>/numb0r of jiffies lef4218lertime42ck()>135>ss="+*>k!faaccl42ck(>421    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4219lertime42axssr9o71_pcorenaxr1g=t>42axs>4219_nex3nr_switches"+pr331__con2_re271er_r1g=sss*>122ass="na__con2_re271er_r1g=snr1g>>1 t9i1_rest>
spin
id4_tsss*>122ass="naspin
id4_tsnr1e*28
_kileable961r1g=9o734829" cla73r1g=snr1)13a 32his cl"+asr1pre33evf>331r422ilertime423b">TAIN33olo>331r9o77lo423b">42202> =>
a1" 9"t>
id4sp3304erd*ad/33db*4221lertime42renaTASK_KILLABLE15#Lt h42ren>42212> =>
a1" 9"3nr_switches"+pr331re271ersss*>122ass="nare271ersnr1 ev= 77>1t+should_re271ersss*>122ass="narhould_re271ersnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054222lertime42k_le97sERESTARTSYSr1g=t>42k_l>42222> =>
a1" 9"3nr_switches"+pr331retsss*>122ass="naretsnr1 ev0sr1perf_evf13_2ag=9o7> =>
a1"2054223lertime42utaom its/ru*    cr1g= h42uta>4221t+cnnruptibrq 140
93t4 <97KERN_Et0ck422>1>422419ot3stati7at>
id4sp32s1erdr1g=dep_93tert_heldsss*>122ass="nar1g=dep_93tert_heldsnr1g>>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054225lertime42"2056>>133nam>33p209612942"20>4220n_u>20
a55322829" c42205>42262> =>
a1" 9"32a9t>
id4ss3197erdspin_nee2brea=9o734829" cla73spin_nee2brea=snr1g>>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1) ||_switches"+pr331re271ersss*>122ass="nare271ersnr1s >
a1" 9"t>
id4sp3304erd*ad/33db*4227lertime42a129ck_le97sted>froe28
h42a12>42272> =>
a1" 9"t>>>140
t>
id4ss3197erdspin_t>
id4s_timeoutaom itspin_t>
id4snr1g>>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054228lertime421294>7>
aq_76rtamtr1g=t>42129>42282> =>
a1" 9"t>>>140
32a9t>
id4ss3197erdre271ersss*>122ass="nare271ersnr1sr1perf_evf13_2ag=9o7> =>
a1"2054229lertime42namtioL132all>322 remolo42nam>42292> =>
a1" 9"t>>>140
> *
a h,>>1 t9i1_rest>
__con2_re271ersss*>122ass="na__con2_re271ersnr1g)sr1perf_evf13_2ag=9o7> =>
a1"205423ilertime42aq_76mighA_dleep20"19t h42aq_>423>2> =>
a1" 9"t>>>140
elser1perf_evf13_2ag=9o7> =>
a1"2054231lertime42h0"1nelkw32s* >323 >128h42h0">4231_next_naskolllllllll> *
a h,>>1 t9i1_rest>
5pu_relaxs_timeoutaom itcpu_relaxsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054232lertime42asr1perf_evf13_2ask_et h42asr>423219ot3stati7at>>>140
t>
id4ss3197erdretsss*>122ass="naretsnr1 ev1sr1perf_evf13_2ag=9o7> =>
a1"2054233lertime42294>7>
aq_76rtamtr1g=t h42294>42332> =>
a1" 9"t>>>140
t>
id4ss3197erdspin_
id4s_timeoutaom itspin_
id4snr1g>>1 t9i1_rest>
r1g=9o734829" cla73r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"20542a4lertime42asr1perf_evf13_2ask_et h42asr>423419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam42a5lertime42its/ru*    cimeoutr1g= h42its>42352> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"20542a6lertime420shre3=732ss=>323witch>r420sh>423619otL12> =>
a1" 9"t>3324erd*ad/33nam42a7lertime42lvea13b">32LIN>323Thenma42lve>423719otq
a1" 9"t>
id4s1XPORT_SYMBO33DULE_TIMEOUTss1XPORT_SYMBO3snr1g= 77>1t+__con2_re271er_r1g=sss*>122ass="na__con2_re271er_r1g=snr1)sr1perf_evf13_2ag=9o7> =>
a1"20542a8lertime423>5 3324erd*ad/33nam42a9lertime42let28
 of >>5#L17led>fro42let>4239_nex3nr_switches"+pr331__271er203o>>1231ine>3__271er2> =>= 77>1t+__con2_re271er_softirqsss*>122ass="na__con2_re271er_softirqsnr1gvoid)20
a5542402> =>
a1" 9"t>
id4sp3304erd*ad/33db*4241lertime42mpty hre74o"do aqr new3e42mpt>4241_next_naskol>>1 t9i1_rest>
BUG_ONsss*>122ass="naBUG_ONsnr1g!switches"+pr331in_softirqsss*>122ass="nain_softirqsnr1g)ssr1perf_evf13_2ag=9o7> =>
a1"2054242lertime42"5#L1. >tsisrNOTqr new3e42"5#>42412> =>
a1" 9"t>>>140
3252erd*ad/32it4243lertime42aris/RU cimeoutaqr new3e42ari>42412> =>
a1" 9"32a9t>
id4ss3197erdshould_re271ersss*>122ass="narhould_re271ersnr1g)s >
a1" 9"t>
id4sp3304erd*ad/33db*4244lertime42est possi acao>
qr new3e42est>424419ot3stati7a> *
a h,>>1 t9i1_rest>
r1gal_bh_en31le9o734829" cla73r1gal_bh_en31lesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054245lertime42())twith"1imeoutr1 new3e42())>42c52> =>
a1" 9"t>>>140
>>1 t9i1_rest>
__con2_re271ersss*>122ass="na__con2_re271ersnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054246lertime42 se0 hreplete()aqr new3e42 se>42c12> =>
a1" 9"t>>>140
>>1 t9i1_rest>
r1gal_bh_dis31le9o734829" cla73r1gal_bh_dis31lesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054247lertime42>>140
ongsl2h1sr1perf_evf13_2ag=9o7> =>
a1"20542c8lertime42axssr9o71_pcorenaxr1g=t>42axs>424k_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4249lertime42 Pick up32ru*>324 remolo42 Pi>4249_next_naskolongsl2h0sr1perf_evf13_2ag=9o7> =>
a1"205425ilertime42K_UNINTERRUPTIBLEsk_et h42K_U>425f2> =L12> =>
a1" 9"t>3324erd*ad/33nam4251lertime42725329" 32
p2>3251////>r42725>42512> =>>1 t9i1_rest>
1XPORT_SYMBO33DULE_TIMEOUTss1XPORT_SYMBO3snr1g= 77>1t+__con2_re271er_softirqsss*>122ass="na__con2_re271er_softirqsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054252lertime42it_fo>chreplet28
15#Lt h42it_>42512> =>
a1" 9"t>>>140
3252erd*ad/32it4253lertime42ck_next_n32itr>325()-5im42ck_>425re 205cka andonc_cdsc3253er/**d/33evf13a 32his cl"+asr1pre33evf>331r4254lertime42st possi acaole77led>fro42st >425419ot5cka andonc_cdsc3253erd* yieldd- yielddt/numb0r of jiffies lef4255lertime425#L1 (w/timeoutc20r7d_rq425#L>4250n_u>5cka andonc_cdsc3253erd* (at least 1, o>/numb0r of jiffies lef4256lertime42cular/hreplet28
15 new3e42cul>42562> =5cka andonc_cdsc3253erd*aDo not evar use t/numb0r of jiffies lef4257lertime42val
p in jiffiesqr new3e42val>425ler func1f13>135>ss="3237erd* (at least 1, o>/numb0r of jiffies lef4258lertime42ick()>135>ss="+*qr new3e42ick>425    ck12o32w>122ass="3238erd*oT/numb0r of jiffies lef4259lertime42_RUaled o>/fo>/aqr new3e42_RU>425    ck12o32w>122ass="3239erd*aeligi1le tick to run,r32aremovsng t1t brea=sd/33evf13a 32his cl"+asr1pre33evf>331r426ilertime42ffies. >tsisrnod7led>fro42ffi>4260   ck12o32w>122ass="3239erd*ait,r3ts already broke2e (at least 1, o>/numb0r of jiffies lef4261lertime427"
/3>4ruptibleaqr new3e427"
>426U4T
/3>4d*ad/ Furto3o33a1erd* (at least 1, o>/numb0r of jiffies lef4262lertime42" nr_switches"+*15 new3e42" n>426 to aqr rfr-queu8 pre3162erd*oTypical broke2 usage 2s:d/33evf13a 32his cl"+asr1pre33evf>331r4263lertime42 1, o>/numb0r of15 new3e42 1,>426re 205cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r4264lertime42tcachshrepleteds of driv42tca>42f419ot5cka andonc_cdsc3253erd* while (!evL14)d/33evf13a 32his cl"+asr1pre33evf>331r4265lertime42pty hre74o"do a>k!faaccl42pty>42f0n_u>5cka andonc_cdsc3253erd*aaaaaayield();d/33evf13a 32his cl"+asr1pre33evf>331r4266lertime42a129ck_le97sted>froe28
h42a12>42f62> =5cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r4267lertime42its/ru*    cimeoutr1g=th42its>426ler func1f13>135>ss="3237erd* whare one assumes that yield()awillllet 't331r4268lertime420
6>>12832 (
>326r s20lo420
6>426    ck12o32w>122ass="3238erd*omake evL14 true. Ifre331r4269lertime42K_UNINTERRUPTIBLEsk_et h42K_U>426    ck12o32w>122ass="3239erd*ahappe2e Nevar use yield()aasrarprogress guarantee!!d/33evf13a 32his cl"+asr1pre33evf>331r427ilertime42=>
a1" 932>tc>326>>128>r42=>
>4270   ck12o32w>122ass="3239erd*d/33evf13a 32his cl"+asr1pre33evf>331r4271lertime42replet28
_timeout15#Lt h42rep>427U4T
/3>4d*ad/ Furto3o33a1erd*aIfryou wa14 to use yield()ato wait for somet/numb0r of jiffies lef4272lertime42ine97129432" c>3281st-ph42ine>427 to aqr rfr-queu8 pre3162erd*oIfryou wa14 to use yield()ato be 'nice' for ot/numb0r of jiffies lef4273lertime42">>1 twc9actile77led>fro42">>>427re 205cka andonc_cdsc3253erd*aIfryou still wa14 to use yield(), do"not!d/33evf13a 32his cl"+asr1pre33evf>331r4274lertime42 >>5#L1 (w/
/3rc20r7d_rq42 >>>427419ot5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r42=5lertime42cular/hreplet28
15 new3e42cul>4275_nexvoidl>>1 t9i1_rest>
__271er203o>>1231ine>3__271er2> =>= 77>1t+yieldsss*>122ass="nayieldsnr1gvoid)20
a55135>ss="e*qr new3e42ick>42762> =>
a1" 9"t>
id4sp3304erd*ad/33db*4277lertime42rr_RUaled. >tsisqr new3e42rr_>42772> =>
a1" 9"t>
id4sp32s1erdset_515#L14_state203o>>1231ine>32et_515#L14_statesnr1g= 77>1t+TASK_RUNNING203o>>1231ine>3TASK_RUNNINGsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054278lertime42* 
/3>4ruptibleaqr new3e42* 
>427k_next_naskol>>1 t9i1_rest>
sys7su*  _yield203o>>1231ine>32ys7su*  _yieldsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20542=9lertime42p. I 7st > 79f+*qr new3e42p. >4279_nexL12> =>
a1" 9"t>3324erd*ad/33nam428ilertime42 0achshrepleteds of driv42 0a>42 0   ck>1 t9i1_rest>
1XPORT_SYMBO33DULE_TIMEOUTss1XPORT_SYMBO3snr1g= 77>1t+yieldsss*>122ass="nayieldsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054281lertime42pt_ena ac()r522>k!faaccl42pt_>42812> =>
a1" 9"t>>>140
3271erd*ad/32" 4282lertime42axssr9o71_pcorenaxr1g=t>42axs>42  to aqr rfr-queu8 pre3162er/**d/33evf13a 32his cl"+asr1pre33evf>331r42 3lertime42"203o>>132lin>32/5ode=lo42"20>428re 205cka andonc_cdsc3253erd*ayield_hod- yielddt331r42 4lertime42ASK_INTERRUPTIBLEsk_et h42ASK>428419ot5cka andonc_cdsc3253erd* your thread group, or accelerate that thread towarddt331r42 5lertime42k_le97sERESTARTSYSr1g=t>42k_l>4280n_u>5cka andonc_cdsc3253erd*aprocessor it's o2e (at least 1, o>/numb0r of jiffies lef42 6lertime42utaom its/ru*    cr1g= h42uta>42862> =5cka andonc_cdsc3253erd*a@p: tirget ticksn33evf13a 32his cl"+asr1pre33evf>331r4287lertime428,
a href="+20KERN_Et0ck428,
>428ler func1f13>135>ss="3237erd* @pretmpt: what331r4288lertime42/er5erru32  c>32/ef="+>r42/er>428    ck12o32w>122ass="3238erd*sn33evf13a 32his cl"+asr1pre33evf>331r4289lertime4228
_
/3>4ruptible15#Lt h4228
>428    ck12o32w>122ass="3239erd*aIt's t331r429ilertime42e" namtio32dd >328switch42e" >4290   ck12o32w>122ass="3239erd*acan't go away on us before we can do"any preckse (at least 1, o>/numb0r of jiffies lef4291lertime42pt_ena ac()r5le77led>fro42pt_>429U4T
/3>4d*ad/ Furto3o33a1erd* (at least 1, o>/numb0r of jiffies lef4292lertime428
 (w/(to,
/3rcc20r7d_rq428
 >429 to aqr rfr-queu8 pre3162erd*oRngsl2s truer32awe 2ndee2 boosre2 the tirget ticke (at least 1, o>/numb0r of jiffies lef4293lertime42cular/hreplet28
15 new3e42cul>429re 205cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r42e4lertime42val
p in jiffiesqr new3e42val>429 to a>>1 t9i1_rest>
boo_sss*>122ass="naboo_2> =>= 77>1t+__271er203o>>1231ine>3__271er2> =>= 77>1t+yield_hosss*>122ass="nayield_hosnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_t f"2">>1 t9i1_reboo_sss*>122ass="naboo_2> =>= 77>1t+pretmpts_timeoutaom itpretmptsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054295lertime42mpty hre74o"do aqr new3e42mpt>42952> =>
a1" 9"t>
id4sp3304erd*ad/33db*4296lertime42_RUaled o>/fo>/aqr new3e42_RU>42912> =>
a1" 9"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hr515#s_timeoutaom itc15#snr1 ev= 77>1t+515#L14s_timeoutaom itc15#L149ik_sr1perf_evf13_2ag=9o7> =>
a1"2054297lertime42t isrin jiffies.qr new3e42t i>42972> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1,e15#L9>rq>20
a hrp_rqsss*>122ass="nap_rq9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054298lertime42ick()>135>ss="+*qr new3e42ick>429k_next_naskolunsigne2 longvswitches"+pr331flagssss*>122ass="naflags9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054299lertime42 0achs2imed out,qr new3e42 0a>4299_next_naskol>>1 t9i1_rest>
boo_sss*>122ass="naboo_2> =>= 77>1t+yielder203o>>1231ine>3yieldersnr1 ev0sr1perf_evf13_2ag=9o7> =>
a1"205433ilertime433ilehs2imed out,qr new3e433il>43012> =>
a1" 9"t>>>140
323lerd*ad/32s*4301lertime433t_ena ac()r5le77led>fro433t_>4301_next_naskol>>1 t9i1_rest>
r1gal_irq_save203o>>1231ine>3r1gal_irq_savesnr1g= 77>1t+flagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054332lertime433
 (w/(to,
/3rcc20r7d_rq433
 >43022> =>
a1" 9"t>
id4sp32s1erdrqsss*>122ass="narqsnr1eev= 77>1t+t =>
a1"2054333lertime433ular/hreplet28
15 new3e433ul>4301t+cnnruptibrq 430 to a>>1 t9i1_rest>
again203o>>1231ine>3againto a:r1perf_evf13_2ag=9o7> =>
a1"2054335lertime433pty hre74o"do aqr new3e433pt>4335_next_naskol>>1 t9i1_rest>
p_rqsss*>122ass="nap_rq9ik_eev= 77>1t+t74o_rqs_timeoutaom its74o_rqsnr1g= 77>1t+ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054336lertime433RUaled o>/fo>/aqr new3e433RU>43012> =>
a1" 9"switches"+pr331dou1le_rq_r1g=9o734829" cla73dou1le_rq_r1g=snr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_rep_rqsss*>122ass="nap_rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054337lertime433 isrin jiffies.qr new3e433 i>43072> =>
a1" 9"while (= 77>1t+t74o_rqs_timeoutaom its74o_rqsnr1g= 77>1t+ps_timeoutaom itp9ik_) !ev= 77>1t+p_rqsss*>122ass="nap_rq9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*4308lertime433ck()>135>ss="+*qr new3e433ck>43082> =>
a1" 9"t>>>140
switches"+pr331dou1le_rq_t>
id4s_timeoutaom itdou1le_rq_t>
id4snr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_rep_rqsss*>122ass="nap_rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054339lertime4330achs2imed out,qr new3e4330a>43092> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
again203o>>1231ine>3againto asr1perf_evf13_2ag=9o7> =>
a1"205431ilertime43:122ass="namte_*qr new3e43:12>43:1_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam43:1lertime43>5#L1 (kileablec20r7d_rq43>5#>43112> =>
a1" 9"t>>>140
3271erd*ad/32" 43:2lertime43cular/hreplet28
15 new3e43cul>431219ot3stati7a32a9!switches"+pr331515#s_timeoutaom itc15#snr1ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
yield_ho_hick203o>>1231ine>3yield_ho_hicksnr1sr1perf_evf13_2ag=9o7> =>
a1"20543:3lertime434">>1 twc9activ915 new3e434">>43132> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outto asr1perf_evf13_2ag=9o7> =>
a1"2054314lertime43"5#L1. >tshrefb715 new3e43"5#>431 to ar1perf_evf13_2ag=9o7> =>
a1"20543:5lertime43y >>kilerr_RUals of driv43y >>43152> =>
a1" 9"32a9switches"+pr331515#s_timeoutaom itc15#snr1ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ !ev= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_sr1perf_evf13_2ag=9o7> =>
a1"20543:6lertime43ick()>135>ss="e*qr new3e43ick>43112> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outto asr1perf_evf13_2ag=9o7> =>
a1"2054317lertime43 0achshrepleteds of driv43 0a>431ler fr1perf_evf13_2ag=9o7> =>
a1"2054318lertime43ck()>135>ss="+*>k!faaccl43ck(>431k_next_naskol32a9switches"+pr331s74o_runnsngs_timeoutaom its74o_runnsngsnr1g= 77>1t+p_rqsss*>122ass="nap_rq9ik_t f"2">>1 t9i1_reps_timeoutaom itp9ik_) ||_switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rtate203o>>1231ine>32tatesnr1sr1perf_evf13_2ag=9o7> =>
a1"20543:9lertime43axssr9o71_pcorenaxr1g=t>43axs>43192> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outto asr1perf_evf13_2ag=9o7> =>
a1"205432ilertime433b">TAIN33olo>331r9o77lo433b">43212> =>
a1" 9"t>>>140
323lerd*ad/32s*4321lertime43renaTASK_KILLABLE15#Lt h43ren>4321_next_naskol>>1 t9i1_rest>
yielder203o>>1231ine>3yieldersnr1 evswitches"+pr331515#s_timeoutaom itc15#snr1ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
yield_ho_hick203o>>1231ine>3yield_ho_hicksnr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_reps_timeoutaom itp9ik_t f"2">>1 t9i1_repretmpts_timeoutaom itpretmptsnr1ssr1perf_evf13_2ag=9o7> =>
a1"2054322lertime43k_le97sERESTARTSYSr1g=t>43k_l>432219ot3stati7a32a9t>
id4ss3197erdyielder203o>>1231ine>3yieldersnr1) >
a1" 9"t>
id4sp3304erd*ad/33db*4323lertime43utaom its/ru*    cr1g= h43uta>43232> =>
a1" 9"t>>>140
t>
id4ss3197erds4erdstat_incsss*>122ass="naru*  stat_incsnr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_reyld_countsss*>122ass="nayld_countsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054324lertime432>140
93t4 <97KERN_Et0ck432>1>432419ot3stati7a> *
a h,>>4d*ad/ Furto3o33a1erd*d/33evf13a 32his cl"+asr1pre33evf>331r4325lertime43"2056>>133nam>33p209612943"20>4320n_u>5cka andonc_cdsc3253erddddddddddddddddd* Make p's CPU re271erule; pick_next_entity takes care ofd/33evf13a 32his cl"+asr1pre33evf>331r4326lertime432053ula_d322nr>322829" c43205>43262> =5cka andonc_cdsc3253erddddddddddddddddd* fai"+asse (at least 1, o>/numb0r of jiffies lef4327lertime43a129ck_le97sted>froe28
h43a12>432ler func1f13>135>ss="3237erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4328lertime431294>7>
aq_76rtamtr1g=t>43129>43282> =>
a1" 9"t>>>140
32a9t>
id4ss3197erdpretmpts_timeoutaom itpretmptsnr1 7nare7nare t>
id4sp32s1erdrqsss*>122ass="narqsnr1e!ev= 77>1t+p_rqsss*>122ass="nap_rq9ik_)13a 32his cl"+asr1pre33evf>331r4329lertime43namtioL132all>322 remolo43nam>43292> =>
a1" 9"t>>>140
> *
a h,>>1 t9i1_rest>
re271er_hick203o>>1231ine>3re271er_hicksnr1g= 77>1t+p_rqsss*>122ass="nap_rq9ik_ef"2">>1 t9i1_rest>
515#s_timeoutaom itc15#snr1)sr1perf_evf13_2ag=9o7> =>
a1"205433ilertime43aq_76mighA_dleep20"19t h43aq_>4331_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4331lertime43h0"1nelkw32s* >323 >128h43h0">43312> =>
a1" 9"t>>>140
3271erd*ad/32" 4332lertime43asr1perf_evf13_2ask_et h43asr>433 to aq>1 t9i1_rest>
out203o>>1231ine>3outto a:r1perf_evf13_2ag=9o7> =>
a1"2054333lertime43294>7>
aq_76rtamtr1g=t h43294>4333_next_naskol>>1 t9i1_rest>
dou1le_rq_t>
id4s_timeoutaom itdou1le_rq_t>
id4snr1g= 77>1t+rqsss*>122ass="narqsnr1t f"2">>1 t9i1_rep_rqsss*>122ass="nap_rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20543a4lertime43asr1perf_evf13_2ask_et h43asr>433419ot3stati7a>>1 t9i1_rest>
r1gal_irq_re2t
a1203o>>1231ine>3r1gal_irq_re2t
a1snr1g= 77>1t+flagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20543a5lertime43its/ru*    cimeoutr1g= h43its>4330n_u>20
a55323witch>r430sh>43362> =>
a1" 9"32a9t>
id4ss3197erdyielder203o>>1231ine>3yieldersnr1)20
a5532LIN>323Thenma43lve>43372> =>
a1" 9"t>>>140
t>
id4ss3197erds71erulesss*>122ass="naru*  ulesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20543a8lertime433>5 3324erd*ad/33nam43a9lertime43let28
 of >>5#L17led>fro43let>4339_next_naskolongsl2hq
a1" 9"t>
id4syielder203o>>1231ine>3yieldersnr1sr1perf_evf13_2ag=9o7> =>
a1"205434ilertime43cular/hreplet28
15 new3e43cul>434f2> =L12> =>
a1" 9"t>3324erd*ad/33nam4341lertime43mpty hre74o"do aqr new3e43mpt>43412> =>>1 t9i1_rest>
1XPORT_SYMBO3_GP33DULE_TIMEOUTss1XPORT_SYMBO3_GP3snr1g= 77>1t+yield_hosss*>122ass="nayield_hosnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054342lertime43"5#L1. >tsisrNOTqr new3e43"5#>43412> =>
a1" 9"t>>>140
3252erd*ad/32it4343lertime43aris/RU cimeoutaqr new3e43ari>434re 205cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4344lertime43est possi acao>
qr new3e43est>434419ot5cka andonc_cdsc3253erd* T/numb0r of jiffies lef4345lertime43())twith"1imeoutr1 new3e43())>4340n_u>5cka andonc_cdsc3253erd*athat process accountsng knows that th2s 2s a tick 2n IO wait 2tatee (at least 1, o>/numb0r of jiffies lef4346lertime43 se0 hreplete()aqr new3e43 se>43462> =5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4347lertime4343axs>434k_nex>
a1" 9"t>
id4sp3304erd*ad/33db*4349lertime43 Pick up32ru*>324 remolo43 Pi>4349_next_naskolhreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1eev= 77>1t+raw_rqsss*>122ass="naraw_rqsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"205435ilertime43K_UNINTERRUPTIBLEsk_et h43K_U>43512> =>
a1" 9"t>>>140
323lerd*ad/32s*4351lertime43725329" 32
p2>3251////>r43725>4351_next_naskol>>1 t9i1_rest>
delayacct_blkio_start203o>>1231ine>3delayacct_blkio_startsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054352lertime43it_fo>chreplet28
15#Lt h43it_>43522> =>
a1" 9"t>
id4sp32s1erdatomic_incsss*>122ass="naatomic_incsnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
nr_iowaitsss*>122ass="nanr_iowaitsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054353lertime43ck_next_n32itr>325()-5im43ck_>4353_next_naskol>>1 t9i1_rest>
blk_flush_plugs_timeoutaom itblk_flush_plugsnr1g= 77>1t+515#L14s_timeoutaom itc15#L149ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054354lertime43st possi acaole77led>fro43st >435419ot3stati7a>>1 t9i1_rest>
515#L14s_timeoutaom itc15#L149ik_ef"2">>1 t9i1_rest>
in_iowaitsss*>122ass="nain_iowaitsnr1eev1sr1perf_evf13_2ag=9o7> =>
a1"2054355lertime435#L1 (w/timeoutc20r7d_rq435#L>4355_next_naskol>>1 t9i1_rest>
s71erulesss*>122ass="naru*  ulesnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054356lertime43cular/hreplet28
15 new3e43cul>43512> =>
a1" 9"switches"+pr331515#L14s_timeoutaom itc15#L149ik_ef"2">>1 t9i1_rest>
in_iowaitsss*>122ass="nain_iowaitsnr1eev0sr1perf_evf13_2ag=9o7> =>
a1"2054357lertime43val
p in jiffiesqr new3e43val>43K72> =>
a1" 9"t>
id4sp32s1erdatomic_decsss*>122ass="naatomic_decsnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
nr_iowaitsss*>122ass="nanr_iowaitsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054358lertime43ick()>135>ss="+*qr new3e43ick>435k_next_naskol>>1 t9i1_rest>
delayacct_blkio_enr203o>>1231ine>3delayacct_blkio_enrsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054359lertime43_RUaled o>/fo>/aqr new3e43_RU>4359_nexL12> =>
a1" 9"t>3324erd*ad/33nam436ilertime43ffies. >tsisrnod7led>fro43ffi>4360   ck>1 t9i1_rest>
1XPORT_SYMBO33DULE_TIMEOUTss1XPORT_SYMBO3snr1g= 77>1t+io_s71erulesss*>122ass="naio_s71erulesnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054361lertime437"
/3>4ruptibleaqr new3e437"
>43612> =>
a1" 9"t>>>140
3271erd*ad/32" 4362lertime43" nr_switches"+*15 new3e43" n>436 to alongvswitches"+pr331__271er203o>>1231ine>3__271er2> =>= 77>1t+io_s71erule_timeout203o>>1231ine>3io_s71erule_timeoutsnr1glongvswitches"+pr331timeout203o>>1231ine>3timeoutsnr1)20
a55/numb0r of15 new3e43 1,>436re 20>
a1" 9"t>
id4sp3304erd*ad/33db*4364lertime43tcachshrepleteds of driv43tca>436419ot3stati7ahreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1eev= 77>1t+raw_rqsss*>122ass="naraw_rqsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054365lertime43pty hre74o"do a>k!faaccl43pty>4365_next_naskollongvswitches"+pr331retsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054366lertime43a129ck_le97sted>froe28
h43a12>43f62> =r1perf_evf13_2ag=9o7> =>
a1"2054367lertime43its/ru*    cimeoutr1g=th43its>43672> =>
a1" 9"t>
id4sp32s1erddelayacct_blkio_start203o>>1231ine>3delayacct_blkio_startsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054368lertime430
6>>12832 (
>326r s20lo430
6>436k_next_naskol>>1 t9i1_rest>
atomic_incsss*>122ass="naatomic_incsnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
nr_iowaitsss*>122ass="nanr_iowaitsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054369lertime43K_UNINTERRUPTIBLEsk_et h43K_U>4369_next_naskol>>1 t9i1_rest>
blk_flush_plugs_timeoutaom itblk_flush_plugsnr1g= 77>1t+515#L14s_timeoutaom itc15#L149ik_)sr1perf_evf13_2ag=9o7> =>
a1"205437ilertime43=>
a1" 932>tc>326>>128>r43=>
>437u_next_naskol>>1 t9i1_rest>
515#L14s_timeoutaom itc15#L149ik_ef"2">>1 t9i1_rest>
in_iowaitsss*>122ass="nain_iowaitsnr1eev1sr1perf_evf13_2ag=9o7> =>
a1"2054371lertime43replet28
_timeout15#Lt h43rep>4371_next_naskol>>1 t9i1_rest>
retsss*>122ass="naretsnr1 ev>>1 t9i1_rest>
s71erule_timeout203o>>1231ine>3s71erule_timeoutsnr1gswitches"+pr331timeout203o>>1231ine>3timeoutsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054372lertime43ine97129432" c>3281st-ph43ine>43722> =>
a1" 9"t>
id4sp32s1erd515#L14s_timeoutaom itc15#L149ik_ef"2">>1 t9i1_rest>
in_iowaitsss*>122ass="nain_iowaitsnr1eev0sr1perf_evf13_2ag=9o7> =>
a1"2054373lertime43">>1 twc9actile77led>fro43">>>4373_next_naskol>>1 t9i1_rest>
atomic_decsss*>122ass="naatomic_decsnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
nr_iowaitsss*>122ass="nanr_iowaitsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054374lertime43 >>5#L1 (w/
/3rc20r7d_rq43 >>>437419ot3stati7a>>1 t9i1_rest>
delayacct_blkio_enr203o>>1231ine>3delayacct_blkio_enrsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"20543=5lertime43cular/hreplet28
15 new3e43cul>43752> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054376lertime43ick()>135>ss="e*qr new3e43ick>437619otL12> =>
a1" 9"t>3324erd*ad/33nam4377lertime43rr_RUaled. >tsisqr new3e43rr_>437ler fr1perf_evf13_2ag=9o7> =>
a1"2054378lertime43* 
/3>4ruptibleaqr new3e43* 
>43=    ck12o32w>122ass="3238er/**d/33evf13a 32his cl"+asr1pre33evf>331r43=9lertime43p. I 7st > 79f+*qr new3e43p. >437    ck12o32w>122ass="3239erd*a2ys7su*  _get_priority_max -"ongsl2hmaximum RT prioritye (at least 1, o>/numb0r of jiffies lef438ilertime43 0achshrepleteds of driv43 0a>4380   ck12o32w>122ass="3239erd*a@policy: ru*    sng c>122e (at least 1, o>/numb0r of jiffies lef4381lertime43pt_ena ac()r522>k!faaccl43pt_>438U4T
/3>4d*ad/ Furto3o33a1erd* (at least 1, o>/numb0r of jiffies lef4382lertime43axssr9o71_pcorenaxr1g=t>43axs>43  to aqr rfr-queu8 pre3162erd*athisa2yscalllrngsl2s t/numb0r of jiffies lef4383lertime43"203o>>132lin>32/5ode=lo43"20>438re 205cka andonc_cdsc3253erd*aby a given ru*    sng c>122e (at least 1, o>/numb0r of jiffies lef4384lertime43ASK_INTERRUPTIBLEsk_et h43ASK>438419ot5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r43 5lertime43k_le97sERESTARTSYSr1g=t>43k_l>4380n_u>5
a1" 9"t>
id4sSYSCALL_DEFINE1sss*>122ass="naSYSCALL_DEFINE1snr1gswitches"+pr331su*  _get_priority_max203o>>1231ine>3s71er_get_priority_maxsnr1t intt f"2">>1 t9i1_repolicysss*>122ass="napolicysnr1)20
a5543862> =>
a1" 9"t>
id4sp3304erd*ad/33db*4387lertime438,
a href="+20KERN_Et0ck438,
>43872> =>
a1" 9"3nr_switches"+pr331retsss*>122ass="naretsnr1 ev-k>1 t9i1_rest>
1INVA33DULE_TIMEOUTss1INVA3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054388lertime43/er5erru32  c>32/ef="+>r43/er>43 k_nex12> =>
a1" 9"t>3324erd*ad/33nam4389lertime4328
_
/3>4ruptible15#Lt h4328
>4389_next_naskolhwitcha9t>
id4ss3197erdpolicysss*>122ass="napolicysnr1) >
a1" 9"t>
id4sp3304erd*ad/33db*439ilertime43e" namtio32dd >328switch43e" >439u_next_naskolcase_switches"+pr331SCHED_FIFOsss*>122ass="naSCHED_FIFOto a:r1perf_evf13_2ag=9o7> =>
a1"2054391lertime43pt_ena ac()r5le77led>fro43pt_>43912> =>
a1" 9"case_switches"+pr331SCHED_RRsss*>122ass="naSCHED_RRto a:r1perf_evf13_2ag=9o7> =>
a1"2054392lertime438
 (w/(to,
/3rcc20r7d_rq438
 >439219ot3stati7at>>>140
t>
id4ss3197erdretsss*>122ass="naretsnr1 evt>
id4ss3197erdMAX_USER_RT_PRIOsss*>122ass="naMAX_USER_RT_PRIOsnr1e1sr1perf_evf13_2ag=9o7> =>
a1"2054393lertime43cular/hreplet28
15 new3e43cul>43932> =>
a1" 9"t>>>140
brea=sr1perf_evf13_2ag=9o7> =>
a1"2054394lertime43val
p in jiffiesqr new3e43val>43942> =>
a1" 9"case_switches"+pr331SCHED_NORMA33DULE_TIMEOUTssSCHED_NORMA3to a:r1perf_evf13_2ag=9o7> =>
a1"2054395lertime43mpty hre74o"do aqr new3e43mpt>43952> =>
a1" 9"case_switches"+pr331SCHED_BATCH3DULE_TIMEOUTssSCHED_BATCHto a:r1perf_evf13_2ag=9o7> =>
a1"2054396lertime43_RUaled o>/fo>/aqr new3e43_RU>43912> =>
a1" 9"case_switches"+pr331SCHED_IDLE3DULE_TIMEOUTssSCHED_IDLEto a:r1perf_evf13_2ag=9o7> =>
a1"2054397lertime43t isrin jiffies.qr new3e43t i>43972> =>
a1" 9"t>>>140
t>
id4ss3197erdretsss*>122ass="naretsnr1 ev0sr1perf_evf13_2ag=9o7> =>
a1"2054398lertime43ick()>135>ss="+*qr new3e43ick>43982> =>
a1" 9"t>>>140
brea=sr1perf_evf13_2ag=9o7> =>
a1"2054399lertime43 0achs2imed out,qr new3e43 0a>4399_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam443ilertime443ilehs2imed out,qr new3e443il>440u_next_naskolongsl2hq
a1" 9"t>
id4sretsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054401lertime443t_ena ac()r5le77led>fro443t_>4401_nexL12> =>
a1" 9"t>3324erd*ad/33nam4432lertime443
 (w/(to,
/3rcc20r7d_rq443
 >44012> =>
a1" 9"t>>>140
3252erd*ad/32it4433lertime443ular/hreplet28
15 new3e443ul>440re 205cka andonc_cdsc3253er/**d/33evf13a 32his cl"+asr1pre33evf>331r4404lertime443al
p in jiffiesqr new3e443al>440419ot5cka andonc_cdsc3253erd* 2ys7su*  _get_priority_min -"ongsl2hminimum RT prioritye (at least 1, o>/numb0r of jiffies lef4435lertime443pty hre74o"do aqr new3e443pt>4400n_u>5cka andonc_cdsc3253erd*a@policy: ru*    sng c>122e (at least 1, o>/numb0r of jiffies lef4436lertime443RUaled o>/fo>/aqr new3e443RU>44062> =5cka andonc_cdsc3253erd*d/33evf13a 32his cl"+asr1pre33evf>331r4437lertime443 isrin jiffies.qr new3e443 i>440ler func1f13>135>ss="3237erd* thisa2yscalllrngsl2s t/numb0r of jiffies lef4408lertime443ck()>135>ss="+*qr new3e443ck>440    ck12o32w>122ass="3238erd*oby a given ru*    sng c>122e (at least 1, o>/numb0r of jiffies lef4439lertime4430achs2imed out,qr new3e4430a>440    ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r441ilertime44:122ass="namte_*qr new3e44:12>4410   ck>1 t9i1_rest>
SYSCALL_DEFINE1sss*>122ass="naSYSCALL_DEFINE1snr1gswitches"+pr331su*  _get_priority_min203o>>1231ine>3su*  _get_priority_minsnr1t intt f"2">>1 t9i1_repolicysss*>122ass="napolicysnr1)20
a555#L1 (kileablec20r7d_rq44>5#>44112> =>
a1" 9"t>
id4sp3304erd*ad/33db*44:2lertime44cular/hreplet28
15 new3e44cul>44122> =>
a1" 9"3nr_switches"+pr331retsss*>122ass="naretsnr1 ev-k>1 t9i1_rest>
1INVA33DULE_TIMEOUTss1INVA3snr1sr1perf_evf13_2ag=9o7> =>
a1"20544:3lertime444">>1 twc9activ915 new3e444">>4411t+cnnruptibrq tshrefb715 new3e44"5#>441419ot3stati7ahwitcha9t>
id4ss3197erdpolicysss*>122ass="napolicysnr1) >
a1" 9"t>
id4sp3304erd*ad/33db*44:5lertime44y >>kilerr_RUals of driv44y >>44152> =>
a1" 9"case_switches"+pr331SCHED_FIFOsss*>122ass="naSCHED_FIFOto a:r1perf_evf13_2ag=9o7> =>
a1"20544:6lertime44ick()>135>ss="e*qr new3e44ick>44112> =>
a1" 9"case_switches"+pr331SCHED_RRsss*>122ass="naSCHED_RRto a:r1perf_evf13_2ag=9o7> =>
a1"2054417lertime44 0achshrepleteds of driv44 0a>44172> =>
a1" 9"t>>>140
t>
id4ss3197erdretsss*>122ass="naretsnr1 ev1sr1perf_evf13_2ag=9o7> =>
a1"2054418lertime44ck()>135>ss="+*>k!faaccl44ck(>44182> =>
a1" 9"t>>>140
brea=sr1perf_evf13_2ag=9o7> =>
a1"20544:9lertime44axssr9o71_pcorenaxr1g=t>44axs>44192> =>
a1" 9"case_switches"+pr331SCHED_NORMA33DULE_TIMEOUTssSCHED_NORMA3to a:r1perf_evf13_2ag=9o7> =>
a1"205442ilertime443b">TAIN33olo>331r9o77lo443b">442u_next_naskolcase_switches"+pr331SCHED_BATCH3DULE_TIMEOUTssSCHED_BATCHto a:r1perf_evf13_2ag=9o7> =>
a1"2054421lertime44renaTASK_KILLABLE15#Lt h44ren>44212> =>
a1" 9"case_switches"+pr331SCHED_IDLE3DULE_TIMEOUTssSCHED_IDLEto a:r1perf_evf13_2ag=9o7> =>
a1"2054422lertime44k_le97sERESTARTSYSr1g=t>44k_l>442219ot3stati7at>>>140
t>
id4ss3197erdretsss*>122ass="naretsnr1 ev0sr1perf_evf13_2ag=9o7> =>
a1"2054423lertime44utaom its/ru*    cr1g= h44uta>44232> =>
a1" 9"L12> =>
a1" 9"t>3324erd*ad/33nam4424lertime442>140
93t4 <97KERN_Et0ck442>1>442419ot3stati7aongsl2hq
a1" 9"t>
id4sretsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054425lertime44"2056>>133nam>33p209612944"20>4420n_u>L12> =>
a1" 9"t>3324erd*ad/33nam4426lertime442053ula_d322nr>322829" c44205>44262> =r1perf_evf13_2ag=9o7> =>
a1"2054427lertime44a129ck_le97sted>froe28
h44a12>442ler func1f13>135>ss="3237er/**d/33evf13a 32his cl"+asr1pre33evf>331r4428lertime441294>7>
aq_76rtamtr1g=t>44129>442    ck12o32w>122ass="3238erd*o2ys7su*  _rr_get_3nrerval -"ongsl2ht/numb0r of jiffies lef4429lertime44namtioL132all>322 remolo44nam>442    ck12o32w>122ass="3239erd*a@pid: pid ofrt/numb0r of jiffies lef443ilertime44aq_76mighA_dleep20"19t h44aq_>4430   ck12o32w>122ass="3239erd*a@3nrerval: user12oce po3nrer to the timeslice valuee (at least 1, o>/numb0r of jiffies lef4431lertime44h0"1nelkw32s* >323 >128h44h0">443U4T
/3>4d*ad/ Furto3o33a1erd* (at least 1, o>/numb0r of jiffies lef4432lertime44asr1perf_evf13_2ask_et h44asr>443 to aqr rfr-queu8 pre3162erd*athisa2yscalllwritesht/numb0r of jiffies lef4433lertime44294>7>
aq_76rtamtr1g=t h44294>443re 205cka andonc_cdsc3253erd*a3nro the user-12oce timespec buffer. A value ofr'0' mea2s infinitye (at least 1, o>/numb0r of jiffies lef44a4lertime44asr1perf_evf13_2ask_et h44asr>443419ot5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r44a5lertime44its/ru*    cimeoutr1g= h44its>4430n_u>5
a1" 9"t>
id4sSYSCALL_DEFINE23DULE_TIMEOUTssSYSCALL_DEFINE2snr1gswitches"+pr331su*  _rr_get_3nrerval203o>>1231ine>3su*  _rr_get_3nrervalsnr1t t>
id4ss3197erdpid_ts_timeoutaom itpid_tsnr1t t>
id4ss3197erdpids_timeoutaom itpidsnr1t13a 32his cl"+asr1pre33evf>331r44a6lertime440shre3=732ss=>323witch>r440sh>44312> =>
a1" 9"t>>>140
hreplet28
_kileable961eimespec203o>>1231ine>3timespec2> =>28
_kileable961__user203o>>1231ine>3__usersnr1e*t t>
id4ss3197erd3nrerval203o>>1231ine>33nrervalsnr1)20
a5532LIN>323Thenma44lve>44372> =>
a1" 9"t>
id4sp3304erd*ad/33db*44a8lertime443>5 rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"20544a9lertime44let28
 of >>5#L17led>fro44let>4439_next_naskolunsigne2 3nr_switches"+pr331time_slice203o>>1231ine>3time_slice9ik_sr1perf_evf13_2ag=9o7> =>
a1"205444ilertime44cular/hreplet28
15 new3e44cul>4440_next_naskolunsigne2 longvswitches"+pr331flagssss*>122ass="naflags9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054441lertime44mpty hre74o"do aqr new3e44mpt>4441_next_naskolhreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054442lertime44"5#L1. >tsisrNOTqr new3e44"5#>44422> =>
a1" 9"3nr_switches"+pr331retval203o>>1231ine>3retvalsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054443lertime44aris/RU cimeoutaqr new3e44ari>44412> =>
a1" 9"hreplet28
_kileable961eimespec203o>>1231ine>3timespec2> =>28
_kileable961es_timeoutaom itssnr1sr1perf_evf13_2ag=9o7> =>
a1"2054444lertime44est possi acao>
qr new3e44est>444 to ar1perf_evf13_2ag=9o7> =>
a1"2054445lertime44())twith"1imeoutr1 new3e44())>44452> =>
a1" 9"32a9switches"+pr331pids_timeoutaom itpidsnr1 < 0)20
a5544c12> =>
a1" 9"t>>>140
ongsl2h-k>1 t9i1_rest>
1INVA33DULE_TIMEOUTss1INVA3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054447lertime4444axs>444k_next_naskol>>1 t9i1_rest>
retval203o>>1231ine>3retvalsnr1 ev-k>1 t9i1_rest>
1SRCH3DULE_TIMEOUTss1SRCHsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054449lertime44 Pick up32ru*>324 remolo44 Pi>4449_next_naskol>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"205445ilertime44K_UNINTERRUPTIBLEsk_et h44K_U>445u_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_ evt>
id4ss3197erdfind_procass_by_pids_timeoutaom itfind_procass_by_pidsnr1gswitches"+pr331pids_timeoutaom itpidsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054451lertime44725329" 32
p2>3251////>r44725>4451_next_naskol32a9!switches"+pr331ps_timeoutaom itp9ik_)r1perf_evf13_2ag=9o7> =>
a1"2054452lertime44it_fo>chreplet28
15#Lt h44it_>445219ot3stati7at>>>140
goto >>1 t9i1_rest>
out_t>
id4s_timeoutaom itout_t>
id4snr1sr1perf_evf13_2ag=9o7> =>
a1"2054453lertime44ck_next_n32itr>325()-5im44ck_>4451t+cnnruptibrq fro44st >445419ot3stati7a>>1 t9i1_rest>
retval203o>>1231ine>3retvalsnr1 evswitches"+pr331security_s74o_gets71eruler203o>>1231ine>3security_s74o_gets71erulersnr1gswitches"+pr331ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054455lertime445#L1 (w/timeoutc20r7d_rq445#L>44552> =>
a1" 9"32a9switches"+pr331retval203o>>1231ine>3retvalsnr1)r1perf_evf13_2ag=9o7> =>
a1"2054456lertime44cular/hreplet28
15 new3e44cul>44512> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out_t>
id4s_timeoutaom itout_t>
id4snr1sr1perf_evf13_2ag=9o7> =>
a1"2054457lertime44val
p in jiffiesqr new3e44val>445ler fr1perf_evf13_2ag=9o7> =>
a1"2054458lertime44ick()>135>ss="+*qr new3e44ick>445k_next_naskol>>1 t9i1_rest>
rqsss*>122ass="narqsnr1eev= 77>1t+t74o_rq_r1g=9o734829" cla73t74o_rq_r1g=snr1gswitches"+pr331ps_timeoutaom itp9ik_, 7naref"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054459lertime44_RUaled o>/fo>/aqr new3e44_RU>4459_next_naskol>>1 t9i1_rest>
time_slice203o>>1231ine>3time_slice9ik_eev= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
get_rr_3nrerval203o>>1231ine>3get_rr_3nrervalsnr1gswitches"+pr331rqsss*>122ass="narqsnr1t f"2">>1 t9i1_reps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205446ilertime44ffies. >tsisrnod7led>fro44ffi>446u_next_naskol>>1 t9i1_rest>
t74o_rq_t>
id4s_timeoutaom itt74o_rq_t>
id4snr1gswitches"+pr331rqsss*>122ass="narqsnr1t f"2">>1 t9i1_reps_timeoutaom itp9ik_, 7naref"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054461lertime447"
/3>4ruptibleaqr new3e447"
>44612> =>
a1" 9"t>>>140
3271erd*ad/32" 4462lertime44" nr_switches"+*15 new3e44" n>44622> =>
a1" 9"t>
id4sp32s1erdrcu_read_t>
id4s_timeoutaom itrcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054463lertime44 1, o>/numb0r of15 new3e44 1,>4463_next_naskol>>1 t9i1_rest>
jiffies_ho_himespec203o>>1231ine>3jiffies_ho_himespecsnr1gswitches"+pr331time_slice203o>>1231ine>3time_slice9ik_, 7naref"2">>1 t9i1_rees_timeoutaom itssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054464lertime44tcachshrepleteds of driv44tca>446419ot3stati7a>>1 t9i1_rest>
retval203o>>1231ine>3retvalsnr1 evswitches"+pr331copy_ho_user203o>>1231ine>3copy_ho_usersnr1gswitches"+pr3313nrerval203o>>1231ine>33nrervalsnr1, 7naref"2">>1 t9i1_rees_timeoutaom itssnr1, sizeofgswitches"+pr331ts_timeoutaom itssnr1)) ?v-k>1 t9i1_rest>
1FAULT3DULE_TIMEOUTss1FAULTsnr1 :v0sr1perf_evf13_2ag=9o7> =>
a1"2054465lertime44pty hre74o"do a>k!faaccl44pty>44652> =>
a1" 9"ongsl2hq
a1" 9"t>
id4sretval203o>>1231ine>3retvalsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054466lertime44a129ck_le97sted>froe28
h44a12>44f62> =r1perf_evf13_2ag=9o7> =>
a1"2054467lertime44its/ru*    cimeoutr1g=th44its>446ler fu>1 t9i1_rest>
out_t>
id4s_timeoutaom itout_t>
id4snr1:r1perf_evf13_2ag=9o7> =>
a1"2054468lertime440
6>>12832 (
>326r s20lo440
6>446k_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4s_timeoutaom itrcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054469lertime44K_UNINTERRUPTIBLEsk_et h44K_U>4469_next_naskolongsl2hq
a1" 9"t>
id4sretval203o>>1231ine>3retvalsnr1sr1perf_evf13_2ag=9o7> =>
a1"205447ilertime44=>
a1" 932>tc>326>>128>r44=>
>447f2> =L12> =>
a1" 9"t>3324erd*ad/33nam4471lertime44replet28
_timeout15#Lt h44rep>44712> =>
a1" 9"t>>>140
3271erd*ad/32" 4472lertime44ine97129432" c>3281st-ph44ine>44722> =2tatic const charvswitches"+pr331stat_81ssss*>122ass="nartat_81s2> =[] evswitches"+pr331TASK_STATE_TO_CHAR_STRsss*>122ass="naTASK_STATE_TO_CHAR_STRsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054473lertime44">>1 twc9actile77led>fro44">>>4471t+cnnruptibrq >5#L1 (w/
/3rc20r7d_rq44 >>>447419otvoidl>>1 t9i1_rest>
ru*  _show_hick203o>>1231ine>3ru*  _show_hicksnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_)r1perf_evf13_2ag=9o7> =>
a1"20544=5lertime44cular/hreplet28
15 new3e44cul>44752> =>
a1" 9"t>
id4sp3304erd*ad/33db*4476lertime44ick()>135>ss="e*qr new3e44ick>44712> =>
a1" 9"unsigne2 longvswitches"+pr331free203o>>1231ine>3freesnr1 ev0sr1perf_evf13_2ag=9o7> =>
a1"2054477lertime44rr_RUaled. >tsisqr new3e44rr_>44772> =>
a1" 9"unsigne2 switches"+pr331state203o>>1231ine>32tatesnr1sr1perf_evf13_2ag=9o7> =>
a1"2054478lertime44* 
/3>4ruptibleaqr new3e44* 
>447k_nex12> =>
a1" 9"t>3324erd*ad/33nam44=9lertime44p. I 7st > 79f+*qr new3e44p. >4479_next_naskol>>1 t9i1_rest>
state203o>>1231ine>32tatesnr1eev= 77>1t+ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rtate203o>>1231ine>32tatesnr1e?>28
_kileable961__ffssss*>122ass="na__ffssnr1gswitches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rtate203o>>1231ine>32tatesnr1s + 1 :v0sr1perf_evf13_2ag=9o7> =>
a1"205448ilertime44 0achshrepleteds of driv44 0a>448u_next_naskol>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_INFOsss*>122ass="naKERN_INFO2> =>2cka andonc_chresngs>"%-15.15s %c"d/33evft f"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
5omssss*>122ass="na5omssnr1t13a 32his cl"+asr1pre33evf>331r4481lertime44pt_ena ac()r522>k!faaccl44pt_>4481_next_naskolt_naskol>>1 t9i1_rest>
state203o>>1231ine>32tatesnr1e< sizeofgswitches"+pr331stat_81ssss*>122ass="nartat_81s2> =) - 1 ?>28
_kileable961stat_81ssss*>122ass="nartat_81s2> =[>>1 t9i1_rest>
state203o>>1231ine>32tatesnr1] :v2cka andonc_chresngs>'?'d/33evf)sr1perf_evf13_2ag=9o7> =>
a1"2054482lertime44axssr9o71_pcorenaxr1g=t>44axs>44  to a#if>28
_kileable961BITS_PER_LONG203o>>1231ine>3BITS_PER_LONGsnr1ee= 32r1perf_evf13_2ag=9o7> =>
a1"2054483lertime44"203o>>132lin>32/5ode=lo44"20>4483_next_naskol32a9switches"+pr331state203o>>1231ine>32tatesnr1eeevswitches"+pr331TASK_RUNNING203o>>1231ine>3TASK_RUNNING9ik_)r1perf_evf13_2ag=9o7> =>
a1"2054484lertime44ASK_INTERRUPTIBLEsk_et h44ASK>448419ot3stati7a> *
a h,>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_CONT3DULE_TIMEOUTssKERN_CONT2> =>2cka andonc_chresngs>" runnsng  "d/33evf)sr1perf_evf13_2ag=9o7> =>
a1"2054485lertime44k_le97sERESTARTSYSr1g=t>44k_l>44852> =>
a1" 9"elser1perf_evf13_2ag=9o7> =>
a1"2054486lertime44utaom its/ru*    cr1g= h44uta>44812> =>
a1" 9"t>>>140
>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_CONT3DULE_TIMEOUTssKERN_CONT2> =>2cka andonc_chresngs>" %08lx "d/33evft f"2">>1 t9i1_rethread_saved_pc203o>>1231ine>3thread_saved_pcsnr1gswitches"+pr331ps_timeoutaom itp9ik_))sr1perf_evf13_2ag=9o7> =>
a1"2054487lertime448,
a href="+20KERN_Et0ck448,
>44872> =#elser1perf_evf13_2ag=9o7> =>
a1"2054488lertime44/er5erru32  c>32/ef="+>r44/er>448k_next_naskol32a9switches"+pr331state203o>>1231ine>32tatesnr1eeevswitches"+pr331TASK_RUNNING203o>>1231ine>3TASK_RUNNING9ik_)r1perf_evf13_2ag=9o7> =>
a1"2054489lertime4428
_
/3>4ruptible15#Lt h4428
>44892> =>
a1" 9"t>>>140
>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_CONT3DULE_TIMEOUTssKERN_CONT2> =>2cka andonc_chresngs>"  runnsng tick    "d/33evf)sr1perf_evf13_2ag=9o7> =>
a1"205449ilertime44e" namtio32dd >328switch44e" >449u_next_naskolelser1perf_evf13_2ag=9o7> =>
a1"2054491lertime44pt_ena ac()r5le77led>fro44pt_>4491_next_naskolt_naskol>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_CONT3DULE_TIMEOUTssKERN_CONT2> =>2cka andonc_chresngs>" %016lx "d/33evft f"2">>1 t9i1_rethread_saved_pc203o>>1231ine>3thread_saved_pcsnr1gswitches"+pr331ps_timeoutaom itp9ik_))sr1perf_evf13_2ag=9o7> =>
a1"2054492lertime448
 (w/(to,
/3rcc20r7d_rq448
 >449219ot#endifr1perf_evf13_2ag=9o7> =>
a1"2054493lertime44cular/hreplet28
15 new3e44cul>44932> =#ifdef>28
_kileable961CONFIG_DEBUG_STACK_USAGE3DULE_TIMEOUTssCONFIG_DEBUG_STACK_USAGE_nex12> =>
a1" 9"t>3324erd*ad/33nam4494lertime44val
p in jiffiesqr new3e44val>449419ot3stati7a>>1 t9i1_rest>
free203o>>1231ine>3freesnr1 evswitches"+pr331stack_not_useds_timeoutaom itstack_not_usedsnr1gswitches"+pr331ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054495lertime44mpty hre74o"do aqr new3e44mpt>44952> =#endifr1perf_evf13_2ag=9o7> =>
a1"2054496lertime44_RUaled o>/fo>/aqr new3e44_RU>44912> =>
a1" 9"switches"+pr331pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_CONT3DULE_TIMEOUTssKERN_CONT2> =>2cka andonc_chresngs>"%5lu %5d %6d 0x%08lx\n"d/33evft f"2">>1 t9i1_refree203o>>1231ine>3freesnr1t13a 32his cl"+asr1pre33evf>331r4497lertime44t isrin jiffies.qr new3e44t i>44972> =>
a1" 9"t>>>140
t>
id4ss3197erds74o_pid_nr203o>>1231ine>3s74o_pid_nrsnr1gswitches"+pr331ps_timeoutaom itp9ik_)t f"2">>1 t9i1_ret74o_pid_nr203o>>1231ine>3s74o_pid_nrsnr1gswitches"+pr331rcu_decheechnce203o>>1231ine>3rcu_decheechncesnr1gswitches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
real_pa#L14s_timeoutaom itreal_pa#L149ik_))t13a 32his cl"+asr1pre33evf>331r4498lertime44ick()>135>ss="+*qr new3e44ick>44982> =>
a1" 9"t>>>140
(unsigne2 long)f"2">>1 t9i1_ret74o_thread_infosss*>122ass="nat74o_thread_infosnr1gswitches"+pr331ps_timeoutaom itp9ik_)ef"2">>1 t9i1_rest>
flagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054499lertime44 0achs2imed out,qr new3e44 0a>4499_nexr1perf_evf13_2ag=9o7> =>
a1"205453ilertime453ilehs2imed out,qr new3e453il>450u_next_naskol>>1 t9i1_rest>
show_stacks_timeoutaom itshow_stacksnr1gswitches"+pr331ps_timeoutaom itp9ik_, switches"+pr331NUL33DULE_TIMEOUTssNUL39ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054501lertime453t_ena ac()r5le77led>fro453t_>4501_nexL12> =>
a1" 9"t>3324erd*ad/33nam4532lertime453
 (w/(to,
/3rcc20r7d_rq453
 >45012> =>
a1" 9"t>>>140
3252erd*ad/32it4533lertime453ular/hreplet28
15 new3e453ul>450re 20voidl>>1 t9i1_rest>
rhow_state_filter203o>>1231ine>3show_state_filtersnr1gunsigne2 longvswitches"+pr331state_filter203o>>1231ine>3state_filtersnr1)r1perf_evf13_2ag=9o7> =>
a1"2054504lertime453al
p in jiffiesqr new3e453al>450419ot>
a1" 9"t>
id4sp3304erd*ad/33db*4535lertime453pty hre74o"do aqr new3e453pt>45052> =>
a1" 9"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrgs_timeoutaom itg9ik_, 15#L9>rq>20
a hrps_timeoutaom itp9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054536lertime453RUaled o>/fo>/aqr new3e453RU>45062> =r1perf_evf13_2ag=9o7> =>
a1"2054537lertime453 isrin jiffies.qr new3e453 i>450ler f#if>28
_kileable961BITS_PER_LONG203o>>1231ine>3BITS_PER_LONGsnr1ee= 32r1perf_evf13_2ag=9o7> =>
a1"2054508lertime453ck()>135>ss="+*qr new3e453ck>450k_next_naskol>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_INFOsss*>122ass="naKERN_INFO2> =r1perf_evf13_2ag=9o7> =>
a1"2054509lertime4530achs2imed out,qr new3e4530a>45092> =>
a1" 9"t>>>140
>cka andonc_chresngs>"  tick                PC stack   pid father\n"d/33evf)sr1perf_evf13_2ag=9o7> =>
a1"205451ilertime45:122ass="namte_*qr new3e45:12>4510   c#elser1perf_evf13_2ag=9o7> =>
a1"20545:1lertime45>5#L1 (kileablec20r7d_rq45>5#>4511_next_naskol>>1 t9i1_rest>
pr3nrk203o>>1231ine>3pr3nrksnr1gswitches"+pr331KERN_INFOsss*>122ass="naKERN_INFO2> =r1perf_evf13_2ag=9o7> =>
a1"20545:2lertime45cular/hreplet28
15 new3e45cul>451219ot3stati7at>>>140
tcka andonc_chresngs>"  tick                        PC stack   pid father\n"d/33evf)sr1perf_evf13_2ag=9o7> =>
a1"2054513lertime454">>1 twc9activ915 new3e454">>4511t+cn#endifr1perf_evf13_2ag=9o7> =>
a1"2054514lertime45"5#L1. >tshrefb715 new3e45"5#>451419ot3stati7a>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"20545:5lertime45y >>kilerr_RUals of driv45y >>45152> =>
a1" 9">>1 t9i1_rest>
do_each_thread9o734829" cla73do_each_threadsnr1gswitches"+pr331gs_timeoutaom itg9ik_, switches"+pr331ps_timeoutaom itp9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*45:6lertime45ick()>135>ss="e*qr new3e45ick>45112> =>
a1" 9"t>>>140
>cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4517lertime45 0achshrepleteds of driv45 0a>451ler func1f13>135>ss="3237erddddddddddddddddd* re2et the NMI-timeout, listsng alllfiles on a slowd/33evf13a 32his cl"+asr1pre33evf>331r4518lertime45ck()>135>ss="+*>k!faaccl45ck(>451    ck12o32w>122ass="3238erddddddddddddddddd* consola might take a lot ofrtime:d/33evf13a 32his cl"+asr1pre33evf>331r4519lertime45axssr9o71_pcorenaxr1g=t>45axs>451    ck12o32w>122ass="3239erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r452ilertime453b">TAIN33olo>331r9o77lo453b">452u_next_naskol>
a1" 9">>1 t9i1_rest>
touch_nmi_watchdogs_timeoutaom ittouch_nmi_watchdogsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054521lertime45renaTASK_KILLABLE15#Lt h45ren>4521_next_naskolt_naskol32a9!switches"+pr331state_filter203o>>1231ine>3state_filtersnr1 ||a9switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
rtate203o>>1231ine>32tatesnr1e7nare t>
id4sp32s1erdstate_filter203o>>1231ine>3state_filtersnr1))r1perf_evf13_2ag=9o7> =>
a1"2054522lertime45k_le97sERESTARTSYSr1g=t>45k_l>452219ot3stati7at>>>140
>
a1" 9">>1 t9i1_rest>
ru*  _show_hick203o>>1231ine>3ru*  _show_hicksnr1gswitches"+pr331ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054523lertime45utaom its/ru*    cr1g= h45uta>45232> =>
a1" 9"L">>1 t9i1_rest>
while_each_thread9o734829" cla73while_each_threadsnr1gswitches"+pr331gs_timeoutaom itg9ik_, switches"+pr331ps_timeoutaom itp9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054524lertime452>140
93t4 <97KERN_Et0ck452>1>452 to ar1perf_evf13_2ag=9o7> =>
a1"2054525lertime45"2056>>133nam>33p209612945"20>45252> =>
a1" 9">>1 t9i1_rest>
touch_all_softr1g=up_watchdogssss*>122ass="natouch_all_softr1g=up_watchdogssnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054526lertime452053ula_d322nr>322829" c45205>45262> =r1perf_evf13_2ag=9o7> =>
a1"2054527lertime45a129ck_le97sted>froe28
h45a12>452ler f#ifdef>28
_kileable961CONFIG_SCHED_DEBUG3DULE_TIMEOUTssCONFIG_SCHED_DEBUG2> =r1perf_evf13_2ag=9o7> =>
a1"2054528lertime451294>7>
aq_76rtamtr1g=t>45129>452k_next_naskol>>1 t9i1_rest>
sysrq7su*  _debug_show203o>>1231ine>3rysrq7su*  _debug_showsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054529lertime45namtioL132all>322 remolo45nam>452    c#endifr1perf_evf13_2ag=9o7> =>
a1"205453ilertime45aq_76mighA_dleep20"19t h45aq_>453u_next_naskol>>1 t9i1_rest>
rcu_read_t>
id4s_timeoutaom itrcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054531lertime45h0"1nelkw32s* >323 >128h45h0">4531_next_naskol>cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4532lertime45asr1perf_evf13_2ask_et h45asr>453 to aqr rfr-queu8 pre3162erddddddddd* Only show 
id4sl32aalllhicks are dumped:d/33evf13a 32his cl"+asr1pre33evf>331r4533lertime45294>7>
aq_76rtamtr1g=t h45294>453re 205cka andonc_cdsc3253erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r45a4lertime45asr1perf_evf13_2ask_et h45asr>453419ot3stati7a32a9!switches"+pr331state_filter203o>>1231ine>3state_filtersnr1)r1perf_evf13_2ag=9o7> =>
a1"20545a5lertime45its/ru*    cimeoutr1g= h45its>4535_next_naskol>
a1" 9">>1 t9i1_rest>
debug_show_all_
id4s9o734829" cla73debug_show_all_
id4ssnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054536lertime450shre3=732ss=>323witch>r450sh>453619otL12> =>
a1" 9"t>3324erd*ad/33nam45a7lertime45lvea13b">32LIN>323Thenma45lve>453ler fr1perf_evf13_2ag=9o7> =>
a1"20545a8lertime453>5  =>2>1 t9i1_rest>
init_idle_bootup_hick203o>>1231ine>3init_idle_bootup_hicksnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hridle203o>>1231ine>3idlesnr1)r1perf_evf13_2ag=9o7> =>
a1"20545a9lertime45let28
 of >>5#L17led>fro45let>4539_nex>
a1" 9"t>
id4sp3304erd*ad/33db*454ilertime45cular/hreplet28
15 new3e45cul>454u_next_naskol>>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ = 7naref"2">>1 t9i1_reidle_ru*  _timeosss*>122ass="naidle_ru*  _timeo9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054541lertime45mpty hre74o"do aqr new3e45mpt>4541_nexL12> =>
a1" 9"t>3324erd*ad/33nam4542lertime45"5#L1. >tsisrNOTqr new3e45"5#>45412> =>
a1" 9"t>>>140
3252erd*ad/32it4543lertime45aris/RU cimeoutaqr new3e45ari>454re 205cka andonc_cdsc3253er/**d/33evf13a 32his cl"+asr1pre33evf>331r4544lertime45est possi acao>
qr new3e45est>454419ot5cka andonc_cdsc3253erd* init_idle - 2et up a aidle thread forrargiven CPUd/33evf13a 32his cl"+asr1pre33evf>331r4545lertime45())twith"1imeoutr1 new3e45())>4540n_u>5cka andonc_cdsc3253erd*a@idle: tick in questiond/33evf13a 32his cl"+asr1pre33evf>331r4546lertime45 se0 hreplete()aqr new3e45 se>45462> =5cka andonc_cdsc3253erd* @cpu: cpu the idle tick belongs tod/33evf13a 32his cl"+asr1pre33evf>331r4547lertime45331r4548lertime45axssr9o71_pcorenaxr1g=t>45axs>454    ck12o32w>122ass="3238erd*oNOTE:athisafunction does not 2et the idle thread's NEED_RESCHEDd/33evf13a 32his cl"+asr1pre33evf>331r4549lertime45 Pick up32ru*>324 remolo45 Pi>454    ck12o32w>122ass="3239erd*aflag, to make bootsng mvf> robuste (at least 1, o>/numb0r of jiffies lef455ilertime45K_UNINTERRUPTIBLEsk_et h45K_U>4550   ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4551lertime45725329" 32
p2>3251////>r45725>4551_nexvoidl>>1 t9i1_rest>
__cpuinit9o734829" cla73__cpuinit2> =>2>1 t9i1_rest>
init_idle203o>>1231ine>3init_idlesnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hridle203o>>1231ine>3idlesnr1,"3nr_switches"+pr331cpu203o>>1231ine>3cpusnr1)r1perf_evf13_2ag=9o7> =>
a1"2054552lertime45it_fo>chreplet28
15#Lt h45it_>455219ot>
a1" 9"t>
id4sp3304erd*ad/33db*4553lertime45ck_next_n32itr>325()-5im45ck_>45512> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1eev= 77>1t+cpu_rqsss*>122ass="nacpu_rqsnr1gswitches"+pr331cpu203o>>1231ine>3cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054554lertime45st possi acaole77led>fro45st >455419ot3stati7aunsigne2 longvswitches"+pr331flagssss*>122ass="naflags9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054555lertime455#L1 (w/timeoutc20r7d_rq455#L>45552> =r1perf_evf13_2ag=9o7> =>
a1"2054556lertime45cular/hreplet28
15 new3e45cul>45512> =>
a1" 9"switches"+pr331raw_spin_
id4_irqsavesss*>122ass="naraw_spin_
id4_irqsavesnr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>

id4s_timeoutaom it
id4snr1t f"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054557lertime45val
p in jiffiesqr new3e45val>455ler fr1perf_evf13_2ag=9o7> =>
a1"2054558lertime45ick()>135>ss="+*qr new3e45ick>455k_next_naskol>>1 t9i1_rest>
__271er_for4s_timeoutaom it__271er_for4snr1gswitches"+pr331idle203o>>1231ine>3idlesnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054559lertime45_RUaled o>/fo>/aqr new3e45_RU>4559_next_naskol>>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
rtate203o>>1231ine>32tatesnr1eev= 77>1t+TASK_RUNNING203o>>1231ine>3TASK_RUNNING9ik_sr1perf_evf13_2ag=9o7> =>
a1"205456ilertime45ffies. >tsisrnod7led>fro45ffi>456u_next_naskol>>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
re203o>>1231ine>32esnr1.>>1 t9i1_rest>
exec_start203o>>1231ine>3exec_startsnr1eev= 77>1t+ru*  _tiid4s_timeoutaom itru*  _tiid4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054561lertime457"
/3>4ruptibleaqr new3e457"
>45612> =>
a1" 9"t>>>140
3271erd*ad/32" 4562lertime45" nr_switches"+*15 new3e45" n>45622> =>
a1" 9"t>
id4sp32s1erddo_2et_cpus_alloweds_timeoutaom itdo_2et_cpus_allowedsnr1gswitches"+pr331idle203o>>1231ine>3idlesnr1t f"2">>1 t9i1_recpum74o_of203o>>1231ine>3cpum74o_ofsnr1gswitches"+pr331cpu203o>>1231ine>3cpusnr1))sr1perf_evf13_2ag=9o7> =>
a1"2054563lertime45 1, o>/numb0r of15 new3e45 1,>4563_next_naskol>cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4564lertime45tcachshrepleteds of driv45tca>456419ot5cka andonc_cdsc3253erddddddddd* We'f> havsng a chicken and egg problem, even though we ared/33evf13a 32his cl"+asr1pre33evf>331r4565lertime45pty hre74o"do a>k!faaccl45pty>4560n_u>5cka andonc_cdsc3253erddddddddd* holdsng rqef"2"iid4, the cpu isn't yet 2et toathisacpu so thed/33evf13a 32his cl"+asr1pre33evf>331r4566lertime45a129ck_le97sted>froe28
h45a12>45662> =5cka andonc_cdsc3253erddddddddd* iid4dep check in s74o_group() willlfaile (at least 1, o>/numb0r of jiffies lef4567lertime45its/ru*    cimeoutr1g=th45its>456ler func1f13>135>ss="3237erddddddddd*d/33evf13a 32his cl"+asr1pre33evf>331r4568lertime450
6>>12832 (
>326r s20lo450
6>456    ck12o32w>122ass="3238erddddddddd* Similar"case_toa271er_for4(). / Alternatively we could (at least 1, o>/numb0r of jiffies lef4569lertime45K_UNINTERRUPTIBLEsk_et h45K_U>456    ck12o32w>122ass="3239erddddddddd* use t74o_rq_r1g=() hef> and obtai2ht/numb0r of jiffies lef457ilertime45=>
a1" 932>tc>326>>128>r45=>
>4570   ck12o32w>122ass="3239erddddddddd*d/33evf13a 32his cl"+asr1pre33evf>331r4571lertime45replet28
_timeout15#Lt h45rep>457U4T
/3>4d*ad/ Furto3o33a1erddddddddd* Silhnce PROVE_RCUd/33evf13a 32his cl"+asr1pre33evf>331r4572lertime45ine97129432" c>3281st-ph45ine>457 to aqr rfr-queu8 pre3162erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4573lertime45">>1 twc9actile77led>fro45">>>4573_next_naskol>>1 t9i1_rest>
rcu_read_r1g=9o734829" cla73rcu_read_r1g=snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054574lertime45 >>5#L1 (w/
/3rc20r7d_rq45 >>>457419ot3stati7a>>1 t9i1_rest>
__2et_t74o_cpu203o>>1231ine>3__2et_t74o_cpusnr1gswitches"+pr331idle203o>>1231ine>3idlesnr1t f"2">>1 t9i1_recpu203o>>1231ine>3cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"20545=5lertime45cular/hreplet28
15 new3e45cul>45752> =>
a1" 9">>1 t9i1_rest>
rcu_read_t>
id4s_timeoutaom itrcu_read_t>
id4snr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054576lertime45ick()>135>ss="e*qr new3e45ick>45762> =r1perf_evf13_2ag=9o7> =>
a1"2054577lertime45rr_RUaled. >tsisqr new3e45rr_>45772> =>
a1" 9"f"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
curr203o>>1231ine>3currsnr1eev= 77>1t+rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1eev= 77>1t+idle203o>>1231ine>3idlesnr1sr1perf_evf13_2ag=9o7> =>
a1"2054578lertime45* 
/3>4ruptibleaqr new3e45* 
>457k_nex#if>28
_kileable961defbleds_timeoutaom itdefbledsnr1gswitches"+pr331CONFIG_SMP3DULE_TIMEOUTssCONFIG_SMPsnr1)r1perf_evf13_2ag=9o7> =>
a1"20545=9lertime45p. I 7st > 79f+*qr new3e45p. >4579_next_naskol>>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
on_cpu203o>>1231ine>3on_cpusnr1eev1sr1perf_evf13_2ag=9o7> =>
a1"205458ilertime45 0achshrepleteds of driv45 0a>4580   c#endifr1perf_evf13_2ag=9o7> =>
a1"2054581lertime45pt_ena ac()r522>k!faaccl45pt_>4581_next_naskol>>1 t9i1_rest>
raw_spin_t>
id4_irqrest
a1sss*>122ass="naraw_spin_t>
id4_irqrest
a1snr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>

id4s_timeoutaom it
id4snr1t f"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054582lertime45axssr9o71_pcorenaxr1g=t>45axs>45812> =>
a1" 9"t>>>140
3252erd*ad/32it4583lertime45"203o>>132lin>32/5ode=lo45"20>4583_next_naskol>cka andonc_cdsc3253er/* Set the preempt count _outside_ the spin
id4s!d*ad/33evf13a 32his cl"+asr1pre33evf>331r4584lertime45ASK_INTERRUPTIBLEsk_et h45ASK>458419ot3stati7a>>1 t9i1_rest>
t74o_thread_infosss*>122ass="nat74o_thread_infosnr1gswitches"+pr331idle203o>>1231ine>3idlesnr1)ef"2">>1 t9i1_rest>
preempt_counts_timeoutaom itpreempt_countsnr1eev0sr1perf_evf13_2ag=9o7> =>
a1"2054585lertime45k_le97sERESTARTSYSr1g=t>45k_l>45852> =r1perf_evf13_2ag=9o7> =>
a1"2054586lertime45utaom its/ru*    cr1g= h45uta>45812> =>
a1" 9">cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4587lertime458,
a href="+20KERN_Et0ck458,
>458ler func1f13>135>ss="3237erddddddddd* The idle ticks have their own, simple 1pre3  sng c>122:d/33evf13a 32his cl"+asr1pre33evf>331r4588lertime45/er5erru32  c>32/ef="+>r45/er>458    ck12o32w>122ass="3238erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4589lertime4528
_
/3>4ruptible15#Lt h4528
>4589_next_naskol>>1 t9i1_rest>
idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ = 7naref"2">>1 t9i1_reidle_ru*  _timeosss*>122ass="naidle_ru*  _timeo9ik_sr1perf_evf13_2ag=9o7> =>
a1"205459ilertime45e" namtio32dd >328switch45e" >459u_next_naskol>>1 t9i1_rest>
ftrace_graph_init_idle_hick203o>>1231ine>3ftrace_graph_init_idle_hicksnr1gswitches"+pr331idle203o>>1231ine>3idlesnr1t f"2">>1 t9i1_recpu203o>>1231ine>3cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054591lertime45pt_ena ac()r5le77led>fro45pt_>4591_nex#if>28
_kileable961defbleds_timeoutaom itdefbledsnr1gswitches"+pr331CONFIG_SMP3DULE_TIMEOUTssCONFIG_SMPsnr1)r1perf_evf13_2ag=9o7> =>
a1"2054592lertime458
 (w/(to,
/3rcc20r7d_rq458
 >45922> =>
a1" 9"t>
id4sp32s1erdspr3nrf203o>>1231ine>3spr3nrfsnr1gswitches"+pr331idle203o>>1231ine>3idlesnr1ef"2">>1 t9i1_rest>
5omssss*>122ass="na5omssnr1t>2cka andonc_chresngs>"%s/%d"d/33evft f"2">>1 t9i1_reINIT_TASK_COMMsss*>122ass="naINIT_TASK_COMMsnr1t f"2">>1 t9i1_recpu203o>>1231ine>3cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054593lertime45cular/hreplet28
15 new3e45cul>4591t+cn#endifr1perf_evf13_2ag=9o7> =>
a1"2054594lertime45val
p in jiffiesqr new3e45val>459419otL12> =>
a1" 9"t>3324erd*ad/33nam4595lertime45mpty hre74o"do aqr new3e45mpt>45952> =r1perf_evf13_2ag=9o7> =>
a1"2054596lertime45_RUaled o>/fo>/aqr new3e45_RU>45912> =#ifdef>28
_kileable961CONFIG_SMP3DULE_TIMEOUTssCONFIG_SMPsnr1r1perf_evf13_2ag=9o7> =>
a1"2054597lertime45t isrin jiffies.qr new3e45t i>45972> =voidl>>1 t9i1_rest>
do_2et_cpus_alloweds_timeoutaom itdo_2et_cpus_allowedsnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_, const hreplet28
_kileable961cpum74o203o>>1231ine>3cpum74oeable15#L9>rq>20
a hrnew_m74o203o>>1231ine>3new_m74osnr1)r1perf_evf13_2ag=9o7> =>
a1"2054598lertime45ick()>135>ss="+*qr new3e45ick>45982> =>
a1" 9"t>
id4sp3304erd*ad/33db*4599lertime45 0achs2imed out,qr new3e45 0a>4599_next_naskol32a9switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ 7nare7nare t>
id4sp32s1erdps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
2et_cpus_alloweds_timeoutaom it2et_cpus_allowedsnr1)r1perf_evf13_2ag=9o7> =>
a1"205463ilertime463ilehs2imed out,qr new3e463il>460u_next_naskol>
a1" 9">>1 t9i1_rest>
ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
ru*  _timeosss*>122ass="naru*  _s*>129ik_ef"2">>1 t9i1_rest>
2et_cpus_alloweds_timeoutaom it2et_cpus_allowedsnr1gswitches"+pr331ps_timeoutaom itp9ik_, switches"+pr331new_m74o203o>>1231ine>3new_m74osnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054601lertime463t_ena ac()r5le77led>fro463t_>46012> =>
a1" 9"t>>>140
3271erd*ad/32" 4632lertime463
 (w/(to,
/3rcc20r7d_rq463
 >46022> =>
a1" 9"t>
id4sp32s1erdcpum74o_copy203o>>1231ine>3cpum74o_copysnr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
5pus_alloweds_timeoutaom itcpus_allowedsnr1, switches"+pr331new_m74o203o>>1231ine>3new_m74osnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054603lertime463ular/hreplet28
15 new3e463ul>4603_next_naskol>>1 t9i1_rest>
ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
nr_cpus_alloweds_timeoutaom itnr_cpus_allowedsnr1eev= 77>1t+cpum74o_weight203o>>1231ine>3cpum74o_weightsnr1gswitches"+pr331new_m74o203o>>1231ine>3new_m74osnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054604lertime463al
p in jiffiesqr new3e463al>460419otL12> =>
a1" 9"t>3324erd*ad/33nam4635lertime463pty hre74o"do aqr new3e463pt>46052> =r1perf_evf13_2ag=9o7> =>
a1"2054636lertime463RUaled o>/fo>/aqr new3e463RU>46062> =5cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4637lertime463 isrin jiffies.qr new3e463 i>460ler func1f13>135>ss="3237erd* This is how migration work2:d/33evf13a 32his cl"+asr1pre33evf>331r4608lertime463ck()>135>ss="+*qr new3e463ck>460    ck12o32w>122ass="3238erd*d/33evf13a 32his cl"+asr1pre33evf>331r4609lertime4630achs2imed out,qr new3e4630a>460    ck12o32w>122ass="3239erd*a1) we invoke migration_cpu_hrop() o2ht331r461ilertime46:122ass="namte_*qr new3e46:12>4610   ck12o32w>122ass="3239erd*a 9"hrop_one_cpu()e (at least 1, o>/numb0r of jiffies lef46:1lertime46>5#L1 (kileablec20r7d_rq46>5#>461U4T
/3>4d*ad/ Furto3o33a1erd* 2)"hropper starts to run (implicitly forcsng the migrated threadsnat least 1, o>/numb0r of jiffies lef46:2lertime46cular/hreplet28
15 new3e46cul>461 to aqr rfr-queu8 pre3162erd*aaaaoffrt/numb0r of jiffies lef46:3lertime464">>1 twc9activ915 new3e464">>461re 205cka andonc_cdsc3253erd*a3) it checks whether the migrated tick is stillli2ht/numb0r of jiffies lef4614lertime46"5#L1. >tshrefb715 new3e46"5#>461419ot5cka andonc_cdsc3253erd* 4)l32ait's i2ht/numb0r of jiffies lef46:5lertime46y >>kilerr_RUals of driv46y >>4610n_u>5cka andonc_cdsc3253erd*akol3t and puts 3t 3nro the right queuee (at least 1, o>/numb0r of jiffies lef4616lertime46ick()>135>ss="e*qr new3e46ick>46162> =5cka andonc_cdsc3253erd* 5)"hropper dscpleteshand hrop_one_cpu()longsl2shand the migratio2 (at least 1, o>/numb0r of jiffies lef4617lertime46 0achshrepleteds of driv46 0a>461ler func1f13>135>ss="3237erd*akol3s donee (at least 1, o>/numb0r of jiffies lef4618lertime46ck()>135>ss="+*>k!faaccl46ck(>461    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4619lertime46axssr9o71_pcorenaxr1g=t>46axs>4619_nexr1perf_evf13_2ag=9o7> =>
a1"205462ilertime463b">TAIN33olo>331r9o77lo463b">4620   ck12o32w>122ass="3239er/*d/33evf13a 32his cl"+asr1pre33evf>331r4621lertime46renaTASK_KILLABLE15#Lt h46ren>462U4T
/3>4d*ad/ Furto3o33a1erd* Changerargiven tick's CPU affinity. Migrateht331r4622lertime46k_le97sERESTARTSYSr1g=t>46k_l>462 to aqr rfr-queu8 pre3162erd*aproper CPU and hpre3  el3t awayl32at/numb0r of jiffies lef4623lertime46utaom its/ru*    cr1g= h46uta>462re 205cka andonc_cdsc3253erd*a3s removed fromat/numb0r of jiffies lef4624lertime462>140
93t4 <97KERN_Et0ck462>1>462419ot5cka andonc_cdsc3253erd* (at least 1, o>/numb0r of jiffies lef4625lertime46"2056>>133nam>33p209612946"20>4620n_u>5cka andonc_cdsc3253erd*aNOTE:athe caller must have a valid reeechnce ro the tick, thed/33evf13a 32his cl"+asr1pre33evf>331r4626lertime462053ula_d322nr>322829" c46205>46262> =5cka andonc_cdsc3253erd* tick must not exit()l7nare deallocatehitself premagslely. Thed/33evf13a 32his cl"+asr1pre33evf>331r4627lertime46a129ck_le97sted>froe28
h46a12>462ler func1f13>135>ss="3237erd*acalla3s not atomic; no spin
id4s maylbe helde (at least 1, o>/numb0r of jiffies lef4628lertime461294>7>
aq_76rtamtr1g=t>46129>462    ck12o32w>122ass="3238erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4629lertime46namtioL132all>322 remolo46nam>462    c3nr_switches"+pr3312et_cpus_allowed_ptr203o>>1231ine>3set_cpus_allowed_ptrsnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_, const hreplet28
_kileable961cpum74o203o>>1231ine>3cpum74oeable15#L9>rq>20
a hrnew_m74o203o>>1231ine>3new_m74osnr1)r1perf_evf13_2ag=9o7> =>
a1"205463ilertime46aq_76mighA_dleep20"19t h46aq_>463u_nex>
a1" 9"t>
id4sp3304erd*ad/33db*4631lertime46h0"1nelkw32s* >323 >128h46h0">4631_next_naskolunsigne2 longvswitches"+pr331flagssss*>122ass="naflags9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054632lertime46asr1perf_evf13_2ask_et h46asr>46322> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054633lertime46294>7>
aq_76rtamtr1g=t h46294>4633_next_naskolunsigne2 3nr_switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1sr1perf_evf13_2ag=9o7> =>
a1"2054634lertime46asr1perf_evf13_2ask_et h46asr>463419ot3stati7a3nr_switches"+pr331ongsss*>122ass="naretsnr1eev0sr1perf_evf13_2ag=9o7> =>
a1"20546a5lertime46its/ru*    cimeoutr1g= h46its>46352> =r1perf_evf13_2ag=9o7> =>
a1"2054636lertime460shre3=732ss=>323witch>r460sh>46312> =>
a1" 9"switches"+pr331rqsss*>122ass="narqsnr1eev= 77>1t+t74o_rq_r1g=9o734829" cla73t74o_rq_r1g=snr1gswitches"+pr331ps_timeoutaom itp9ik_, 7naref"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"20546a7lertime46lvea13b">32LIN>323Thenma46lve>463ler fr1perf_evf13_2ag=9o7> =>
a1"20546a8lertime463>5 >1231ine>3cpum74o_equalsnr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
5pus_alloweds_timeoutaom itcpus_allowedsnr1, switches"+pr331new_m74o203o>>1231ine>3new_m74osnr1))r1perf_evf13_2ag=9o7> =>
a1"2054639lertime46let28
 of >>5#L17led>fro46let>46392> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outsnr1sr1perf_evf13_2ag=9o7> =>
a1"205464ilertime46cular/hreplet28
15 new3e46cul>464u_nexr1perf_evf13_2ag=9o7> =>
a1"2054641lertime46mpty hre74o"do aqr new3e46mpt>4641_next_naskol32a9!switches"+pr331cpum74o_3nrersectssss*>122ass="nacpum74o_3nrersectssnr1gswitches"+pr331new_m74o203o>>1231ine>3new_m74osnr1t f"2">>1 t9i1_recpu_active_m74o203o>>1231ine>3cpu_active_m74osnr1)) >
a1" 9"t>
id4sp3304erd*ad/33db*4642lertime46"5#L1. >tsisrNOTqr new3e46"5#>464219ot3stati7at>>>140
twitches"+pr331ongsss*>122ass="naretsnr1eev-k>1 t9i1_rest>
1INVA33DULE_TIMEOUTss1INVA3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054643lertime46aris/RU cimeoutaqr new3e46ari>46432> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054644lertime46est possi acao>
qr new3e46est>464419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4645lertime46())twith"1imeoutr1 new3e46())>46452> =r1perf_evf13_2ag=9o7> =>
a1"2054646lertime46 se0 hreplete()aqr new3e46 se>4646_next_naskol32a9switches"+pr331unlikely203o>>1231ine>3unlikelysnr1g9switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
flagssss*>122ass="naflags9ik_e7nare t>
id4sp32s1erdPF_THREAD_BOUNDsss*>122ass="naPF_THREAD_BOUNDsnr1) 7nare7nare t>
id4sp32s1erdps_timeoutaom itp9ik_ !ev= 77>1t+cur#L14s_timeoutaom itcur#L14snr1)) >
a1" 9"t>
id4sp3304erd*ad/33db*4647lertime46>>140
t>
id4ss3197erdongsss*>122ass="naretsnr1eev-k>1 t9i1_rest>
1INVA33DULE_TIMEOUTss1INVA3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054648lertime46axssr9o71_pcorenaxr1g=t>46axs>46482> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
out203o>>1231ine>3outsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054649lertime46 Pick up32ru*>324 remolo46 Pi>464919ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam465ilertime46K_UNINTERRUPTIBLEsk_et h46K_U>465u_nexr1perf_evf13_2ag=9o7> =>
a1"2054651lertime46725329" 32
p2>3251////>r46725>4651_next_naskol>>1 t9i1_rest>
do_2et_cpus_alloweds_timeoutaom itdo_2et_cpus_allowedsnr1gswitches"+pr331ps_timeoutaom itp9ik_, switches"+pr331new_m74o203o>>1231ine>3new_m74osnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054652lertime46it_fo>chreplet28
15#Lt h46it_>46512> =>
a1" 9"t>>>140
3252erd*ad/32it4653lertime46ck_next_n32itr>325()-5im46ck_>4653_next_naskol>cka andonc_cdsc3253er/* Can the tick run on the tick's cur#L14 CPU? If so, we'f> doned*ad/33evf13a 32his cl"+asr1pre33evf>331r4654lertime46st possi acaole77led>fro46st >465419ot3stati7a32a9switches"+pr331cpum74o_test_cpu203o>>1231ine>3cpum74o_test_cpusnr1gswitches"+pr331t74o_cpu203o>>1231ine>3t74o_cpusnr1gswitches"+pr331ps_timeoutaom itp9ik_)t f"2">>1 t9i1_renew_m74o203o>>1231ine>3new_m74osnr1))r1perf_evf13_2ag=9o7> =>
a1"2054655lertime465#L1 (w/timeoutc20r7d_rq465#L>4655_next_naskol>
a1" 9"goto >>1 t9i1_rest>
out203o>>1231ine>3outsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054656lertime46cular/hreplet28
15 new3e46cul>46562> =r1perf_evf13_2ag=9o7> =>
a1"2054657lertime46val
p in jiffiesqr new3e46val>46572> =>
a1" 9"f"2">>1 t9i1_redest_cpu203o>>1231ine>3dest_cpusnr1eev= 77>1t+cpum74o_any_ands_timeoutaom itcpum74o_any_andsnr1gswitches"+pr331cpu_active_m74o203o>>1231ine>3cpu_active_m74osnr1, switches"+pr331new_m74o203o>>1231ine>3new_m74osnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054658lertime46ick()>135>ss="+*qr new3e46ick>465k_next_naskol32a9switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
on_rqsss*>122ass="naon_rqsnr1) >
a1" 9"t>
id4sp3304erd*ad/33db*4659lertime46_RUaled o>/fo>/aqr new3e46_RU>46592> =>
a1" 9"t>>>140
hreplet28
_kileable961migration_args_timeoutaom itmigration_arg2> =>28
_kileable961args_timeoutaom itarg2> =>= { t>
id4sp32s1erdps_timeoutaom itp9ik_, switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1e}sr1perf_evf13_2ag=9o7> =>
a1"205466ilertime46ffies. >tsisrnod7led>fro46ffi>466u_next_naskol>
a1" 9">cka andonc_cdsc3253er/* Need help fromamigratio2ht331r4661lertime467"
/3>4ruptibleaqr new3e467"
>4661_next_naskolt_naskol>>1 t9i1_rest>
t74o_rq_t>
id4s_timeoutaom itt74o_rq_t>
id4snr1gswitches"+pr331rqsss*>122ass="narqsnr1, switches"+pr331ps_timeoutaom itp9ik_, 7naref"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054662lertime46" nr_switches"+*15 new3e46" n>466219ot3stati7at>>>140
twitches"+pr331hrop_one_cpu203o>>1231ine>3srop_one_cpusnr1gswitches"+pr331cpu_of203o>>1231ine>3cpu_ofsnr1gswitches"+pr331rqsss*>122ass="narqsnr1)t f"2">>1 t9i1_remigration_cpu_hrops_timeoutaom itmigration_cpu_hrop9ik_, 7naref"2">>1 t9i1_reargs_timeoutaom itarg2> =)sr1perf_evf13_2ag=9o7> =>
a1"2054663lertime46 1, o>/numb0r of15 new3e46 1,>46632> =>
a1" 9"t>>>140
>>1 t9i1_rest>
tlb_migrate_finishs_timeoutaom ittlb_migrate_finishsnr1gswitches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
mssss*>122ass="namssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054664lertime46tcachshrepleteds of driv46tca>466419ot3stati7a> *
a h,ongsl2v0sr1perf_evf13_2ag=9o7> =>
a1"2054665lertime46pty hre74o"do a>k!faaccl46pty>4665_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4666lertime46a129ck_le97sted>froe28
h46a12>46662> =5>1 t9i1_rest>
out203o>>1231ine>3outsnr1:12> =>
a1" 9"t>3324erd*ad/33nam4667lertime46its/ru*    cimeoutr1g=th46its>46672> =>
a1" 9"f"2">>1 t9i1_ret74o_rq_t>
id4s_timeoutaom itt74o_rq_t>
id4snr1gswitches"+pr331rqsss*>122ass="narqsnr1, switches"+pr331ps_timeoutaom itp9ik_, 7naref"2">>1 t9i1_reflagssss*>122ass="naflags9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054668lertime460
6>>12832 (
>326r s20lo460
6>466    cr1perf_evf13_2ag=9o7> =>
a1"2054669lertime46K_UNINTERRUPTIBLEsk_et h46K_U>46692> =>
a1" 9"ongsl2vt>
id4ss3197erdongsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"205467ilertime46=>
a1" 932>tc>326>>128>r46=>
>4670   cL12> =>
a1" 9"t>3324erd*ad/33nam4671lertime46replet28
_timeout15#Lt h46rep>467U4T
/3>1 t9i1_rest>
1XPORT_SYMBOL_GP33DULE_TIMEOUTss1XPORT_SYMBOL_GP3snr1gswitches"+pr3312et_cpus_allowed_ptr203o>>1231ine>3set_cpus_allowed_ptrsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054672lertime46ine97129432" c>3281st-ph46ine>46712> =>
a1" 9"t>>>140
3252erd*ad/32it4673lertime46">>1 twc9actile77led>fro46">>>467re 205cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4674lertime46 >>5#L1 (w/
/3rc20r7d_rq46 >>>467419ot5cka andonc_cdsc3253erd* Move (not cur#L14) tick offrt dosngd/33evf13a 32his cl"+asr1pre33evf>331r46=5lertime46cular/hreplet28
15 new3e46cul>4670n_u>5cka andonc_cdsc3253erd*at any mvf> (set_cpus_allowed()snat least 1, o>/numb0r of jiffies lef4676lertime46ick()>135>ss="e*qr new3e46ick>46762> =5cka andonc_cdsc3253erd* awaylfromatsnat least 1, o>/numb0r of jiffies lef4677lertime46rr_RUaled. >tsisqr new3e46rr_>467ler func1f13>135>ss="3237erd*aattemptsng to"onbalance r/numb0r of jiffies lef4678lertime46* 
/3>4ruptibleaqr new3e46* 
>467    ck12o32w>122ass="3238erd*d/33evf13a 32his cl"+asr1pre33evf>331r46=9lertime46p. I 7st > 79f+*qr new3e46p. >467    ck12o32w>122ass="3239erd*aSo we race with normal hpre3  er move3239s, but that's OK, as longd/33evf13a 32his cl"+asr1pre33evf>331r468ilertime46 0achshrepleteds of driv46 0a>4680   ck12o32w>122ass="3239erd*aas the tick 3s no longer o2ht/numb0r of jiffies lef4681lertime46pt_ena ac()r522>k!faaccl46pt_>468U4T
/3>4d*ad/ Furto3o33a1erd* (at least 1, o>/numb0r of jiffies lef4682lertime46axssr9o71_pcorenaxr1g=t>46axs>468 to aqr rfr-queu8 pre3162erd*aRngsl2shnon-zerol32atick was successfully migratede (at least 1, o>/numb0r of jiffies lef4683lertime46"203o>>132lin>32/5ode=lo46"20>468re 205cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4684lertime46ASK_INTERRUPTIBLEsk_et h46ASK>468419ot2tatica3nr_switches"+pr331__migrate_hick203o>>1231ine>3__migrate_hicksnr1ghreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrps_timeoutaom itp9ik_, 3nr_switches"+pr3312rc_cpu203o>>1231ine>3src_cpu9ik_, 3nr_switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1)r1perf_evf13_2ag=9o7> =>
a1"2054685lertime46k_le97sERESTARTSYSr1g=t>46k_l>46852> =>
a1" 9"t>
id4sp3304erd*ad/33db*4686lertime46utaom its/ru*    cr1g= h46uta>46812> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rq_destsss*>122ass="narq_dest9ik_, *28
_kileable961rq_srcsss*>122ass="narq_srcsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054687lertime468,
a href="+20KERN_Et0ck468,
>46872> =>
a1" 9"3nr_switches"+pr331ongsss*>122ass="naretsnr1eev0sr1perf_evf13_2ag=9o7> =>
a1"2054688lertime46/er5erru32  c>32/ef="+>r46/er>468    cr1perf_evf13_2ag=9o7> =>
a1"2054689lertime4628
_
/3>4ruptible15#Lt h4628
>4689_next_naskol32a9switches"+pr331unlikely203o>>1231ine>3unlikelysnr1g!switches"+pr331cpu_active203o>>1231ine>3cpu_activesnr1gswitches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1)))r1perf_evf13_2ag=9o7> =>
a1"205469ilertime46e" namtio32dd >328switch46e" >469u_next_naskol>
a1" 9"ongsl2vt>
id4ss3197erdongsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054691lertime46pt_ena ac()r5le77led>fro46pt_>46912> =>
a1" 9"t>>>140
3271erd*ad/32" 4692lertime468
 (w/(to,
/3rcc20r7d_rq468
 >46922> =>
a1" 9"t>
id4sp32s1erdrq_srcsss*>122ass="narq_srcsnr1eev= 77>1t+cpu_rqsss*>122ass="nacpu_rqsnr1gswitches"+pr3312rc_cpu203o>>1231ine>3src_cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054693lertime46cular/hreplet28
15 new3e46cul>4693_next_naskol>>1 t9i1_rest>
rq_destsss*>122ass="narq_dest9ik_eev= 77>1t+cpu_rqsss*>122ass="nacpu_rqsnr1gswitches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054694lertime46val
p in jiffiesqr new3e46val>469 to ar1perf_evf13_2ag=9o7> =>
a1"2054695lertime46mpty hre74o"do aqr new3e46mpt>46952> =>
a1" 9">>1 t9i1_rest>
raw_spin_
id4sss*>122ass="naraw_spin_
id4snr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
pi_
id4sss*>122ass="napi_
id4snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054696lertime46_RUaled o>/fo>/aqr new3e46_RU>46912> =>
a1" 9"switches"+pr331double_rq_r1g=9o734829" cla73double_rq_r1g=snr1gswitches"+pr331rq_srcsss*>122ass="narq_srcsnr1, switches"+pr331rq_destsss*>122ass="narq_dest9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054697lertime46t isrin jiffies.qr new3e46t i>46972> =>
a1" 9"fcka andonc_cdsc3253er/* Already moved.d*ad/33evf13a 32his cl"+asr1pre33evf>331r4698lertime46ick()>135>ss="+*qr new3e46ick>469k_next_naskol32a9switches"+pr331t74o_cpu203o>>1231ine>3t74o_cpusnr1gswitches"+pr331ps_timeoutaom itp9ik_) !ev= 77>1t+2rc_cpu203o>>1231ine>3src_cpu9ik_)13a 32his cl"+asr1pre33evf>331r4699lertime46 0achs2imed out,qr new3e46 0a>46992> =>
a1" 9"t>>>140
goto >>1 t9i1_rest>
done9o734829" cla73donesnr1sr1perf_evf13_2ag=9o7> =>
a1"205473ilertime473ilehs2imed out,qr new3e473il>470u_next_naskolfcka andonc_cdsc3253er/* Affinity changed (again).d*ad/33evf13a 32his cl"+asr1pre33evf>331r4701lertime473t_ena ac()r5le77led>fro473t_>4701_next_naskol32a9!switches"+pr331cpum74o_test_cpu203o>>1231ine>3cpum74o_test_cpusnr1gswitches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1, switches"+pr331t4o_cpus_alloweds_timeoutaom itt4o_cpus_allowedsnr1gswitches"+pr331ps_timeoutaom itp9ik_)))r1perf_evf13_2ag=9o7> =>
a1"2054732lertime473
 (w/(to,
/3rcc20r7d_rq473
 >470219ot3stati7at>>>140
goto >>1 t9i1_rest>
failsss*>122ass="nafailsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054733lertime473ular/hreplet28
15 new3e473ul>4703_nexr1perf_evf13_2ag=9o7> =>
a1"2054734lertime473al
p in jiffiesqr new3e473al>4704_next_naskolfcka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4705lertime473pty hre74o"do aqr new3e473pt>4700n_u>5cka andonc_cdsc3253erddddddddd* If we'f> not on a rq, the next wake-up willlensure we'f>snat least 1, o>/numb0r of jiffies lef4736lertime473RUaled o>/fo>/aqr new3e473RU>47062> =5cka andonc_cdsc3253erddddddddd* placed properlye (at least 1, o>/numb0r of jiffies lef4737lertime473 isrin jiffies.qr new3e473 i>470ler func1f13>135>ss="3237erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4708lertime473ck()>135>ss="+*qr new3e473ck>470k_next_naskol32a9switches"+pr331ps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
on_rqsss*>122ass="naon_rqsnr1) >
a1" 9"t>
id4sp3304erd*ad/33db*4709lertime4730achs2imed out,qr new3e4730a>47092> =>
a1" 9"t>>>140
switches"+pr331dequeue_hick203o>>1231ine>3dequeue_hicksnr1gswitches"+pr331rq_srcsss*>122ass="narq_srcsnr1, switches"+pr331ps_timeoutaom itp9ik_, 0)sr1perf_evf13_2ag=9o7> =>
a1"205471ilertime47:122ass="namte_*qr new3e47:12>471u_next_naskol>
a1" 9">>1 t9i1_rest>
2et_t74o_cpu203o>>1231ine>32et_t74o_cpusnr1gswitches"+pr331ps_timeoutaom itp9ik_, switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054711lertime47>5#L1 (kileablec20r7d_rq47>5#>4711_next_naskolt_naskol>>1 t9i1_rest>
enqueue_hick203o>>1231ine>3enqueue_hicksnr1gswitches"+pr331rq_destsss*>122ass="narq_dest9ik_, switches"+pr331ps_timeoutaom itp9ik_, 0)sr1perf_evf13_2ag=9o7> =>
a1"2054712lertime47cular/hreplet28
15 new3e47cul>471219ot3stati7at>>>140
twitches"+pr331check_preempt_curr203o>>1231ine>3check_preempt_currsnr1gswitches"+pr331rq_destsss*>122ass="narq_dest9ik_, switches"+pr331ps_timeoutaom itp9ik_, 0)sr1perf_evf13_2ag=9o7> =>
a1"2054713lertime474">>1 twc9activ915 new3e474">>4713_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4714lertime47"5#L1. >tshrefb715 new3e47"5#>471419ot5>1 t9i1_rest>
done9o734829" cla73donesnr1:12> =>
a1" 9"t>3324erd*ad/33nam47:5lertime47y >>kilerr_RUals of driv47y >>47152> =>
a1" 9">>1 t9i1_rest>
rngsss*>122ass="naretsnr1eev1sr1perf_evf13_2ag=9o7> =>
a1"2054716lertime47ick()>135>ss="e*qr new3e47ick>47162> =5>1 t9i1_rest>
failsss*>122ass="nafailsnr1:12> =>
a1" 9"t>3324erd*ad/33nam47:7lertime47 0achshrepleteds of driv47 0a>47172> =>
a1" 9"f"2">>1 t9i1_redouble_rq_t>
id4s_timeoutaom itdouble_rq_t>
id4snr1gswitches"+pr331rq_srcsss*>122ass="narq_srcsnr1, switches"+pr331rq_destsss*>122ass="narq_dest9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054718lertime47ck()>135>ss="+*>k!faaccl47ck(>471k_next_naskol>>1 t9i1_rest>
raw_spin_t>
id4sss*>122ass="naraw_spin_t>
id4snr1g7naref"2">>1 t9i1_reps_timeoutaom itp9ik_ef"2">>1 t9i1_rest>
pi_
id4sss*>122ass="napi_
id4snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054719lertime47axssr9o71_pcorenaxr1g=t>47axs>47192> =>
a1" 9"ongsl2vt>
id4ss3197erdongsss*>122ass="naretsnr1sr1perf_evf13_2ag=9o7> =>
a1"205472ilertime473b">TAIN33olo>331r9o77lo473b">4720   cL12> =>
a1" 9"t>3324erd*ad/33nam4721lertime47renaTASK_KILLABLE15#Lt h47ren>47212> =>
a1" 9"t>>>140
3271erd*ad/32" 4722lertime47k_le97sERESTARTSYSr1g=t>47k_l>472 to aqr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4723lertime47utaom its/ru*    cr1g= h47uta>472re 205cka andonc_cdsc3253erd*amigration_cpu_hrop -ht/numb0r of jiffies lef4724lertime472>140
93t4 <97KERN_Et0ck472>1>472419ot5cka andonc_cdsc3253erd* and performs t/numb0r of jiffies lef4725lertime47"2056>>133nam>33p209612947"20>4720n_u>5cka andonc_cdsc3253erd*a'pushsng' onto another runqueuee (at least 1, o>/numb0r of jiffies lef4726lertime472053ula_d322nr>322829" c47205>47262> =5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4727lertime47a129ck_le97sted>froe28
h47a12>472ler f2tatica3nr_switches"+pr331migration_cpu_hrops_timeoutaom itmigration_cpu_hrop9ik_(voidl*28
_kileable961datas_timeoutaom itdata9ik_)13a 32his cl"+asr1pre33evf>331r4728lertime471294>7>
aq_76rtamtr1g=t>47129>47282> =>
a1" 9"t>
id4sp3304erd*ad/33db*4729lertime47namtioL132all>322 remolo47nam>47292> =>
a1" 9"hreplet28
_kileable961migration_args_timeoutaom itmigration_arg2> =>*28
_kileable961args_timeoutaom itarg2> =>= 28
_kileable961datas_timeoutaom itdata9ik_sr1perf_evf13_2ag=9o7> =>
a1"205473ilertime47aq_76mighA_dleep20"19t h47aq_>473u_nexr1perf_evf13_2ag=9o7> =>
a1"2054731lertime47h0"1nelkw32s* >323 >128h47h0">4731_next_naskolqr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4732lertime47asr1perf_evf13_2ask_et h47asr>473 to aqr rfr-queu8 pre3162erddddddddd* The original target cpu might have goneddown and we mightd/33evf13a 32his cl"+asr1pre33evf>331r4733lertime47294>7>
aq_76rtamtr1g=t h47294>473re 205cka andonc_cdsc3253erddddddddd* be on another cpu but it doesn't mattere (at least 1, o>/numb0r of jiffies lef4734lertime47asr1perf_evf13_2ask_et h47asr>473419ot5cka andonc_cdsc3253erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r47a5lertime47its/ru*    cimeoutr1g= h47its>47352> =>
a1" 9">>1 t9i1_rest>
local_irq_disable203o>>1231ine>3local_irq_disable9ik_()sr1perf_evf13_2ag=9o7> =>
a1"2054736lertime470shre3=732ss=>323witch>r470sh>47312> =>
a1" 9"switches"+pr331__migrate_hick203o>>1231ine>3__migrate_hicksnr1g28
_kileable961args_timeoutaom itarg2> =ef"2">>1 t9i1_rest>
hick203o>>1231ine>3t74osnr1, switches"+pr331raw_smp_processor_ids_timeoutaom itraw_smp_processor_id9ik_(), switches"+pr331args_timeoutaom itarg2> =ef"2">>1 t9i1_rest>
dest_cpu203o>>1231ine>3dest_cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"20547a7lertime47lvea13b">32LIN>323Thenma47lve>47372> =>
a1" 9"f"2">>1 t9i1_relocal_irq_enable203o>>1231ine>3local_irq_enable9ik_()sr1perf_evf13_2ag=9o7> =>
a1"2054738lertime473>5 >5#L17led>fro47let>47392> =L12> =>
a1" 9"t>3324erd*ad/33nam474ilertime47cular/hreplet28
15 new3e47cul>474u_nexr1perf_evf13_2ag=9o7> =>
a1"2054741lertime47mpty hre74o"do aqr new3e47mpt>4741_nex#ifdef>28
_kileable961CONFIG_HOTPLUG_CPU203o>>1231ine>3CONFIG_HOTPLUG_CPU_nexr1perf_evf13_2ag=9o7> =>
a1"2054742lertime47"5#L1. >tsisrNOTqr new3e47"5#>47412> =>
a1" 9"t>>>140
3252erd*ad/32it4743lertime47aris/RU cimeoutaqr new3e47ari>474re 205cka andonc_cdsc3253er/*d/33evf13a 32his cl"+asr1pre33evf>331r4744lertime47est possi acao>
qr new3e47est>474419ot5cka andonc_cdsc3253erd* Ensures that the idle tick 3s ussng init_mm right befvf> itsacpu goes (at least 1, o>/numb0r of jiffies lef4745lertime47())twith"1imeoutr1 new3e47())>4740n_u>5cka andonc_cdsc3253erd*aoffmeoue (at least 1, o>/numb0r of jiffies lef4746lertime47 se0 hreplete()aqr new3e47 se>47462> =5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4747lertime47331r4748lertime47axssr9o71_pcorenaxr1g=t>47axs>47482> =>
a1" 9"t>
id4sp3304erd*ad/33db*4749lertime47 Pick up32ru*>324 remolo47 Pi>47492> =>
a1" 9"hreplet28
_kileable961mm_hreples_timeoutaom itmm_hreple2> =>*28
_kileable961mssss*>122ass="namssnr1eev= 77>1t+cur#L14s_timeoutaom itcur#L14snr1ef"2">>1 t9i1_rest>
active_mssss*>122ass="naactive_ms9ik_sr1perf_evf13_2ag=9o7> =>
a1"205475ilertime47K_UNINTERRUPTIBLEsk_et h47K_U>475u_nexr1perf_evf13_2ag=9o7> =>
a1"2054751lertime47725329" 32
p2>3251////>r47725>4751_next_naskol>>1 t9i1_rest>
BUG_ONsss*>122ass="naBUG_ONsnr1g28
_kileable961cpu_onp2>3253o>>1231ine>3cpu_onp2>3snr1gswitches"+pr3312mp_processor_ids_timeoutaom itsmp_processor_id9ik_()))sr1perf_evf13_2ag=9o7> =>
a1"2054752lertime47it_fo>chreplet28
15#Lt h47it_>47512> =>
a1" 9"t>>>140
3252erd*ad/32it4753lertime47ck_next_n32itr>325()-5im47ck_>4753_next_naskol32a9switches"+pr331mssss*>122ass="namssnr1e!= 7naref"2">>1 t9i1_reinit_mm203o>>1231ine>3init_mm9ik_)13a 32his cl"+asr1pre33evf>331r4754lertime47st possi acaole77led>fro47st >475419ot3stati7a> *
a h,switches"+pr3312witch_mm203o>>1231ine>32witch_mmsnr1gswitches"+pr331mssss*>122ass="namssnr1, 7naref"2">>1 t9i1_reinit_mm203o>>1231ine>3init_mm9ik_t f"2">>1 t9i1_recur#L14s_timeoutaom itcur#L14snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054755lertime475#L1 (w/timeoutc20r7d_rq475#L>47552> =>
a1" 9">>1 t9i1_rest>
mmdropsss*>122ass="namsdropsnr1gswitches"+pr331mssss*>122ass="namssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054756lertime47cular/hreplet28
15 new3e47cul>47562> =L12> =>
a1" 9"t>3324erd*ad/33nam4757lertime47val
p in jiffiesqr new3e47val>475ler fr1perf_evf13_2ag=9o7> =>
a1"2054758lertime47ick()>135>ss="+*qr new3e47ick>475    ck12o32w>122ass="3238er/*d/33evf13a 32his cl"+asr1pre33evf>331r4759lertime47_RUaled o>/fo>/aqr new3e47_RU>475    ck12o32w>122ass="3239erd*aSince r331r476ilertime47ffies. >tsisrnod7led>fro47ffi>4760   ck12o32w>122ass="3239erd*awe might have. Assumes we'f> called after migrate_hicks() so that thed/33evf13a 32his cl"+asr1pre33evf>331r4761lertime477"
/3>4ruptibleaqr new3e477"
>476U4T
/3>4d*ad/ Furto3o33a1erd* nr_active count is stablee (at least 1, o>/numb0r of jiffies lef4762lertime47" nr_switches"+*15 new3e47" n>476 to aqr rfr-queu8 pre3162erd* (at least 1, o>/numb0r of jiffies lef4763lertime47 1, o>/numb0r of15 new3e47 1,>476re 205cka andonc_cdsc3253erd*aAlso seeht calculations"e (at least 1, o>/numb0r of jiffies lef4764lertime47tcachshrepleteds of driv47tca>476419ot5cka andonc_cdsc3253erd*ad/33evf13a 32his cl"+asr1pre33evf>331r4765lertime47pty hre74o"do a>k!faaccl47pty>4765_nex2taticavoidl>>1 t9i1_rest>
calc_load_migrates_timeoutaom itcalc_load_migratesnr1ghreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1)13a 32his cl"+asr1pre33evf>331r4766lertime47a129ck_le97sted>froe28
h47a12>47662> =>
a1" 9"t>
id4sp3304erd*ad/33db*4767lertime47its/ru*    cimeoutr1g=th47its>47672> =>
a1" 9"longvswitches"+pr331delta203o>>1231ine>3delta9ik_eev= 77>1t+calc_load_fvld_active203o>>1231ine>3calc_load_fvld_activesnr1gswitches"+pr331rqsss*>122ass="narqsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054768lertime470
6>>12832 (
>326r s20lo470
6>476k_next_naskol32a9switches"+pr331delta203o>>1231ine>3delta9ik_)13a 32his cl"+asr1pre33evf>331r4769lertime47K_UNINTERRUPTIBLEsk_et h47K_U>47692> =>
a1" 9"t>>>140
switches"+pr331atomic_long_adds_timeoutaom itatomic_long_addsnr1gswitches"+pr331delta203o>>1231ine>3delta9ik_, 7naref"2">>1 t9i1_recalc_load_hicks203o>>1231ine>3calc_load_hickssnr1)sr1perf_evf13_2ag=9o7> =>
a1"205477ilertime47=>
a1" 932>tc>326>>128>r47=>
>4770   cL12> =>
a1" 9"t>3324erd*ad/33nam4771lertime47replet28
_timeout15#Lt h47rep>47712> =>
a1" 9"t>>>140
3271erd*ad/32" 4772lertime47ine97129432" c>3281st-ph47ine>477 to aqr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4773lertime47">>1 twc9actile77led>fro47">>>477re 205cka andonc_cdsc3253erd* Migratehallaticks fromat331r4774lertime47 >>5#L1 (w/
/3rc20r7d_rq47 >>>477419ot5cka andonc_cdsc3253erd* try_to_wake_up()ef"2"select_t74o_rq()e (at least 1, o>/numb0r of jiffies lef47=5lertime47cular/hreplet28
15 new3e47cul>4770n_u>5cka andonc_cdsc3253erd* (at least 1, o>/numb0r of jiffies lef47=6lertime47ick()>135>ss="e*qr new3e47ick>47762> =5cka andonc_cdsc3253erd* Called with rqef"2"iid4 held even though we'er in hrop_mach="e() andsnat least 1, o>/numb0r of jiffies lef47=7lertime47rr_RUaled. >tsisqr new3e47rr_>477ler func1f13>135>ss="3237erd*athere's no concur#L1cy possible, we hvld t/numb0r of jiffies lef47=8lertime47* 
/3>4ruptibleaqr new3e47* 
>477    ck12o32w>122ass="3238erd* because of iid4 validatio2heffvftse (at least 1, o>/numb0r of jiffies lef47=9lertime47p. I 7st > 79f+*qr new3e47p. >477    ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r478ilertime47 0achshrepleteds of driv47 0a>4780   c2taticavoidl>>1 t9i1_rest>
migrate_hickss_timeoutaom itmigrate_hickssnr1(unsigne2 3nr_switches"+pr331dead_cpu203o>>1231ine>3dead_cpu9ik_)13a 32his cl"+asr1pre33evf>331r4781lertime47pt_ena ac()r522>k!faaccl47pt_>478U4T
/>
a1" 9"t>
id4sp3304erd*ad/33db*4782lertime47axssr9o71_pcorenaxr1g=t>47axs>47822> =>
a1" 9"hreplet28
_kileable961rqsss*>122ass="narqsnr1e*28
_kileable961rqsss*>122ass="narqsnr1eev= 77>1t+cpu_rqsss*>122ass="nacpu_rqsnr1gswitches"+pr331dead_cpu203o>>1231ine>3dead_cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054783lertime47"203o>>132lin>32/5ode=lo47"20>47832> =>
a1" 9"hreplet28
_kileable961e74o_hreples_timeoutaom its74o_hrepleeable15#L9>rq>20
a hrnexts_timeoutaom itnext9ik_, 15#L9>rq>20
a hrhrops_timeoutaom ithrop9ik_eev= 77>1t+rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
2rops_timeoutaom ithrop9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054784lertime47ASK_INTERRUPTIBLEsk_et h47ASK>478419ot3stati7a3nr_switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1sr1perf_evf13_2ag=9o7> =>
a1"2054785lertime47k_le97sERESTARTSYSr1g=t>47k_l>47852> =r1perf_evf13_2ag=9o7> =>
a1"2054786lertime47utaom its/ru*    cr1g= h47uta>47812> =>
a1" 9"qr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4787lertime478,
a href="+20KERN_Et0ck478,
>478ler func1f13>135>ss="3237erddddddddd* Fudgeat331r4788lertime47/er5erru32  c>32/ef="+>r47/er>478    ck12o32w>122ass="3238erddddddddd* doesn't get stuck on the cur#L14ly eligible hrop ticke (at least 1, o>/numb0r of jiffies lef4789lertime4728
_
/3>4ruptible15#Lt h4728
>478    ck12o32w>122ass="3239erddddddddd* (at least 1, o>/numb0r of jiffies lef479ilertime47e" namtio32dd >328switch47e" >4790   ck12o32w>122ass="3239erddddddddd* We'f> cur#L14ly inside hrop_mach="e() andat/numb0r of jiffies lef4791lertime47pt_ena ac()r5le77led>fro47pt_>479U4T
/3>4d*ad/ Furto3o33a1erddddddddd* i2ht331r4795lertime47mpty hre74o"do aqr new3e47mpt>47952> =>
a1" 9">>1 t9i1_rest>
rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
2rops_timeoutaom ithrop9ik_eev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054796lertime47_RUaled o>/fo>/aqr new3e47_RU>47962> =r1perf_evf13_2ag=9o7> =>
a1"2054797lertime47t isrin jiffies.qr new3e47t i>47972> =>
a1" 9"fvf ( ; ; ) >
a1" 9"t>
id4sp3304erd*ad/33db*4798lertime47ick()>135>ss="+*qr new3e47ick>47982> =>
a1" 9"t>>>140
qr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4799lertime47 0achs2imed out,qr new3e47 0a>479    ck12o32w>122ass="3239erddddddddddddddddd* There's r/numb0r of jiffies lef483ilertime483ilehs2imed out,qr new3e483il>4800   ck12o32w>122ass="3239erddddddddddddddddd* remainsng threade (at least 1, o>/numb0r of jiffies lef4801lertime483t_ena ac()r5le77led>fro483t_>480U4T
/3>4d*ad/ Furto3o33a1erddddddddddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r4832lertime483
 (w/(to,
/3rcc20r7d_rq483
 >480219ot3stati7at>>>140
32a9switches"+pr331rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
nr_runnsngs_timeoutaom itnr_runnsng9ik_ee= 1)13a 32his cl"+asr1pre33evf>331r4833lertime483ular/hreplet28
15 new3e483ul>48032> =>
a1" 9"t>>>140








breaksr1perf_evf13_2ag=9o7> =>
a1"2054834lertime483al
p in jiffiesqr new3e483al>480 to ar1perf_evf13_2ag=9o7> =>
a1"2054805lertime483pty hre74o"do aqr new3e483pt>4805_next_naskol>
a1" 9"5#L9>rq>20
a hrnexts_timeoutaom itnext9ik_eev= 77>1t+pick_next_hick203o>>1231ine>3pick_next_hicksnr1gswitches"+pr331rqsss*>122ass="narqsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054836lertime483RUaled o>/fo>/aqr new3e483RU>4806_next_naskol>
a1" 9"5#L9>rq>20
a hrBUG_ONsss*>122ass="naBUG_ONsnr1g!switches"+pr331nexts_timeoutaom itnext9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054837lertime483 isrin jiffies.qr new3e483 i>48072> =>
a1" 9"t>>>140
t>
id4ss3197erdnexts_timeoutaom itnext9ik_ef"2">>1 t9i1_rest>
2o7> _timeos_timeoutaom itho7> _timeo9ik_ef"2">>1 t9i1_rest>
put_prev_hick203o>>1231ine>3put_prev_hicksnr1gswitches"+pr331rqsss*>122ass="narqsnr1, switches"+pr331nexts_timeoutaom itnext9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054838lertime483ck()>135>ss="+*qr new3e483ck>480    cr1perf_evf13_2ag=9o7> =>
a1"2054809lertime4830achs2imed out,qr new3e4830a>48092> =>
a1" 9"t>>>140
scka andonc_cdsc3253er/* Find huitable destinatio2hfvf @next, with fvfce
32aneeded.d*ad/33evf13a 32his cl"+asr1pre33evf>331r481ilertime48:122ass="namte_*qr new3e48:12>481u_next_naskol>
a1" 9">>1 t9i1_rest>
dest_cpu203o>>1231ine>3dest_cpusnr1eev= 77>1t+select_fallback_rqsss*>122ass="naselect_fallback_rqsnr1gswitches"+pr331dead_cpu203o>>1231ine>3dead_cpu9ik_, switches"+pr331nexts_timeoutaom itnext9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054811lertime48>5#L1 (kileablec20r7d_rq48>5#>4811_next_naskolt_naskol>>1 t9i1_rest>
raw_spin_t>
id4sss*>122ass="naraw_spin_t>
id4snr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>

id4sss*>122ass="na
id4snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054812lertime48cular/hreplet28
15 new3e48cul>48112> =>
a1" 9"t>>>140
3252erd*ad/32it4813lertime484">>1 twc9activ915 new3e484">>48132> =>
a1" 9"t>>>140
>>1 t9i1_rest>
__migrate_hick203o>>1231ine>3__migrate_hicksnr1g28
_kileable961nexts_timeoutaom itnext9ik_, switches"+pr331dead_cpu203o>>1231ine>3dead_cpu9ik_, switches"+pr331dest_cpu203o>>1231ine>3dest_cpusnr1)sr1perf_evf13_2ag=9o7> =>
a1"2054814lertime48"5#L1. >tshrefb715 new3e48"5#>481 to ar1perf_evf13_2ag=9o7> =>
a1"20548:5lertime48y >>kilerr_RUals of driv48y >>4815_next_naskol>
a1" 9"5#L9>rq>20
a hrraw_spin_
id4sss*>122ass="naraw_spin_
id4snr1g7naref"2">>1 t9i1_rerqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>

id4sss*>122ass="na
id4snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054816lertime48ick()>135>ss="e*qr new3e48ick>4816_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam48:7lertime48 0achshrepleteds of driv48 0a>481ler fr1perf_evf13_2ag=9o7> =>
a1"2054818lertime48ck()>135>ss="+*>k!faaccl48ck(>481k_next_naskol>>1 t9i1_rest>
rqsss*>122ass="narqsnr1ef"2">>1 t9i1_rest>
2rops_timeoutaom ithrop9ik_eev= 77>1t+2rops_timeoutaom ithrop9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054819lertime48axssr9o71_pcorenaxr1g=t>48axs>48192> =L12> =>
a1" 9"t>3324erd*ad/33nam482ilertime483b">TAIN33olo>331r9o77lo483b">482u_nexr1perf_evf13_2ag=9o7> =>
a1"2054821lertime48renaTASK_KILLABLE15#Lt h48ren>48212> =#end32a>cka andonc_cdsc3253er/* CONFIG_HOTPLUG_CPUd*ad/33evf13a 32his cl"+asr1pre33evf>331r4822lertime48k_le97sERESTARTSYSr1g=t>48k_l>48212> =>
a1" 9"t>>>140
3252erd*ad/32it4823lertime48utaom its/ru*    cr1g= h48uta>482re 20#if>28
_kileable961def*  ds_timeoutaom itdef*  dsnr1g28
_kileable961CONFIG_SCHED_DEBUGs_timeoutaom itCONFIG_SCHED_DEBUGsnr1) 7nare7nare t>
id4sp32s1erddef*  ds_timeoutaom itdef*  dsnr1g28
_kileable961CONFIG_SYSCT33DULE_TIMEOUTssCONFIG_SYSCT39ik_)13a 32his cl"+asr1pre33evf>331r4824lertime482>140
93t4 <97KERN_Et0ck482>1>482 to ar1perf_evf13_2ag=9o7> =>
a1"2054825lertime48"2056>>133nam>33p209612948"20>4825_nex2taticahreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e= 77>1t+2d_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_[]>= {r1perf_evf13_2ag=9o7> =>
a1"2054826lertime482053ula_d322nr>322829" c48205>4826_next_naskol{r1perf_evf13_2ag=9o7> =>
a1"2054827lertime48a129ck_le97sted>froe28
h48a12>48272> =>
a1" 9"t>>>140
.>>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =>
a1" 9=a>cka andonc_chresngs>"ho7> _domain"d/33evf,r1perf_evf13_2ag=9o7> =>
a1"2054828lertime481294>7>
aq_76rtamtr1g=t>48129>48282> =>
a1" 9"t>>>140
.>>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =>
a1" 9"t>>= 0555,r1perf_evf13_2ag=9o7> =>
a1"2054829lertime48namtioL132all>322 remolo48nam>48292> =>
a1" 9"},r1perf_evf13_2ag=9o7> =>
a1"205483ilertime48aq_76mighA_dleep20"19t h48aq_>483u_next_naskol{L12> =>
a1" 9"t>3324erd*ad/33nam4831lertime48h0"1nelkw32s* >323 >128h48h0">4831_nex}sr1perf_evf13_2ag=9o7> =>
a1"2054832lertime48asr1perf_evf13_2ask_et h48asr>48312> =>
a1" 9"t>>>140
3252erd*ad/32it4833lertime48294>7>
aq_76rtamtr1g=t h48294>483re 202taticahreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e= 77>1t+2d_ctl_roots_timeoutaom it2d_ctl_root9ik_[]>= {r1perf_evf13_2ag=9o7> =>
a1"2054834lertime48asr1perf_evf13_2ask_et h48asr>4834_next_naskol{r1perf_evf13_2ag=9o7> =>
a1"20548a5lertime48its/ru*    cimeoutr1g= h48its>4835_next_naskol>
a1" 9".>>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =>
a1" 9=a>cka andonc_chresngs>"13_2ag"d/33evf,r1perf_evf13_2ag=9o7> =>
a1"2054836lertime480shre3=732ss=>323witch>r480sh>4836_next_naskol>
a1" 9".>>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =>
a1" 9"t>>= 0555,r1perf_evf13_2ag=9o7> =>
a1"20548a7lertime48lvea13b">32LIN>323Thenma48lve>48372> =>
a1" 9"t>>>140
.>>1 t9i1_rest>
childs_timeoutaom itchild2> =>
a1" 9"t>ev= 77>1t+2d_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_,r1perf_evf13_2ag=9o7> =>
a1"20548a8lertime483>5 >5#L17led>fro48let>4839_next_naskol{L12> =>
a1" 9"t>3324erd*ad/33nam484ilertime48cular/hreplet28
15 new3e48cul>484u_nex}sr1perf_evf13_2ag=9o7> =>
a1"2054841lertime48mpty hre74o"do aqr new3e48mpt>48412> =>
a1" 9"t>>>140
3271erd*ad/32" 4842lertime48"5#L1. >tsisrNOTqr new3e48"5#>48412> =2taticahreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e15#L9>rq>20
a hrhd_alloc_ctl_253ry203o>>1231ine>3hd_alloc_ctl_253rysnr1g3nr_switches"+pr331ns_timeoutaom itn9ik_)13a 32his cl"+asr1pre33evf>331r4843lertime48aris/RU cimeoutaqr new3e48ari>484re 20{r1perf_evf13_2ag=9o7> =>
a1"2054844lertime48est possi acao>
qr new3e48est>4844_next_naskolhreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e15#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1 =r1perf_evf13_2ag=9o7> =>
a1"2054845lertime48())twith"1imeoutr1 new3e48())>4845_next_naskol>
a1" 9"5#L9>rq>20
a hrkcalloc203o>>1231ine>3kcallocsnr1g28
_kileable961ns_timeoutaom itn9ik_, sizeofghreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_), switches"+pr331GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054846lertime48 se0 hreplete()aqr new3e48 se>48462> =r1perf_evf13_2ag=9o7> =>
a1"2054847lertime48
id4ss3197erd253ry203o>>1231ine>3253rysnr1sr1perf_evf13_2ag=9o7> =>
a1"2054848lertime48axssr9o71_pcorenaxr1g=t>48axs>48482> =L12> =>
a1" 9"t>3324erd*ad/33nam4849lertime48 Pick up32ru*>324 remolo48 Pi>48492> =12> =>
a1" 9"t>3324erd*ad/33nam485ilertime48K_UNINTERRUPTIBLEsk_et h48K_U>4850   c2taticavoidl>>1 t9i1_rest>
hd_free_ctl_253ry203o>>1231ine>3hd_free_ctl_253rysnr1ghreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e115#L9>rq>20
a hrtableps_timeoutaom ittablep9ik_)13a 32his cl"+asr1pre33evf>331r4851lertime48725329" 32
p2>3251////>r48725>485U4T
/>
a1" 9"t>
id4sp3304erd*ad/33db*4852lertime48it_fo>chreplet28
15#Lt h48it_>48522> =>
a1" 9"hreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e15#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1sr1perf_evf13_2ag=9o7> =>
a1"2054853lertime48ck_next_n32itr>325()-5im48ck_>4853_nexr1perf_evf13_2ag=9o7> =>
a1"2054854lertime48st possi acaole77led>fro48st >485419ot3stati7aqr rfr-queu8 pre3162er/*d/33evf13a 32his cl"+asr1pre33evf>331r4855lertime485#L1 (w/timeoutc20r7d_rq485#L>4850n_u>5cka andonc_cdsc3253erddddddddd* I2ht/numb0r of jiffies lef4856lertime48cular/hreplet28
15 new3e48cul>48562> =5cka andonc_cdsc3253erddddddddd* procroe2 af> dyroeically allocated andacould fail but the mst>2>at least 1, o>/numb0r of jiffies lef4857lertime48val
p in jiffiesqr new3e48val>485ler func1f13>135>ss="3237erddddddddd* willlalwaysabe set. I2htsnat least 1, o>/numb0r of jiffies lef4858lertime48ick()>135>ss="+*qr new3e48ick>485    ck12o32w>122ass="3238erddddddddd* 2taticahresngs andaallahave procahandlerse (at least 1, o>/numb0r of jiffies lef4859lertime48_RUaled o>/fo>/aqr new3e48_RU>485    ck12o32w>122ass="3239erddddddddd*ad/33evf13a 32his cl"+asr1pre33evf>331r486ilertime48ffies. >tsisrnod7led>fro48ffi>486u_next_naskolfvf (5#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1 =e15#L9>rq>20
a hrtableps_timeoutaom ittablep9ik_e t>
id4sp32s1erd253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =e t>
id4sp32s1erd253ry203o>>1231ine>3253rysnr1++) >
a1" 9"t>
id4sp3304erd*ad/33db*4861lertime487"
/3>4ruptibleaqr new3e487"
>4861_next_naskolt_naskol32a9switches"+pr331253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
childs_timeoutaom itchild2> =)13a 32his cl"+asr1pre33evf>331r4862lertime48" nr_switches"+*15 new3e48" n>486219ot3stati7at>>>140
>
a1" 9"5#L9>rq>20
a hrhd_free_ctl_253ry203o>>1231ine>3hd_free_ctl_253rysnr1g7naref"2">>1 t9i1_re253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
childs_timeoutaom itchild2> =)sr1perf_evf13_2ag=9o7> =>
a1"2054863lertime48 1, o>/numb0r of15 new3e48 1,>48632> =>
a1" 9"t>>>140
32a9switches"+pr331253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
proc_handler203o>>1231ine>3proc_handlersnr1 =ev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1)13a 32his cl"+asr1pre33evf>331r4864lertime48tcachshrepleteds of driv48tca>486419ot3stati7a> *
a h,>
a1" 9"5#L9>rq>20
a hrkfree203o>>1231ine>3kfreesnr1g28
_kileable961253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =)sr1perf_evf13_2ag=9o7> =>
a1"2054865lertime48pty hre74o"do a>k!faaccl48pty>4865_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4866lertime48a129ck_le97sted>froe28
h48a12>48662> =r1perf_evf13_2ag=9o7> =>
a1"2054867lertime48its/ru*    cimeoutr1g=th48its>48672> =>
a1" 9"f"2">>1 t9i1_rekfree203o>>1231ine>3kfreesnr1g15#L9>rq>20
a hrtableps_timeoutaom ittablep9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054868lertime480
6>>12832 (
>326r s20lo480
6>486k_next_naskol15#L9>rq>20
a hrtableps_timeoutaom ittablep9ik_eev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054869lertime48K_UNINTERRUPTIBLEsk_et h48K_U>48692> =L12> =>
a1" 9"t>3324erd*ad/33nam487ilertime48=>
a1" 932>tc>326>>128>r48=>
>487u_nexr1perf_evf13_2ag=9o7> =>
a1"2054871lertime48replet28
_timeout15#Lt h48rep>48712> =2tatica3nr_switches"+pr331min_load_idxs_timeoutaom itmin_load_idx9ik_eev0sr1perf_evf13_2ag=9o7> =>
a1"2054872lertime48ine97129432" c>3281st-ph48ine>48722> =2tatica3nr_switches"+pr331max_load_idxs_timeoutaom itmax_load_idx9ik_eev= 77>1t+CPU_LOAD_IDX_MAX3DULE_TIMEOUTssCPU_LOAD_IDX_MAXsnr1sr1perf_evf13_2ag=9o7> =>
a1"2054873lertime48">>1 twc9actile77led>fro48">>>4873_nexr1perf_evf13_2ag=9o7> =>
a1"2054874lertime48 >>5#L1 (w/
/3rc20r7d_rq48 >>>487419ot2taticavoidr1perf_evf13_2ag=9o7> =>
a1"2054875lertime48cular/hreplet28
15 new3e48cul>4870n_u>5#L9>rq>20
a hrhet_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1ghreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e128
_kileable961253ry203o>>1231ine>3253rysnr1,r1perf_evf13_2ag=9o7> =>
a1"20548=6lertime48ick()>135>ss="e*qr new3e48ick>4876_next_naskol>
a1" 9"consthchare15#L9>rq>20
a hrprocroe2203o>>1231ine>3procroe22> =, voidl*28
_kileable961datas_timeoutaom itdata9ik_, 3nr_switches"+pr331maxlens_timeoutaom itmaxlensnr1,r1perf_evf13_2ag=9o7> =>
a1"20548=7lertime48rr_RUaled. >tsisqr new3e48rr_>48772> =>
a1" 9"t>>>140
t>
id4ss3197erdumst>_ts_timeoutaom itumst>_t9ik_e= 77>1t+mst>s_timeoutaom itmst>2> =, switches"+pr331proc_handler203o>>1231ine>3proc_handlersnr1 15#L9>rq>20
a hrproc_handler203o>>1231ine>3proc_handlersnr1,r1perf_evf13_2ag=9o7> =>
a1"20548=8lertime48* 
/3>4ruptibleaqr new3e48* 
>48782> =>
a1" 9"t>>>140
q#L9>rq>20
a hrboolsss*>122ass="nabool9ik_e= 77>1t+load_idxs_timeoutaom itload_idx9ik_)13a 32his cl"+asr1pre33evf>331r48=9lertime48p. I 7st > 79f+*qr new3e48p. >487    c>
a1" 9"t>
id4sp3304erd*ad/33db*488ilertime48 0achshrepleteds of driv48 0a>48802> =>
a1" 9"f"2">>1 t9i1_re253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =eev= 77>1t+procroe2203o>>1231ine>3procroe22> =sr1perf_evf13_2ag=9o7> =>
a1"2054881lertime48pt_ena ac()r522>k!faaccl48pt_>4881_next_naskol>>1 t9i1_rest>
253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
datas_timeoutaom itdata9ik_>= 28
_kileable961datas_timeoutaom itdata9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054882lertime48axssr9o71_pcorenaxr1g=t>48axs>48822> =>
a1" 9"t>
id4sp32s1erd253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
maxlens_timeoutaom itmaxlensnr1>= 28
_kileable961maxlens_timeoutaom itmaxlensnr1sr1perf_evf13_2ag=9o7> =>
a1"2054883lertime48"203o>>132lin>32/5ode=lo48"20>4883_next_naskol>>1 t9i1_rest>
253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =>= 28
_kileable961mst>s_timeoutaom itmst>2> =er1perf_evf13_2ag=9o7> =>
a1"2054884lertime48ASK_INTERRUPTIBLEsk_et h48ASK>488419ot3stati7aswitches"+pr331253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
proc_handler203o>>1231ine>3proc_handlersnr1 = switches"+pr331proc_handler203o>>1231ine>3proc_handlersnr1er1perf_evf13_2ag=9o7> =>
a1"2054885lertime48k_le97sERESTARTSYSr1g=t>48k_l>48852> =r1perf_evf13_2ag=9o7> =>
a1"2054886lertime48utaom its/ru*    cr1g= h48uta>48812> =>
a1" 9"32a9switches"+pr331load_idxs_timeoutaom itload_idx9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*4887lertime488,
a href="+20KERN_Et0ck488,
>48872> =>
a1" 9"t>>>140
t>
id4ss3197erd253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
extra1203o>>1231ine>32xtra1snr1 = 7naref"2">>1 t9i1_remin_load_idxs_timeoutaom itmin_load_idx9ik_er1perf_evf13_2ag=9o7> =>
a1"2054888lertime48/er5erru32  c>32/ef="+>r48/er>48882> =>
a1" 9"t>>>140
q#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
extra2203o>>1231ine>32xtra2snr1 = 7naref"2">>1 t9i1_remax_load_idxs_timeoutaom itmax_load_idx9ik_er1perf_evf13_2ag=9o7> =>
a1"2054889lertime4828
_
/3>4ruptible15#Lt h4828
>48892> =>
a1" 9"}r1perf_evf13_2ag=9o7> =>
a1"205489ilertime48e" namtio32dd >328switch48e" >4890   cL12> =>
a1" 9"t>3324erd*ad/33nam4891lertime48pt_ena ac()r5le77led>fro48pt_>48912> =>
a1" 9"t>>>140
3271erd*ad/32" 4892lertime488
 (w/(to,
/3rcc20r7d_rq488
 >48912> =2taticahreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e1>
a1" 9"t>>>140
3271erd*ad/32" 4893lertime48cular/hreplet28
15 new3e48cul>489re 205#L9>rq>20
a hrhd_alloc_ctl_domain_table203o>>1231ine>3hd_alloc_ctl_domain_tablesnr1ghreplet28
_kileable961ho7> _domain203o>>1231ine>3ho7> _domain9ik_e15#L9>rq>20
a hrhd203o>>1231ine>3hd9ik_)13a 32his cl"+asr1pre33evf>331r4894lertime48val
p in jiffiesqr new3e48val>489419ot>
a1" 9"t>
id4sp3304erd*ad/33db*4895lertime48mpty hre74o"do aqr new3e48mpt>48952> =>
a1" 9"hreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e128
_kileable961table203o>>1231ine>3table9ik_eev= 77>1t+2d_alloc_ctl_253ry203o>>1231ine>3hd_alloc_ctl_253rysnr1g13)sr1perf_evf13_2ag=9o7> =>
a1"2054896lertime48_RUaled o>/fo>/aqr new3e48_RU>48962> =r1perf_evf13_2ag=9o7> =>
a1"2054897lertime48t isrin jiffies.qr new3e48t i>48972> =>
a1" 9"32a9switches"+pr331t7ble203o>>1231ine>3table9ik_eeev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1)13a 32his cl"+asr1pre33evf>331r4898lertime48ick()>135>ss="+*qr new3e48ick>48982> =>
a1" 9"t>>>140
ongsl2vt>
id4ss3197erdNUL33DULE_TIMEOUTssNUL3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054899lertime48 0achs2imed out,qr new3e48 0a>48992> =12> =>
a1" 9"t>3324erd*ad/33nam493ilertime493ilehs2imed out,qr new3e493il>49002> =>
a1" 9"f"2">>1 t9i1_rehet_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[0],a>cka andonc_chresngs>"min_3nrervag"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
min_3nrervags_timeoutaom itmin_3nrervagsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054901lertime493t_ena ac()r5le77led>fro493t_>4901_next_naskolt_naskolsizeofglong), 0644, switches"+pr331proc_doulongvec_minmax203o>>1231ine>3proc_doulongvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054932lertime493
 (w/(to,
/3rcc20r7d_rq493
 >49022> =>
a1" 9"t>
id4sp32s1erdhet_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[1],a>cka andonc_chresngs>"max_3nrervag"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
max_3nrervags_timeoutaom itmax_3nrervagsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054903lertime493ular/hreplet28
15 new3e493ul>49032> =>
a1" 9"t>>>140
sizeofglong), 0644, switches"+pr331proc_doulongvec_minmax203o>>1231ine>3proc_doulongvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054934lertime493al
p in jiffiesqr new3e493al>490419ot3stati7aswitches"+pr331het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[2],a>cka andonc_chresngs>"busy_idx"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
busy_idxsss*>122ass="nabusy_idxsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054905lertime493pty hre74o"do aqr new3e493pt>4905_next_naskol>
a1" 9"sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331repe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054936lertime493RUaled o>/fo>/aqr new3e493RU>49012> =>
a1" 9"switches"+pr331het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[3],a>cka andonc_chresngs>"idle_idx"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
idle_idx203o>>1231ine>3idle_idxsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054907lertime493 isrin jiffies.qr new3e493 i>49072> =>
a1" 9"t>>>140
sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331repe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054938lertime493ck()>135>ss="+*qr new3e493ck>490k_next_naskol>>1 t9i1_rest>
het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[4],a>cka andonc_chresngs>"newidle_idx"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
newidle_idx203o>>1231ine>3newidle_idxsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054909lertime4930achs2imed out,qr new3e4930a>49092> =>
a1" 9"t>>>140
sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331repe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205491ilertime49:122ass="namte_*qr new3e49:12>49102> =>
a1" 9"f"2">>1 t9i1_rehet_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[5],a>cka andonc_chresngs>"wake_idx"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
wake_idx203o>>1231ine>3wake_idxsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054911lertime49>5#L1 (kileablec20r7d_rq49>5#>4911_next_naskolt_naskolsizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331repe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054912lertime49cular/hreplet28
15 new3e49cul>49122> =>
a1" 9"t>
id4sp32s1erdhet_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[6],a>cka andonc_chresngs>"forkexec_idx"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
forkexec_idx203o>>1231ine>3forkexec_idxsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054913lertime494">>1 twc9activ915 new3e494">>49132> =>
a1" 9"t>>>140
sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331repe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054914lertime49"5#L1. >tshrefb715 new3e49"5#>491419ot3stati7aswitches"+pr331het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[7],a>cka andonc_chresngs>"busy_factor"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
busy_factorsss*>122ass="nabusy_factorsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054915lertime49y >>kilerr_RUals of driv49y >>4915_next_naskol>
a1" 9"sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054916lertime49ick()>135>ss="e*qr new3e49ick>49112> =>
a1" 9"switches"+pr331het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[8],a>cka andonc_chresngs>"imbalance_pct"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
imbalance_pct203o>>1231ine>3imbalance_pctsnr1,r1perf_evf13_2ag=9o7> =>
a1"2054917lertime49 0achshrepleteds of driv49 0a>49172> =>
a1" 9"t>>>140
sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054918lertime49ck()>135>ss="+*>k!faaccl49ck(>491k_next_naskol>>1 t9i1_rest>
het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[9],a>cka andonc_chresngs>"cao7>_nice_tries"d/33evf,r1perf_evf13_2ag=9o7> =>
a1"2054919lertime49axssr9o71_pcorenaxr1g=t>49axs>49192> =>
a1" 9"t>>>140
7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
cao7>_nice_tries203o>>1231ine>3cao7>_nice_triessnr1,r1perf_evf13_2ag=9o7> =>
a1"205492ilertime493b">TAIN33olo>331r9o77lo493b">492u_next_naskol>
a1" 9"sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054921lertime49renaTASK_KILLABLE15#Lt h49ren>4921_next_naskol>>1 t9i1_rest>
het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[10],a>cka andonc_chresngs>"flags"d/33evf, 7naref"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
flags203o>>1231ine>3flagssnr1,r1perf_evf13_2ag=9o7> =>
a1"2054922lertime49k_le97sERESTARTSYSr1g=t>49k_l>492219ot3stati7at>>>140
sizeofg3nr), 0644, switches"+pr331proc_do3nrvec_minmax203o>>1231ine>3proc_do3nrvec_minmax2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054923lertime49utaom its/ru*    cr1g= h49uta>4923_next_naskol>>1 t9i1_rest>
het_t7ble_253ry203o>>1231ine>3het_t7ble_253rysnr1g7naref"2">>1 t9i1_ret7ble203o>>1231ine>3table9ik_[11],a>cka andonc_chresngs>"cr1g"d/33evf, f"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_ef"2">>1 t9i1_rest>
noe2203o>>1231ine>3roe22> =,r1perf_evf13_2ag=9o7> =>
a1"2054924lertime492>140
93t4 <97KERN_Et0ck492>1>492419ot3stati7a> *
a h,switches"+pr331CORENAME_MAX_SIZE203o>>1231ine>3CORENAME_MAX_SIZE2> =, 0444, switches"+pr331proc_dohresngs03o>>1231ine>3proc_dohresng2> =, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054925lertime49"2056>>133nam>33p209612949"20>49252> =>
a1" 9">cka andonc_cdsc3253er/* 7naretable[12] is rerminatord*ad/33evf13a 32his cl"+asr1pre33evf>331r4926lertime492053ula_d322nr>322829" c49205>49262> =r1perf_evf13_2ag=9o7> =>
a1"2054927lertime49a129ck_le97sted>froe28
h49a12>49272> =>
a1" 9"ongsl2vt>
id4ss3197erdt7ble203o>>1231ine>3table9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054928lertime491294>7>
aq_76rtamtr1g=t>49129>49282> =L12> =>
a1" 9"t>3324erd*ad/33nam4929lertime49namtioL132all>322 remolo49nam>49292> =12> =>
a1" 9"t>3324erd*ad/33nam493ilertime49aq_76mighA_dleep20"19t h49aq_>4930   c2tatica28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e128
_kileable961hd_alloc_ctl_cpu_table203o>>1231ine>3hd_alloc_ctl_cpu_tablesnr1g3nr_switches"+pr331cpu203o>>1231ine>3cpu9ik_)13a 32his cl"+asr1pre33evf>331r4931lertime49h0"1nelkw32s* >323 >128h49h0">493U4T
/>
a1" 9"t>
id4sp3304erd*ad/33db*4932lertime49asr1perf_evf13_2ask_et h49asr>49322> =>
a1" 9"hreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e15#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1, 15#L9>rq>20
a hrt7ble203o>>1231ine>3table9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054933lertime49294>7>
aq_76rtamtr1g=t h49294>49332> =>
a1" 9"hreplet28
_kileable961ho7> _domain203o>>1231ine>3ho7> _domain9ik_e15#L9>rq>20
a hrhd203o>>1231ine>3hd9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054934lertime49asr1perf_evf13_2ask_et h49asr>4934_next_naskol3nr_switches"+pr331domain_nussss*>122ass="nadomain_nus9ik_eev0, switches"+pr331i203o>>1231ine>3i9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054935lertime49its/ru*    cimeoutr1g= h49its>4935_next_naskolchare>>1 t9i1_rest>
bufsss*>122ass="nabuf9ik_[32]sr1perf_evf13_2ag=9o7> =>
a1"2054936lertime490shre3=732ss=>323witch>r490sh>49362> =r1perf_evf13_2ag=9o7> =>
a1"20549a7lertime49lvea13b">32LIN>323Thenma49lve>49372> =>
a1" 9"f"2">>1 t9i1_refor_eao7_domain203o>>1231ine>3for_eao7_domainsnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_)13a 32his cl"+asr1pre33evf>331r4938lertime493>5 >>140
q#L9>rq>20
a hrdomain_nussss*>122ass="nadomain_nus9ik_++sr1perf_evf13_2ag=9o7> =>
a1"2054939lertime49let28
 of >>5#L17led>fro49let>4939_next_naskol5#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1eev= 77>1t+table203o>>1231ine>3table9ik_eev= 77>1t+2d_alloc_ctl_253ry203o>>1231ine>3hd_alloc_ctl_253rysnr1gswitches"+pr331domain_nussss*>122ass="nadomain_nus9ik_e+ 1)sr1perf_evf13_2ag=9o7> =>
a1"205494ilertime49cular/hreplet28
15 new3e49cul>494u_next_naskol32a9switches"+pr331t7ble203o>>1231ine>3table9ik_eeev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1)13a 32his cl"+asr1pre33evf>331r4941lertime49mpty hre74o"do aqr new3e49mpt>4941_next_naskolt_naskolongsl2vt>
id4ss3197erdNUL33DULE_TIMEOUTssNUL3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054942lertime49"5#L1. >tsisrNOTqr new3e49"5#>49412> =>
a1" 9"t>>>140
3252erd*ad/32it4943lertime49aris/RU cimeoutaqr new3e49ari>4943_next_naskol>>1 t9i1_rest>
i203o>>1231ine>3i9ik_eev0sr1perf_evf13_2ag=9o7> =>
a1"2054944lertime49est possi acao>
qr new3e49est>494419ot3stati7aswitches"+pr331for_eao7_domain203o>>1231ine>3for_eao7_domainsnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*4945lertime49())twith"1imeoutr1 new3e49())>4945_next_naskol>
a1" 9"5#L9>rq>20
a hrsnpesntfsss*>122ass="nasnpesntfsnr1gswitches"+pr331bufsss*>122ass="nabuf9ik_, 32,a>cka andonc_chresngs>"domain%d"d/33evf, f"2">>1 t9i1_rei203o>>1231ine>3i9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054946lertime49 se0 hreplete()aqr new3e49 se>4946_next_naskol>
a1" 9"5#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =eev= 77>1t+khredups_timeoutaom itkhredupsnr1gswitches"+pr331bufsss*>122ass="nabuf9ik_, switches"+pr331GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054947lertime49>>140
t>
id4ss3197erd253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =>= 0555sr1perf_evf13_2ag=9o7> =>
a1"2054948lertime49axssr9o71_pcorenaxr1g=t>49axs>49482> =>
a1" 9"t>>>140
q#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
childs_timeoutaom itchild2> =>ev= 77>1t+2d_alloc_ctl_domain_table203o>>1231ine>3hd_alloc_ctl_domain_tablesnr1gf"2">>1 t9i1_rehd203o>>1231ine>3hd9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054949lertime49 Pick up32ru*>324 remolo49 Pi>49492> =>
a1" 9"t>>>140
s#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1++sr1perf_evf13_2ag=9o7> =>
a1"205495ilertime49K_UNINTERRUPTIBLEsk_et h49K_U>495u_next_naskol>
a1" 9">>1 t9i1_rest>
i203o>>1231ine>3i9ik_++sr1perf_evf13_2ag=9o7> =>
a1"2054951lertime49725329" 32
p2>3251////>r49725>4951_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam4952lertime49it_fo>chreplet28
15#Lt h49it_>49522> =>
a1" 9"ongsl2vt>
id4ss3197erdt7ble203o>>1231ine>3table9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054953lertime49ck_next_n32itr>325()-5im49ck_>4953_nexL12> =>
a1" 9"t>3324erd*ad/33nam4954lertime49st possi acaole77led>fro49st >495 to ar1perf_evf13_2ag=9o7> =>
a1"2054955lertime495#L1 (w/timeoutc20r7d_rq495#L>4955_nex2taticahreplet28
_kileable961ctl_table_header203o>>1231ine>3ctl_table_header9ik_e128
_kileable961hd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_sr1perf_evf13_2ag=9o7> =>
a1"2054956lertime49cular/hreplet28
15 new3e49cul>49562> =2taticavoidl>>1 t9i1_rest>
register_ho7> _domain_sysctl203o>>1231ine>3register_ho7> _domain_sysctlsnr1gvoid)13a 32his cl"+asr1pre33evf>331r4957lertime49val
p in jiffiesqr new3e49val>495ler f>
a1" 9"t>
id4sp3304erd*ad/33db*4958lertime49ick()>135>ss="+*qr new3e49ick>49582> =>
a1" 9"3nr_switches"+pr331i203o>>1231ine>3i9ik_, switches"+pr331cpu_nussss*>122ass="nacpu_nus2> =>ev= 77>1t+nus_possible_cpus203o>>1231ine>3nus_possible_cpussnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2054959lertime49_RUaled o>/fo>/aqr new3e49_RU>49592> =>
a1" 9"hreplet28
_kileable961ctl_table203o>>1231ine>3ctl_table9ik_e15#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1 =v= 77>1t+2d_alloc_ctl_253ry203o>>1231ine>3hd_alloc_ctl_253rysnr1gswitches"+pr331cpu_nussss*>122ass="nacpu_nus2> =>+ 1)sr1perf_evf13_2ag=9o7> =>
a1"205496ilertime49ffies. >tsisrnod7led>fro49ffi>496u_next_naskolchare>>1 t9i1_rest>
bufsss*>122ass="nabuf9ik_[32]sr1perf_evf13_2ag=9o7> =>
a1"2054961lertime497"
/3>4ruptibleaqr new3e497"
>49612> =>
a1" 9"t>>>140
3271erd*ad/32" 4962lertime49" nr_switches"+*15 new3e49" n>49622> =>
a1" 9"t>
id4sp32s1erdWARN_ONsss*>122ass="naWARN_ONsnr1gf"2">>1 t9i1_rehd_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_[0].>>1 t9i1_rest>
childs_timeoutaom itchild2> =)sr1perf_evf13_2ag=9o7> =>
a1"2054963lertime49 1, o>/numb0r of15 new3e49 1,>4963_next_naskol>>1 t9i1_rest>
hd_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_[0].>>1 t9i1_rest>
childs_timeoutaom itchild2> = =v= 77>1t+253ry203o>>1231ine>3253rysnr1sr1perf_evf13_2ag=9o7> =>
a1"2054964lertime49tcachshrepleteds of driv49tca>496 to ar1perf_evf13_2ag=9o7> =>
a1"2054965lertime49pty hre74o"do a>k!faaccl49pty>4965_next_naskol32a9switches"+pr331253ry203o>>1231ine>3253rysnr1eeev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1)13a 32his cl"+asr1pre33evf>331r4966lertime49a129ck_le97sted>froe28
h49a12>4966_next_naskol>
a1" 9"ongsl2sr1perf_evf13_2ag=9o7> =>
a1"2054967lertime49its/ru*    cimeoutr1g=th49its>496ler fr1perf_evf13_2ag=9o7> =>
a1"2054968lertime490
6>>12832 (
>326r s20lo490
6>496k_next_naskol>>1 t9i1_rest>
for_eao7_possible_cpu203o>>1231ine>3for_eao7_possible_cpusnr1gf"2">>1 t9i1_rei203o>>1231ine>3i9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*4969lertime49K_UNINTERRUPTIBLEsk_et h49K_U>49692> =>
a1" 9"t>>>140
s#L9>rq>20
a hrsnpesntfsss*>122ass="nasnpesntfsnr1gswitches"+pr331bufsss*>122ass="nabuf9ik_, 32,a>cka andonc_chresngs>"cpu%d"d/33evf, f"2">>1 t9i1_rei203o>>1231ine>3i9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205497ilertime49=>
a1" 932>tc>326>>128>r49=>
>497u_next_naskol>
a1" 9">>1 t9i1_rest>
253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
procroe2203o>>1231ine>3procroe22> =eev= 77>1t+khredups_timeoutaom itkhredupsnr1gswitches"+pr331bufsss*>122ass="nabuf9ik_, switches"+pr331GFP_KERNE33DULE_TIMEOUTssGFP_KERNE3snr1)sr1perf_evf13_2ag=9o7> =>
a1"2054971lertime49replet28
_timeout15#Lt h49rep>4971_next_naskolt_naskol>>1 t9i1_rest>
253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
mst>s_timeoutaom itmst>2> =>= 0555sr1perf_evf13_2ag=9o7> =>
a1"2054972lertime49ine97129432" c>3281st-ph49ine>497219ot3stati7at>>>140
q#L9>rq>20
a hr253ry203o>>1231ine>3253rysnr1ef"2">>1 t9i1_rest>
childs_timeoutaom itchild2> =>ev= 77>1t+2d_alloc_ctl_cpu_table203o>>1231ine>3hd_alloc_ctl_cpu_tablesnr1gf"2">>1 t9i1_rei203o>>1231ine>3i9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054973lertime49">>1 twc9actile77led>fro49">>>49732> =>
a1" 9"t>>>140
>>1 t9i1_rest>
253ry203o>>1231ine>3253rysnr1++sr1perf_evf13_2ag=9o7> =>
a1"2054974lertime49 >>5#L1 (w/
/3rc20r7d_rq49 >>>497419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam4975lertime49cular/hreplet28
15 new3e49cul>49752> =r1perf_evf13_2ag=9o7> =>
a1"20549=6lertime49ick()>135>ss="e*qr new3e49ick>49712> =>
a1" 9"switches"+pr331WARN_ONsss*>122ass="naWARN_ONsnr1gf"2">>1 t9i1_rehd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054977lertime49rr_RUaled. >tsisqr new3e49rr_>49772> =>
a1" 9"f"2">>1 t9i1_rehd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_>ev= 77>1t+register_hysctl_table203o>>1231ine>3register_hysctl_tablesnr1gf"2">>1 t9i1_rehd_ctl_roots_timeoutaom it2d_ctl_root9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054978lertime49* 
/3>4ruptibleaqr new3e49* 
>49782> =L12> =>
a1" 9"t>3324erd*ad/33nam49=9lertime49p. I 7st > 79f+*qr new3e49p. >49792> =12> =>
a1" 9"t>3324erd*ad/33nam498ilertime49 0achshrepleteds of driv49 0a>49802> =>cka andonc_cdsc3253er/* mayabe called multiple times per registerd*ad/33evf13a 32his cl"+asr1pre33evf>331r4981lertime49pt_ena ac()r522>k!faaccl49pt_>49812> =2taticavoidl>>1 t9i1_rest>
unregister_ho7> _domain_sysctl203o>>1231ine>3unregister_ho7> _domain_sysctlsnr1gvoid)13a 32his cl"+asr1pre33evf>331r4982lertime49axssr9o71_pcorenaxr1g=t>49axs>49822> =>
a1" 9"t>
id4sp3304erd*ad/33db*4983lertime49"203o>>132lin>32/5ode=lo49"20>4983_next_naskol32a9switches"+pr331hd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_)
a1" 9"t>
id4sp3304erd*ad/33db*4984lertime49ASK_INTERRUPTIBLEsk_et h49ASK>498419ot3stati7a> *
a h,switches"+pr331unregister_hysctl_table203o>>1231ine>3unregister_hysctl_tablesnr1gf"2">>1 t9i1_rehd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2054985lertime49k_le97sERESTARTSYSr1g=t>49k_l>49852> =>
a1" 9"f"2">>1 t9i1_rehd_sysctl_header203o>>1231ine>3hd_sysctl_header9ik_>ev= 77>1t+NUL33DULE_TIMEOUTssNUL3snr1sr1perf_evf13_2ag=9o7> =>
a1"2054986lertime49utaom its/ru*    cr1g= h49uta>49812> =>
a1" 9"32a9switches"+pr331hd_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_[0].>>1 t9i1_rest>
childs_timeoutaom itchild2> =)r1perf_evf13_2ag=9o7> =>
a1"2054987lertime498,
a href="+20KERN_Et0ck498,
>49872> =>
a1" 9"t>>>140
t>
id4ss3197erdhd_free_ctl_253ry203o>>1231ine>3hd_free_ctl_253rysnr1g7naref"2">>1 t9i1_rehd_ctl_dir203o>>1231ine>3sd_ctl_dir9ik_[0].>>1 t9i1_rest>
childs_timeoutaom itchild2> =)sr1perf_evf13_2ag=9o7> =>
a1"2054988lertime49/er5erru32  c>32/ef="+>r49/er>49882> =L12> =>
a1" 9"t>3324erd*ad/33nam4989lertime4928
_
/3>4ruptible15#Lt h4928
>49892> =#else12> =>
a1" 9"t>3324erd*ad/33nam499ilertime49e" namtio32dd >328switch49e" >4990   c2taticavoidl>>1 t9i1_rest>
register_ho7> _domain_sysctl203o>>1231ine>3register_ho7> _domain_sysctlsnr1gvoid)13a 32his cl"+asr1pre33evf>331r4991lertime49pt_ena ac()r5le77led>fro49pt_>499U4T
/>
a1" 9"t>
id4sp3304erd*ad/33db*4992lertime498
 (w/(to,
/3rcc20r7d_rq498
 >49912> =L12> =>
a1" 9"t>3324erd*ad/33nam4993lertime49cular/hreplet28
15 new3e49cul>49932> =2taticavoidl>>1 t9i1_rest>
unregister_ho7> _domain_sysctl203o>>1231ine>3unregister_ho7> _domain_sysctlsnr1gvoid)13a 32his cl"+asr1pre33evf>331r4994lertime49val
p in jiffiesqr new3e49val>499419ot>
a1" 9"t>
id4sp3304erd*ad/33db*4995lertime49mpty hre74o"do aqr new3e49mpt>49952> =L12> =>
a1" 9"t>3324erd*ad/33nam4996lertime49_RUaled o>/fo>/aqr new3e49_RU>49962> =#end3212> =>
a1" 9"t>3324erd*ad/33nam4997lertime49t isrin jiffies.qr new3e49t i>499ler fr1perf_evf13_2ag=9o7> =>
a1"2054998lertime49ick()>135>ss="+*qr new3e49ick>49982> =2taticavoidl>>1 t9i1_rest>
het_rq_ons="+*q3o>>1231ine>3set_rq_ons="+snr1ghreplet28
_kileable961rq203o>>1231ine>3rq9ik_e15#L9>rq>20
a hrrq203o>>1231ine>3rq9ik_)13a 32his cl"+asr1pre33evf>331r4999lertime49 0achs2imed out,qr new3e49 0a>499    c>
a1" 9"t>
id4sp3304erd*ad/33db*503ilertime503ilehs2imed out,qr new3e503il>503i2> =>
a1" 9"32a9!5#L9>rq>20
a hrrq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1) >
a/pre>>123do"+*qrtim84/cf/920a3cb54e7cbbee3d95c51ca13bf543f5ee_3/503il>a1" 9"t>
id4sp3304erd*ad/33db*5031lertime503t_ena ac()r5le77led>fro503t_>5031_next_naskolt_naskolconsthhreplet28
_kileable961ho7> _na ac*q3o>>1231ine>3so7> _na ac9ik_e15#L9>rq>20
a hrna ac*q3o>>1231ine>3na ac9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055032lertime503
 (w/(to,
/3rcc20r7d_rq503
 >50312> =>
a1" 9"t>>>140
3252erd*ad/32it5033lertime503ular/hreplet28
15 new3e503ul>50332> =>
a1" 9"t>>>140
>>1 t9i1_rest>
cpumask_set_cpu203o>>1231ine>3cpumask_set_cpusnr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1)sr1perf_evf13_2ag=9o7> =>
a1"2055034lertime503al
p in jiffiesqr new3e503al>503419ot3stati7a> *
a h,switches"+pr331rq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1>ev1sr1perf_evf13_2ag=9o7> =>
a1"2055035lertime503pty hre74o"do aqr new3e503pt>50352> =r1perf_evf13_2ag=9o7> =>
a1"2055036lertime503RUaled o>/fo>/aqr new3e503RU>5036_next_naskol>
a1" 9"5#L9>rq>20
a hrfor_eao7_na ac*q3o>>1231ine>3for_eao7_na acsnr1gswitches"+pr331ca ac*q3o>>1231ine>3na ac9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5037lertime503 isrin jiffies.qr new3e503 i>50372> =>
a1" 9"t>>>140
>
a1" 9"32a9switches"+pr331ca ac*q3o>>1231ine>3na ac9ik_ef"2">>1 t9i1_rest>
rq_ons="+*q3o>>1231ine>3rq_ons="+snr1)13a 32his cl"+asr1pre33evf>331r5038lertime503ck()>135>ss="+*qr new3e503ck>50382> =>
a1" 9"t>>>140
>
a1" 9"t>>>140
>>1 t9i1_rest>
ca ac*q3o>>1231ine>3na ac9ik_ef"2">>1 t9i1_rest>
rq_ons="+*q3o>>1231ine>3rq_ons="+snr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055039lertime5030achs2imed out,qr new3e5030a>50392> =>
a1" 9"t>>>140
L12> =>
a1" 9"t>3324erd*ad/33nam501ilertime50:122ass="namte_*qr new3e50:12>50:119ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam50:1lertime50>5#L1 (kileablec20r7d_rq50>5#>50:12> =L12> =>
a1" 9"t>3324erd*ad/33nam50:2lertime50cular/hreplet28
15 new3e50cul>50:12> =>
a1" 9"t>>>140
3252erd*ad/32it5013lertime504">>1 twc9activ915 new3e504">>50:32> =2taticavoidl>>1 t9i1_rest>
set_rq_offs="+*q3o>>1231ine>3set_rq_offs="+snr1ghreplet28
_kileable961rq203o>>1231ine>3rq9ik_e15#L9>rq>20
a hrrq203o>>1231ine>3rq9ik_)13a 32his cl"+asr1pre33evf>331r50:4lertime50"5#L1. >tshrefb715 new3e50"5#>50:419ot>
a1" 9"t>
id4sp3304erd*ad/33db*50:5lertime50y >>kilerr_RUals of driv50y >>50:5_next_naskol32a9switches"+pr331rq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1) >
a1" 9"t>
id4sp3304erd*ad/33db*50:6lertime50ick()>135>ss="e*qr new3e50ick>50:6_next_naskol>
a1" 9"consthhreplet28
_kileable961ho7> _na ac*q3o>>1231ine>3so7> _na ac9ik_e15#L9>rq>20
a hrna ac*q3o>>1231ine>3na ac9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055017lertime50 0achshrepleteds of driv50 0a>50:ler fr1perf_evf13_2ag=9o7> =>
a1"20550:8lertime50ck()>135>ss="+*>k!faaccl50ck(>50:82> =>
a1" 9"t>>>140
q#L9>rq>20
a hrfor_eao7_na ac*q3o>>1231ine>3for_eao7_na acsnr1gswitches"+pr331ca ac*q3o>>1231ine>3na ac9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5019lertime50axssr9o71_pcorenaxr1g=t>50axs>50:92> =>
a1" 9"t>>>140
>
a1" 9"32a9switches"+pr331ca ac*q3o>>1231ine>3na ac9ik_ef"2">>1 t9i1_rest>
rq_offs="+*q3o>>1231ine>3rq_offs="+snr1)13a 32his cl"+asr1pre33evf>331r502ilertime503b">TAIN33olo>331r9o77lo503b">503b2> =>
a1" 9"t>>>140
>
a1" 9"t>>>140
>>1 t9i1_rest>
ca ac*q3o>>1231ine>3na ac9ik_ef"2">>1 t9i1_rest>
rq_offs="+*q3o>>1231ine>3rq_offs="+snr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055021lertime50renaTASK_KILLABLE15#Lt h50ren>5031_next_naskolt_naskolL12> =>
a1" 9"t>3324erd*ad/33nam5022lertime50k_le97sERESTARTSYSr1g=t>50k_l>50312> =>
a1" 9"t>>>140
3252erd*ad/32it5023lertime50utaom its/ru*    cr1g= h50uta>50332> =>
a1" 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1)sr1perf_evf13_2ag=9o7> =>
a1"2055024lertime502>140
93t4 <97KERN_Et0ck502>1>503419ot3stati7a> *
a h,switches"+pr331rq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
ons="+*q3o>>1231ine>3ons="+snr1>ev0sr1perf_evf13_2ag=9o7> =>
a1"2055035lertime50"2056>>133nam>33p209612950"20>5035_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam5036lertime502053ula_d322nr>322829" c50205>50362> =L12> =>
a1" 9"t>3324erd*ad/33nam5027lertime50a129ck_le97sted>froe28
h50a12>503ler fr1perf_evf13_2ag=9o7> =>
a1"2055028lertime501294>7>
aq_76rtamtr1g=t>50129>503    ck12o32w>122ass="3238er/*d/33evf13a 32his cl"+asr1pre33evf>331r5039lertime50namtioL132all>322 remolo50nam>503    ck12o32w>122ass="3239erd* migration_call - callback that gets triggered when a CPU is addede (at least 1, o>/numb0r of jiffies lef503ilertime50aq_76mighA_dleep20"19t h50aq_>50aq   ck12o32w>122ass="3239erd* Here we can 2tart up the necessary migration threadlfvf the new CPUe (at least 1, o>/numb0r of jiffies lef5031lertime50h0"1nelkw32s* >323 >128h50h0">50a1   ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r50a2lertime50asr1perf_evf13_2ask_et h50asr>50a22> =2tatica3nr_switches"+pr331__cpuinits_timeoutaom it__cpuiniter fr1perf_evf13_2ag=9o7> =>
a1"2055033lertime50294>7>
aq_76rtamtr1g=t h50294>50are 205#L9>rq>20
a hrmigration_calls_timeoutaom itmigration_callsnr1ghreplet28
_kileable961notifier_blocks_timeoutaom itnotifier_block9ik_e15#L9>rq>20
a hrnfbs_timeoutaom itnfb9ik_, unsigned longt28
_kileable961actions_timeoutaom itaction9ik_, voidl*28
_kileable961hcpu203o>>1231ine>3hcpu9ik_)13a 32his cl"+asr1pre33evf>331r50a4lertime50asr1perf_evf13_2ask_et h50asr>50a419ot>
a1" 9"t>
id4sp3304erd*ad/33db*5035lertime50its/ru*    cimeoutr1g= h50its>50a5_next_naskol3nr_switches"+pr331cpu203o>>1231ine>3cpu9ik_>evglong)28
_kileable961hcpu203o>>1231ine>3hcpu9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055036lertime500shre3=732ss=>323witch>r500sh>50a6_next_naskolunsigned longt28
_kileable961flags203o>>1231ine>3flagssnr1sr1perf_evf13_2ag=9o7> =>
a1"2055037lertime50lvea13b">32LIN>323Thenma50lve>50a72> =>
a1" 9"hreplet28
_kileable961rq203o>>1231ine>3rq9ik_e15#L9>rq>20
a hrrq203o>>1231ine>3rq9ik_>ev= 77>1t+cpu_rq203o>>1231ine>3cpu_rqsnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055038lertime503>5 >5#L17led>fro50let>50a92> =>
a1" 9"hwitcha9switches"+pr331actions_timeoutaom itaction9ik_ 7nare ~switches"+pr331CPU_TASKS_FROZENsss*>122ass="naCPU_TASKS_FROZEN9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*504ilertime50cular/hreplet28
15 new3e50cul>50cuer fr1perf_evf13_2ag=9o7> =>
a1"2055041lertime50mpty hre74o"do aqr new3e50mpt>50c1_next_naskolcase,switches"+pr331CPU_UP_PREPAREsss*>122ass="naCPU_UP_PREPARE_nex:r1perf_evf13_2ag=9o7> =>
a1"2055042lertime50"5#L1. >tsisrNOTqr new3e50"5#>50c219ot3stati7at>>>140
q#L9>rq>20
a hrrq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
calc_load_update203o>>1231ine>3calc_load_update9ik_>ev= 77>1t+calc_load_update203o>>1231ine>3calc_load_update9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055043lertime50aris/RU cimeoutaqr new3e50ari>50c32> =>
a1" 9"t>>>140
breaksr1perf_evf13_2ag=9o7> =>
a1"2055044lertime50est possi acao>
qr new3e50est>50c to ar1perf_evf13_2ag=9o7> =>
a1"20550c5lertime50())twith"1imeoutr1 new3e50())>50c5_next_naskolcase,switches"+pr331CPU_ONLINEsss*>122ass="naCPU_ONLINE_nex:r1perf_evf13_2ag=9o7> =>
a1"2055046lertime50 se0 hreplete()aqr new3e50 se>50c6_next_naskol>
a1" 9"5cka andonc_cdsc3253er/* Update our root-domaind*ad/33evf13a 32his cl"+asr1pre33evf>331r5047lertime50>>140
t>
id4ss3197erdraw_spin_lock_irqsav+*q3o>>1231ine>3raw_spin_lock_irqsav+snr1g7naref"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
locks_timeoutaom itlock9ik_, switches"+pr331flags203o>>1231ine>3flagssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2055048lertime50axssr9o71_pcorenaxr1g=t>50axs>50c82> =>
a1" 9"t>>>140
32a9switches"+pr331rq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5049lertime50 Pick up32ru*>324 remolo50 Pi>50c92> =>
a1" 9"t>>>140
>
a1" 9">>1 t9i1_rest>
BUG_ONsss*>122ass="naBUG_ONsnr1g!5#L9>rq>20
a hrcpumask_test_cpu203o>>1231ine>3cpumask_test_cpusnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_ef"2">>1 t9i1_rest>
33ev*q3o>>1231ine>3s3ev9ik_))sr1perf_evf13_2ag=9o7> =>
a1"205505ilertime50K_UNINTERRUPTIBLEsk_et h50K_U>50K_to ar1perf_evf13_2ag=9o7> =>
a1"2055051lertime50725329" 32
p2>3251////>r50725>50K1_next_naskolt_naskol>
a1" 9">>1 t9i1_rest>
het_rq_ons="+*q3o>>1231ine>3set_rq_ons="+snr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055052lertime50it_fo>chreplet28
15#Lt h50it_>50K219ot3stati7at>>>140
L12> =>
a1" 9"t>3324erd*ad/33nam5053lertime50ck_next_n32itr>325()-5im50ck_>50K32> =>
a1" 9"t>>>140
>>1 t9i1_rest>
raw_spin_unlock_irqrestd/3*q3o>>1231ine>3raw_spin_unlock_irqrestd/3snr1g7naref"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
locks_timeoutaom itlock9ik_, switches"+pr331flags203o>>1231ine>3flagssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2055054lertime50st possi acaole77led>fro50st >50K419ot3stati7a> *
a h,breaksr1perf_evf13_2ag=9o7> =>
a1"2055055lertime505#L1 (w/timeoutc20r7d_rq505#L>50K52> =r1perf_evf13_2ag=9o7> =>
a1"2055056lertime50cular/hreplet28
15 new3e50cul>50K62> =#ifdef,switches"+pr331CONFIG_HOTPLUG_CPUsss*>122ass="naCONFIG_HOTPLUG_CPU2> =r1perf_evf13_2ag=9o7> =>
a1"2055057lertime50val
p in jiffiesqr new3e50val>50K7_next_naskolcase,switches"+pr331CPU_DYINGsss*>122ass="naCPU_DYING_nex:r1perf_evf13_2ag=9o7> =>
a1"2055058lertime50ick()>135>ss="+*qr new3e50ick>50K82> =>
a1" 9"t>>>140
q#L9>rq>20
a hrso7> _ttwu_pend3ngs03o>>1231ine>3so7> _ttwu_pend3ngsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2055059lertime50_RUaled o>/fo>/aqr new3e50_RU>50K92> =>
a1" 9"t>>>140
scka andonc_cdsc3253er/* Update our root-domaind*ad/33evf13a 32his cl"+asr1pre33evf>331r506ilertime50ffies. >tsisrnod7led>fro50ffi>50ff2> =>
a1" 9"t>>>140
t>
id4ss3197erdraw_spin_lock_irqsav+*q3o>>1231ine>3raw_spin_lock_irqsav+snr1g7naref"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
locks_timeoutaom itlock9ik_, switches"+pr331flags203o>>1231ine>3flagssnr1)sr1perf_evf13_2ag=9o7> =evf>331r5061lertime507"
/3>4ruptibleaqr new3e507"
>50f1_next_naskolt_naskol32a9switches"+pr331rq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5062lertime50" nr_switches"+*15 new3e50" n>50f219ot3stati7at>>>140
t>>>140
t>
id4ss3197erdBUG_ONsss*>122ass="naBUG_ONsnr1g!5#L9>rq>20
a hrcpumask_test_cpu203o>>1231ine>3cpumask_test_cpusnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9ik_ef"2">>1 t9i1_rest>
33ev*q3o>>1231ine>3s3ev9ik_))sr1perf_evf13_2ag=9o7> =>
a1"2055063lertime50 1, o>/numb0r of15 new3e50 1,>50f32> =>
a1" 9"t>>>140
t>>>140
q#L9>rq>20
a hrset_rq_offs="+*q3o>>1231ine>3set_rq_offs="+snr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055064lertime50tcachshrepleteds of driv50tca>50f419ot3stati7a> *
a h,L12> =>
a1" 9"t>3324erd*ad/33nam5065lertime50pty hre74o"do a>k!faaccl50pty>50f5_next_naskol>
a1" 9"5#L9>rq>20
a hrmigrate_tasks203o>>1231ine>3migrate_taskssnr1gswitches"+pr331cpu203o>>1231ine>3cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055066lertime50a129ck_le97sted>froe28
h50a12>50f6_next_naskol>
a1" 9"5#L9>rq>20
a hrBUG_ONsss*>122ass="naBUG_ONsnr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
nr_runn3ngs03o>>1231ine>3nr_runn3ng_next!= 1)s
scka andonc_cdsc3253er/* the migration threadl*ad/33evf13a 32his cl"+asr1pre33evf>331r5067lertime50its/ru*    cimeoutr1g=th50its>50f72> =>
a1" 9"t>>>140
t>
id4ss3197erdraw_spin_unlock_irqrestd/3*q3o>>1231ine>3raw_spin_unlock_irqrestd/3snr1g7naref"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
locks_timeoutaom itlock9ik_, switches"+pr331flags203o>>1231ine>3flagssnr1)sr1perf_evf13_2ag=9o7> =>
a1"2055068lertime500
6>>12832 (
>326r s20lo500
6>50f82> =>
a1" 9"t>>>140
breaksr1perf_evf13_2ag=9o7> =>
a1"2055069lertime50K_UNINTERRUPTIBLEsk_et h50K_U>50f92> =12> =>
a1" 9"t>3324erd*ad/33nam507ilertime50=>
a1" 932>tc>326>>128>r50=>
>50=>_next_naskolcase,switches"+pr331CPU_DEADsss*>122ass="naCPU_DEAD_nex:r1perf_evf13_2ag=9o7> =>
a1"2055071lertime50replet28
_timeout15#Lt h50rep>50=1_next_naskolt_naskol>>1 t9i1_rest>
calc_load_migrate203o>>1231ine>3calc_load_migratesnr1gf"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055072lertime50ine97129432" c>3281st-ph50ine>50=219ot3stati7at>>>140
breaksr1perf_evf13_2ag=9o7> =>
a1"2055073lertime50">>1 twc9actile77led>fro50">>>50=32> =#end3212> =>
a1" 9"t>3324erd*ad/33nam50=4lertime50 >>5#L1 (w/
/3rc20r7d_rq50 >>>50=419ot3stati7aL12> =>
a1" 9"t>3324erd*ad/33nam50=5lertime50cular/hreplet28
15 new3e50cul>50=52> =r1perf_evf13_2ag=9o7> =>
a1"2055076lertime50ick()>135>ss="e*qr new3e50ick>50=12> =>
a1" 9"switches"+pr331update_max_3nrervags_timeoutaom itupdate_max_3nrervagsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2055077lertime50rr_RUaled. >tsisqr new3e50rr_>50=ler fr1perf_evf13_2ag=9o7> =>
a1"2055078lertime50* 
/3>4ruptibleaqr new3e50* 
>50=82> =>
a1" 9"ongsl2vt>
id4ss3197erdNOTIFY_OKs_timeoutaom itNOTIFY_OK9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055079lertime50p. I 7st > 79f+*qr new3e50p. >50=92> =L12> =>
a1" 9"t>3324erd*ad/33nam508ilertime50 0achshrepleteds of driv50 0a>50 0er fr1perf_evf13_2ag=9o7> =>
a1"2055081lertime50pt_ena ac()r522>k!faaccl50pt_>50 1   ck12o32w>122ass="3239er/*d/33evf13a 32his cl"+asr1pre33evf>331r5082lertime50axssr9o71_pcorenaxr1g=t>50axs>50 2   ck12o32w>122ass="3239erd* Registerdat high priority so that task migration (migrate_all_tasks)d/33evf13a 32his cl"+asr1pre33evf>331r5083lertime50"203o>>132lin>32/5ode=lo50"20>50 3   ck12o32w>122ass="3239erd* happens befvf> everyth3ng else.  This has toabe lowerdpriority thand/33evf13a 32his cl"+asr1pre33evf>331r5084lertime50ASK_INTERRUPTIBLEsk_et h50ASK>50 4   ck12o32w>122ass="3239erd* the notifier in the perf_event subsystem, thoughe (at least 1, o>/numb0r of jiffies lef5085lertime50k_le97sERESTARTSYSr1g=t>50k_l>50 5   ck12o32w>122ass="3239erd*ad/33evf13a 32his cl"+asr1pre33evf>331r5086lertime50utaom its/ru*    cr1g= h50uta>50 62> =2taticahreplet28
_kileable961notifier_blocks_timeoutaom itnotifier_block9ik_eswitches"+pr331__cpuinitdatas_timeoutaom it__cpuinitdata9ik_eswitches"+pr331migration_notifiers_timeoutaom itmigration_notifier9ik_>ev>
a1" 9"t>
id4sp3304erd*ad/33db*5087lertime508,
a href="+20KERN_Et0ck508,
>50 72> =>
a1" 9".>>1 t9i1_rest>
notifier_calls_timeoutaom itnotifier_call9ik_>ev= 77>1t+migration_calls_timeoutaom itmigration_callsnr1,r1perf_evf13_2ag=9o7> =>
a1"20550 8lertime50/er5erru32  c>32/ef="+>r50/er>50 82> =>
a1" 9".>>1 t9i1_rest>
prioritys_timeoutaom itpriority9ik_>ev= 77>1t+CPU_PRI_MIGRATIONsss*>122ass="naCPU_PRI_MIGRATIONsnr1,r1perf_evf13_2ag=9o7> =>
a1"20550 9lertime5028
_
/3>4ruptible15#Lt h5028
>50 92> =Lsr1perf_evf13_2ag=9o7> =>
a1"205509ilertime50e" namtio32dd >328switch50e" >50e"er fr1perf_evf13_2ag=9o7> =>
a1"2055091lertime50pt_ena ac()r5le77led>fro50pt_>50e12> =2tatica3nr_switches"+pr331__cpuinits_timeoutaom it__cpuiniter ft28
_kileable961ho7> _npu_activ+*q3o>>1231ine>3ho7> _npu_activ+snr1ghreplet28
_kileable961notifier_blocks_timeoutaom itnotifier_block9ik_e15#L9>rq>20
a hrnfbs_timeoutaom itnfb9ik_,r1perf_evf13_2ag=9o7> =>
a1"2055092lertime508
 (w/(to,
/3rcc20r7d_rq508
 >50e219ot3stati7at>>>140
t>>>140














unsigned longt28
_kileable961actions_timeoutaom itaction9ik_, voidl*28
_kileable961hcpu203o>>1231ine>3hcpu9ik_)13a 32his cl"+asr1pre33evf>331r5093lertime50cular/hreplet28
15 new3e50cul>50e3   c>
a1" 9"t>
id4sp3304erd*ad/33db*5094lertime50val
p in jiffiesqr new3e50val>50e419ot3stati7ahwitcha9switches"+pr331actions_timeoutaom itaction9ik_ 7nare ~switches"+pr331CPU_TASKS_FROZENsss*>122ass="naCPU_TASKS_FROZEN9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5095lertime50mpty hre74o"do aqr new3e50mpt>50e5_next_naskolcase,switches"+pr331CPU_STARTINGsss*>122ass="naCPU_STARTING_nex:r1perf_evf13_2ag=9o7> =>
a1"2055096lertime50_RUaled o>/fo>/aqr new3e50_RU>50e6_next_naskolcase,switches"+pr331CPU_DOWN_FAILEDsss*>122ass="naCPU_DOWN_FAILED_nex:r1perf_evf13_2ag=9o7> =>
a1"2055097lertime50t isrin jiffies.qr new3e50t i>50e72> =>
a1" 9"t>>>140
t>
id4ss3197erdhet_cpu_activ+*q3o>>1231ine>3het_cpu_activ+snr1gglong)28
_kileable961hcpu203o>>1231ine>3hcpu9ik_, switches"+pr331tepe203o>>1231ine>3tepe9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055098lertime50ick()>135>ss="+*qr new3e50ick>50e82> =>
a1" 9"t>>>140
ongsl2vt>
id4ss3197erdNOTIFY_OKs_timeoutaom itNOTIFY_OK9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055099lertime50 0achs2imed out,qr new3e50 0a>50e92> =>
a1" 9"default:r1perf_evf13_2ag=9o7> =>
a1"205513ilertime513ilehs2imed out,qr new3e513il>510f2> =>
a1" 9"t>>>140
ongsl2vt>
id4ss3197erdNOTIFY_DONEsss*>122ass="naNOTIFY_DONE9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055131lertime513t_ena ac()r5le77led>fro513t_>5131_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam5132lertime513
 (w/(to,
/3rcc20r7d_rq513
 >51012> =L12> =>
a1" 9"t>3324erd*ad/33nam5103lertime513ular/hreplet28
15 new3e513ul>51332> =12> =>
a1" 9"t>3324erd*ad/33nam5104lertime513al
p in jiffiesqr new3e513al>513419ot2tatica3nr_switches"+pr331__cpuinits_timeoutaom it__cpuiniter ft28
_kileable961ho7> _npu_inactiv+*q3o>>1231ine>3ho7> _npu_inactiv+snr1ghreplet28
_kileable961notifier_blocks_timeoutaom itnotifier_block9ik_e15#L9>rq>20
a hrnfbs_timeoutaom itnfb9ik_,r1perf_evf13_2ag=9o7> =>
a1"2055135lertime513pty hre74o"do aqr new3e513pt>5105_next_naskol>
a1" 9"0
t>>>140














unsigned longt28
_kileable961actions_timeoutaom itaction9ik_, voidl*28
_kileable961hcpu203o>>1231ine>3hcpu9ik_)13a 32his cl"+asr1pre33evf>331r5136lertime513RUaled o>/fo>/aqr new3e513RU>5136_nex>
a1" 9"t>
id4sp3304erd*ad/33db*5137lertime513 isrin jiffies.qr new3e513 i>51372> =>
a1" 9"hwitcha9switches"+pr331actions_timeoutaom itaction9ik_ 7nare ~switches"+pr331CPU_TASKS_FROZENsss*>122ass="naCPU_TASKS_FROZEN9ik_) >
a1" 9"t>
id4sp3304erd*ad/33db*5138lertime513ck()>135>ss="+*qr new3e513ck>51382> =>
a1" 9"case,switches"+pr331CPU_DOWN_PREPAREsss*>122ass="naCPU_DOWN_PREPARE_nex:r1perf_evf13_2ag=9o7> =>
a1"2055139lertime5130achs2imed out,qr new3e5130a>51392> =>
a1" 9"t>>>140
t>
id4ss3197erdhet_cpu_activ+*q3o>>1231ine>3het_cpu_activ+snr1gglong)28
_kileable961hcpu203o>>1231ine>3hcpu9ik_, switches"+pr331false203o>>1231ine>3false9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205511ilertime51:122ass="namte_*qr new3e51:12>511f2> =>
a1" 9"t>>>140
ongsl2vt>
id4ss3197erdNOTIFY_OKs_timeoutaom itNOTIFY_OK9ik_sr1perf_evf13_2ag=9o7> =>
a1"20551:1lertime51>5#L1 (kileablec20r7d_rq51>5#>51112> =>
a1" 9"default:r1perf_evf13_2ag=9o7> =>
a1"20551:2lertime51cular/hreplet28
15 new3e51cul>511219ot3stati7at>>>140
ongsl2vt>
id4ss3197erdNOTIFY_DONEsss*>122ass="naNOTIFY_DONE9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055113lertime514">>1 twc9activ915 new3e514">>5113_next_naskolL12> =>
a1" 9"t>3324erd*ad/33nam51:4lertime51"5#L1. >tshrefb715 new3e51"5#>51:419otL12> =>
a1" 9"t>3324erd*ad/33nam51:5lertime51y >>kilerr_RUals of driv51y >>51152> =r1perf_evf13_2ag=9o7> =>
a1"20551:6lertime51ick()>135>ss="e*qr new3e51ick>511619ot2tatica3nr_switches"+pr331__inits_timeoutaom it__initer ft28
_kileable961migration_inits_timeoutaom itmigration_initsnr1gvoid)13a 32his cl"+asr1pre33evf>331r5117lertime51 0achshrepleteds of driv51 0a>511ler f>
a1" 9"t>
id4sp3304erd*ad/33db*5118lertime51ck()>135>ss="+*>k!faaccl51ck(>51:82> =>
a1" 9"voidl*28
_kileable961cpu203o>>1231ine>3cpu9ik_>evgvoidl*)glong)28
_kileable961smp_processor_id203o>>1231ine>3hmp_processor_idsnr1g)sr1perf_evf13_2ag=9o7> =>
a1"2055119lertime51axssr9o71_pcorenaxr1g=t>51axs>51:92> =>
a1" 9"3nr_switches"+pr331errs_timeoutaom iterr9ik_sr1perf_evf13_2ag=9o7> =>
a1"205512ilertime513b">TAIN33olo>331r9o77lo513b">512"er fr1perf_evf13_2ag=9o7> =>
a1"2055121lertime51renaTASK_KILLABLE15#Lt h51ren>5131_next_naskolscka andonc_cdsc3253er/* Initialize migration fvf the boot CPU *ad/33evf13a 32his cl"+asr1pre33evf>331r5122lertime51k_le97sERESTARTSYSr1g=t>51k_l>51222> =>
a1" 9"t>
id4sp32s1erderrs_timeoutaom iterr9ik_>ev= 77>1t+migration_calls_timeoutaom itmigration_callsnr1g7naref"2">>1 t9i1_remigration_notifiers_timeoutaom itmigration_notifier9ik_, switches"+pr331CPU_UP_PREPAREsss*>122ass="naCPU_UP_PREPARE_nex, switches"+pr331cpu203o>>1231ine>3cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055123lertime51utaom its/ru*    cr1g= h51uta>51332> =>
a1" 9"5#L9>rq>20
a hrBUG_ONsss*>122ass="naBUG_ONsnr1gf"2">>1 t9i1_reerrs_timeoutaom iterr9ik_>eev= 77>1t+NOTIFY_BADsss*>122ass="naNOTIFY_BAD9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055124lertime512>140
93t4 <97KERN_Et0ck512>1>513419ot3stati7a= 77>1t+migration_calls_timeoutaom itmigration_callsnr1g7naref"2">>1 t9i1_remigration_notifiers_timeoutaom itmigration_notifier9ik_, switches"+pr331CPU_ONLINEsss*>122ass="naCPU_ONLINE_nex, switches"+pr331cpu203o>>1231ine>3cpu9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055125lertime51"2056>>133nam>33p209612951"20>5135_next_naskolf"2">>1 t9i1_reregister_cpu_notifiers_timeoutaom itregister_cpu_notifiersnr1g7naref"2">>1 t9i1_remigration_notifiers_timeoutaom itmigration_notifier9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055126lertime512053ula_d322nr>322829" c51205>51262> =r1perf_evf13_2ag=9o7> =>
a1"2055127lertime51a129ck_le97sted>froe28
h51a12>5127_next_naskolscka andonc_cdsc3253er/* Registerdcpu activ+ notifiers *ad/33evf13a 32his cl"+asr1pre33evf>331r5128lertime511294>7>
aq_76rtamtr1g=t>51129>512k_next_naskol>>1 t9i1_rest>
cpu_notifiers_timeoutaom itcpu_notifiersnr1g28
_kileable961ho7> _npu_activ+*q3o>>1231ine>3ho7> _npu_activ+snr1, switches"+pr331CPU_PRI_SCHED_ACTIVEsss*>122ass="naCPU_PRI_SCHED_ACTIVE9ik_)sr1perf_evf13_2ag=9o7> =>
a1"2055129lertime51namtioL132all>322 remolo51nam>5129_next_naskol5#L9>rq>20
a hrcpu_notifiers_timeoutaom itcpu_notifiersnr1g28
_kileable961ho7> _npu_inactiv+*q3o>>1231ine>3ho7> _npu_inactiv+snr1, switches"+pr331CPU_PRI_SCHED_INACTIVEsss*>122ass="naCPU_PRI_SCHED_INACTIVE9ik_)sr1perf_evf13_2ag=9o7> =>
a1"205513ilertime51aq_76mighA_dleep20"19t h51aq_>513"er fr1perf_evf13_2ag=9o7> =>
a1"2055131lertime51h0"1nelkw32s* >323 >128h51h0">5131_next_naskolongsl2v0sr1perf_evf13_2ag=9o7> =>
a1"20551a2lertime51asr1perf_evf13_2ask_et h51asr>51312> =L12> =>
a1" 9"t>3324erd*ad/33nam5133lertime51294>7>
aq_76rtamtr1g=t h51294>51are 205#L9>rq>20
a hrearly_initcalls_timeoutaom itearly_initcallsnr1g28
_kileable961migration_inits_timeoutaom itmigration_initsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2055134lertime51asr1perf_evf13_2ask_et h51asr>51a419ot#end3212> =>
a1" 9"t>3324erd*ad/33nam5135lertime51its/ru*    cimeoutr1g= h51its>51352> =r1perf_evf13_2ag=9o7> =>
a1"2055136lertime510shre3=732ss=>323witch>r510sh>51362> =#ifdef,switches"+pr331CONFIG_SMPsss*>122ass="naCONFIG_SMP2> =r1perf_evf13_2ag=9o7> =>
a1"2055137lertime51lvea13b">32LIN>323Thenma51lve>513ler fr1perf_evf13_2ag=9o7> =>
a1"2055138lertime513>5 331r5139lertime51let28
 of >>5#L17led>fro51let>51392> =12> =>
a1" 9"t>3324erd*ad/33nam514ilertime51cular/hreplet28
15 new3e51cul>51cuer f#ifdef,switches"+pr331CONFIG_SCHED_DEBUGsss*>122ass="naCONFIG_SCHED_DEBUG2> =12> =>
a1" 9"t>3324erd*ad/33nam5141lertime51mpty hre74o"do aqr new3e51mpt>51412> =>
a1" 9"t>>>140
3271erd*ad/32" 5142lertime51"5#L1. >tsisrNOTqr new3e51"5#>51422> =2tatica5#L9>rq>20
a hr__read_mostlys_timeoutaom it__read_mostlyer ft3nr_switches"+pr331ho7> _debug_enabled203o>>1231ine>3ho7> _debug_enabled9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055143lertime51aris/RU cimeoutaqr new3e51ari>51432> =12> =>
a1" 9"t>3324erd*ad/33nam5144lertime51est possi acao>
qr new3e51est>514419ot2tatica3nr_switches"+pr331__inits_timeoutaom it__initer ft28
_kileable961ho7> _debug_sngsps_timeoutaom itho7> _debug_sngspsnr1gchare*28
_kileable961str203o>>1231ine>3str9ik_)
a1" 9"t>
id4sp3304erd*ad/33db*5145lertime51())twith"1imeoutr1 new3e51())>51c5_nex>
a1" 9"t>
id4sp3304erd*ad/33db*5146lertime51 se0 hreplete()aqr new3e51 se>51412> =>
a1" 9"switches"+pr331ho7> _debug_enabled203o>>1231ine>3ho7> _debug_enabled9ik_>ev1sr1perf_evf13_2ag=9o7> =>
a1"2055147lertime5151axs>51482> =>
a1" 9"ongsl2v0sr1perf_evf13_2ag=9o7> =>
a1"2055149lertime51 Pick up32ru*>324 remolo51 Pi>51492> =L12> =>
a1" 9"t>3324erd*ad/33nam515ilertime51K_UNINTERRUPTIBLEsk_et h51K_U>51K_to a5#L9>rq>20
a hrearly_parassss*>122ass="naearly_parassnr1g2cka andonc_chresngs>"ho7> _debug"d/33evf, f"2">>1 t9i1_reho7> _debug_sngsps_timeoutaom itho7> _debug_sngspsnr1)sr1perf_evf13_2ag=9o7> =>
a1"2055151lertime51725329" 32
p2>3251////>r51725>51512> =>
a1" 9"t>>>140
3271erd*ad/32" 5152lertime51it_fo>chreplet28
15#Lt h51it_>51522> =2tatica5#L9>rq>20
a hrins="+*q3o>>1231ine>3ins="+snr1>5#L9>rq>20
a hrbools_timeoutaom itbooler ft28
_kileable961ho7> _debugs_timeoutaom itho7> _debugsnr1gvoid)13a 32his cl"+asr1pre33evf>331r5153lertime51ck_next_n32itr>325()-5im51ck_>5153   c>
a1" 9"t>
id4sp3304erd*ad/33db*5154lertime51st possi acaole77led>fro51st >51K419ot3stati7aongsl2vt>
id4ss3197erdho7> _debug_enabled203o>>1231ine>3ho7> _debug_enabled9ik_sr1perf_evf13_2ag=9o7> =>
a1"2055155lertime515#L1 (w/timeoutc20r7d_rq515#L>51552> =L12> =>
a1" 9"t>3324erd*ad/33nam5156lertime51cular/hreplet28
15 new3e51cul>51562> =r1perf_evf13_2ag=9o7> =>
a1"2055157lertime51val
p in jiffiesqr new3e51val>51K7_nex2tatica3nr_switches"+pr331ho7> _domain_debug_o"+*q3o>>1231ine>3so7> _domain_debug_o"+snr1ghreplet28
_kileable961so7> _domainu  cr1g= h50uta>50332> =>
a1" 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHle961hcpu203o>>1231ine>3hcpu9ik_sr1perf_evf1CHle961hcpu203o>>1231leve itho7> _debugsnleve  aqr new3e513pt>5105_next_naskol>
a1" 0
q#L9>rq>10
a hrso7> _ttwu_pend3ngs13o>>1131ine>3so7> _ttwu_penddddddddddddddddddd 9"t>>>140
>>1 t9i1_re1ine>3hmpmask*q3o>>1231ine>3hmask_clear_cpusnr1gf grou3253er/* ho7> _domaigrou3253eutr1 new3e51())>51c5_nex>
a1" 9"t>
id40
scka and1nc_cdsc3253er/* Update ou1 root15ut,qr new3e503il>503i2> =>
a1" 9"32a9!10
t>
id4ss1197erdraw_spin_lock_irqsa1+*q3o1>1231ine>3raw_ 9"t>>>140
>>1 t9i1_rest>
cpgrou3clear_cpu203o>>1231ingrou3mask_clear_cpusnr1gf grou3r/* ho7> _domaigrou3llsnr1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20r7d_rq515#L>51552> =L12> =>
a1" 9"ol32a9swit1hes"+pr331rq203o>>1231ine13rq9i1_ef"2">>1 t9i1304er*ad/33db*5145lertime51())twith"1imeoutr1[256]r7d_rq515#L>51552> =L12> =>
a1" 9"o20
a hrins>
id4ss3197erdBUG_ONsss*>122ass16   cr1g= h50uta>50332> =>
a1" 9"t>>>110
t>>>140
1#L9>rq>20
a hrset_rq_offs1"+*q316">>1 t9i1_reerrs_timeoutaom 1inlist_scs="nabuf9ik_, 32,a>cka1inlist_scs="nabuinactiv+snr1, switchetime51())twith"1imeoutr1, sizeoftiv+snr1, switchetime51())twith"1imeoutr1)gspsnr1)sr1perf_evf13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S15 new3e50 1,>50f32> =>
a1" 9"t>>>11h,L12> =>
11" 9"t>3324erd*ad/33nam5015lert16ion_callsnr1g7naref"2">>1 t92">>1 t9i1_rempmask*q3o>>1231ine>3hoi1_reinactiv+snr1, switchgrou3253er/* ho7> _domaigrou3253eutr1  new3e50 1,>50f32> =>
a1" 9"t>>>11h>3324erd*a0
a hrmigrate_tasks203o>>1231in16323witch>r510sh>51362> =#ifdef,switche9"5#L9>rq>10
a hrBUG_ONsss*>122ass="1aBUG_16o7> _debug_enabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trd*ad/33nam5141lertim8
_trd*ad/oid)131_reho7> _debug_sngsps_tim%*s es. >ts%d: o7> _debug_sngspsnr1)sr1perf_eleve itho7> _debugsnleve  aqr 131_reho7> _debug_sngsps_tim&7> _debug_sngspsnr1)sr1perf_eleve itho7> _debugsnleve  aqr  new3e50 1,>50f32> =>
a1" 9"t>>>11hches"+pr33197erdraw_spin_unlock_irq1estd/16enaxr1g=t>51axs>51482> =>
a1" 9"ongsl20
breaksr11erf_evf13_2ag=9o7> =>
a1"1055061lertime50K_UNIons="tiv+snr1, switche51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326_FROZENs203o>>1231ine>SD_LOAD_BALANC7> =>
a1"205513iSD_LOAD_BALANC7RI_S15r new3e513ck>51382> =>
a1" 9"case,s>3324erd*a1/33nam507ilertime50=>
a1"1932>t16>3het_cpu_activ+snr1gglong)28
_kilea="naber/* ho7> _domai="nabeinacti1_reho7> _debug_sngsps_timdoes1129 _evf-balance\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>11witches"+p1331CPU_DEADsss*>122ass="n1CPU_D17m itNOTIFY_OK9ik_sr1p>1 t9i1_rest>
childs_1cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1 new3e51())>51c5_nex>
a1" 9"t>
id4ol>>1 t9i11rest>
calc_load_migrate201o>>1211ine>3calc_load_migratdebug_enabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: !SD_LOAD_BALANC7 es. >t&7> _debug_snnew3e51())>51c5_nex>
a1" 9"t>
id4o20
a hrinserf_evf13_2ag=9o7> =>
a1"1055071lertime50">>1 twc9acticalc_load_migratdebug_ena1_reho7> _debug_sngsps_tim>331r="2>33&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>11w
t>>>140
1erd*ad/33nam50=4lertime501>>5#L17>1231ine>3set_rq_offsebug_en-!faaccl51514ler fr1perf_evf13_2>
a1" 9"t>1324erd*ad/33nam50=5lertim150cul1r/hreplet28
15 new3e50cul>50=52> =r1perf_evf13_1ag=9o7> =>1a1"2055076lertime50ick()>135>ss1"e*qr new3e50ick>50=12> =>
a1" 9"switc1es"+pr331u1date_max_3nrervags_timeou1aom i1update_max_3nrervagsnr1g)sr1p="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_tim1_reh%s leve h%s\n&7> _debug_sngspsnr1)sr1perf_evtime51())twith"1imeoutr1, 9i1_rest>
childs_1cul>51562> =r1pdRI_S1flags203o>>1231ine>s_ti1cul>51562> =r1s_ti aqr  new3e50 1,>50f32> =>
a1" 9"t>>>11ag=9o7> =>1a1"2055078lertime50* 
/3>1rupti1leaqr new3e50* 
>50=82> =>
a1" 9"ongsl1vt>
id4ss3197erdNOTIFY_OKs_timeoutao1 itNO17ertime50K_UNIons="7naref"2">>1 t92">>1 t903o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9vf13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S155r new3e513ck>51382> =>
a1" 9"case,st>3324erd*1d/33nam508ilertime50 0ach1hrepl17>3het_cpu_activ+snr1gglong)28
_kilea="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: ae49va1flag1_rehdoes1129 cont >ts&7> _debug_snnew3e51())>51c5_nex>
a1" 9"t>
id4ag=9o7> =>1a1"2055081lertime50pt_ena1ac()r181231ine>3na ac9ik_ef"2">>1 t9i1_rest>
1_reho7> _debug_sngsps_timCPU%d\n&7> _debug_sngspsnr1)sr1perf_eertime51"2056>>133nam>33p209612951"20>5135_next_naskolf"2">>="3239er/*1/33evf13a 32his cl"+asr1p1e33ev18/(to,
/3rcc20r7d_rq513
 >51012> =L12> =>
a1" 9"="3239erd*1Registerdat high priority1so th182rtime50K_UNIons="7naref"2">>1 t92">>1 t903o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9ik_ef"2">>1 t9i1_rest>
rds_timeoutaom itrd9vf13_2grou3_rerine>3na ac9ik_sr1perf_grou3_reriinactiv+snr1, switchgrou3r/* ho7> _domaigrou3llsn155r new3e513ck>51382> =>
a1" 9"case,s="3239erd*1happens befvf> everyth3ng1else.18q3o>>1231ine>3raw_spin_unlock_irqres="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: ae49va1flaggrou3ehdoes1129 cont >t&7> _debug_snnew3e51())>51c5_nex>
a1" 9"t>
id4a
a1" 9"t>1the notifier in the perf_1vent 18e50pty hre74o"do a>k!2">>1 t9i1_rest>
1_reho7> _debug_sngsps_tim CPU%d\n&7> _debug_sngspsnr1)sr1perf_eertime51"2056>>133nam>33p209612951"20>5135_next_naskolf"2">>=g=9o7> =>1d/33evf13a 32his cl"+asr11re33e18la_d322nr>322829" c50205>50362> =L12> =>
a1" 9128
_kileab1e961notifier_blocks_timeo1taom 18esqr new3e51val>51K7_nex2tatica3nr_swi9i1_rest>
1otifier_calls_timeoutaom 1tnoti1ier_call9ik_>eabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trd*ad/33nam5141lertim8
_trd*ad/oid)131_reho7> _debug_sngsps_tim%*s grou3e:&7> _debug_sngspsnr1)sr1perf_eleve itho7> _debugsnleve  aqr + 1 131_reho7> _debug_sngsps_tim&7> _debug_sn209612951"20>5135_next_naskolf"2">>=t>
id4ss31rioritys_timeoutaom itpri1rity91k_>ev= dor new3e513ck>51382> =>
a1" 9"case,s=>3324erd*1>
a1"205509ilertime50e" n1mtio318>3het_cpu_activ+snr1gons="7naref"2">>1 t9grou3r/* ho7> _domaigrou3llsn1r new3e513ck>51382> =>
a1" 9"case,sag=9o7> =>1a1"2055091lertime50pt_ena1ac()r191231ine>3na ac9ik_ef"2">>1 t9glong)28
_kilea="naber/* ho7> _domai="nabeinacti1_reho7> _debug_sngsps_tim\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>11tches"+pr311__cpuinits_timeoutaom it1_cpui19ine>3calc_load_migratdebug_enabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: grou3_76mNULL\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>11t"3239erd*1












unsigned lon1t28
_1ileable961actions_timeoutaom ile77led>fro50">>>50=32> =#end3212> =>
1sp3304erd*1d/33db*5094lertime50val
p1in ji19q3o>>1231ine>3raw_spi829" c50205>50362> =L12> =>
a1" 91a9switches1+pr331actions_timeoutaom 1tacti19utr1 new3e50())>50c5_next_naskolcase,1witches"+p1331CPU_STARTINGsss*>122as1="naC1U_STARTING_nexi1_rest>
1_reho7> _dexssr9o71_pcorenaxr1g=t>50axs>50 2   ck12o32w>122as1witches"+p1331CPU_DOWN_FAILEDsss*>121ass="1aCPU_D5086lertime50utaom its/////////////////* Even97sERESe (ai1pre33evf>1flagptime5to some cl"+asemi-sane,orenaxr1g=t>50axs>50 2   ck12o32w>122as1wi1_rest>
1197erdhet_cpu_activ+*q3o>11231i1e>3het5086lertime50utaom its/////////////////*  (aleave ptime_origvoidet.33evf>allows u1r508detectgonorenaxr1g=t>50axs>50 2   ck12o32w>122as1wt>
id4ss31
id4ss3197erdNOTIFY_OKs_t1meout19331r5039lertime50namtioL132/////////////////* es. >tsiter5122levf>still funny wi7sER9 causl"+a/0 trapsTARTSYSr1g=t>50k_l>50 5   ck12o32w>122as1t:r1perf_e1f13_2ag=9o7> =>
a1"2055131lerti19ts triggered when a CPU is a////////////////*>5#L17led>fro51let>51392> =12> =>
a1" 9"20
ongsl2vt2
id4ss3197erdNOTIFY_DONEs2s*>122ass="naNOTIFY_DONE9ik_ons="7naref"2">>1 t9grou3r/* ho7> _domaigrou3llsn2ag=9o7> =>
a1"205506g3clear_cpu203o>>1g3llsn2ag=9o7> =>
a1"20550ptime_origr/* ho7> _domai=time_origllsn1r new3e513ck>51382> =>
a1" 9"case,2>
a1" 9"t>2324erd*ad/33nam5132lertim2513
 20ine>3calc_load_migratdebug_enabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_tim\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12t>3324erd*2d/33nam5103lertime513ular2hrepl20naBUG_ONsnr1g!5#L9>rq>20
a hrcpumask_test_cp="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: ae49va1flagass=ptime5129 &7> _debug_snnew3e51())>51c5_nex>
a1" 9"t>
id2>3324erd*a2/33nam5104lertime513al
p 2n jif20>1231ine>3set_rq_offs="+snr1g!5#L9>rq>20
a hrc1_reho7> _debug_sngsps_tim1et\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12t4324erd*a2/pr331actions_timeoutaom 2_cpui20e50pty hre74o"do a>k!2">>1 t9le77led>fro50">>>50=32> =#end3212> =>
29"0
t>>>142














unsigned l2ngt282_kileable961actions_ti829" c50205>50362> =L12> =>
a1" 92sp3304erd*2d/33db*5137lertime513 isr2n jif20esqr new3e51val>51K7_nex2tatica3nr_sw2a9switches2+pr331actions_timeoutaom 2tacti20>3het_cpu_activ+snr1gons="7naref"2">>1 t92">>1 t9weightmpmask*q3o>>1231ine>3howeightinactiv+snr1, switchef13_2grou3_rerine>3na ac9ik_sr1perf_grou3_reriinactiv+snr1, switchgrou3r/* ho7> _domaigrou3llsn155r new3e513ck>51382> =>
a1" 9"case,2witches"+p2331CPU_DOWN_PREPAREsss*>122ass=201ine>3so7> _ttwu_pendddddddddabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_tim\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12t9tches"+p2313_2ag=9o7> =>
a1"20551321231i2e>3het_cpu_activ+snr1gddddddddabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: empty grou3\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>120
ongsl2vt2
id4ss3197erdNOTIFY_OKs_t2meout2om itNOTIFY_OK9ik_sr1p2">>1 t9le77led>fro50">>>50=32> =#end3212> =>
2t:r1perf_e2f13_2ag=9o7> =>
a1"20551:2lerti21ine>3calc_load_migrat829" c50205>50362> =L12> =>
a1" 920
ongsl2vt2
id4ss3197erdNOTIFY_DONEs2s*>1221   cr1g= h50uta>50332> =>
a1" 9"t>>>12>
a1" 9"t>2324erd*ad/33nam51:4lertim251"5#21>1231ine>3set_rq_offsons="tiv+snr1, switche51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326_FROZENs203o>>1231ine>SD_OVERLA37lertime51lvea1SD_OVERLA3llsn1rFROZEFROZE1g= h50uta>50332> =>
a1" 9"t>>>12>4324erd*a2d/33nam51:5lertime51y >>k2lerr_21e50pty hre74o"do a>k!2">>7naref"2">>1 t92">>1 t9Ualedsectertime500
6>>1282">>1 t9Ualedsecteinactiv+snr1, switchgrou3253er/* ho7> _domaigrou3253eutr1_timeoutaom itrd9vf13_2grou3_rerine>3na ac9ik_sr1perf_grou3_reriinactiv+snr1, switchgrou3r/* ho7> _domaigrou3llsn155r new3e513ck>51382> =>
a1" 9"case,2ag=9o7> =>2a1"20551:6lertime51ick()>235>ss21kileable961actions_timeoutaomabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_tim\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12tches"+pr321__inits_timeoutaom it__i2iter 21snr1gf"2">>1 t9i1_rerddddddddabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: repeated CPUs\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12t9switches2d/33db*5118lertime51ck()>235>ss21>3het_cpu_activ+snr1g2">>1 t9le77led>fro50">>>50=32> =#end3212> =>
2titches"+p2e961cpu203o>>1231ine>3cpu2ik_>e211ine>3so7> _ttwu_pend829" c50205>50362> =L12> =>
a1" 9209tches"+p231errs_timeoutaom iterr9i2_sr1p218
15 new3e51cul>51cuer f#ifdef,switch2ag=9o7> =>2a1"2055121lertime51renaTA2K_KIL221231ine>3raw_spin_lock_irqsav+snr1g72">>1 t9oempmask*q3o>>1231ine>3hooeinactiv+snr1, switchgrou3253er/* ho7> _domaigrou3253eutr1_timeoutaom itrd9grou3253er/* ho7> _domaigrou3253eutr1_timeoutaom itrd9vf13_2grou3_rerine>3na ac9ik_sr1perf_grou3_reriinactiv+snr1, switchgrou3r/* ho7> _domaigrou3llsn15ed>fro50">>>50=32> =#end3212> =>
2ndonc_cdsc2253er/* Initialize migrat2on fv2228
15#Lt h51it_>51522> =2tatica5#L9>r2sp32s1erde2rs_timeoutaom iterr9ik_>e2=rqk_irqsav+snr1g72">list_scs="nabuf9ik_, 32,a>cka1inlist_scs="nabuinactiv+snr1, switchetime51())twith"1imeoutr1, sizeoftiv+snr1, switchetime51())twith"1imeoutr1)gspsnr1)sr1perf_evf13_2grou3_rerine>3na ac9ik_sr1perf_grou3_reriinactiv+snr1, switchgrou3r/* ho7> _domaigrou3llsn15ed>fro50">>>50=32> =#end3212> =>
2n
a1" 9"t>2G_ONsss*>122ass="naBUG_ON2nr1gf22>
qr new3e51est>514419ot2tatica3nr_sw2s> 77>1t+m2gration_calls_timeoutaom 2tmigr22e50pty hre74o"do a>k!abled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_timh%s&7> _debug_sngspsnr1)sr1perf_evtime51())twith"1imeoutr15ed>fro50">>>50=32> =#end3212> =>
2ng=9o7> =>2gister_cpu_notifiers_time2utaom22kileable961actions_ti>1 t9i1_rest>
childgrou3r/* ho7> _domaigrou3llsn2ag=9o7> =>
a1"205506g3clear_cpu203o>>1g3llsn2ag=9o7> =>
a1"20550ptimer/* ho7> _domai=timeileab!1g7naref"2">>1 t9 hre74POWER_SCAL7> =>
a1"205513iShre74POWER_SCAL7llsn1r new3e513ck>51382> =>
a1" 9"case,2ag=9o7> =>2a1"2055127lertime51a129ck2le97s22snr1gf"2">>1 t9i1_rerddddddddabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_timh(ass=ptime5=s%d)&7> _debug_sngnew3e513ck>51382> =>
a1" 9"case,2a9switches2253er/* Registerdcpu acti2+ not22>3het_cpu_activ+snr1g2">>1 t9ddddddddabled9ik_>ev1srgrou3r/* ho7> _domaigrou3llsn2ag=9o7> =>
a1"205506g3clear_cpu203o>>1g3llsn2ag=9o7> =>
a1"20550ptimer/* ho7> _domai=timeilea5ed>fro50">>>50=32> =#end3212> =>
2nitches"+p2u_notifiers_timeoutaom it2pu_no221ine>3so7> _ttwu_pend829" c50205>50362> =L12> =>
a1" 92q>20
a hrc2u_notifiers_timeoutaom it2pu_no228
15 new3e51cul>51cuer f#ifdef,switch2ag=9o7> =>2a1"2055131lertime51h0"1ne2kw32s231231ine>3raw_spin_lock_irqsav+snr1g7grou3r/* ho7> _domaigrou3llsnr1g7naref"2">>1 t9grou3r/* ho7> _domaigrou3llsn2ag=9o7> =>
a1"20550nextmpmask*q3o>>123nextllsned>fro50">>>50=32> =#end3212> =>
2v0sr1perf_2vf13_2ag=9o7> =>
a1"2055122lert2me51asr1perf_e} while t9i1_rest>
childgrou3r/* ho7> _domaigrou3llsnb!1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc205ed>fro50">>>50=32> =#end3212> =>
2t>3324erd*2d/33nam5133lertime51294>72
aq_723> 77>1t+migration_calls_time="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trCONT33nam5141lertim8
_trCONToid)131_reho7> _debug_sngsps_tim\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12rearly_ini2calls_timeoutaom itearly_2nitca23>
qr new3e51est>514419ot2tatica3nr_sw21" 9"t>3322erd*ad/33nam5135lertime512ts/ru23e50pty hre74oons="7naref"2">>1 t92">>1 t9equ> =>
a1"2055077le2">>1 t9equ> inactiv+snr1, switchef13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S1_timeoutaom itrd9grou3253er/* ho7> _domaigrou3253eutr1) new3e51())>51c5_nex>
a1" 9"t>
id2ag=9o7> =>2a1"2055136lertime510shre32732ss233migrate_taskssnr1gswitches"+pr331cp="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: grou3ehdon't 1_rehdo49va1flag1_re\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>12rg=9o7> =>2FIG_SMPsss*>122ass="naCON2IG_SM23esqr new3e51val>51K7_nex2tatica3nr_sw2ag=9o7> =>2a1"2055138lertime513>5 >1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1rFROZEFROZE1g= h50uta>50332> =>
a1" 9"t>>>12>20
a hrcp2mask_var_ts_timeoutaom it2pumas231ine>3so7> _ttwu_"7naref"2">>1 t92">>1 t9timeetmpmask*q3o>>1231ine>3hotimeetinactiv+snr1, switchgrou3253er/* ho7> _domaigrou3253eutr1_timeoutaom itrd9vf13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1 ) new3e51())>51c5_nex>
a1" 9"t>
id2a>20
a hrc2/33nam514ilertime51cular/2reple23>3het_cpu_activ+snr1gglong)28
_kilea="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trERR33nam5141lertim8
_trERRoid)131_reho7> _debug_sngsps_timERROR: ="2>33 1_rehis1129 a supedse9 &7> _debug_snnew3e51())>51c5_nex>
a1" 9"t>
id2s"+pr331CO2FIG_SCHED_DEBUGsss*>122as2="naC241231ine>3na ac9ik_ef"2">>1 t9g1_reho7> _debug_sngsps_timofhdo49va1flag1_re\n&7> _debug_sn  new3e50 1,>50f32> =>
a1" 9"t>>>120
3271erd*2d/32" 5142lertime51"5#L1.2>tsis24e51asr1perf_evf13_2ask_et h51asr>51312> =L12> =>
a1" 92>20
a hr__2ead_mostlys_timeoutaom it2_read24tamtr1g=t h51294>51are 205#L9>rq>20
a 2>3324erd*a2/33nam5144lertime51est po2si ac2o>
qr new3e51est>514419ot2tatica3nr_sw2tches"+pr321__inits_timeoutaom it__i2iter 2t28
_kileableproceimeoutaom itrd9vf13_2ae49val3evf>331r5153lertime51ck_nee49val3evf>inact 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHle961hcpu203o>>1231ine>3hcpu9ik_sr1perf_evf1 new3e51())>51c5_nex>
a1" 9"t>
id2sp3304erd*2d/33db*5146lertime51 se0 2reple2e()aqr new3e51 se>51412> =>
a1" 9"switc2es"+pr331h27> _debug_enabled203o>>1221ine>2ho7> _debug_enle961hcpu203o>>1231leve itho7> _debugsnleve  aqrr1gsk_et h51asr>51312> =L12> =>
a1" 92>g=9o7> =>2a1"2055148lertime51axssr9271_pc2renaxr1g=t>51axs>51482> =>
a1" 9"ongsl2v0sr1perf_2vf13_2ag=9o7> =>
a1"2055129lert24ertime50K_UNIons="7naref"2">>1 t9f_evf13_2ag=9o7> =>
a1"2055155lertime515#L1 (w/timeoutc20 new3e51())>51c5_nex>
a1" 9"t>
id2s>20
a hrc2d/33nam515ilertime51K_UNI2TERRU24>3het_cpu_activ+snr1gvf13_2k_et h51asr>51312> =L12> =>
a1" 92rearly_par2ssss*>122ass="naearly_par2ssnr125>323 >128h51h0">5131_next_naskolongsl20
3271erd*2d/32" 5152lertime51it_fo>2hrepl251rtime50K_UNIons="7naref"2">>1 t9f51cul>51562> =r1pdRI_S1r new3e513ck>51382> =>
a1" 9"case,2>20
a hrin2="+*q3o>>1231ine>3ins="+s2r1>5#25naBUG_ONsnr1g!5#L9>rqk_irqsav+snr1g7="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trd*ad/33nam5141lertim8
_trd*ad/oid)131_reho7> _debug_sngsps_timCPU%d attaccl"+aNULL39lert-e>3cpu.\n&7> _debug_sngspsnr1)sr1perf_eertime51"2056>>133nam>33p209612951"20>5135_next_naskolf"2">2sp3304erd*2d/33db*5154lertime51st po2si ac25>1231ine>3set_rq_offsebug_e09612951"20>5135_next_naskolf"2">2sches"+pr3297erdho7> _debug_enabled223o>>125/hreplet28
15 new3e50cul>50=52> =r1perf_evf13_2t>3324erd*2d/33nam5156lertime51cular2hrepl25e*qr new3e50ick>50=12> =>
a1" 9"switc2ag=9o7> =>2a1"2055157lertime51val
p 2n jif25o7> _debug_enabled9ik_>ev1sr="naber/* ho7> _domai="nabeinactiv+snr1, switch8
_trd*ad/33nam5141lertim8
_trd*ad/oid)131_reho7> _debug_sngsps_timCPU%d attaccl"+a9lert-e>3cpu:\n&7> _debug_sngspsnr1)sr1perf_eertime51"2056>>133nam>33p209612951"20>5135_next_naskolf"2">2sg=9o7> =>21ho7> _domain_debug_o"+*q2o>>1225enaxr1g=t>51axs>51482> =>
a1" 9"ongsl20
q#L9>rq>20
a hrso7> _ttwu_pend3ngs23o>>1231ine>3so7> _trtim(;;1r new3e513ck>51382> =>
a1" 9"case,2>>20
a hrc2nc_cdsc3253er/* Update ou2 root25>3het_cpu_activ+snr1gons=imeoutaom itrd9vf13_2ae49val3evf>le961so7> _domainu  cr1g= h50uta>50332> =>
a1"lear_cpusnr1gf m51cul>51562> =r1pdRI_SCHpsnr1)sr1perf_eertime51"2056>>133nam>33pgspsnr1)sr1perf_eleve itho7> _debugsnleve  aqr 13meoutaom itrd9vf13_2ae49vacdsc3253er/* ho7> _domains_mutex *ad/33evf13a 32h) new3e51())>51c5_nex>
a1" 9"t>
id20
t>
id4ss2197erdraw_spin_lock_irqsa2+*q3o26m itNOTIFY_OK9ik_sr1p2">>1 t9le77led>fro50">>>50=32> =#end3212> =>
2ol32a9swit2hes"+pr331rq203o>>1231ine23rq9i26ine>3calc_load_migratpsnr1)sr1perf_eleve itho7> _debugsnleve  aqr++ed>fro50">>>50=32> =#end3212> =>
2o20
a hrin2>
id4ss3197erdBUG_ONsss*>222ass26naBUG_ONsnr1g!5#L9>rqk_irqsav+snr1g7m51cul>51562> =r1pdRI_Sr1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1ed>fro50">>>50=32> =#end3212> =>
2op3304erd*2#L9>rq>20
a hrset_rq_offs2"+*q326>1231ine>3set_rq_offsons="7naref"2">>1 t9f51cul>51562> =r1pdRI_S1d>fro50">>>50=32> =#end3212> =>
2oches"+pr321" 9"t>3324erd*ad/33nam5025lert26e50pty hre74o"do a>k!2">>1 t9le77led>fro50">>>50=32> =#end3212> =>
2h>3324erd*20
a hrmigrate_tasks203o>>2231in26la_d322nr>322829" c50205>50362> =L12> =>
a1" 929"5#L9>rq>20
a hrBUG_ONsss*>122ass="2aBUG_26o7> _829" c50205>50362> =L12> =>
a1" 929g=9o7> =>2197erdraw_spin_unlock_irq2estd/26enaxr#sr1ps cl"+asr1pre33evf>331r513!e51mpty hre74o"do /*>5#L17led>fro51let>51392> =12> =>
a1" 9"20
breaksr12erf_evf13_2ag=9o7> =>
a1"2055062lertim#let2g=9eimeoutaom itrd9vf13_2ae49val3evf>331r5153lertime51ck_nee49val3evf>inactlear_cpusnr1gf m51cul>51562> =r1pdRI_SCHpsnr1)sr1perf_eertime51"2056>>133nam>33p) dor e} while t01d>fro50">>>50=32> =#end3212> =>
2o>20
a hrc2/33nam507ilertime50=>
a1"2932>t26>3het0
a hrbools_timeoutaom itbooler ft28
_kileable961ho7> _debugs_timeoutaom itho7> _debugsnr1gvoid)13a 32his cl"+asr1pre33evf>331r5153lertime51ck_next_n32itr>325()-5im51ck_>5153   c>
a1" 9"t>
id2witches"+p2331CPU_DEADsss*>122ass="n2CPU_D27m itN new3e513ck>51382> =>
a1" 9"case,2ol>>1 t9i12rest>
calc_load_migrate202o>>1227e51asr1perf_evf13_2a3a 32his cl"+as11ilertime51:122ass="namte_*qed>fro50">>>50=32> =#end3212> =>
2o20
a hrin2erf_evf13_2ag=9o7> =>
a1"20550727tamtr1g=t h51294>51are 205#L9>rq>20
a 2w
t>>>140
2erd*ad/33nam50=4lertime502>>5#L27>1231meoutrs cl"+asr1pre33evf>331r513e51mpty hre74o"do /*>5#L17led>fro51let>51392> =12> =>
a1" 9"2>
a1" 9"t>2324erd*ad/33nam50=5lertim250cul27utr1 new3e50())>50c5_next_naskolcase,2ag=9o7> =>2a1"2055076lertime50ick()>235>ss2"e*qr so7> _domain_debug_o"+snr1g_nexgener5161so7> _domainu  _nexgener516inact 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_S()-5im51ck_>5153   c>
a1" 9"t>
id2w"5#L9>rq>2date_max_3nrervags_timeou2aom i27es.qr new3e513 i>51372> =>
a1" 9"hwitc2ag=9o7> =>2a1"2055078lertime50* 
/3>2rupti27750pty hre74oons=7naref"2">>1 t92">>1 t9weightmpmask*q3o>>1231ine>3howeightinactiv+snr1, switchef13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S15erf_1()-5im51ck_>5153   c>
a1" 9"t>
id2w
breaksr1297erdNOTIFY_OKs_timeoutao2 itNO27m itNOTIFY_OK9ik_sr1perf_evf!faaccl51514ler fr1perf_evf13_2t>3324erd*2d/33nam508ilertime50 0ach2hrepl278
15 new3e51cul>51cuer f#ifdef,switch2ag=9o7> =>2a1"2055081lertime50pt_ena2ac()r281231ine>3na a cl"+asr1pre33evf>331r513Followl"+a32 (
 need ataleast 2 grou3eh*>5#L17led>fro51let>51392> =12> =>
a1" 9"2="3239er/*2/33evf13a 32his cl"+asr1p2e33ev281rtime50K_UNIons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326_FROZEN=7naref"2">>1 t9SD_LOAD_BALANC7> =>
a1"205513iSD_LOAD_BALANC7RI_S |d>fro51let>51392> =12> =>
a1" 9"2=20
a hrin2Registerdat high priority2so th28ertime50">>1 twc9acticalc_load7naref"2">>1 t9SD_BALANC7_NEWIDL7> =>
a1"205513iSD_BALANC7_NEWIDL7RI_S |d>fro51let>51392> =12> =>
a1" 9"2=
t>>>140
2happens befvf> everyth3ng2else.28q3o>>1231ine>3raw_spicalc_load7naref"2">>1 t9SD_BALANC7_FOR:1lertime51>5#L1SD_BALANC7_FOR:RI_S |d>fro51let>51392> =12> =>
a1" 9"2=
a1" 9"t>2the notifier in the perf_2vent 28e50pty hre74o"do a>k!2">>1 t9i7naref"2">>1 t9SD_BALANC7_EXEC1lertime51>5#L1SD_BALANC7_EXECRI_S |d>fro51let>51392> =12> =>
a1" 9"2=g=9o7> =>2d/33evf13a 32his cl"+asr12re33e28kileable961actions_timeoutaomi7naref"2">>1 t9SD_SHARE_CPUPOWER1lertime51>5#L1SD_SHARE_CPUPOWERRI_S |d>fro51let>51392> =12> =>
a1" 9"2="5#L9>rq>2e961notifier_blocks_timeo2taom 28snr1gf"2">>1 t9i1_rerddddddddi7naref"2">>1 t9SD_SHARE_PKG_RESOURCES1lertime51>5#L1SD_SHARE_PKG_RESOURCESRI_S15e new3e513 i>51372> =>
a1" 9"hwitc29i1_rest>
2otifier_calls_timeoutaom 2tnoti28>3het_cpu_activ+snr1gons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20b!1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc202ag=9o7> =>
a1"20550nextmpmask*q3o>>123nextllsn()-5im51ck_>5153   c>
a1" 9"t>
id2=t>
id4ss32rioritys_timeoutaom itpri2rity9281ine>3so7> _ttwu_pendddddddddvf13_2ask_et h51asr>51312> =L12> =>
a1" 92=>3324erd*2>
a1"205509ilertime50e" n2mtio328>3het_cpu_act1g=t h51294>51are 205#L9>rq>20
a 2ag=9o7> =>2a1"2055091lertime50pt_ena2ac()r29>323 >128h51h0">5131_next_naskolongsl2tches"+pr321__cpuinits_timeoutaom it2_cpui29the boot CPU *ad/33evf13a 32his cl"+asFollowl"+a32 (
 don't u1psgrou3eh*>5#L17led>fro51let>51392> =12> =>
a1" 9"2t"3239erd*2












unsigned lon2t28
_292rtime50K_UNIons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326_FROZEN=7naref"2">>1 t9SD_WAKE_AFFne>3cpu9ik_)sr1perSD_WAKE_AFFne> 32h) new3e51())>51c5_nex>
a1" 9"t>
id2sp3304erd*2d/33db*5094lertime50val
p2in ji29q3o>>1231ine>3raw_spivf13_2ask_et h51asr>51312> =L12> =>
a1" 92a9switches2+pr331actions_timeoutaom 2tacti29utr1 new3e50())>50c5_next_naskolcase,2witches"+p2331CPU_STARTINGsss*>122as2="naC2U_STARTING_nexerf_evf!faaccl51514ler fr1perf_evf13_2witches"+p2331CPU_DOWN_FAILEDsss*>122ass="29o7> _829" c50205>50362> =L12> =>
a1" 92wi1_rest>
2197erdhet_cpu_activ+*q3o>21231i29enaxr1g=t>51axs>51482> =>
a1" 9"ongsl2wt>
id4ss32
id4ss3197erdNOTIFY_OKs_t2meout29var_ter ft28oma1g=t>51axs>51482> =>
a1" 9"ongsl2w>3324erd*2f13_2ag=9o7> =>
a1"2055132lerti29ts tri_debug_o"+snr1g_n="2>33nexgener5161so7> _domainu  _n="2>33nexgener516inact 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCH 9"t>>>140
>>1 t9i1_rest>
cpumask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf f"2>331/* ho7> _domai="2>33utr1 new3e51())>51c5_nex>
a1" 9"t>
id30
ongsl2vt3
id4ss3197erdNOTIFY_DONEs3s*>1230m itN new3e513ck>51382> =>
a1" 9"case,3>
a1" 9"t>3324erd*ad/33nam5132lertim3513
 30ine>3calc_loaunsigned r_idHpsnr1)sr1perf_ee068lertime500
6>>128c32 (
>326_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326CHpsnr1)sr1perf_ep068lertime500
6>>128p32 (
>326_1g7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>068lertime500
6>>12832 (
>326faaccl51514ler fr1perf_evf13_3t>3324erd*3d/33nam5103lertime513ular3hrepl30   cr1g= h50uta>50332> =>
a1" 9"t>>>13>3324erd*a3/33nam5104lertime513al
p 3n jif30>1231ine>3setons=7naref"2">>1 t9m5nexgener5161so7> _domainu  _nexgener516inactlear_cpusnr1gf f"2>331/* ho7> _domai="2>33utr1  new3e51())>51c5_nex>
a1" 9"t>
id304324erd*a3/pr331actions_timeoutaom 3_cpui30e50pty hre74o"do a>k!erf_evf!faaccl51514ler fr1perf_evf13_39"0
t>>>143














unsigned l3ngt2830e*qr new3e50ick>50=12> =>
a1" 9"switc3sp3304erd*3d/33db*5137lertime513 isr3n jif3061231ine>3setons="7naref"2">>1 t92">>1 t9equ> =>
a1"2055077le2">>1 t9equ> inactiv+snr1, switchef13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S1_timeoutaom itrd9ef13_2ae49val
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switchf"2>331/* ho7> _domai="2>33utr1 ) new3e51())>51c5_nex>
a1" 9"t>
id3a9switches3+pr331actions_timeoutaom 3tacti30>3het_cpu_activ+snr1gvf13_2ask_et h51asr>51312> =L12> =>
a1" 93witches"+p3331CPU_DOWN_PREPAREsss*>132ass=301ine>_et h51asr>51312> =L12> =>
a1" 93w9tches"+p3313_2ag=9o7> =>
a1"20551331231i3e>3het_cpu_act*ad/33evf13a 32his cl"+asF2 (
 needl"+agrou3ehdon't countgon only 1 grou3_7n ="2>33 *>5#L17led>fro51let>51392> =12> =>
a1" 9"30
ongsl2vt3
id4ss3197erdNOTIFY_OKs_t3meout3om itNOTIFY_OKons=7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>grou3ertime500
6>>128grou3etc20b=1g7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>grou3ertime500
6>>128grou3etc202ag=9o7> =>
a1"20550nextmpmask*q3o>>123nextllsn(e new3e513 i>51372> =>
a1" 9"hwitc3t:r1perf_e3f13_2ag=9o7> =>
a1"20551:3lerti31ine>3calc_load_migratpsnr1)sr1perf_ep068lertime500
6>>128p32 (
>326_FROZE= ~=7naref"2">>1 t9SD_LOAD_BALANC7> =>
a1"205513iSD_LOAD_BALANC7RI_S |d>fro51let>51392> =12> =>
a1" 9"30
ongsl2vt3
id4ss3197erdNOTIFY_DONEs3s*>1231ertime50">>1 twc9acticalc_load_migrat7naref"2">>1 t9SD_BALANC7_NEWIDL7> =>
a1"205513iSD_BALANC7_NEWIDL7RI_S |d>fro51let>51392> =12> =>
a1" 9"3>
a1" 9"t>3324erd*ad/33nam51:4lertim351"5#31>1231ine>3set_rq_offscalc_load_migrat7naref"2">>1 t9SD_BALANC7_FOR:1lertime51>5#L1SD_BALANC7_FOR:RI_S |d>fro51let>51392> =12> =>
a1" 9"3>4324erd*a3d/33nam51:5lertime51y >>k3lerr_31e50pty hre74o"do a>k!2">>_load_migrat7naref"2">>1 t9SD_BALANC7_EXEC1lertime51>5#L1SD_BALANC7_EXECRI_S |d>fro51let>51392> =12> =>
a1" 9"3ag=9o7> =>3a1"20551:6lertime51ick()>335>ss31kileable961actions_timeoutaomd_migrat7naref"2">>1 t9SD_SHARE_CPUPOWER1lertime51>5#L1SD_SHARE_CPUPOWERRI_S |d>fro51let>51392> =12> =>
a1" 9"3tches"+pr331__inits_timeoutaom it__i3iter 31snr1gf"2">>1 t9i1_rerddddddddd_migrat7naref"2">>1 t9SD_SHARE_PKG_RESOURCES1lertime51>5#L1SD_SHARE_PKG_RESOURCESRI_S1k_et h51asr>51312> =L12> =>
a1" 93t9switches3d/33db*5118lertime51ck()>335>ss31>3het_cpu_activ+snr1gons=7naref"2">>1 t9nr_n1 t_idertime500
6>>128nr_n1 t_idetc20b=1g1()-5im51ck_>5153   c>
a1" 9"t>
id3titches"+p3e961cpu203o>>1231ine>3cpu3ik_>e311ine>3so7> _ttwu_pendd_migrat7naref"2">>1 t9p068lertime500
6>>128p32 (
>326_FROZE= ~7naref"2">>1 t9SD_SERIALIZ7> =>
a1"205513iSD_SERIALIZ7>326faaccl51514ler fr1perf_evf13_309tches"+p331errs_timeoutaom iterr9i3_sr1p31>3het_cpu_act1g=t h51294>51are 205#L9>rq>20
a 3ag=9o7> =>3a1"2055121lertime51renaTA3K_KIL32m itNOTIFY_OKons=~7naref"2">>1 t9e068lertime500
6>>128c32 (
>326_FROZENs203o>>1231ine>p068lertime500
6>>128p32 (
>326()-5im51ck_>5153   c>
a1" 9"t>
id3ndonc_cdsc3253er/* Initialize migrat3on fv32ine>3calc_load_migratvf13_2ask_et h51asr>51312> =L12> =>
a1" 93sp32s1erde3rs_timeoutaom iterr9ik_>e3=50332> =>
a1" 9"t>>>13n
a1" 9"t>3G_ONsss*>122ass="naBUG_ON3nr1gf32>1231ine>3seterf_evf!faaccl51514ler fr1perf_evf13_3s> 77>1t+m3gration_calls_timeoutaom 3tmigr32e50pt1g=t h51294>51are 205#L9>rq>20
a 3ag=9o7> =>3gister_cpu_notifiers_time3utaom32e*qr new3e50ick>50=12> =>
a1" 9"switc3ag=9o7> =>3a1"2055127lertime51a129ck3le97s32snr1gileableproceimeoutaom itrd9free_rootumask_clear_cpu203o>>free_rootumask_inact 9"t>>>140
>>1 t9i1_rercu_hea51cul>51562> =r1rcu_hea5mask_clear_cpusnr1gf rcu1cul>51562> =r1rcu>326()-5im51ck_>5153   c>
a1" 9"t>
id3n9switches3253er/* Registerdcpu acti3+ not32>3het new3e513 i>51372> =>
a1" 9"hwitc3nitches"+p3u_notifiers_timeoutaom it3pu_no321ine>3so7> _t 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf r51cul>51562> =r1rdRI_Sr1g7naref"2">>1 t9cont >tme_ouf9ik_, 32,a>cka1ont >tme_ouinactiv+snr1, switchrcu1cul>51562> =r1rcu>326CH 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_timeoutaom itrd9rcu1cul>51562> =r1rcu>326(faaccl51514ler fr1perf_evf13_3s9tches"+p3u_notifiers_timeoutaom it3pu_no328
15 new3e51cul>51cuer f#ifdef,switch3ag=9o7> =>3a1"2055131lertime51h0"1ne3kw32s331231ine>3raw_7naref"2">>1 t92">prioi1_rnu3r/* ho7> _domai2">prioi1_rnu3inactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"205502">prir/* ho7> _domai2">pri>326(faaccl51514ler fr1perf_evf13_3v0sr1perf_3vf13_2ag=9o7> =>
a1"2055132lert3me51asr1perf_eimeoutaom itrd9free_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550rto_253er/* ho7> _domairto_253e>326(faaccl51514ler fr1perf_evf13_3vp32s1erde3d/33nam5133lertime51294>73
aq_733> 77>1t+migration_calls_timefree_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550oitbooler ft28
_kileaole961ho7>(faaccl51514ler fr1perf_evf13_3v
a1" 9"t>3calls_timeoutaom itearly_3nitca33">>1 t9i1_reerrs_timeoutaom free_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550
3lertime50 1, o>/nu3leinac(faaccl51514ler fr1perf_evf13_3v> 77>1t+m3erd*ad/33nam5135lertime513ts/ru33e50pty hre74oo7> =>
a1"20550kfreertime50 1, o>/nkfreeinactiv+snr1, switchr51cul>51562> =r1rdRI_S(faaccl51514ler fr1perf_evf13_3vg=9o7> =>3a1"2055136lertime510shre33732ss3328
15 new3e51cul>51562> =r1perf_evf13_3rg=9o7> =>3FIG_SMPsss*>122ass="naCON3IG_SM33esqr new3e51val>51K7_nex2tatica3nr_sw3ag=9o7> =>3a1"2055138lertime513>5 3so7> _dproceimeoutaom itrd9rq_attacc_root1cul>51562> =r1rq_attacc_rootinact 9"t>>>140
>>1 t9i1_rerq1cul>51562> =r1rqmask_clear_cpusnr1gf rq1cul>51562> =r1rqmaskCH 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf r51cul>51562> =r1rdRI_S()-5im51ck_>5153   c>
a1" 9"t>
id3>20
a hrcp3mask_var_ts_timeoutaom it3pumas331ine> new3e513 i>51372> =>
a1" 9"hwitc3a>20
a hrc3/33nam514ilertime51cular/3reple33>3het_cpu_act 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf old_r51cul>51562> =r1old_r5RI_Sr1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326faaccl51514ler fr1perf_evf13_3s"+pr331CO3FIG_SCHED_DEBUGsss*>122as3="naC341231ine>3na aunsigned r_idHpsnr1)sr1perf_e068lertime500
6>>12832 (
>326faaccl51514ler fr1perf_evf13_30
3271erd*3d/32" 5142lertime51"5#L1.3>tsis3428
15#Lt h51it_>51522> =2tatica5#L9>r3>20
a hr__3ead_mostlys_timeoutaom it3_read34> 77>1t+migration_calls_timeraw_spin_lock_irqsavertime50 1, o>/nraw_spin_lock_irqsaveinactFROZElear_cpusnr1gf rq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550lock1cul>51562> =r1lockmask_timeoutaom itrd9068lertime500
6>>12832 (
>326(faaccl51514ler fr1perf_evf13_3>3324erd*a3/33nam5144lertime51est po3si ac3o>
qr new3e51est>514419ot2tatica3nr_sw3tches"+pr331__inits_timeoutaom it__i3iter 34e50pty hre74oons=lear_cpusnr1gf rq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550r51cul>51562> =r1rdRI_S(e new3e513 i>51372> =>
a1" 9"hwitc3sp3304erd*3d/33db*5146lertime51 se0 3reple343migrate_taskssnr1gswitches"+pr331cpold_r51cul>51562> =r1old_r5RI_Sr1g7naref"2">>1 t9rq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550r51cul>51562> =r1rdRI_Sfaaccl51514ler fr1perf_evf13_3>g=9o7> =>37> _debug_enabled203o>>1231ine>34esqr new3e51val>51K7_nex2tatica3nr_sw3>g=9o7> =>3a1"2055148lertime51axssr9371_pc34>3het_cpu_activ+snr1gons=7naref"2">>1 t92">>1 t903o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9irq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550ertime51"2056>>133nam>33pgspsnr1)sr1perf_eold_r51cul>51562> =r1old_r5RI_S2ag=9o7> =>
a1"20550oitbooler ft28
_kileaole961ho7>(()-5im51ck_>5153   c>
a1" 9"t>
id3v0sr1perf_3vf13_2ag=9o7> =>
a1"2055139lert341ine>3so7> _ttwu_pendd_migrat7naref"2">>1 t9set_rq_offtbooler ft28
_kileaset_rq_offtbooq203o>>1231ine>3rq9irq1cul>51562> =r1rqmask(faaccl51514ler fr1perf_evf13_3>>20
a hrc3d/33nam515ilertime51K_UNI3TERRU348
15 new3e51cul>51cuer f#ifdef,switch3rearly_par3ssss*>122ass="naearly_par3ssnr1351231ine>3raw_spin_lock_irqsav+snr1g72">>1 t9i1_rr>1231ine>3cpu9ik_, f"2">>1 i1_rr>123q203o>>1231ine>3rq9irq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550ertime51"2056>>133nam>33pgspsnr1)sr1perf_eold_r51cul>51562> =r1old_r5RI_S2ag=9o7> =>
a1"20550
3lertime50 1, o>/nu3leinac(faaccl51514ler fr1perf_evf13_30
3271erd*3d/32" 5152lertime51it_fo>3hrepl3528
15#Lt h51it_>51522> =2tatica5#L9>r3>20
a hrin3="+*q3o>>1231ine>3ins="+s3r1>5#35naBUG_ONsnr1g!5#L9>rqk1_reho7> _dexssr9o71_pcorenaxr1g=t>50axs>50 2   ck12o32w>122as3sp3304erd*3d/33db*5154lertime51st po3si ac35>1231039lertime50namtioL132/////////////////* If  (adont want to free the old_rt yet thenorenaxr1g=t>50axs>50 2   ck12o32w>122as3sches"+pr3397erdho7> _debug_enabled233o>>135/hrep039lertime50namtioL132/////////////////* se9 old_r5 to NULL3to skip the freel"+alatmeilenaxr1g=t>50axs>50 2   ck12o32w>122as3sp3304erd*3d/33nam5156lertime51cular3hrepl35e*qr 039lertime50namtioL132/////////////////* in97sis func122l:ilenaxr1g=t>50axs>50 2   ck12o32w>122as3sg=9o7> =>3a1"2055157lertime51val
p 3n jif35CPU_D5086lertime50utaom its/////////////////*>5#L17led>fro51let>51392> =12> =>
a1" 9"3sg=9o7> =>31ho7> _domain_debug_o"+*q3o>>1235>3het_cpu_activ+snr1gons="7naref"2">>1 t9atomic_dec_and t9i1rtime50 1, o>/natomic_dec_and t9i1inactFROZElear_cpusnr1gf old_r51cul>51562> =r1old_r5RI_S2ag=9o7> =>
a1"20550=>
count1cul>51562> =r1r>
countho7>(()-5im51ck_>5153   c>
a1" 9"t>
id30
q#L9>rq>30
a hrso7> _ttwu_pend3ngs33o>>1351ine>3so7> _ttwu_pendd_migrat7naref"2">>1 t9old_r51cul>51562> =r1old_r5RI_Sr1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326faaccl51514ler fr1perf_evf13_3>>20
a hrc3nc_cdsc3253er/* Update ou3 root35>3het_cpu_act1g=t h51294>51are 205#L9>rq>20
a 30
t>
id4ss3197erdraw_spin_lock_irqsa3+*q3o36>323 >128h51h0">5131_next_naskolongsl3ol32a9swit3hes"+pr331rq203o>>1231ine33rq9i36e51asr1perf_eimeoutaom itrd9atomic_incrtime50 1, o>/natomic_incinactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550=>
count1cul>51562> =r1r>
countho7>(faaccl51514ler fr1perf_evf13_3o20
a hrin3>
id4ss3197erdBUG_ONsss*>322ass36> 77>1t+migration_calls_timerq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550r51cul>51562> =r1rdRI_Sr1g7naref"2">>1 t9r51cul>51562> =r1rdRI_Sfaaccl51514ler fr1perf_evf13_3op3304erd*3#L9>rq>20
a hrset_rq_offs3"+*q336>
qr new3e51est>514419ot2tatica3nr_sw3oches"+pr331" 9"t>3324erd*ad/33nam5035lert36e50pty hre74oo7> =>
a1"205501ine>3hote>>1231ine>3cpu9ik_, f"2">>1 te>>123q203o>>1231ine>3rq9irq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550ertime51"2056>>133nam>33pgspsnr1)sr1perf_er51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550
3lertime50 1, o>/nu3leinac(faaccl51514ler fr1perf_evf13_3h>3324erd*30
a hrmigrate_tasks203o>>3231in36la_d322nr>322ons=7naref"2">>1 t92">>1 t903o>>1231ine>3cpu9ik_, f"2">>1 t9i1_rerq203o>>1231ine>3rq9irq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550ertime51"2056>>133nam>33pgspsnr1)sr1perf_eass=ac12ve_253er/* ho7> _domaiass=ac12ve_253eho7>(()-5im51ck_>5153   c>
a1" 9"t>
id39"5#L9>rq>30
a hrBUG_ONsss*>122ass="3aBUG_36snr1gf"2">>1 t9i1_rer7naref"2">>1 t9set_rq_oitbooler ft28
_kileaset_rq_oitbooq203o>>1231ine>3rq9irq1cul>51562> =r1rqmask(faaccl51514ler fr1perf_evf13_39g=9o7> =>3197erdraw_spin_unlock_irq3estd/36enaxr1g=t>51axs>51482> =>
a1" 9"ongsl30
breaksr13erf_evf13_2ag=9o7> =>
a1"305506368 77>1t+migration_calls_timeraw_spin_unlock_irqr9i1 9"rtime50 1, o>/nraw_spin_unlock_irqr9i1 9"inactFROZElear_cpusnr1gf rq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550lock1cul>51562> =r1lockmask_timeoutaom itrd9068lertime500
6>>12832 (
>326(faaccl51514ler fr1perf_evf13_3o>20
a hrc3/33nam507ilertime50=>
a1"3932>t368
15 new3e51cul>51cuer f#ifdef,switch3witches"+p3331CPU_DEADsss*>122ass="n3CPU_D37m itNOTIFY_OKons=7naref"2">>1 t9old_r51cul>51562> =r1old_r5RI_S()-5im51ck_>5153   c>
a1" 9"t>
id3ol>>1 t9i13rest>
calc_load_migrate203o>>1237ine>3calc_load_migratpsnr1)sr1perf_ecall_rcu_ c>
ar/* ho7> _domaiaall_rcu_ c>
ainactFROZElear_cpusnr1gf old_r51cul>51562> =r1old_r5RI_S2ag=9o7> =>
a1"20550=cu1cul>51562> =r1rcu>326CHimeoutaom itrd9free_rootumask_clear_cpu203o>>free_rootumask_inac(faaccl51514ler fr1perf_evf13_3o20
a hrin3erf_evf13_2ag=9o7> =>
a1"30550737tamtr1g=t h51294>51are 205#L9>rq>20
a 3w
t>>>140
3erd*ad/33nam50=4lertime503>>5#L37>
qr new3e51est>514419ot2tatica3nr_sw3>
a1" 9"t>3324erd*ad/33nam50=5lertim350cul3728
_kileableomain_debug_o"+snr1i1pr_rootumask_clear_cpu203o>>i1pr_rootumask_inact 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf r51cul>51562> =r1rdRI_S()-5im51ck_>5153   c>
a1" 9"t>
id3ag=9o7> =>3a1"2055076lertime50ick()>335>ss37()aqr new3e51 se>51412> =>
a1" 9"switc3w"5#L9>rq>3date_max_3nrervags_timeou3aom i37o7> _debug_enabled9ik_>ev1srmemeetmpmask*q3o>>123memeetinactiv+snr1, switchr51cul>51562> =r1rdRI_S, 0, sizeoftclear_cpusnr1gf r51cul>51562> =r1rdRI_S((faaccl51514ler fr1perf_evf13_3og=9o7> =>3a1"2055078lertime50* 
/3>3rupti37enaxr1g=t>51axs>51482> =>
a1" 9"ongsl3w
breaksr1397erdNOTIFY_OKs_timeoutao3 itNO37ertime50K_UNIons="7naref"2">>1 t9alloc_2">>1 t9vrempmask*q3o>>123alloc_2">>1 t9vreinactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550
3lertime50 1, o>/nu3leinacCHimeoutaom itrd9GFP_8
_tEL1cul>51562> =r1GFP_8
_tELho7>(()-5im51ck_>5153   c>
a1" 9"t>
id3t>3324erd*3d/33nam508ilertime50 0ach3hrepl37>3het_cpu_activ+snr1ggotot7naref"2">>1 t9outmpmask*q3o>>123outRI_Sfaaccl51514ler fr1perf_evf13_3ag=9o7> =>3a1"2055081lertime50pt_ena3ac()r38m itNOTIFY_OKons="7naref"2">>1 t9alloc_2">>1 t9vrempmask*q3o>>123alloc_2">>1 t9vreinactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550oitbooler ft28
_kileaole961ho7>CHimeoutaom itrd9GFP_8
_tEL1cul>51562> =r1GFP_8
_tELho7>(()-5im51ck_>5153   c>
a1" 9"t>
id3="3239er/*3/33evf13a 32his cl"+asr1p3e33ev38ine>3calc_load_migratgotot7naref"2">>1 t9free_
3lertime50 1, o>/nfree_
3leRI_Sfaaccl51514ler fr1perf_evf13_3a20
a hrin3Registerdat high priority3so th382rtime50K_UNIons="7naref"2">>1 t9alloc_2">>1 t9vrempmask*q3o>>123alloc_2">>1 t9vreinactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550rto_253er/* ho7> _domairto_253e>326CHimeoutaom itrd9GFP_8
_tEL1cul>51562> =r1GFP_8
_tELho7>(()-5im51ck_>5153   c>
a1" 9"t>
id3=
t>>>140
3happens befvf> everyth3ng3else.38q3o>>1231ine>3raw_spigotot7naref"2">>1 t9free_oitbooler ft28
_kileafree_oitbooRI_Sfaaccl51514ler fr1perf_evf13_3a
a1" 9"t>3the notifier in the perf_3vent 38utr1 new3e50())>50c5_next_naskolcase,3=g=9o7> =>3d/33evf13a 32his cl"+asr13re33e38la_d322nr>322ons=7naref"2">>1 t92">prioi1prr/* ho7> _domaiassprioi1prinactFROZElear_cpusnr1gf r51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"205502">prir/* ho7> _domai2">pri>326(b!1g01d>fro50">>>50=32> =#end3212> =>
3="5#L9>rq>3e961notifier_blocks_timeo3taom 38snr1gf"2">>1 t9i1_rergotot7naref"2">>1 t9free_rto_253er/* ho7> _domaifree_rto_253eRI_Sfaaccl51514ler fr1perf_evf13_3ag=9o7> =>3otifier_calls_timeoutaom 3tnoti38>3het_cpu_actvf13_2ask_et h51asr>51312> =L12> =>
a1" 93=t>
id4ss33rioritys_timeoutaom itpri3rity9381ine>_et h51asr>51312> =L12> =>
a1" 93=>3324erd*3>
a1"205509ilertime50e" n3mtio338ts tri_debug_o"+snr1free_rto_253er/* ho7> _domaifree_rto_253eRI_S:_et h51asr>51312> =L12> =>
a1" 93ag=9o7> =>3a1"2055091lertime50pt_ena3ac()r391231ine>3raw_7naref"2">>1 t9free_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550rto_253er/* ho7> _domairto_253e>326(faaccl51514ler fr1perf_evf13_3tches"+pr331__cpuinits_timeoutaom it3_cpui39the b7naref"2">>1 t9free_oitbooler ft28
_kileafree_oitbooRI_S:_et h51asr>51312> =L12> =>
a1" 93a20
a hrin3












unsigned lon3t28
_39> 77>1t+migration_calls_timefree_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550oitbooler ft28
_kileaole961ho7>(faaccl51514ler fr1perf_evf13_3sp3304erd*3d/33db*5094lertime50val
p3in ji39q3o>>7naref"2">>1 t9free_
3lertime50 1, o>/nfree_
3leRI_S:_et h51asr>51312> =L12> =>
a1" 93a
a1" 9"t>3+pr331actions_timeoutaom 3tacti39e50pty hre74oo7> =>
a1"20550free_2">>1 t9vrempmask*q3o>>123free_2">>1 t9vreinactiv+snr1, switchr51cul>51562> =r1rdRI_S2ag=9o7> =>
a1"20550
3lertime50 1, o>/nu3leinac(faaccl51514ler fr1perf_evf13_3witches"+p3331CPU_STARTINGsss*>122as3="naC3U_STAR7naref"2">>1 t9outmpmask*q3o>>123outRI_S:_et h51asr>51312> =L12> =>
a1" 93a"5#L9>rq>3331CPU_DOWN_FAILEDsss*>123ass="3963het_cpu_actvf13_2a-7naref"2">>1 t9ENOMEMmpmask*q3o>>123ENOMEMRI_Sfaaccl51514ler fr1perf_evf13_3wi1_rest>
3197erdhet_cpu_activ+*q3o>31231i39enaxr1g=t h51294>51are 205#L9>rq>20
a 3wt>
id4ss33
id4ss3197erdNOTIFY_OKs_t3meout391ine>_et h51asr>51312> =L12> =>
a1" 93w>3324erd*3f13_2ag=9o7> =>
a1"2055133lerti39ts tri1_reho7> _dexssr9o71_pcorenaxr1g=t>50axs>50 2   ck12o32w>122as40
ongsl2vt4
id4ss3197erdNOTIFY_DONEs4s*>1240m itN5086lertime50utaom its/* Bylet2ault the system creates a single root-e>3cpu with all reri asorenaxr1g=t>50axs>50 2   ck12o32w>122as401ongsl2vt4
__cpuinits_timeoutaom it4513
 40ine>35086lertime50utaom its/* members (mimickl"+athe global ileae  (ahave today).orenaxr1g=t>50axs>50 2   ck12o32w>122as402ongsl2vt4












unsigned lon4hrepl40   cr5086lertime50utaom its/*>5#L17led>fro51let>51392> =12> =>
a1" 9"4>3324erd*a4/33nam5104lertime513al
p 4n jif40>1231 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_140
>>1 t9i1_reet2_rootpumask_clear_cpu203o>>et2_rootpumask_RI_Sfaaccl51514ler fr1perf_evf13_404324erd*a4/pr331actions_timeoutaom 4_cpui40utr1 new3e50())>50c5_next_naskolcase,49"0
t>>>144














unsigned l4ngt2840e*qr so7> _dproceimeoutaom itrd9i1pr_et2rootumask_clear_cpu203o>>i1pr_et2rootumask_inact>325()-5im51ck_>5153   c>
a1" 9"t>
id4sp3304erd*4d/33db*5137lertime513 isr4n jif40es.qr new3e513 i>51372> =>
a1" 9"hwitc4a9switches4+pr331actions_timeoutaom 4tacti40>3het_cpu_actn_debug_o"+snr1i1pr_rootumask_clear_cpu203o>>i1pr_rootumask_inactFROZElear_cpusnr1gf et2_rootpumask_clear_cpu203o>>et2_rootpumask_RI_S(faaccl51514ler fr1perf_evf13_4witches"+p4331CPU_DOWN_PREPAREsss*>142ass=401ine>_et h51asr>51312> =L12> =>
a1" 94w9tches"+p4313_2ag=9o7> =>
a1"20551341231i4e>3het_cpu_act*meoutaom itrd9atomic_eetmpmask*q3o>>123atomic_eetinactFROZElear_cpusnr1gf et2_rootpumask_clear_cpu203o>>et2_rootpumask_RI_S.o7> =>
a1"20550=>
count1cul>51562> =r1r>
countho7>, 1(faaccl51514ler fr1perf_evf13_40
ongsl2vt4
id4ss3197erdNOTIFY_OKs_t4meout4om itN1g=t h51294>51are 205#L9>rq>20
a 4t:r1perf_e4f13_2ag=9o7> =>
a1"20551:4lerti4128
15#Lt h51it_>51522> =2tatica5#L9>r40
ongsl2vt4
id4ss3197erdNOTIFY_DONEs4s*>1241ertimso7> _d 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf alloc_rootumask_clear_cpu203o>>alloc_rootumask_inact>325()-5im51ck_>5153   c>
a1" 9"t>
id4>
a1" 9"t>4324erd*ad/33nam51:4lertim451"5#41>1231 new3e513 i>51372> =>
a1" 9"hwitc4>4324erd*a4d/33nam51:5lertime51y >>k4lerr_41e50pty hre74o 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf r51cul>51562> =r1rdRI_Sfaaccl51514ler fr1perf_evf13_40"0
t>>>144a1"20551:6lertime51ick()>435>ss41e*qr new3e50ick>50=12> =>
a1" 9"switc4tches"+pr341__inits_timeoutaom it__i4iter 41o7> _debug_enabled9ik_>ev1srr51cul>51562> =r1rdRI_Sr1g7naref"2">>1 t9kmalloc1cul>51562> =r1kmallocinact izeoftclear_cpusnr1gf r51cul>51562> =r1rdRI_S(CHimeoutaom itrd9GFP_8
_tEL1cul>51562> =r1GFP_8
_tELho7>(faaccl51514ler fr1perf_evf13_409switches4d/33db*5118lertime51ck()>435>ss41750pty hre74oons="7naref"2">>1 t9r51cul>51562> =r1rdRI_S()-5im51ck_>5153   c>
a1" 9"t>
id4titches"+p4e961cpu203o>>1231ine>3cpu4ik_>e411ine>3so7> _ttwu_pendvf13_2a3a 32his cl"+asNULL1cul>51562> =r1NULL>326faaccl51514ler fr1perf_evf13_409tches"+p431errs_timeoutaom iterr9i4_sr1p418
15 new3e51cul>51cuer f#ifdef,switch4ag=9o7> =>4a1"2055121lertime51renaTA4K_KIL42m itNOTIFY_OKons=n_debug_o"+snr1i1pr_rootumask_clear_cpu203o>>i1pr_rootumask_inact7naref"2">>1 t9r51cul>51562> =r1rdRI_S(b!1g01e new3e513 i>51372> =>
a1" 9"hwitc4ndonc_cdsc4253er/* Initialize migrat4on fv42ine>3calc_load_migrat7naref"2">>1 t9kfreertime50 1, o>/nkfreeinactiv+snr1, switchr51cul>51562> =r1rdRI_S(faaccl51514ler fr1perf_evf13_4sp32s1erde4rs_timeoutaom iterr9ik_>e4=rqvf13_2a3a 32his cl"+asNULL1cul>51562> =r1NULL>326faaccl51514ler fr1perf_evf13_4n
a1" 9"t>4G_ONsss*>122ass="naBUG_ON4nr1gf42>1231ine>3set1g=t h51294>51are 205#L9>rq>20
a 4s> 77>1t+m4gration_calls_timeoutaom 4tmigr42utr1 new3e50())>50c5_next_naskolcase,4ag=9o7> =>4gister_cpu_notifiers_time4utaom42_STARTING_nexerf_evflear_cpusnr1gf r51cul>51562> =r1rdRI_Sfaaccl51514ler fr1perf_evf13_4ag=9o7> =>4a1"2055127lertime51a129ck4le97s42o7> _829" c50205>50362> =L12> =>
a1" 94n9switches4253er/* Registerdcpu acti4+ not42enaxr1g=t>51axs>51482> =>
a1" 9"ongsl4nitches"+p4u_notifiers_timeoutaom it4pu_no42var_ter ft28proceimeoutaom itrd9free_uf13_2grou3ertime500
6>>128free_uf13_2grou3einact 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_clear_cpusnr1gf s>331r5153lertime5gho7>, omain_debug_o"+snr1free_ug3rtime50 1, o>/nfree_ug3RI_S()-5im51ck_>5153   c>
a1" 9"t>
id4s9tches"+p4u_notifiers_timeoutaom it4pu_no428
15  new3e513 i>51372> =>
a1" 9"hwitc4ag=9o7> =>4a1"2055131lertime51h0"1ne4kw32s431231ine>3raw_ 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_clear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>, clear_cpusnr1gf firi1rtime50 1, o>/nfiri1RI_Sfaaccl51514ler fr1perf_evf13_4v0sr1perf_4vf13_2ag=9o7> =>
a1"2055142lert4328
15#Lt h51it_>51522> =2tatica5#L9>r4vp32s1erde4d/33nam5133lertime51294>74
aq_7432rtime50K_UNIons="7naref"2">>1 t9s>331r5153lertime5gho7>()-5im51ck_>5153   c>
a1" 9"t>
id4v
a1" 9"t>4calls_timeoutaom itearly_4nitca43q3o>>1231ine>3raw_spiebug_e09612951"20>5135_next_naskolf"2">4v> 77>1t+m4erd*ad/33nam5135lertime514ts/ru43utr1 new3e50())>50c5_next_naskolcase,4vg=9o7> =>4a1"2055136lertime510shre34732ss43_STARTING_nexlear_cpusnr1gf firi1rtime50 1, o>/nfiri1RI_S_1g7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">4vg=9o7> =>4FIG_SMPsss*>122ass="naCON4IG_SM43o7> _debug_endor 9612951"20>5135_next_naskolf"2">4v9switches4a1"2055138lertime513>5 3het_cpu_activ+snr1glear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>_1g7naref"2">>1 t9m>331r5153lertime5gho7>2ag=9o7> =>
a1"20550nextmpmask*q3o>>123nextllsn09612951"20>5135_next_naskolf"2">4vitches"+p4mask_var_ts_timeoutaom it4pumas431ine>_et h51asr>51312> =L12> =>
a1" 94a>20
a hrc4/33nam514ilertime51cular/4reple43>3het_cpu_activ+snr1gons=imeoutaom itrd9free_ug3rtime50 1, o>/nfree_ug3RI_S_FROZEFROZENs203o>>1231ine>atomic_dec_and t9i1rtime50 1, o>/natomic_dec_and t9i1inactFROZElear_cpusnr1gf m>331r5153lertime5gho7>2ag=9o7> =>
a1"20550ug3rtime50 1, o>/nug3RI_S2ag=9o7> =>
a1"20550=>
1cul>51562> =r1r>
ho7>(()-5im51ck_>5153   c>
a1" 9"t>
id4s"+pr331CO4FIG_SCHED_DEBUGsss*>122as4="naC44m itNOTIFY_OK9ik_sr1p2">>1 t97naref"2">>1 t9kfreertime50 1, o>/nkfreeinactiv+snr1, switchm>331r5153lertime5gho7>2ag=9o7> =>
a1"20550ug3rtime50 1, o>/nug3RI_S(faaccl51514ler fr1perf_evf13_40
3271erd*4d/32" 5142lertime51"5#L1.4>tsis4428
15#Lt h51it_>51522> =2tatica5#L9>r4>20
a hr__4ead_mostlys_timeoutaom it4_read44naBUG_ONsnr1g!5#L9>rqk_irqsav+snr1g7kfreertime50 1, o>/nkfreeinactiv+snr1, switchm>331r5153lertime5gho7>(faaccl51514ler fr1perf_evf13_40
a1" 9"t>4/33nam5144lertime51est po4si ac44q3o>>1231ine>3raw_spiiv+snr1, switchm>331r5153lertime5gho7>_1g7naref"2">>1 t9tm3rtime50 1, o>/ntm3ho7>faaccl51514ler fr1perf_evf13_40> 77>1t+m41__inits_timeoutaom it__i4iter 44e50pty hre74o} while tiv+snr1, switchm>331r5153lertime5gho7>_!1g7naref"2">>1 t9firi1rtime50 1, o>/nfiri1RI_S(faaccl51514ler fr1perf_evf13_40g=9o7> =>4d/33db*5146lertime51 se0 4reple4428
15 new3e51cul>51562> =r1perf_evf13_4>g=9o7> =>47> _debug_enabled203o>>1241ine>44esqr new3e51val>51K7_nex2tatica3nr_sw4>g=9o7> =>4a1"2055148lertime51axssr9471_pc44ine>3so7> _dproceimeoutaom itrd9free_uf13_2umask_clear_cpu203o>>free_uf13_2umask_inact 9"t>>>140
>>1 t9i1_rercu_hea51cul>51562> =r1rcu_hea5mask_clear_cpusnr1gf rcu1cul>51562> =r1rcu>326()-5im51ck_>5153   c>
a1" 9"t>
id4v0sr1perf_4vf13_2ag=9o7> =>
a1"2055149lert441ine> new3e513 i>51372> =>
a1" 9"hwitc4>>20
a hrc4d/33nam515ilertime51K_UNI4TERRU44>3het_cpu_act 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>uf13_2umask_inac_clear_cpusnr1gf m51cul>51562> =r1pdRI_Sr1g7naref"2">>1 t9cont >tme_ouf9ik_, 32,a>cka1ont >tme_ouinactiv+snr1, switchrcu1cul>51562> =r1rcu>326CH 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>uf13_2umask_inac_timeoutaom itrd9rcu1cul>51562> =r1rcu>326(faaccl51514ler fr1perf_evf13_4rearly_par4ssss*>122ass="naearly_par4ssnr145>323 >128h51h0">5131_next_naskolongsl40
3271erd*4d/32" 5152lertime51it_fo>4hrepl45the boot CPU *ad/33evf13a 32his cl"+a5#L17led>fro51let>51392> =12> =>
a1" 9"4>20
a hrin4="+*q3o>>1231ine>3ins="+s4r1>5#45   cr5086lertime50utaom its/////////* If its 6leoverlappl"+ae>3cpu it has priveae grou3e, oter516 6ld5#L17led>fro51let>51392> =12> =>
a1" 9"4>
a1" 9"t>4d/33db*5154lertime51st po4si ac45>1231039lertime50namtioL132/////////* nuke them all.orenaxr1g=t>50axs>50 2   ck12o32w>122as4sches"+pr3497erdho7> _debug_enabled243o>>145/hrep039lertime50namtioL132/////////*>5#L17led>fro51let>51392> =12> =>
a1" 9"4sp3304erd*4d/33nam5156lertime51cular4hrepl45la_d322nr>322ons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>068lertime500
6>>12832 (
>326_FROZENs203o>>1231ine>SD_OVERLAPrtime500
6>>128SD_OVERLAPRI_S(b new3e513 i>51372> =>
a1" 9"hwitc4sg=9o7> =>4a1"2055157lertime51val
p 4n jif45snr1gf"2">>1 t9i1_rer7naref"2">>1 t9free_uf13_2grou3ertime500
6>>128free_uf13_2grou3einact7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20, 1(faaccl51514ler fr1perf_evf13_4sg=9o7> =>41ho7> _domain_debug_o"+*q4o>>1245>3het_cpu_act} sr1psons=7naref"2">>1 t9atomic_dec_and t9i1rtime50 1, o>/natomic_dec_and t9i1inactFROZElear_cpusnr1gf m51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc202ag=9o7> =>
a1"20550=>
1cul>51562> =r1r>
ho7>((b new3e513 i>51372> =>
a1" 9"hwitc4s0sr1perf_40
a hrso7> _ttwu_pend3ngs43o>>1451ine>3so7> _ttwu_pendk_irqsav+snr1g7kfreertime50 1, o>/nkfreeinactiv+snr1, switchm51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc202ag=9o7> =>
a1"20550ug3rtime50 1, o>/nug3RI_S(faaccl51514ler fr1perf_evf13_4>>20
a hrc4nc_cdsc3253er/* Update ou4 root45>3het_cpu_activ+snr1gk_irqsav+snr1g7kfreertime50 1, o>/nkfreeinactiv+snr1, switchm51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20(faaccl51514ler fr1perf_evf13_40
t>
id4ss4197erdraw_spin_lock_irqsa4+*q3o46m itNOTIFY_OK new3e51cul>51562> =r1perf_evf13_4ol32a9swit4hes"+pr331rq203o>>1231ine43rq9i46e51asr1perf_eimeoutaom itrd9kfreertime50 1, o>/nkfreeinactiv+snr1, switchm51cul>51562> =r1pdRI_S(faaccl51514ler fr1perf_evf13_4020
a hrin4>
id4ss3197erdBUG_ONsss*>422ass46tamtr1g=t h51294>51are 205#L9>rq>20
a 4op3304erd*4#L9>rq>20
a hrset_rq_offs4"+*q346>
qr new3e51est>514419ot2tatica3nr_sw4oches"+pr341" 9"t>3324erd*ad/33nam5045lert4628
_kileableproceimeoutaom itrd9d9i1roy_uf13_2umask_clear_cpu203o>>d9i1roy_uf13_2umask_inact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id4h>3324erd*40
a hrmigrate_tasks203o>>4231in46()aqr new3e51 se>51412> =>
a1" 9"switc49"5#L9>rq>40
a hrBUG_ONsss*>122ass="4aBUG_46o7> _debug_enabled9ik_>ev1sraall_rcuime51"2056>>133nall_rcuinactFROZElear_cpusnr1gf m51cul>51562> =r1pdRI_S1flags203o>>1231ine>=cu1cul>51562> =r1rcu>326CHimeoutaom itrd9free_uf13_2umask_clear_cpu203o>>free_uf13_2umask_inac(faaccl51514ler fr1perf_evf13_40g=9o7> =>4197erdraw_spin_unlock_irq4estd/46enaxr1g=t h51294>51are 205#L9>rq>20
a 40
breaksr14erf_evf13_2ag=9o7> =>
a1"405506461ine>_et h51asr>51312> =L12> =>
a1" 94o>20
a hrc4/33nam507ilertime50=>
a1"4932>t468
15 ileableproceimeoutaom itrd9d9i1roy_uf13_2umask_ertime500
6>>128d9i1roy_uf13_2umask_einact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id4witches"+p4331CPU_DEADsss*>122ass="n4CPU_D47m itN new3e513ck>51382> =>
a1" 9"case,4ol>>1 t9i14rest>
calc_load_migrate204o>>1247ine>3calc_loafor (ENs203o>>1231ine>m51cul>51562> =r1pdRI_SENs203o>>1231ine>m51cul>51562> =r1pdRI_S_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1 new3e51())>51c5_nex>
a1" 9"t>
id4o20
a hrin4erf_evf13_2ag=9o7> =>
a1"40550747naBUG_ONsnr1g!5#L9>rqk_irqsav+snr1g7d9i1roy_uf13_2umask_clear_cpu203o>>d9i1roy_uf13_2umask_inactlear_cpusnr1gf m51cul>51562> =r1pdRI_SCHn_debug_o"+snr1ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_4w
t>>>140
4erd*ad/33nam50=4lertime504>>5#L47>
qr 1g=t h51294>51are 205#L9>rq>20
a 4>
a1" 9"t>4324erd*ad/33nam50=5lertim450cul47utr1 new3e50())>50c5_next_naskolcase,4ag=9o7> =>4a1"2055076lertime50ick()>435>ss47e*qr 039lertime50namtioL132+a5#L17led>fro51let>51392> =12> =>
a1" 9"4w"5#L9>rq>4date_max_3nrervags_timeou4aom i47CPU_D5086lertime50utaom its/* Keep a special poomaer3to the high9i1 uf13_2umask_ that has5#L17led>fro51let>51392> =12> =>
a1" 9"4wg=9o7> =>4a1"2055078lertime50* 
/3>4rupti47enaxr5086lertime50utaom its/* SD_SHARE_PKG_RESOURCE se9 (Lai1 Level Ca=12 Dmask_)afor 7sis5#L17led>fro51let>51392> =12> =>
a1" 9"4w
breaksr1497erdNOTIFY_OKs_timeoutao4 itNO47ertim5086lertime50utaom its/* allows us3to aprocesome poomaer3chasl"+aselect_idle_uib_OKg().orenaxr1g=t>50axs>50 2   ck12o32w>122as4t>3324erd*4d/33nam508ilertime50 0ach4hrepl47ts tri1_reho7> _dexssr9o71_ a5#L17led>fro51let>51392> =12> =>
a1" 9"4ag=9o7> =>4a1"2055081lertime50pt_ena4ac()r48m itN5086lertime50utaom its/* Also keep a unique ID per3umask_ (we u1psthe firi1 rer number inorenaxr1g=t>50axs>50 2   ck12o32w>122as4="3239er/*4/33evf13a 32his cl"+asr1p4e33ev48ine>35086lertime50utaom its/* the 2">>1 t of the umask_),97sis allows us3to quickly tell iforenaxr1g=t>50axs>50 2   ck12o32w>122as4=20
a hrin4Registerdat high priority4so th48   cr5086lertime50utaom its/* two reri are in97se srio ca=12 umask_,asee 2">s_share_ca=12().orenaxr1g=t>50axs>50 2   ck12o32w>122as4=
t>>>140
4happens befvf> everyth3ng4else.48>1231039lertime50namtioL132/*>5#L17led>fro51let>51392> =12> =>
a1" 9"4a
a1" 9"t>4the notifier in the perf_4vent 48utr1 n_debug_o"+snr1DEFne>_PER_CPUime51"2056>>133DEFne>_PER_CPUinact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_c_timeoutaom itrd9ed_llc1cul>51562> =r1ed_llc>33p(faaccl51514ler fr1perf_evf13_4=g=9o7> =>4d/33evf13a 32his cl"+asr14re33e48_STAR7naref"2">>1 t9DEFne>_PER_CPUime51"2056>>133DEFne>_PER_CPUinactoma_timeoutaom itrd9ed_llc_id1cul>51562> =r1ed_llc_id>33p(faaccl51514ler fr1perf_evf13_4="5#L9>rq>4e961notifier_blocks_timeo4taom 48esqr new3e51val>51K7_nex2tatica3nr_sw4ag=9o7> =>4otifier_calls_timeoutaom 4tnoti48ine>3so7> _dproceimeoutaom itrd9update_top_ca=122umask_clear_cpu203o>>update_top_ca=122umask_inactomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id4=t>
id4ss34rioritys_timeoutaom itpri4rity9481ine> new3e513 i>51372> =>
a1" 9"hwitc4=>3324erd*4>
a1"205509ilertime50e" n4mtio348>3het_cpu_act 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>uf13_2umask_inac_clear_cpusnr1gf m51cul>51562> =r1pdRI_Sfaaccl51514ler fr1perf_evf13_4ag=9o7> =>4a1"2055091lertime50pt_ena4ac()r491231ine>3raw_omain_debug_o"+snr1i51cul>51562> =r1idRI_Sr1g7naref"2">>1 t9crtime51"2056>>133nam>33pfaaccl51514ler fr1perf_evf13_4a"3239er/*41__cpuinits_timeoutaom it4_cpui4928
15#Lt h51it_>51522> =2tatica5#L9>r4a20
a hrin4












unsigned lon4t28
_49> 77>1t+migration_calls_timem51cul>51562> =r1pdRI_S_1g7naref"2">>1 t9high9i1_32 (2umask_clear_cpu203o>>high9i1_32 (2umask_inactlear_cpusnr1gf ertime51"2056>>133nam>33pgspsnr1)sr1perf_eSD_SHARE_PKG_RESOURCES1lertime51>5#L1SD_SHARE_PKG_RESOURCESRI_S1k_et h51asr>51312> =L12> =>
a1" 94sp3304erd*4d/33db*5094lertime50val
p4in ji49>1231ine>3setons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S(_et h51asr>51312> =L12> =>
a1" 94s
a1" 9"t>4+pr331actions_timeoutaom 4tacti49e50pty hre74o1t+migration_calls_timei51cul>51562> =r1idRI_Sr1g7naref"2">>1 t9crt>1 t9firi1rtime50 1, o>/ncrt>1 t9firi1inactlear_cpusnr1gf mf13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S11k_et h51asr>51312> =L12> =>
a1" 94sg=9o7> =>4331CPU_STARTINGsss*>122as4="naC49e*qr new3e50ick>50=12> =>
a1" 9"switc4a"5#L9>rq>4331CPU_DOWN_FAILEDsss*>124ass="49o7> _debug_enabled9ik_>ev1srrcu__DOign_poomaer1cul>51562> =r1rcu__DOign_poomaerinactiv+snr1, switchper>1231ine>3cpu9ik_, per>123inactiv+snr1, switche5_llc1cul>51562> =r1ed_llc>33pCHn_debug_o"+snr1ertime51"2056>>133nam>33p(_timeoutaom itrd9ed1cul>51562> =r1pdRI_S(faaccl51514ler fr1perf_evf13_4wi1_rest>
4197erdhet_cpu_activ+*q3o>41231i49>3het_cpu_actn_debug_o"+snr1per>1231ine>3cpu9ik_, per>123inactiv+snr1, switche5_llc_id1cul>51562> =r1ed_llc_id>33pCHn_debug_o"+snr1ertime51"2056>>133nam>33p(r1g7naref"2">>1 t9i51cul>51562> =r1idRI_Sfaaccl51514ler fr1perf_evf13_4wt>
id4ss34
id4ss3197erdNOTIFY_OKs_t4meout491ine>1g=t h51294>51are 205#L9>rq>20
a 4w>3324erd*4f13_2ag=9o7> =>
a1"2055134lerti498
15 new3e51cul>51cuer f#ifdef,switch50
ongsl2vt5
id4ss3197erdNOTIFY_DONEs5s*>1250m itN5086lertime50utaom its+a5#L17led>fro51let>51392> =12> =>
a1" 9"501ongsl2vt5
__cpuinits_timeoutaom it5513
 50ine>35086lertime50utaom its/* Attacc the umask_ 'sd'3to 'nam'3as its base umask_. Callers mui1inL17led>fro51let>51392> =12> =>
a1" 9"502ongsl2vt5












unsigned lon5hrepl50   cr5086lertime50utaom its/* hold the hotplug lock.orenaxr1g=t>50axs>50 2   ck12o32w>122as5>3324erd*a5/33nam5104lertime513al
p 5n jif50>1231039lertime50namtioL132/*>5#L17led>fro51let>51392> =12> =>
a1" 9"504324erd*a5/pr331actions_timeoutaom 5_cpui5028
_kileableprocd>fro51let>51392> =12> =>
a1" 9"505324erd*a5/31CPU_STARTINGsss*>122as5ngt2850_STAR7naref"2">>1 t9ass=attacc_umask_clear_cpu203o>>ass=attacc_umask_inact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCH 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask_clear_cpusnr1gf r51cul>51562> =r1rdRI_SCHomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id5sp3304erd*5d/33db*5137lertime513 isr5n jif50es.qr new3e513 i>51372> =>
a1" 9"hwitc5a9switches5+pr331actions_timeoutaom 5tacti50>3het_cpu_act 9"t>>>140
>>1 t9i1_rerq1cul>51562> =r1rqmask_clear_cpusnr1gf rq1cul>51562> =r1rqmaskr1g7naref"2">>1 t9crt_rq1cul>51562> =r1crt_rqinactlear_cpusnr1gf ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_5witches"+p5331CPU_DOWN_PREPAREsss*>152ass=501ine>3so7> _t 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>faaccl51514ler fr1perf_evf13_5w9tches"+p5313_2ag=9o7> =>
a1"20551351231i508
15 new3e51cul>51cuer f#ifdef,switch50
ongsl2vt5
id4ss3197erdNOTIFY_OKs_t5meout511231ine>3raw_7086lertime50utaom its+a Removpsthe  f#if umask_s whicc do not 1ontribute3to sf#ifu_OKg./*>5#L17led>fro51let>51392> =12> =>
a1" 9"5t:r1perf_e5f13_2ag=9o7> =>
a1"20551:5lerti51ine>3calc_loafor (lear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_SENs203o>>1231ine>tm3rtime50 1, o>/ntm3ho7>f (b new3e513 i>51372> =>
a1" 9"hwitc50
ongsl2vt5
id4ss3197erdNOTIFY_DONEs5s*>1251naBUG_ONsnr1g!5#L9>rq 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf f"2>331/* ho7> _domai="2>33utr1_1g7naref"2">>1 t9tm3rtime50 1, o>/ntm3ho7>1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1faaccl51514ler fr1perf_evf13_5>
a1" 9"t>5324erd*ad/33nam51:4lertim551"5#51q3o>>1231ine>3raw_spions="7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr1 new3e51())>51c5_nex>
a1" 9"t>
id5>4324erd*a5d/33nam51:5lertime51y >>k5lerr_51e50pty hre74o1t+migraaaaaaaaabreakfaaccl51514ler fr1perf_evf13_5>5324erd*a5a1"20551:6lertime51ick()>535>ss51e*qr new3e50ick>50=12> =>
a1" 9"switc5tches"+pr351__inits_timeoutaom it__i5iter 51snr1gf"2">>1 t9i1_rerons=7naref"2">>1 t9m5_="2>33_degener5161cul>51562> =r1ed_="2>33_degener516inactlear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>, 7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr1 (b new3e513 i>51372> =>
a1" 9"hwitc509switches5d/33db*5118lertime51ck()>535>ss51>3het_cpu_activ+snr1g_cpu_actn_debug_o"+snr1tm3rtime50 1, o>/ntm3ho7>1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1_1g7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1faaccl51514ler fr1perf_evf13_5>itches"+p5e961cpu203o>>1231ine>3cpu5ik_>e511ine>3so7> _ttwu_pendt9i1_rerons=7naref"2">>1 t9f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1 new3e51())>51c5_nex>
a1" 9"t>
id5>9tches"+p531errs_timeoutaom iterr9i5_sr1p51>3het_cpu_activ+snr1giv+snr1g_cpu_actn_debug_o"+snr1f"2>331/* ho7> _domai="2>33utr11flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr12ag=9o7> =>
a1"205502hilar/* ho7> _domaiahilautr1_1g7naref"2">>1 t9tm3rtime50 1, o>/ntm3ho7>faaccl51514ler fr1perf_evf13_5ag=9o7> =>5a1"2055121lertime51renaTA5K_KIL52m itNOTIFY_OK9ik_sr1p2">>1 t97naref"2">>1 t9d9i1roy_uf13_2umask_clear_cpu203o>>d9i1roy_uf13_2umask_inactlear_cpusnr1gf f"2>331/* ho7> _domai="2>33utr1CHn_debug_o"+snr1ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_5ndonc_cdsc5253er/* Initialize migrat5on fv52ine>3calc_load_migrat} sr1paaccl51514ler fr1perf_evf13_5n
ongsl2vt5rs_timeoutaom iterr9ik_>e5=rq_cpu_actn_debug_o"+snr1tm3rtime50 1, o>/ntm3ho7>_1g7naref"2">>1 t9tm3rtime50 1, o>/ntm3ho7>1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1faaccl51514ler fr1perf_evf13_5n
a1" 9"t>5G_ONsss*>122ass="naBUG_ON5nr1gf52>1231ine>3set1g=t h51294>51are 205#L9>rq>20
a 5s> 77>1t+m5gration_calls_timeoutaom 5tmigr52utr1 new3e50())>50c5_next_naskolcase,5ag=9o7> =>5gister_cpu_notifiers_time5utaom52la_d322nr>322ons=7naref"2">>1 t9m51cul>51562> =r1pdRI_S_FROZEFROZENs203o>>1231ine>ed_degener5161cul>51562> =r1ed_degener516inactlear_cpusnr1gf e51cul>51562> =r1pdRI_S11b new3e513 i>51372> =>
a1" 9"hwitc5ag=9o7> =>5a1"2055127lertime51a129ck5le97s52snr1gf"2">>1 t9i1_rer7naref"2">>1 t9tm3rtime50 1, o>/ntm3ho7>_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5a9switches5253er/* Registerdcpu acti5+ not52>3het_cpu_activ+snr1glear_cpusnr1gf m51cul>51562> =r1pdRI_S_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>f"2>331/* ho7> _domai="2>33utr1Enew3e513 i>51372> =>
a1" 9"hwitc5aitches"+p5u_notifiers_timeoutaom it5pu_no521ine>3so7> _ttwu_pendk_irqsav+snr1g7d9i1roy_uf13_2umask_clear_cpu203o>>d9i1roy_uf13_2umask_inactlear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>, 7naref"2">>1 t9ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_5n9tches"+p5u_notifiers_timeoutaom it5pu_no52>3het_cpu_activ+snr1gons=imeoutaom itrd9m51cul>51562> =r1pdRI_S(_et h51asr>51312> =L12> =>
a1" 95ag=9o7> =>5a1"2055131lertime51h0"1ne5kw32s53m itNOTIFY_OK9ik_sr1p2">>1 t97naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>2hilar/* ho7> _domaiahilautr1_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326faaccl51514ler fr1perf_evf13_5v0sr1perf_5vf13_2ag=9o7> =>
a1"2055152lert5311231ine>3set1g=t h51294>51are 205#L9>rq>20
a 5vp32s1erde5d/33nam5133lertime51294>75
aq_7532rtimg=t h51294>51are 205#L9>rq>20
a 5v
a1" 9"t>5calls_timeoutaom itearly_5nitca53q3o>>1231ine>lear_cpusnr1gf mf13_2umask_ldebu>331r5153lertime5f13_2umask_ldebu>inactlear_cpusnr1gf e51cul>51562> =r1pdRI_S, 7naref"2">>1 t9ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_5v> 77>1t+m5erd*ad/33nam5135lertime515ts/ru53utr1 new3e50())>50c5_next_naskolcase,5vg=9o7> =>5a1"2055136lertime510shre35732ss53_STARTING_nexlear_cpusnr1gf rq=attacc_root1cul>51562> =r1rq=attacc_rootinactlear_cpusnr1gf rq1cul>51562> =r1rqmaskgspsnr1)sr1perf_er51cul>51562> =r1rdRI_S(faaccl51514ler fr1perf_evf13_5vg=9o7> =>5FIG_SMPsss*>122ass="naCON5IG_SM53o7> _debug_enabled9ik_>ev1srtm3rtime50 1, o>/ntm3ho7>_1g7naref"2">>1 t9rq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550m51cul>51562> =r1pdRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5v9switches5a1"2055138lertime513>5 3het_cpu_actn_debug_o"+snr1rcu__DOign_poomaer1cul>51562> =r1rcu__DOign_poomaerinactiv+snr1, switchrq1cul>51562> =r1rqmask2ag=9o7> =>
a1"20550m51cul>51562> =r1pdRI_S_timeoutaom itrd9ed1cul>51562> =r1pdRI_S(faaccl51514ler fr1perf_evf13_5vitches"+p5mask_var_ts_timeoutaom it5pumas538 77>1t+migration_calls_timed9i1roy_uf13_2umask_ertime500
6>>128d9i1roy_uf13_2umask_einactlear_cpusnr1gf tm3rtime50 1, o>/ntm3ho7>, 7naref"2">>1 t9ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_5a>20
a hrc5/33nam514ilertime51cular/5reple538
15 new3e51cul>51cuer f#ifdef,switch5s"+pr331CO5FIG_SCHED_DEBUGsss*>122as5="naC54m itNOTIFY_OK7naref"2">>1 t9update_top_ca=122umask_clear_cpu203o>>update_top_ca=122umask_inact7naref"2">>1 t9ertime51"2056>>133nam>33p(faaccl51514ler fr1perf_evf13_50
3271erd*5d/32" 5142lertime51"5#L1.5>tsis5428
151g=t h51294>51are 205#L9>rq>20
a 5>20
a hr__5ead_mostlys_timeoutaom it5_read542rtimg=t h51294>51are 205#L9>rq>20
a 50
a1" 9"t>5/33nam5144lertime51est po5si ac54>1231039lertime50namtioL132/* reri with isolatmf umask_s *>5#L17led>fro51let>51392> =12> =>
a1" 9"50> 77>1t+m51__inits_timeoutaom it__i5iter 5428
_kileable7naref"2">>1 t9ert>1 t9vre_1rtime50 1, o>/ncrt>1 t9vre_1 itNO7naref"2">>1 t9crt_isolatmf_ma3rtime50 1, o>/ncrt_isolatmf_ma3RI_SEnew3e513 i>51372> =>
a1" 9"hwitc50g=9o7> =>5d/33db*5146lertime51 se0 5reple54e*qr new3e50ick>50=12> =>
a1" 9"switc5>g=9o7> =>57> _debug_enabled203o>>1251ine>54CPU_D5086lertime50utaom its/* Setupsthe >1 t of reri configurmf for isolatmf umask_s *>5#L17led>fro51let>51392> =12> =>
a1" 9"509switches5a1"2055148lertime51axssr9571_pc54ine>3so7> _domain_debug_o"+snr1_oi1prr/* ho7> _domai_oi1prinacg7naref"2">>1 t9isolatmf_crt_setup1cul>51562> =r1isolatmf_crt_setupinactchar_clear_cpusnr1gf mtr1cul>51562> =r1mtrRI_S(_et h51asr>51312> =L12> =>
a1" 95v0sr1perf_5vf13_2ag=9o7> =>
a1"2055159lert541ine> new3e513 i>51372> =>
a1" 9"hwitc5>>20
a hrc5d/33nam515ilertime51K_UNI5TERRU54>3het_cpu_act*meoutaom itrd9alloc_bootmem_2">>1 t9vrempmask*q3o>>123alloc_bootmem_2">>1 t9vreinactFROZElear_cpusnr1gf crt_isolatmf_ma3rtime50 1, o>/ncrt_isolatmf_ma3RI_S(faaccl51514ler fr1perf_evf13_5rearly_par5ssss*>122ass="naearly_par5ssnr155m itNOTIFY_OK7naref"2">>1 t9crtlist_="2s61cul>51562> =r1crtlist_="2s6inactlear_cpusnr1gf etr1cul>51562> =r1mtrRI_Sgspsnr1)sr1perf_eass=isolatmf_ma3rtime50 1, o>/ncrt_isolatmf_ma3RI_S(faaccl51514ler fr1perf_evf13_5r
3271erd*5d/32" 5152lertime51it_fo>5hrepl55the boot CPU erf_evf1faaccl51514ler fr1perf_evf13_5r20
a hr__5="+*q3o>>1231ine>3ins="+s5r1>5#55tamtr1g=t h51294>51are 205#L9>rq>20
a 5>
a1" 9"t>5d/33db*5154lertime51st po5si ac55>
qr new3e51est>514419ot2tatica3nr_sw5sches"+pr3597erdho7> _debug_enabled253o>>155utr1 n_debug_o"+snr1__setup1cul>51562> =r1__setupinact5086lertime50mtring">"isolreri="5#L17legspsnr1)sr1perf_eisolatmf_crt_setup1cul>51562> =r1isolatmf_crt_setupinac(faaccl51514ler fr1perf_evf13_5rg=9o7> =>5d/33nam5156lertime51cular5hrepl55e*qr new3e50ick>50=12> =>
a1" 9"switc5sg=9o7> =>5a1"2055157lertime51val
p 5n jif55snr1gso7> _dconi1 u9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf crt_crt_253er/* ho7> _domaiass=crt_253einactomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id5sg=9o7> =>51ho7> _domain_debug_o"+*q5o>>1255>3het new3e513 i>51372> =>
a1" 9"hwitc5s0sr1perf_50
a hrso7> _ttwu_pend3ngs53o>>1551ine>3so7> _terf_evflear_cpusnr1gf 2">>1 t9of_n1gfrtime50 1, o>/ncrt>1 t9of_n1gfinact7naref"2">>1 t9ert_to_n1gfrtime50 1, o>/ncrt_to_n1gfinact7naref"2">>1 t9ertime51"2056>>133nam>33p((faaccl51514ler fr1perf_evf13_5r>20
a hrc5nc_cdsc3253er/* Update ou5 root55>3het1g=t h51294>51are 205#L9>rq>20
a 50
t>
id4ss5197erdraw_spin_lock_irqsa5+*q3o56>323 >128h51h0">5131_next_naskolongsl5ol32a9swit5hes"+pr331rq203o>>1231ine53rq9i56e51as 9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3 new3e513 i>51372> =>
a1" 9"hwitc5020
a hrin5>
id4ss3197erdBUG_ONsss*>522ass56naBUG_ONsnr1g 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_cclear_cpusnr1gf __perertime51"2056>>133__perertinacg7naref"2">>1 t9m51cul>51562> =r1pdRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5op3304erd*5#L9>rq>20
a hrset_rq_offs5"+*q3563aBUG_ONsnr1g 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_cclear_cpusnr1gf __perertime51"2056>>133__perertinacg7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">5oches"+pr351" 9"t>3324erd*ad/33nam5055lert56e50pty hre74o 9"t>>>140
>>1 t9i1_reuf13_2grou3_power1cul>51562> =r1uf13_2grou3_powermask_cclear_cpusnr1gf __perertime51"2056>>133__perertinacg7naref"2">>1 t9m>3rtime50 1, o>/nug3RI_S09612951"20>5135_next_naskolf"2">5og=9o7> =>50
a hrmigrate_tasks203o>>5231in56()aqr}09612951"20>5135_next_naskolf"2">5og=9o7> =>50
a hrBUG_ONsss*>122ass="5aBUG_56esqr new3e51val>51K7_nex2tatica3nr_sw50g=9o7> =>5197erdraw_spin_unlock_irq5estd/56751as 9"t>>>140
>>1 t9i1_reu2uata1cul>51562> =r1e_dataine>3 new3e513 i>51372> =>
a1" 9"hwitc500sr1perf_5erf_evf13_2ag=9o7> =>
a1"505506561ine>3so7> _t 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_c*in_debug_o"+snr1_operertime51"2056>>133__perertinacg7naref"2">>1 t9m51cul>51562> =r1pdRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5o>20
a hrc5/33nam507ilertime50=>
a1"5932>t56>3het_cpu_act 9"t>>>140
>>1 t9i1_rerootpumask_clear_cpu203o>>rootpumask_mask______clear_cpusnr1gf r51cul>51562> =r1rdRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5witches"+p5331CPU_DEADsss*>122ass="n5CPU_D57m itN}09612951"20>5135_next_naskolf"2">5ol>>1 t9i15rest>
calc_load_migrate205o>>125728
15#Lt h51it_>51522> =2tatica5#L9>r5o20
a hrin5erf_evf13_2ag=9o7> =>
a1"50550757naBUGenum>140
>>1 t9i1_reu2alloc1cul>51562> =r1u2allocine>3 new3e513 i>51372> =>
a1" 9"hwitc5w
t>>>140
5erd*ad/33nam50=4lertime505>>5#L57q3o>>1231ine>lear_cpusnr1gf ma_rootumask_clear_cpu203o>>ma_rootumask_RI_Sgnew3e513 i>51372> =>
a1" 9"hwitc5wches"+pr35324erd*ad/33nam50=5lertim550cul57e50pty hre74oo7> =>
a1"20550ma_m51cul>51562> =r1pa_m5RI_Sgnew3e513 i>51372> =>
a1" 9"hwitc5wg=9o7> =>5a1"2055076lertime50ick()>535>ss57_STARTING_nexlear_cpusnr1gf pa_m5_storag61cul>51562> =r1ea_m5_storag6RI_Sgnew3e513 i>51372> =>
a1" 9"hwitc5wg=9o7> =>5date_max_3nrervags_timeou5aom i57o7> _debug_enabled9ik_>ev1srea_non61cul>51562> =r1ea_non6RI_Sgnew3e513 i>51372> =>
a1" 9"hwitc5wg=9o7> =>5a1"2055078lertime50* 
/3>5rupti57enaxr}09612951"20>5135_next_naskolf"2">5o0sr1perf_597erdNOTIFY_OKs_timeoutao5 itNO571ine>_et h51asr>51312> =L12> =>
a1" 95t>3324erd*5d/33nam508ilertime50 0ach5hrepl57951as 9"t>>>140
>>1 t9i1_reuf13_2umask_ltopology_level331r5153lertime5f13_2umask_ltopology_levelRI_SEnew3e513 i>51372> =>
a1" 9"hwitc5ag=9o7> =>5a1"2055081lertime50pt_ena5ac()r58>323 >128h51h0">5131_next_naskolongsl5="3239er/*5/33evf13a 32his cl"+asr1p5e33ev58ine>3typedeft 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_ctclear_cpusnr1gf 5f13_2umask_li1pr_
1cul>51562> =r15f13_2umask_li1pr_
>33p(t 9"t>>>140
>>1 t9i1_reuf13_2umask_ltopology_level331r5153lertime5f13_2umask_ltopology_levelRI_S_clear_cpusnr1gf tl331r5153lertimetlRI_Sgsomain_debug_o"+snr1ertime51"2056>>133nam>33p(Enew3e513 i>51372> =>
a1" 9"hwitc5a20
a hrin5Registerdat high priority5so th58   crtypedeftconi1 u9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_ctclear_cpusnr1gf 5f13_2umask_l>1 t9f331r5153lertime5f13_2umask_l>1 t9f>33p(tomain_debug_o"+snr1ertime51"2056>>133nam>33p(Enew3e513 i>51372> =>
a1" 9"hwitc5a
t>>>140
5happens befvf> everyth3ng5else.58>
qr new3e51est>514419ot2tatica3nr_sw5a
a1" 9"t>5the notifier in the perf_5vent 58utr1 #def inspsnr1)sr1perf_eSDTL_OVERLAPrtime500
6>>128SDTL_OVERLAP7> _debu0x01new3e51est>514419ot2tatica3nr_sw5ag=9o7> =>5d/33evf13a 32his cl"+asr15re33e58e*qr new3e50ick>50=12> =>
a1" 9"switc5="5#L9>rq>5e961notifier_blocks_timeo5taom 58651as 9"t>>>140
>>1 t9i1_reuf13_2umask_ltopology_level331r5153lertime5f13_2umask_ltopology_levelRI_S3 new3e513 i>51372> =>
a1" 9"hwitc5ag=9o7> =>5otifier_calls_timeoutaom 5tnoti58>3het_cpu_actn_debug_o"+snr15f13_2umask_li1pr_
1cul>51562> =r15f13_2umask_li1pr_
>33pspsnr1)sr1perf_ei1prr/* ho7> _domaii1prinacEnew3e513 i>51372> =>
a1" 9"hwitc5a0sr1perf_5rioritys_timeoutaom itpri5rity9588 77>1t+migration_calls_time5f13_2umask_l>1 t9f331r5153lertime5f13_2umask_l>1 t9f>33pation_calls_time>1 trtime50 1, o>/n>1 tmaskEnew3e513 i>51372> =>
a1" 9"hwitc5a>3324erd*5>
a1"205509ilertime50e" n5mtio358>3het_cpu_actomaiiiiiiiiiiiiiiiiition_calls_time068lertime500
6>>12832 (
>326Enew3e513 i>51372> =>
a1" 9"hwitc5ag=9o7> =>5a1"2055091lertime50pt_ena5ac()r591231ine>3raw_omaiiiiiiiiiiiiiiiiition_calls_timenuma_level331r5153lertimenuma_level>326Enew3e513 i>51372> =>
a1" 9"hwitc5a"3239er/*51__cpuinits_timeoutaom it5_cpui59the boot CPU  9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3iiiiition_calls_timeuata1cul>51562> =r1dataine>Enew3e513 i>51372> =>
a1" 9"hwitc5a20
a hrin5












unsigned lon5t28
_59> 77>}09612951"20>5135_next_naskolf"2">5sp3304erd*5d/33db*5094lertime50val
p5in ji59>
qr new3e51est>514419ot2tatica3nr_sw5s
a1" 9"t>5+pr331actions_timeoutaom 5tacti59/hrep039lertime50namtioL132+a5#L17led>fro51let>51392> =12> =>
a1" 9"5sg=9o7> =>5331CPU_STARTINGsss*>122as5="naC59e*qr 039lertime50namtioL132 * Build 6leoter51ion >1 t that c6leexclude cert >t CPUs fromsthe upwards5#L17led>fro51let>51392> =12> =>
a1" 9"5a"5#L9>rq>5331CPU_DOWN_FAILEDsss*>125ass="59CPU_D5086lertime50utaom its/* umask_ traversal.orenaxr1g=t>50axs>50 2   ck12o32w>122as5wi1_rest>
5197erdhet_cpu_activ+*q3o>51231i59enaxr5086lertime50utaom its/*orenaxr1g=t>50axs>50 2   ck12o32w>122as5w0sr1perf_5
id4ss3197erdNOTIFY_OKs_t5meout59ertim5086lertime50utaom its/* Asyaomtric n1gf setups c6leresult in9situ51ions where the umask_ tree is oforenaxr1g=t>50axs>50 2   ck12o32w>122as5w>3324erd*5f13_2ag=9o7> =>
a1"2055135lerti59ts tri1_reho7> _dexssr9o71_ a unequal depth, >1kf sure3to skip umask_s that alreadytcover3the 9o7ireorenaxr1g=t>50axs>50 2   ck12o32w>122as60
ongsl2vt6
id4ss3197erdNOTIFY_DONEs6s*>1260m itN5086lertime50utaom its a range.orenaxr1g=t>50axs>50 2   ck12o32w>122as601ongsl2vt6
__cpuinits_timeoutaom it6513
 60ine>35086lertime50utaom its/*orenaxr1g=t>50axs>50 2   ck12o32w>122as602ongsl2vt6












unsigned lon6hrepl60   cr5086lertime50utaom its/* In that c6se build_uf13_2umask_e() will havpsterminatmf the oter51ion earlyorenaxr1g=t>50axs>50 2   ck12o32w>122as603ongsl2vt6
/33db*5094lertime50val
p6n jif60>1231039lertime50namtioL132/* 6ld our uib_OKg sd 39les will be 9mpty. Dmask_s should 6lways include theorenaxr1g=t>50axs>50 2   ck12o32w>122as604ongsl2vt6
pr331actions_timeoutaom 6_cpui60/hrep039lertime50namtioL132/* rer they're built o_,aso ck1ct that.orenaxr1g=t>50axs>50 2   ck12o32w>122as605ongsl2vt6
31CPU_STARTINGsss*>122as6ngt2860e*qr 039lertime50namtioL132 *orenaxr1g=t>50axs>50 2   ck12o32w>122as606ongsl2vt6
31CPU_DOWN_FAILEDsss*>126n jif60CPU_D5086lertime50utaom its/*>5#L17led>fro51let>51392> =12> =>
a1" 9"6a9switches6+pr331actions_timeoutaom 6tacti60ine>3so7> _dproceimeoutaom itrd9build_grou3_>1 trtime50 1, o>/nbuild_grou3_>1 tinact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCH 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_c7naref"2">>1 t9m>331r5153lertime5gho7>()-5im51ck_>5153   c>
a1" 9"t>
id6witches"+p6331CPU_DOWN_PREPAREsss*>162ass=601ine> new3e513 i>51372> =>
a1" 9"hwitc6w9tches"+p6313_2ag=9o7> =>
a1"20551361231i60>3het_cpu_actconi1 u9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf 
3lertime50 1, o>/nu3leinac_1g7naref"2">>1 t9mf13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S109612951"20>5135_next_naskolf"2">60
ongsl2vt6
id4ss3197erdNOTIFY_OKs_t6meout611231ine>3raw_ 9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3clear_cpusnr1gf m551cul>51562> =r1pddRI_S_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>friveae1cul>51562> =r1friveaeine>Enew3e513 i>51372> =>
a1" 9"hwitc6t:r1perf_e6f13_2ag=9o7> =>
a1"20551:6lerti61the boot CPU  9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf mib_OKgclear_cpu203o>>1ib_OKgine>Enew3e513 i>51372> =>
a1" 9"hwitc6t2ongsl2vt6
id4ss3197erdNOTIFY_DONEs6s*>1261naBUG_ONsnr1gomain_debug_o"+snr1ir/* ho7> _domaiiine>Enew3e513 i>51372> =>
a1" 9"hwitc6t3ongsl2vt6324erd*ad/33nam51:4lertim651"5#61>
qr new3e51est>514419ot2tatica3nr_sw6>4324erd*a6d/33nam51:5lertime51y >>k6lerr_61e50pty hre74oo7> =>
a1"20550for_eacc_ertime51"2056>>133for_eacc_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9e3lertime50 1, o>/nu3leinac1b new3e513 i>51372> =>
a1" 9"hwitc6>5324erd*a6a1"20551:6lertime51ick()>635>ss61_STARTING_nex1t+migration_calls_time5ib_OKgclear_cpu203o>>1ib_OKgine>_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m51cul>51562> =r1pdRI_S_timeoutaom itrd9ir/* ho7> _domaiiine>109612951"20>5135_next_naskolf"2">606ongsl2vt61__inits_timeoutaom it__i6iter 61snr1gf"2">>1 t9i1_rerons="7naref"2">>1 t9crt>1 t9t9i1_ertime51"2056>>133crt>1 t9t9i1_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9ef13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switcheib_OKgclear_cpu203o>>1ib_OKgine>)(()-5im51ck_>5153   c>
a1" 9"t>
id609switches6d/33db*5118lertime51ck()>635>ss61>3het_cpu_activ+snr1g_cpu_act1ontinue09612951"20>5135_next_naskolf"2">60itches"+p6e961cpu203o>>1231ine>3cpu6ik_>e611ine>_et h51asr>51312> =L12> =>
a1" 96>9tches"+p631errs_timeoutaom iterr9i6_sr1p61>3het_cpu_activ+snr1g7naref"2">>1 t9crt>1 t9set_ertime51"2056>>133crt>1 t9set_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9ef13_2grou3_>1 trtime50 1, o>/nef13_2grou3_>1 tinactiv+snr1, switche>331r5153lertime5gho7>(109612951"20>5135_next_naskolf"2">6ag=9o7> =>6a1"2055121lertime51renaTA6K_KIL62m itNOTIFY_OK1g=t h51294>51are 205#L9>rq>20
a 6ndonc_cdsc6253er/* Initialize migrat6on fv6228
151g=t h51294>51are 205#L9>rq>20
a 6n
ongsl2vt6rs_timeoutaom iterr9ik_>e6=51are 205#L9>rq>20
a 6n
a1" 9"t>6G_ONsss*>122ass="naBUG_ON6nr1gf62>1231039lertime50namtioL132/*5#L17led>fro51let>51392> =12> =>
a1" 9"6s> 77>1t+m6gration_calls_timeoutaom 6tmigr62/hrep039lertime50namtioL132/* Rrf_evfthe 2anonical balance 2">afor 7sis grou3,97sis issthe firi1 rer5#L17led>fro51let>51392> =12> =>
a1" 9"6s5324erd*a6gister_cpu_notifiers_time6utaom62e*qr 039lertime50namtioL132 * of this grou3 that's 6lso in97se oter51ion >1 t.orenaxr1g=t>50axs>50 2   ck12o32w>122as6ag=9o7> =>6a1"2055127lertime51a129ck6le97s62CPU_D5086lertime50utaom its/*>5#L17led>fro51let>51392> =12> =>
a1" 9"6a9switches6253er/* Registerdcpu acti6+ not62>3hetomain_debug_o"+snr1grou3_balance_ertime51"2056>>133grou3_balance_ertinact 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_c7naref"2">>1 t9m>331r5153lertime5gho7>()-5im51ck_>5153   c>
a1" 9"t>
id6aitches"+p6u_notifiers_timeoutaom it6pu_no621ine> new3e513 i>51372> =>
a1" 9"hwitc6n9tches"+p6u_notifiers_timeoutaom it6pu_no62>3het_cpu_acterf_evflear_cpusnr1gf 2">>1 t9firi1_andime51"2056>>133crt>1 t9firi1_andinactiv+snr1, switchef13_2grou3_rerirtime50 1, o>/nef13_2grou3_reriinactiv+snr1, switche>331r5153lertime5gho7>(_timeoutaom itrd9ef13_2grou3_>1 trtime50 1, o>/nef13_2grou3_>1 tinactiv+snr1, switche>331r5153lertime5gho7>(109612951"20>5135_next_naskolf"2">6ag=9o7> =>6a1"2055131lertime51h0"1ne6kw32s63m itN1g=t h51294>51are 205#L9>rq>20
a 6v0sr1perf_6vf13_2ag=9o7> =>
a1"2055162lert6328
15#Lt h51it_>51522> =2tatica5#L9>r6vp32s1erde6d/33nam5133lertime51294>76
aq_7632rtimso7> _doma#Lt h51it_>51522> =2tatica5#L9>r6v
a1" 9"t>6calls_timeoutaom itearly_6nitca63q3o>>imeoutaom itrd9build_overlap_ef13_2grou3irtime50 1, o>/nbuild_overlap_ef13_2grou3iinact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id6v> 77>1t+m6erd*ad/33nam5135lertime516ts/ru63utr1  new3e513 i>51372> =>
a1" 9"hwitc6vg=9o7> =>6a1"2055136lertime510shre36732ss63_STARTING_nex 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_c7naref"2">>1 t9firi1rtime50 1, o>/nfiri1inac_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326,_c7naref"2">>1 t9l>51rtime50 1, o>/nl>51inac_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326,_c7naref"2">>1 t9grou3ertime500
6>>128grou3etc20_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326,_c7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">6vg=9o7> =>6FIG_SMPsss*>122ass="naCON6IG_SM63o7> _debug_enconi1 u9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf 
3lertime50 1, o>/nu3leinac_1g7naref"2">>1 t9mf13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S109612951"20>5135_next_naskolf"2">6v9switches6a1"2055138lertime513>5 3het_cpu_act 9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf coveredime51"2056>>133coveredinac_1g7naref"2">>1 t9mf13_2umask_s_tmp>1 trtime50 1, o>/nef13_2umask_s_tmp>1 tho7>09612951"20>5135_next_naskolf"2">6vitches"+p6mask_var_ts_timeoutaom it6pumas631ine>3so7> _t 9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3clear_cpusnr1gf m551cul>51562> =r1pddRI_S_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>friveae1cul>51562> =r1friveaeine>Enew3e513 i>51372> =>
a1" 9"hwitc6a>20
a hrc6/33nam514ilertime51cular/6reple63>3het_cpu_act 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>uf13_2umask_inac_clear_cpusnr1gf 2hilar/* ho7> _domaiahilautr1Enew3e513 i>51372> =>
a1" 9"hwitc6s"+pr331CO6FIG_SCHED_DEBUGsss*>122as6="naC641231ine>3raw_omain_debug_o"+snr1ir/* ho7> _domaiiine>Enew3e513 i>51372> =>
a1" 9"hwitc60
3271erd*6d/32" 5142lertime51"5#L1.6>tsis6428
15#Lt h51it_>51522> =2tatica5#L9>r6>20
a hr__6ead_mostlys_timeoutaom it6_read64> 77>1t+migration_calls_timecrt>1 t9clerempmask*q3o>>123crt>1 t9clereinactiv+snr1, switchcoveredime51"2056>>133coveredinac109612951"20>5135_next_naskolf"2">60
a1" 9"t>6/33nam5144lertime51est po6si ac64>
qr new3e51est>514419ot2tatica3nr_sw60> 77>1t+m61__inits_timeoutaom it__i6iter 64e50pty hre74oo7> =>
a1"20550for_eacc_ertime51"2056>>133for_eacc_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9e3lertime50 1, o>/nu3leinac1b new3e513 i>51372> =>
a1" 9"hwitc60g=9o7> =>6d/33db*5146lertime51 se0 6reple64_STARTING_nex1t+migrau9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf 
gl
3lertime50 1, o>/nugl
3leinac09612951"20>5135_next_naskolf"2">60g=9o7> =>67> _debug_enabled203o>>1261ine>64esqr new3e51val>51K7_nex2tatica3nr_sw609switches6a1"2055148lertime51axssr9671_pc64>3het_cpu_activ+snr1gons=imeoutaom itrd9crt>1 t9t9i1_ertime51"2056>>133crt>1 t9t9i1_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9coveredime51"2056>>133coveredinac1()-5im51ck_>5153   c>
a1" 9"t>
id6v0sr1perf_6vf13_2ag=9o7> =>
a1"2055169lert641ine>3so7> _ttwu_pendt9i1_rer1ontinue09612951"20>5135_next_naskolf"2">6>>20
a hrc6d/33nam515ilertime51K_UNI6TERRU648
15 new3e51cul>51cuer f#ifdef,switch6rearly_par6ssss*>122ass="naearly_par6ssnr165m itNOTIFY_OK9ik_sr1plear_cpusnr1gf 2hilar/* ho7> _domaiahilautr1_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m51cul>51562> =r1pdRI_S_timeoutaom itrd9ir/* ho7> _domaiiine>109612951"20>5135_next_naskolf"2">6r
3271erd*6d/32" 5152lertime51it_fo>6hrepl6528
15#Lt h51it_>51522> =2tatica5#L9>r6r20
a hr__6="+*q3o>>1231ine>3ins="+s6r1>5#65naBUG_ONsnr1g!5#L9>rqk086lertime50utaom its/* See the utaom i nere build_grou3_>1 t()./*>5#L17led>fro51let>51392> =12> =>
a1" 9"6>
a1" 9"t>6d/33db*5154lertime51st po6si ac65q3o>>1231ine>3raw_spions="7naref"2">>1 t9crt>1 t9t9i1_ertime51"2056>>133crt>1 t9t9i1_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9ef13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switch2hilar/* ho7> _domaiahilautr1)(()-5im51ck_>5153   c>
a1" 9"t>
id6sches"+pr3697erdho7> _debug_enabled263o>>165e50pty hre74o1t+migraaaaaaaaa1ontinue09612951"20>5135_next_naskolf"2">6rg=9o7> =>6d/33nam5156lertime51cular6hrepl65e*qr new3e50ick>50=12> =>
a1" 9"switc6sg=9o7> =>6a1"2055157lertime51val
p 6n jif65snr1gf"2">>1 t9i1_rer7naref"2">>1 t9m>331r5153lertime5gho7>_1g7naref"2">>1 t9kzalloc_n1gfrtime50 1, o>/nkzalloc_n1gfinact izeoft 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask) +g7naref"2">>1 t9crt>1 t9sizeime51"2056>>133crt>1 t9sizeinact)gnew3e513 i>51372> =>
a1" 9"hwitc6sg=9o7> =>61ho7> _domain_debug_o"+*q6o>>1265>3het_cpu_activ+snr1g_cpu_actt9i1_rer7naref"2">>1 t9GFP_KERNEL1cul>51562> =r1GFP_KERNELine>_timeoutaom itrd9crt_to_n1gfrtime50 1, o>/ncrt_to_n1gfinact7naref"2">>1 t9ertime51"2056>>133nam>33p((faaccl51514ler fr1perf_evf13_6s0sr1perf_60
a hrso7> _ttwu_pend3ngs63o>>1651ine>_et h51asr>51312> =L12> =>
a1" 96r>20
a hrc6nc_cdsc3253er/* Update ou6 root65>3het_cpu_activ+snr1gons="7naref"2">>1 t9m>331r5153lertime5gho7>()-5im51ck_>5153   c>
a1" 9"t>
id60
t>
id4ss6197erdraw_spin_lock_irqsa6+*q3o66m itNOTIFY_OK9ik_sr1p2">>1 t9gotooo7> =>
a1"20550fail331r5153lertimefailinac09612951"20>5135_next_naskolf"2">6ol32a9swit6hes"+pr331rq203o>>1231ine63rq9i6628
15#Lt h51it_>51522> =2tatica5#L9>r6020
a hrin6>
id4ss3197erdBUG_ONsss*>622ass66naBUG_ONsnr1g!5#L9>rqkear_cpusnr1gf 
gl
3lertime50 1, o>/nugl
3leinac_1g7naref"2">>1 t9mf13_2grou3_rerirtime50 1, o>/nef13_2grou3_reriinactiv+snr1, switche>331r5153lertime5gho7>(09612951"20>5135_next_naskolf"2">6o
a1" 9"t>6#L9>rq>20
a hrset_rq_offs6"+*q366q3o>>1231ine>3raw_spions=iv+snr1, switch2hilar/* ho7> _domaiahilautr11flags203o>>1231ine>2hilar/* ho7> _domaiahilautr11b new3e513 i>51372> =>
a1" 9"hwitc6oches"+pr361" 9"t>3324erd*ad/33nam5065lert66e50pty hre74o1t+migraaaaaaaaalear_cpusnr1gf 2hilar/* ho7> _domaiahilautr1_1giv+snr1, switch2hilar/* ho7> _domaiahilautr11flags203o>>1231ine>2hilar/* ho7> _domaiahilautr109612951"20>5135_next_naskolf"2">6og=9o7> =>60
a hrmigrate_tasks203o>>6231in66_STARTING_nex1t+migraaaaaaaaalear_cpusnr1gf 2rt>1 t9copympmask*q3o>>123crt>1 t9copyinactiv+snr1, switche>l
3lertime50 1, o>/nugl
3leinac_timeoutaom itrd9ef13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switch2hilar/* ho7> _domaiahilautr1)(09612951"20>5135_next_naskolf"2">6og=9o7> =>60
a hrBUG_ONsss*>122ass="6aBUG_66snr1gf"2">>1 t9i1_rer} sr1paaccl51514ler fr1perf_evf13_60g=9o7> =>6197erdraw_spin_unlock_irq6estd/66>3het_cpu_activ+snr1g_cpu_actn_debug_o"+snr1crt>1 t9set_ertime51"2056>>133crt>1 t9set_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9e>l
3lertime50 1, o>/nugl
3leinac(09612951"20>5135_next_naskolf"2">6o0sr1perf_6erf_evf13_2ag=9o7> =>
a1"605506661ine>_et h51asr>51312> =L12> =>
a1" 96o>20
a hrc6/33nam507ilertime50=>
a1"6932>t66>3het_cpu_activ+snr1g7naref"2">>1 t9crt>1 t9oempmask*q3o>>123crt>1 t9oeinactiv+snr1, switchcoveredime51"2056>>133coveredinac_timeoutaom itrd9coveredime51"2056>>133coveredinac_timeoutaom itrd9e>l
3lertime50 1, o>/nugl
3leinac(09612951"20>5135_next_naskolf"2">6witches"+p6331CPU_DEADsss*>122ass="n6CPU_D67>323 >128h51h0">5131_next_naskolongsl6ol>>1 t9i16rest>
calc_load_migrate206o>>1267ine>3calc_load_migrativ+snr1, switche>331r5153lertime5gho7>2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S_timeoutaom itrd9ir/* ho7> _domaiiine>109612951"20>5135_next_naskolf"2">6o20
a hrin6erf_evf13_2ag=9o7> =>
a1"60550767naBUG_ONsnr1g!5#L9>rqons=iv+snr1, switchatomic_inc_erf_evr/* ho7> _domaiatomic_inc_erf_evinactFROZElear_cpusnr1gf e>331r5153lertime5gho7>2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S2ag=9o7> =>
a1"20550 o>/time50 1, o>/n o>utr11b== 1()-5im51ck_>5153   c>
a1" 9"t>
id6w
t>>>140
6erd*ad/33nam50=4lertime506>>5#L67q3o>>1231ine>3raw_spid_migrativ+snr1, switchbuild_grou3_>1 trtime50 1, o>/nbuild_grou3_>1 tinacto7> =>
a1"20550m51cul>51562> =r1pdRI_S_timeoutaom itrd9e>331r5153lertime5gho7>(09612951"20>5135_next_naskolf"2">6wches"+pr36324erd*ad/33nam50=5lertim650cul67utr1 new3e50())>50c5_next_naskolcase,6wg=9o7> =>6a1"2055076lertime50ick()>635>ss67_STARTING_nex1t+migrat39lertime50namtioL132/*5#L17led>fro51let>51392> =12> =>
a1" 9"6wg=9o7> =>6date_max_3nrervags_timeou6aom i67CPU_D5086lertime50utaom its/////////////////* Initialize ug32ag=9power succ that evenqonswe mess upsthe5#L17led>fro51let>51392> =12> =>
a1" 9"6wg=9o7> =>6a1"2055078lertime50* 
/3>6rupti67enaxr5086lertime50utaom its/////////////////* umask_s 6ld no pos1ib_e oter51ion will get us here,swe won'1inL17led>fro51let>51392> =12> =>
a1" 9"6o0sr1perf_697erdNOTIFY_OKs_timeoutao6 itNO67ertim5086lertime50utaom its/////////////////* uie on a /0 trap.orenaxr1g=t>50axs>50 2   ck12o32w>122as6t>3324erd*6d/33nam508ilertime50 0ach6hrepl67ts tri1_reho7> _dexssr9o71_ ////////////////*>5#L17led>fro51let>51392> =12> =>
a1" 9"6ag=9o7> =>6a1"2055081lertime50pt_ena6ac()r68m itNOTIFY_OK9ik_sr1plear_cpusnr1gf e>331r5153lertime5gho7>2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S2ag=9o7> =>
a1"20550power1cul>51562> =r1powermask_1giv+snr1, switchSCHED_POWER_SCALE1cul>51562> =r1SCHED_POWER_SCALEmask_cg7naref"2">>1 t9crt>1 t9weigh1rtime50 1, o>/ncrt>1 t9weigh1inactiv+snr1, switche>l
3lertime50 1, o>/nugl
3leinac(09612951"20>5135_next_naskolf"2">6="3239er/*6/33evf13a 32his cl"+asr1p6e33ev6828
15#Lt h51it_>51522> =2tatica5#L9>r6a20
a hrin6Registerdat high priority6so th68naBUG_ONsnr1g!5#L9>rqk086lertime50utaom its/*5#L17led>fro51let>51392> =12> =>
a1" 9"6a
t>>>140
6happens befvf> everyth3ng6else.68>1231039lertime50namtioL132/////////////////* M1kf sure3the firi1 grou3 of this umask_ 1ontsk_s the5#L17led>fro51let>51392> =12> =>
a1" 9"6a
a1" 9"t>6the notifier in the perf_6vent 68/hrep039lertime50namtioL132/////////////////* 2anonical balance 2">. Otherwispsthe  f#if2ae49va oter51ion5#L17led>fro51let>51392> =12> =>
a1" 9"6ag=9o7> =>6d/33evf13a 32his cl"+asr16re33e68e*qr 039lertime50namtioL132 ////////////////* breaks. See update_ugllb_so7>s().orenaxr1g=t>50axs>50 2   ck12o32w>122as6="5#L9>rq>6e961notifier_blocks_timeo6taom 68CPU_D5086lertime50utaom its/////////////////*>5#L17led>fro51let>51392> =12> =>
a1" 9"6ag=9o7> =>6otifier_calls_timeoutaom 6tnoti68>3het_cpu_activ+snr1gons=="7naref"2">>1 t9grou3ertime500
6>>128grou3etc20_FROZEFROZENs203o>>1231ine>crt>1 t9t9i1_ertime51"2056>>133crt>1 t9t9i1_ertinactiv+snr1, switchertime51"2056>>133nam>33p_timeoutaom itrd9e>l
3lertime50 1, o>/nugl
3leinac() ||d>fro51let>51392> =12> =>
a1" 9"6a0sr1perf_6rioritys_timeoutaom itpri6rity9681ine>3so7> _ttwu_pendt9i17naref"2">>1 t9grou3_balance_ertime51"2056>>133grou3_balance_ertinactimeoutaom itrd9e>331r5153lertime5gho7>(b== 7naref"2">>1 t9ertime51"2056>>133nam>33p(d>fro51let>51392> =12> =>
a1" 9"6a>3324erd*6>
a1"205509ilertime50e" n6mtio368>3het_cpu_activ+snr1giv+snr1g7naref"2">>1 t9grou3ertime500
6>>128grou3etc20_1g7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">6ag=9o7> =>6a1"2055091lertime50pt_ena6ac()r69>323 >128h51h0">5131_next_naskolongsl6a"3239er/*61__cpuinits_timeoutaom it6_cpui69ine>3calc_load_migratons="7naref"2">>1 t9firi1rtime50 1, o>/nfiri1inac(d>fro51let>51392> =12> =>
a1" 9"6a20
a hrin6












unsigned lon6t28
_69naBUG_ONsnr1g!5#L9>rq_cpu_actn_debug_o"+snr1firi1rtime50 1, o>/nfiri1inac_1g7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">6a
t>>>140
6d/33db*5094lertime50val
p6in ji69q3o>>1231ine>3raw_spions=iv+snr1, switchl>51rtime50 1, o>/nl>51inac(d>fro51let>51392> =12> =>
a1" 9"6a
a1" 9"t>6+pr331actions_timeoutaom 6tacti69e50pty hre74o1t+migraaaaaaaaalear_cpusnr1gf l>51rtime50 1, o>/nl>51inac2ag=9o7> =>
a1"20550nex1rtime50 1, o>/nnex1inac_1g7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">6ag=9o7> =>6331CPU_STARTINGsss*>122as6="naC69_STARTING_nex1t+migration_calls_timel>51rtime50 1, o>/nl>51inac_1g7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">6a"5#L9>rq>6331CPU_DOWN_FAILEDsss*>126ass="69snr1gf"2">>1 t9i1_rer7naref"2">>1 t9l>51rtime50 1, o>/nl>51inac2ag=9o7> =>
a1"20550nex1rtime50 1, o>/nnex1inac_1g7naref"2">>1 t9firi1rtime50 1, o>/nfiri1inac09612951"20>5135_next_naskolf"2">6ag=9o7> =>6197erdhet_cpu_activ+*q3o>61231i69>3het_cpu_act1g=t h51294>51are 205#L9>rq>20
a 6w0sr1perf_6
id4ss3197erdNOTIFY_OKs_t6meout698 77>1t+migration_calls_time551cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20_1g7naref"2">>1 t9grou3ertime500
6>>128grou3etc2009612951"20>5135_next_naskolf"2">6a>3324erd*6f13_2ag=9o7> =>
a1"2055136lerti698
15 new3e51cul>51cuer f#ifdef,switch70
ongsl2vt7
id4ss3197erdNOTIFY_DONEs7s*>1270m itNOTIFY_OKerf_evf009612951"20>5135_next_naskolf"2">701ongsl2vt7
__cpuinits_timeoutaom it7513
 7028
15#Lt h51it_>51522> =2tatica5#L9>r702ongsl2vt7












unsigned lon7hrepl70   cr57> =>
a1"20550fail331r5153lertimefailinac:#Lt h51it_>51522> =2tatica5#L9>r703ongsl2vt7
/33db*5094lertime50val
p7n jif70q3o>>1231ine>lear_cpusnr1gf free_ef13_2grou3irtime50 1, o>/nfree_ef13_2grou3iinactimeoutaom itrd9firi1rtime50 1, o>/nfiri1inac, 0(09612951"20>5135_next_naskolf"2">704ongsl2vt7
pr331actions_timeoutaom 7_cpui70utr1 new3e50())>50c5_next_naskolcase,705ongsl2vt7
31CPU_STARTINGsss*>122as7ngt28705 itNOTIFY_OKerf_evf-imeoutaom itrd9ENOMEMrtime50 1, o>/nENOMEMtc2009612951"20>5135_next_naskolf"2">706ongsl2vt7
31CPU_DOWN_FAILEDsss*>127n jif70CPU_D1g=t h51294>51are 205#L9>rq>20
a 7a9switches7+pr331actions_timeoutaom 7tacti70ine>3g=t h51294>51are 205#L9>rq>20
a 7a8switches7+id4ss3197erdNOTIFY_OKs_t72ass=701ine>so7> _domain_debug_o"+snr1get2grou3rtime50 1, o>/nget2grou3inactomain_debug_o"+snr1ertime51"2056>>133nam>33pCH 9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3clear_cpusnr1gf m551cul>51562> =r1pddRI_SCH 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_cc7naref"2">>1 t9m>331r5153lertime5gho7>()-5im51ck_>5153   c>
a1" 9"t>
id7w9tches"+p7313_2ag=9o7> =>
a1"20551371231i70>3het new3e513 i>51372> =>
a1" 9"hwitc70
ongsl2vt7
id4ss3197erdNOTIFY_OKs_t7meout711231ine>3raw_ 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_S_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m51cul>51562> =r1pdRI_S_timeoutaom itrd9ertime51"2056>>133nam>33p(Enew3e513 i>51372> =>
a1" 9"hwitc7t:r1perf_e7f13_2ag=9o7> =>
a1"20551:7lerti71the boot CPU  9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf 2hilar/* ho7> _domaiahilautr1_1giv+snr1, switchm51cul>51562> =r1pdRI_S1flags203o>>1231ine>2hilar/* ho7> _domaiahilautr1Enew3e513 i>51372> =>
a1" 9"hwitc7t2ongsl2vt7
id4ss3197erdNOTIFY_DONEs7s*>12712rtimg=t h51294>51are 205#L9>rq>20
a 7t3ongsl2vt7324erd*ad/33nam51:4lertim751"5#71q3o>>1231ine>ons=iv+snr1, switch2hilar/* ho7> _domaiahilautr1()-5im51ck_>5153   c>
a1" 9"t>
id7>4324erd*a7d/33nam51:5lertime51y >>k7lerr_71e50pty hre74o1t+migraimeoutaom itrd9ertime51"2056>>133nam>33p_1giv+snr1, switch2rt>1 t9firi1ime51"2056>>133crt>1 t9firi1inactiv+snr1, switchef13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switch2hilar/* ho7> _domaiahilautr1)(09612951"20>5135_next_naskolf"2">7>5324erd*a7a1"20551:6lertime51ick()>735>ss71e*qr new3e50ick>50=12> =>
a1" 9"switc706ongsl2vt71__inits_timeoutaom it__i7iter 71snr1gf"2">>1 ons=iv+snr1, switche>331r5153lertime5gho7>(b new3e513 i>51372> =>
a1" 9"hwitc709switches7d/33db*5118lertime51ck()>735>ss71>3het_cpu_activ+snr1gc7naref"2">>1 t9m>331r5153lertime5gho7>_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m>331r5153lertime5gho7>_timeoutaom itrd9ertime51"2056>>133nam>33p(Enew3e513 i>51372> =>
a1" 9"hwitc7t8switches7e961cpu203o>>1231ine>3cpu7ik_>e711ine>3so7> _ttwu_pendtclear_cpusnr1gf 5>331r5153lertime5gho7>(2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S_1gclear_cpusnr1gf fer>123_ptr1cul>51562> =r1fer>123_ptrinactiv+snr1, switche551cul>51562> =r1pddRI_S2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S_timeoutaom itrd9ertime51"2056>>133nam>33p(Enew3e513 i>51372> =>
a1" 9"hwitc7t9tches"+p731errs_timeoutaom iterr9i7_sr1p71>3het_cpu_activ+snr1g7naref"2">>1 t9atomic_se1ime51"2056>>133atomic_se1inactFROZEtclear_cpusnr1gf 5>331r5153lertime5gho7>(2ag=9o7> =>
a1"20550m>3rtime50 1, o>/nug3RI_S2ag=9o7> =>
a1"20550 o>/time50 1, o>/n o>utr1, 1);qk086lertime50utaom its/* for rtiim2alloc51ions *>5#L17led>fro51let>51392> =12> =>
a1" 9"7ag=9o7> =>7a1"2055121lertime51renaTA7K_KIL72m itNOTIFY_OK1g=t h51294>51are 205#L9>rq>20
a 7ndonc_cdsc7253er/* Initialize migrat7on fv7228
15#Lt h51it_>51522> =2tatica5#L9>r7n
ongsl2vt7rs_timeoutaom iterr9ik_>e7=ime51"2056>>133nam>33pEnew3e513 i>51372> =>
a1" 9"hwitc7n
a1" 9"t>7G_ONsss*>122ass="naBUG_ON7nr1gf72>12311g=t h51294>51are 205#L9>rq>20
a 7n4324erd*a7gration_calls_timeoutaom 7tmigr72utr1 new3e50())>50c5_next_naskolcase,7s5324erd*a7gister_cpu_notifiers_time7utaom72e*qr 039lertime50namtioL132/*5#L17led>fro51let>51392> =12> =>
a1" 9"7ag=9o7> =>7a1"2055127lertime51a129ck7le97s72CPU_D5086lertime50utaom its/* build_uf13_2grou3i will build 6 circular ertked list of the grou3iinL17led>fro51let>51392> =12> =>
a1" 9"7a9switches7253er/* Registerdcpu acti7+ not72enaxr5086lertime50utaom its/* covered by the givenq086l, 6ld will se1 eacc grou3's 2ag=9crt>1 t correctly,inL17led>fro51let>51392> =12> =>
a1" 9"7a8switches7u_notifiers_timeoutaom it7pu_no72ertim5086lertime50utaom its/* 6ld 2ag=9crt_power3to 0.orenaxr1g=t>50axs>50 2   ck12o32w>122as7n9tches"+p7u_notifiers_timeoutaom it7pu_no72ts tri1_reho7> _dexssr9o71_ aorenaxr1g=t>50axs>50 2   ck12o32w>122as7ag=9o7> =>7a1"2055131lertime51h0"1ne7kw32s73m itN5086lertime50utaom its a Assumessthe  f#if2ae49va tree is fullynconi1"t>>edinenaxr1g=t>50axs>50 2   ck12o32w>122as7adonc_cdsc7vf13_2ag=9o7> =>
a1"2055172lert73ine>35086lertime50utaom its/*>5#L17led>fro51let>51392> =12> =>
a1" 9"7vp32s1erde7d/33nam5133lertime51294>77
aq_7732rtimso7> _doma#Lt h51it_>51522> =2tatica5#L9>r7v
a1" 9"t>7calls_timeoutaom itearly_7nitca73q3o>>imeoutaom itrd9build_ef13_2grou3irtime50 1, o>/nbuild_ef13_2grou3iinact 9"t>>>140
>>1 t9i1_reuf13_2umask_clear_cpu203o>>1231ine>3cpumask_clear_cpusnr1gf m51cul>51562> =r1pdRI_SCHomain_debug_o"+snr1ertime51"2056>>133nam>33p()-5im51ck_>5153   c>
a1" 9"t>
id7v> 77>1t+m7erd*ad/33nam5135lertime517ts/ru73utr1  new3e513 i>51372> =>
a1" 9"hwitc7vg=9o7> =>7a1"2055136lertime510shre37732ss73_STARTING_nex 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_c7naref"2">>1 t9firi1rtime50 1, o>/nfiri1inac_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326,_c7naref"2">>1 t9l>51rtime50 1, o>/nl>51inac_1g7naref"2">>1 t9NULL1cul>51562> =r1NULL>326Enew3e513 i>51372> =>
a1" 9"hwitc7vg=9o7> =>7FIG_SMPsss*>122ass="naCON7IG_SM73o7> _debug_en 9"t>>>140
>>1 t9i1_reu_2uata1cul>51562> =r1ed_dataine>3clear_cpusnr1gf m551cul>51562> =r1pddRI_S_1g7naref"2">>1 t9m51cul>51562> =r1pdRI_S1flags203o>>1231ine>friveae1cul>51562> =r1friveaeine>Enew3e513 i>51372> =>
a1" 9"hwitc7v9switches7a1"2055138lertime513>5 3het_cpu_actconi1 u9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf 
3lertime50 1, o>/nu3leinac_1g7naref"2">>1 t9mf13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S109612951"20>5135_next_naskolf"2">7vitches"+p7mask_var_ts_timeoutaom it7pumas731ine>3so7> _t 9"t>>>140
>>1 t9i1_re2">>1 trtime50 1, o>/ncrt>1 tmask_clear_cpusnr1gf coveredime51"2056>>133coveredinac09612951"20>5135_next_naskolf"2">7v9tches"+p7/33nam514ilertime51cular/7reple73>3het_cpu_actomailear_cpusnr1gf ir/* ho7> _domaiiine>Enew3e513 i>51372> =>
a1" 9"hwitc7s"+pr331CO7FIG_SCHED_DEBUGsss*>122as7="naC74>323 >128h51h0">5131_next_naskolongsl70
3271erd*7d/32" 5142lertime51"5#L1.7>tsis74the boot CPU n_debug_o"+snr1get2grou3rtime50 1, o>/nget2grou3inactn_debug_o"+snr1ertime51"2056>>133nam>33pCHlear_cpusnr1gf m551cul>51562> =r1pddRI_SCHFROZElear_cpusnr1gf e51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc20109612951"20>5135_next_naskolf"2">7>20
a hr__7ead_mostlys_timeoutaom it7_read74> 77>1t+migration_calls_timeatomic_incime51"2056>>133atomic_incinactFROZElear_cpusnr1gf e51cul>51562> =r1pdRI_S1flags203o>>1231ine>grou3ertime500
6>>128grou3etc202ag=9o7> =>
a1"20550 o>/time50 1, o>/n o>utr1109612951"20>5135_next_naskolf"2">7>
a1" 9"t>7/33nam5144lertime51est po7si ac74>
qr new3e51est>514419ot2tatica3nr_sw70> 77>1t+m71__inits_timeoutaom it__i7iter 74e50pty hre74oons=imeoutaom itrd9crtime51"2056>>133nam>33p_!1giv+snr1, switch2rt>1 t9firi1ime51"2056>>133crt>1 t9firi1inactiv+snr1, switchef13_2umask_l
3lertime50 1, o>/nuf13_2ae49val
3leinactiv+snr1, switche51cul>51562> =r1pdRI_S1(()-5im51ck_>5153   c>
a1" 9"t>
id70g=9o7> =>7d/33db*5146lertime51 se0 7reple74_STARTING_nex1t+migraerf_evf009612951"20>5135_next_naskolf"2">70g=9o7> =>77> _debug_enabled203o>>1271ine>74esqr new3e51val>51K7_nex2tatica3nr_sw709switches7a1"2055148lertime51axssr9771_pc74>3het_cpu_act7naref"2">>1 t9lockdep_514ert_helar/* ho7> _domailockdep_514ert_helainactFROZElear_cpusnr1gf ef13_2ae49vas_mutexrtime50 1, o>/nuf13_2ae49vas_mutexutr1109612951"20>5135_next_naskolf"2">7>itches"+p7vf13_2ag=9o7> =>
a1"2055179lert748 77>1t+migration_calls_timecoveredime51"2056>>133coveredinac_1g7naref"2">>1 t9mf13_2umask_s_tmp>1 trtime50 1, o>/nef13_2umask_s_tmp>1 tho7>09612951"20>5135_next_naskolf"2">7>>20
a hrc7d/33nam515ilertime51K_UNI7TERRU748
15 new3e51cul>51cuer f#ifdef,switch7rearly_par7ssss*>122ass="naearly_par7ssnr175m itNOTIFY_OKiv+snr1, switch2rt>1 t9clerempmask*q3o>>123crt>1 t9clereinactiv+snr1, switchcoveredime51"2056>>133coveredinac109612951"20>5135_next_naskolf"2">7r
3271erd*7d/32" 5152lertime51it_fo>7hrepl7528
15#Lt h51it_>51522> =2tatica5#L9>r7r20
a hr__7="+*q3o>>1231ine>3ins="+s7r1>5#75> 77>1t+migration_calls_timefor_eacc_ertime51"2056>>133for_eacc_ertinactiv+snr1, switchir/* ho7> _domaiiine>_timeoutaom itrd9e3lertime50 1, o>/nu3leinac1b new3e513 i>51372> =>
a1" 9"hwitc7>
a1" 9"t>7d/33db*5154lertime51st po7si ac75q3o>>1231ine>3raw_spi 9"t>>>140
>>1 t9i1_reuf13_2grou3rtime50 1, o>/nuf13_2grou3mask_c7naref"2">>1 t9m>331r5153lertime5gho7>09612951"20>5135_next_naskolf"2">7r> 77>1t+m797erdho7> _debug_enabled273o>>175e50pty hre74o1t+migraomain_debug_o"+snr1grou3rtime500
6>>128grou3inac_1g7naref"2">>1 t9get2grou3rtime50 1, o>/nget2grou3inactn_debug_o"+snr1ir/* ho7> _domaiiine>_timeoutaom itrd9e551cul>51562> =r1pddRI_SCHFROZElear_cpusnr1gf e>331r5153lertime5gho7>(09612951"20>5135_next_naskolf"2">7rg=9o7> =>7d/33nam5156lertime51cular7hrepl75_STARTING_nex1t+migraomain_debug_o"+snr1j331r5153lertimejho7>09612951"20>5135_next_naskolf"2">7rg=9o7>