linux/lib/percpu_counter.c
<<
span> san> class="lxr_search"> acon> ="+search" method="post" onsubmit="return do_search(this);"> Search span> san> class="lxr_pf=/s" span> hr/fodiv hr/frm> acon> ="ajax+*" method="post" onsubmit="return false;"> sinput typ"v2hidden" nam"v2ajax_lookup" idv2ajax_lookup" lue="v2"> hr/form> hr/fdiv class="headingbott m">
fdiv idv2file_contents" hr/1foa>san> class="comment">/*span> < ef=/.. .b/percpu_counter.c#L2" idv2L2" class="line" nam"v2L2">hr/2foa>san> class="comment"> * Fast batching percpu counters.span> < ef=/.. .b/percpu_counter.c#L3" idv2L3" class="line" nam"v2L3">hr/3foa>san> class="comment"> */span> < ef=/.. .b/percpu_counter.c#L4" idv2L4" class="line" nam"v2L4">hr/4foa> < ef=/.. .b/percpu_counter.c#L5" idv2L5" class="line" nam"v2L5">hr/5foa>#include << ef=/..includei .6.1/percpu_counter.h" class="ff=/"> .6.1/percpu_counter.hfoa>> < ef=/.. .b/percpu_counter.c#L6" idv2L6" class="line" nam"v2L6">hr/6foa>#include << ef=/..includei .6.1/notifier.h" class="ff=/"> .6.1/notifier.hfoa>> < ef=/.. .b/percpu_counter.c#L7" idv2L7" class="line" nam"v2L7">hr/7foa>#include << ef=/..includei .6.1/mutex.h" class="ff=/"> .6.1/mutex.hfoa>> < ef=/.. .b/percpu_counter.c#L8" idv2L8" class="line" nam"v2L8">hr/8foa>#include << ef=/..includei .6.1/init.h" class="ff=/"> .6.1/init.hfoa>> < ef=/.. .b/percpu_counter.c#L9" idv2L9" class="line" nam"v2L9">hr/9foa>#include << ef=/..includei .6.1/cpu.h" class="ff=/"> .6.1/cpu.hfoa>> < ef=/.. .b/percpu_counter.c#L10" idv2L10" class="line" nam"v2L10">hr#include << ef=/..includei .6.1/module.h" class="ff=/"> .6.1/module.hfoa>> < ef=/.. .b/percpu_counter.c#L11" idv2L11" class="line" nam"v2L11">hr11opa>#include << ef=/..includei .6.1/debugobjt> s.h" class="ff=/"> .6.1/debugobjt> s.hfoa>> < ef=/.. .b/percpu_counter.c#L12" idv2L12" class="line" nam"v2L12">hr12foa> < ef=/.. .b/percpu_counter.c#L13" idv2L13" class="line" nam"v2L13">hr13opa>#ifdefa ef=/..+code=CONFIG_HOTPLUG_CPU" class="sf=/">CONFIG_HOTPLUG_CPUfoa> < ef=/.. .b/percpu_counter.c#L14" idv2L14" class="line" nam"v2L14">hr14foa>statica ef=/..+code=LIST_HEAD" class="sf=/">LIST_HEADfoa>( ef=/..+code=percpu_counters" class="sf=/">percpu_countersfoa>); < ef=/.. .b/percpu_counter.c#L15" idv2L15" class="line" nam"v2L15">hr15foa>statica ef=/..+code=DEFINE_SPINLOCK" class="sf=/">DEFINE_SPINLOCKfoa>( ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L16" idv2L16" class="line" nam"v2L16">hr16foa>#endif < ef=/.. .b/percpu_counter.c#L17" idv2L17" class="line" nam"v2L17">hr17foa> < ef=/.. .b/percpu_counter.c#L18" idv2L18" class="line" nam"v2L18">hr18opa>#ifdefa ef=/..+code=CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER" class="sf=/">CONFIG_DEBUG_OBJECTS_PERCPU_COUNTERfoa> < ef=/.. .b/percpu_counter.c#L19" idv2L19" class="line" nam"v2L19">hr19foa> < ef=/.. .b/percpu_counter.c#L20" idv2L20" class="line" nam"v2L20">hr20foa>staticastructa ef=/..+code=debug_obj_descr" class="sf=/">debug_obj_descrfoa>a ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>; < ef=/.. .b/percpu_counter.c#L21" idv2L21" class="line" nam"v2L21">hr21foa> < ef=/.. .b/percpu_counter.c#L22" idv2L22" class="line" nam"v2L22">hr22foa>staticainta ef=/..+code=percpu_counter_fixup_ff=e" class="sf=/">percpu_counter_fixup_ff=efoa>(void * ef=/..+code=addr" class="sf=/">addrfoa>, enuma ef=/..+code=debug_obj_state" class="sf=/">debug_obj_statefoa>a ef=/..+code=state" class="sf=/">statefoa>) < ef=/.. .b/percpu_counter.c#L23" idv2L23" class="line" nam"v2L23">hr23opa>{ < ef=/.. .b/percpu_counter.c#L24" idv2L24" class="line" nam"v2L24">hr24foa> structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa> =a ef=/..+code=addr" class="sf=/">addrfoa>; < ef=/.. .b/percpu_counter.c#L25" idv2L25" class="line" nam"v2L25">hr25foa> < ef=/.. .b/percpu_counter.c#L26" idv2L26" class="line" nam"v2L26">hr26foa> switch ( ef=/..+code=state" class="sf=/">statefoa>) { < ef=/.. .b/percpu_counter.c#L27" idv2L27" class="line" nam"v2L27">hr27foa> casea ef=/..+code=ODEBUG_STATE_ACTIVE" class="sf=/">ODEBUG_STATE_ACTIVEfoa>: < ef=/.. .b/percpu_counter.c#L28" idv2L28" class="line" nam"v2L28">hr28foa> ef=/..+code=percpu_counter_destroy" class="sf=/">percpu_counter_destroyfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>); < ef=/.. .b/percpu_counter.c#L29" idv2L29" class="line" nam"v2L29">hr29foa> ef=/..+code=debug_objt> _ff=e" class="sf=/">debug_objt> _ff=efoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>); < ef=/.. .b/percpu_counter.c#L30" idv2L30" class="line" nam"v2L30">hr30foa> return 1; < ef=/.. .b/percpu_counter.c#L31" idv2L31" class="line" nam"v2L31">hr31foa> default: < ef=/.. .b/percpu_counter.c#L32" idv2L32" class="line" nam"v2L32">hr32foa> return 0; < ef=/.. .b/percpu_counter.c#L33" idv2L33" class="line" nam"v2L33">hr33foa> } < ef=/.. .b/percpu_counter.c#L34" idv2L34" class="line" nam"v2L34">hr34foa>} < ef=/.. .b/percpu_counter.c#L35" idv2L35" class="line" nam"v2L35">hr35foa> < ef=/.. .b/percpu_counter.c#L36" idv2L36" class="line" nam"v2L36">hr36foa>staticastructa ef=/..+code=debug_obj_descr" class="sf=/">debug_obj_descrfoa>a ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa> =a{ < ef=/.. .b/percpu_counter.c#L37" idv2L37" class="line" nam"v2L37">hr37foa> . ef=/..+code=nam"" class="sf=/">nam"foa> =a an> class="string">"percpu_counter"span> , < ef=/.. .b/percpu_counter.c#L38" idv2L38" class="line" nam"v2L38">hr38foa> . ef=/..+code=fixup_ff=e" class="sf=/">fixup_ff=efoa> =a ef=/..+code=percpu_counter_fixup_ff=e" class="sf=/">percpu_counter_fixup_ff=efoa>, < ef=/.. .b/percpu_counter.c#L39" idv2L39" class="line" nam"v2L39">hr39foa>}; < ef=/.. .b/percpu_counter.c#L40" idv2L40" class="line" nam"v2L40">hr40foa> < ef=/.. .b/percpu_counter.c#L41" idv2L41" class="line" nam"v2L41">hr41foa>statica ef=/..+code=inline" class="sf=/">inlinefoa> void ef=/..+code=debug_percpu_counter_aconvate" class="sf=/">debug_percpu_counter_aconvatefoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L42" idv2L42" class="line" nam"v2L42">hr42opa>{ < ef=/.. .b/percpu_counter.c#L43" idv2L43" class="line" nam"v2L43">hr43foa> ef=/..+code=debug_objt> _init" class="sf=/">debug_objt> _initfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>); < ef=/.. .b/percpu_counter.c#L44" idv2L44" class="line" nam"v2L44">hr44foa> ef=/..+code=debug_objt> _aconvate" class="sf=/">debug_objt> _aconvatefoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>); < ef=/.. .b/percpu_counter.c#L45" idv2L45" class="line" nam"v2L45">hr45foa>} < ef=/.. .b/percpu_counter.c#L46" idv2L46" class="line" nam"v2L46">hr46foa> < ef=/.. .b/percpu_counter.c#L47" idv2L47" class="line" nam"v2L47">hr47foa>statica ef=/..+code=inline" class="sf=/">inlinefoa> void ef=/..+code=debug_percpu_counter_deaconvate" class="sf=/">debug_percpu_counter_deaconvatefoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L48" idv2L48" class="line" nam"v2L48">hr48opa>{ < ef=/.. .b/percpu_counter.c#L49" idv2L49" class="line" nam"v2L49">hr49foa> ef=/..+code=debug_objt> _deaconvate" class="sf=/">debug_objt> _deaconvatefoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>); < ef=/.. .b/percpu_counter.c#L50" idv2L50" class="line" nam"v2L50">hr50foa> ef=/..+code=debug_objt> _ff=e" class="sf=/">debug_objt> _ff=efoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counter_debug_descr" class="sf=/">percpu_counter_debug_descrfoa>); < ef=/.. .b/percpu_counter.c#L51" idv2L51" class="line" nam"v2L51">hr51foa>} < ef=/.. .b/percpu_counter.c#L52" idv2L52" class="line" nam"v2L52">hr52foa> < ef=/.. .b/percpu_counter.c#L53" idv2L53" class="line" nam"v2L53">hr53opa>#else an> class="comment">/* CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER */span> < ef=/.. .b/percpu_counter.c#L54" idv2L54" class="line" nam"v2L54">hr54foa>statica ef=/..+code=inline" class="sf=/">inlinefoa> void ef=/..+code=debug_percpu_counter_aconvate" class="sf=/">debug_percpu_counter_aconvatefoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L55" idv2L55" class="line" nam"v2L55">hr55foa>{ } < ef=/.. .b/percpu_counter.c#L56" idv2L56" class="line" nam"v2L56">hr56foa>statica ef=/..+code=inline" class="sf=/">inlinefoa> void ef=/..+code=debug_percpu_counter_deaconvate" class="sf=/">debug_percpu_counter_deaconvatefoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L57" idv2L57" class="line" nam"v2L57">hr57foa>{ } < ef=/.. .b/percpu_counter.c#L58" idv2L58" class="line" nam"v2L58">hr58foa>#endif an> class="comment">/* CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER */span> < ef=/.. .b/percpu_counter.c#L59" idv2L59" class="line" nam"v2L59">hr59foa> < ef=/.. .b/percpu_counter.c#L60" idv2L60" class="line" nam"v2L60">hr60foa>void ef=/..+code=percpu_counter_set" class="sf=/">percpu_counter_setfoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>,a ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=amount" class="sf=/">amountfoa>) < ef=/.. .b/percpu_counter.c#L61" idv2L61" class="line" nam"v2L61">hr61opa>{ < ef=/.. .b/percpu_counter.c#L62" idv2L62" class="line" nam"v2L62">hr62foa> inta ef=/..+code=cpu" class="sf=/">cpufoa>; < ef=/.. .b/percpu_counter.c#L63" idv2L63" class="line" nam"v2L63">hr63foa> < ef=/.. .b/percpu_counter.c#L64" idv2L64" class="line" nam"v2L64">hr64foa> ef=/..+code=raw_spin_lock" class="sf=/">raw_spin_lockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L65" idv2L65" class="line" nam"v2L65">hr65foa> ef=/..+code=for_each_possible_cpu" class="sf=/">for_each_possible_cpufoa>( ef=/..+code=cpu" class="sf=/">cpufoa>) { < ef=/.. .b/percpu_counter.c#L66" idv2L66" class="line" nam"v2L66">hr66foa> ef=/..+code=s32" class="sf=/">s32foa> * ef=/..+code=pcount" class="sf=/">pcountfoa> =a ef=/..+code=per_cpu_ptr" class="sf=/">per_cpu_ptrfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>,a ef=/..+code=cpu" class="sf=/">cpufoa>); < ef=/.. .b/percpu_counter.c#L67" idv2L67" class="line" nam"v2L67">hr67foa> * ef=/..+code=pcount" class="sf=/">pcountfoa> =a0; < ef=/.. .b/percpu_counter.c#L68" idv2L68" class="line" nam"v2L68">hr68foa> } < ef=/.. .b/percpu_counter.c#L69" idv2L69" class="line" nam"v2L69">hr69foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=count" class="sf=/">countfoa> =a ef=/..+code=amount" class="sf=/">amountfoa>; < ef=/.. .b/percpu_counter.c#L70" idv2L70" class="line" nam"v2L70">hr70foa> ef=/..+code=raw_spin_unlock" class="sf=/">raw_spin_unlockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L71" idv2L71" class="line" nam"v2L71">hr71foa>} < ef=/.. .b/percpu_counter.c#L72" idv2L72" class="line" nam"v2L72">hr72foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=percpu_counter_set" class="sf=/">percpu_counter_setfoa>); < ef=/.. .b/percpu_counter.c#L73" idv2L73" class="line" nam"v2L73">hr73foa> < ef=/.. .b/percpu_counter.c#L74" idv2L74" class="line" nam"v2L74">hr74foa>void ef=/..+code=__percpu_counter_add" class="sf=/">__percpu_counter_addfoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>,a ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=amount" class="sf=/">amountfoa>,a ef=/..+code=s32" class="sf=/">s32foa> ef=/..+code=batch" class="sf=/">batchfoa>) < ef=/.. .b/percpu_counter.c#L75" idv2L75" class="line" nam"v2L75">hr75opa>{ < ef=/.. .b/percpu_counter.c#L76" idv2L76" class="line" nam"v2L76">hr76foa> ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=count" class="sf=/">countfoa>; < ef=/.. .b/percpu_counter.c#L77" idv2L77" class="line" nam"v2L77">hr77foa> < ef=/.. .b/percpu_counter.c#L78" idv2L78" class="line" nam"v2L78">hr78foa> ef=/..+code=preempt_disable" class="sf=/">preempt_disablefoa>(); < ef=/.. .b/percpu_counter.c#L79" idv2L79" class="line" nam"v2L79">hr79foa> ef=/..+code=count" class="sf=/">countfoa> =a ef=/..+code=__this_cpu_read" class="sf=/">__this_cpu_readfoa>(* ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>) +a ef=/..+code=amount" class="sf=/">amountfoa>; < ef=/.. .b/percpu_counter.c#L80" idv2L80" class="line" nam"v2L80">hr80foa> if ( ef=/..+code=count" class="sf=/">countfoa> >=a ef=/..+code=batch" class="sf=/">batchfoa> || ef=/..+code=count" class="sf=/">countfoa> <= - ef=/..+code=batch" class="sf=/">batchfoa>) { < ef=/.. .b/percpu_counter.c#L81" idv2L81" class="line" nam"v2L81">hr81foa> ef=/..+code=raw_spin_lock" class="sf=/">raw_spin_lockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L82" idv2L82" class="line" nam"v2L82">hr82foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=count" class="sf=/">countfoa> +=a ef=/..+code=count" class="sf=/">countfoa>; < ef=/.. .b/percpu_counter.c#L83" idv2L83" class="line" nam"v2L83">hr83foa> ef=/..+code=__this_cpu_write" class="sf=/">__this_cpu_writefoa>(* ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>, 0); < ef=/.. .b/percpu_counter.c#L84" idv2L84" class="line" nam"v2L84">hr84foa> ef=/..+code=raw_spin_unlock" class="sf=/">raw_spin_unlockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L85" idv2L85" class="line" nam"v2L85">hr85foa> } else { < ef=/.. .b/percpu_counter.c#L86" idv2L86" class="line" nam"v2L86">hr86foa> ef=/..+code=__this_cpu_write" class="sf=/">__this_cpu_writefoa>(* ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>, ef=/..+code=count" class="sf=/">countfoa>); < ef=/.. .b/percpu_counter.c#L87" idv2L87" class="line" nam"v2L87">hr87foa> } < ef=/.. .b/percpu_counter.c#L88" idv2L88" class="line" nam"v2L88">hr88foa> ef=/..+code=preempt_enable" class="sf=/">preempt_enablefoa>(); < ef=/.. .b/percpu_counter.c#L89" idv2L89" class="line" nam"v2L89">hr89foa>} < ef=/.. .b/percpu_counter.c#L90" idv2L90" class="line" nam"v2L90">hr90foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=__percpu_counter_add" class="sf=/">__percpu_counter_addfoa>); < ef=/.. .b/percpu_counter.c#L91" idv2L91" class="line" nam"v2L91">hr91foa> < ef=/.. .b/percpu_counter.c#L92" idv2L92" class="line" nam"v2L92">hr92foa>san> class="comment">/*span> < ef=/.. .b/percpu_counter.c#L93" idv2L93" class="line" nam"v2L93">hr93foa>san> class="comment"> * Add up all the per-cpu counts, return the result. This is a more accuratefoan> < ef=/.. .b/percpu_counter.c#L94" idv2L94" class="line" nam"v2L94">hr94foa>san> class="comment"> * but much slower versn vaof percpu_counter_read_positive()foan> < ef=/.. .b/percpu_counter.c#L95" idv2L95" class="line" nam"v2L95">hr95foa>san> class="comment"> */span> < ef=/.. .b/percpu_counter.c#L96" idv2L96" class="line" nam"v2L96">hr96foa>s ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=__percpu_counter_sum" class="sf=/">__percpu_counter_sumfoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L97" idv2L97" class="line" nam"v2L97">hr97opa>{ < ef=/.. .b/percpu_counter.c#L98" idv2L98" class="line" nam"v2L98">hr98foa> ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=ret" class="sf=/">retfoa>; < ef=/.. .b/percpu_counter.c#L99" idv2L99" class="line" nam"v2L99">hr99foa> inta ef=/..+code=cpu" class="sf=/">cpufoa>; < ef=/.. .b/percpu_counter.c#L100" idv2L100" class="line" nam"v2L100">h100foa> < ef=/.. .b/percpu_counter.c#L101" idv2L101" class="line" nam"v2L101">h101foa> ef=/..+code=raw_spin_lock" class="sf=/">raw_spin_lockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L102" idv2L102" class="line" nam"v2L102">h102foa> ef=/..+code=ret" class="sf=/">retfoa> =a ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=count" class="sf=/">countfoa>; < ef=/.. .b/percpu_counter.c#L103" idv2L103" class="line" nam"v2L103">h103foa> ef=/..+code=for_each_online_cpu" class="sf=/">for_each_online_cpufoa>( ef=/..+code=cpu" class="sf=/">cpufoa>) { < ef=/.. .b/percpu_counter.c#L104" idv2L104" class="line" nam"v2L104">h104foa> ef=/..+code=s32" class="sf=/">s32foa> * ef=/..+code=pcount" class="sf=/">pcountfoa> =a ef=/..+code=per_cpu_ptr" class="sf=/">per_cpu_ptrfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>,a ef=/..+code=cpu" class="sf=/">cpufoa>); < ef=/.. .b/percpu_counter.c#L105" idv2L105" class="line" nam"v2L105">h105foa> ef=/..+code=ret" class="sf=/">retfoa> +=a* ef=/..+code=pcount" class="sf=/">pcountfoa>; < ef=/.. .b/percpu_counter.c#L106" idv2L106" class="line" nam"v2L106">h106foa> } < ef=/.. .b/percpu_counter.c#L107" idv2L107" class="line" nam"v2L107">h107foa> ef=/..+code=raw_spin_unlock" class="sf=/">raw_spin_unlockfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L108" idv2L108" class="line" nam"v2L108">h108foa> return ef=/..+code=ret" class="sf=/">retfoa>; < ef=/.. .b/percpu_counter.c#L109" idv2L109" class="line" nam"v2L109">h109foa>} < ef=/.. .b/percpu_counter.c#L110" idv2L110" class="line" nam"v2L110">h110foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=__percpu_counter_sum" class="sf=/">__percpu_counter_sumfoa>); < ef=/.. .b/percpu_counter.c#L111" idv2L111" class="line" nam"v2L111">h111foa> < ef=/.. .b/percpu_counter.c#L112" idv2L112" class="line" nam"v2L112">h112foa>inta ef=/..+code=__percpu_counter_init" class="sf=/">__percpu_counter_initfoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>,a ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=amount" class="sf=/">amountfoa>, < ef=/.. .b/percpu_counter.c#L113" idv2L113" class="line" nam"v2L113">h113foa> structa ef=/..+code=lock_class_key" class="sf=/">lock_class_keyfoa> * ef=/..+code=key" class="sf=/">keyfoa>) < ef=/.. .b/percpu_counter.c#L114" idv2L114" class="line" nam"v2L114">h114foa>{ < ef=/.. .b/percpu_counter.c#L115" idv2L115" class="line" nam"v2L115">h115foa> ef=/..+code=raw_spin_lock_init" class="sf=/">raw_spin_lock_initfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>); < ef=/.. .b/percpu_counter.c#L116" idv2L116" class="line" nam"v2L116">h116foa> ef=/..+code=lockdep_set_class" class="sf=/">lockdep_set_classfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>,a ef=/..+code=key" class="sf=/">keyfoa>); < ef=/.. .b/percpu_counter.c#L117" idv2L117" class="line" nam"v2L117">h117foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=count" class="sf=/">countfoa> =a ef=/..+code=amount" class="sf=/">amountfoa>; < ef=/.. .b/percpu_counter.c#L118" idv2L118" class="line" nam"v2L118">h118foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa> =a ef=/..+code=alloc_percpu" class="sf=/">alloc_percpufoa>( ef=/..+code=s32" class="sf=/">s32foa>); < ef=/.. .b/percpu_counter.c#L119" idv2L119" class="line" nam"v2L119">h119foa> if (! ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>) < ef=/.. .b/percpu_counter.c#L120" idv2L120" class="line" nam"v2L120">h120foa> return - ef=/..+code=ENOMEM" class="sf=/">ENOMEMfoa>; < ef=/.. .b/percpu_counter.c#L121" idv2L121" class="line" nam"v2L121">h121foa> < ef=/.. .b/percpu_counter.c#L122" idv2L122" class="line" nam"v2L122">h122foa> ef=/..+code=debug_percpu_counter_aconvate" class="sf=/">debug_percpu_counter_aconvatefoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>); < ef=/.. .b/percpu_counter.c#L123" idv2L123" class="line" nam"v2L123">h123foa> < ef=/.. .b/percpu_counter.c#L124" idv2L124" class="line" nam"v2L124">h124foa>#ifdefa ef=/..+code=CONFIG_HOTPLUG_CPU" class="sf=/">CONFIG_HOTPLUG_CPUfoa> < ef=/.. .b/percpu_counter.c#L125" idv2L125" class="line" nam"v2L125">h125foa> ef=/..+code=INIT_LIST_HEAD" class="sf=/">INIT_LIST_HEADfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=list" class="sf=/">listfoa>); < ef=/.. .b/percpu_counter.c#L126" idv2L126" class="line" nam"v2L126">h126foa> ef=/..+code=spin_lock" class="sf=/">spin_lockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L127" idv2L127" class="line" nam"v2L127">h127foa> ef=/..+code=list_add" class="sf=/">list_addfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=list" class="sf=/">listfoa>, & ef=/..+code=percpu_counters" class="sf=/">percpu_countersfoa>); < ef=/.. .b/percpu_counter.c#L128" idv2L128" class="line" nam"v2L128">h128foa> ef=/..+code=spin_unlock" class="sf=/">spin_unlockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L129" idv2L129" class="line" nam"v2L129">h129foa>#endif < ef=/.. .b/percpu_counter.c#L130" idv2L130" class="line" nam"v2L130">h130foa> return 0; < ef=/.. .b/percpu_counter.c#L131" idv2L131" class="line" nam"v2L131">h131foa>} < ef=/.. .b/percpu_counter.c#L132" idv2L132" class="line" nam"v2L132">h132foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=__percpu_counter_init" class="sf=/">__percpu_counter_initfoa>); < ef=/.. .b/percpu_counter.c#L133" idv2L133" class="line" nam"v2L133">h133foa> < ef=/.. .b/percpu_counter.c#L134" idv2L134" class="line" nam"v2L134">h134foa>void ef=/..+code=percpu_counter_destroy" class="sf=/">percpu_counter_destroyfoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>) < ef=/.. .b/percpu_counter.c#L135" idv2L135" class="line" nam"v2L135">h135opa>{ < ef=/.. .b/percpu_counter.c#L136" idv2L136" class="line" nam"v2L136">h136foa> if (! ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>) < ef=/.. .b/percpu_counter.c#L137" idv2L137" class="line" nam"v2L137">h137foa> return; < ef=/.. .b/percpu_counter.c#L138" idv2L138" class="line" nam"v2L138">h138foa> < ef=/.. .b/percpu_counter.c#L139" idv2L139" class="line" nam"v2L139">h139foa> ef=/..+code=debug_percpu_counter_deaconvate" class="sf=/">debug_percpu_counter_deaconvatefoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>); < ef=/.. .b/percpu_counter.c#L140" idv2L140" class="line" nam"v2L140">h140foa> < ef=/.. .b/percpu_counter.c#L141" idv2L141" class="line" nam"v2L141">h141foa>#ifdefa ef=/..+code=CONFIG_HOTPLUG_CPU" class="sf=/">CONFIG_HOTPLUG_CPUfoa> < ef=/.. .b/percpu_counter.c#L142" idv2L142" class="line" nam"v2L142">h142foa> ef=/..+code=spin_lock" class="sf=/">spin_lockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L143" idv2L143" class="line" nam"v2L143">h143foa> ef=/..+code=list_del" class="sf=/">list_delfoa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=list" class="sf=/">listfoa>); < ef=/.. .b/percpu_counter.c#L144" idv2L144" class="line" nam"v2L144">h144foa> ef=/..+code=spin_unlock" class="sf=/">spin_unlockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L145" idv2L145" class="line" nam"v2L145">h145foa>#endif < ef=/.. .b/percpu_counter.c#L146" idv2L146" class="line" nam"v2L146">h146foa> ef=/..+code=ff=e_percpu" class="sf=/">ff=e_percpufoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>); < ef=/.. .b/percpu_counter.c#L147" idv2L147" class="line" nam"v2L147">h147foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa> =a ef=/..+code=NULL" class="sf=/">NULLfoa>; < ef=/.. .b/percpu_counter.c#L148" idv2L148" class="line" nam"v2L148">h148opa>} < ef=/.. .b/percpu_counter.c#L149" idv2L149" class="line" nam"v2L149">h149foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=percpu_counter_destroy" class="sf=/">percpu_counter_destroyfoa>); < ef=/.. .b/percpu_counter.c#L150" idv2L150" class="line" nam"v2L150">h150foa> < ef=/.. .b/percpu_counter.c#L151" idv2L151" class="line" nam"v2L151">h151foa>inta ef=/..+code=percpu_counter_batch" class="sf=/">percpu_counter_batchfoa>a ef=/..+code=__read_mostly" class="sf=/">__read_mostlyfoa> =a32; < ef=/.. .b/percpu_counter.c#L152" idv2L152" class="line" nam"v2L152">h152foa>s ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=percpu_counter_batch" class="sf=/">percpu_counter_batchfoa>); < ef=/.. .b/percpu_counter.c#L153" idv2L153" class="line" nam"v2L153">h153foa> < ef=/.. .b/percpu_counter.c#L154" idv2L154" class="line" nam"v2L154">h154foa>staticavoid ef=/..+code=compute_batch_lue="" class="sf=/">compute_batch_lue="foa>(void) < ef=/.. .b/percpu_counter.c#L155" idv2L155" class="line" nam"v2L155">h155opa>{ < ef=/.. .b/percpu_counter.c#L156" idv2L156" class="line" nam"v2L156">h156foa> inta ef=/..+code=nr" class="sf=/">nrfoa> =a ef=/..+code=num_online_cpus" class="sf=/">num_online_cpusfoa>(); < ef=/.. .b/percpu_counter.c#L157" idv2L157" class="line" nam"v2L157">h157foa> < ef=/.. .b/percpu_counter.c#L158" idv2L158" class="line" nam"v2L158">h158foa> ef=/..+code=percpu_counter_batch" class="sf=/">percpu_counter_batchfoa>a=a ef=/..+code=max" class="sf=/">maxfoa>(32,a ef=/..+code=nr" class="sf=/">nrfoa>*2); < ef=/.. .b/percpu_counter.c#L159" idv2L159" class="line" nam"v2L159">h159foa>} < ef=/.. .b/percpu_counter.c#L160" idv2L160" class="line" nam"v2L160">h160foa> < ef=/.. .b/percpu_counter.c#L161" idv2L161" class="line" nam"v2L161">h161foa>staticainta ef=/..+code=__cpuinit" class="sf=/">__cpuinitfoa>a ef=/..+code=percpu_counter_hotcpu_callback" class="sf=/">percpu_counter_hotcpu_callbackfoa>(structa ef=/..+code=notifier_block" class="sf=/">notifier_blockfoa> * ef=/..+code=nb" class="sf=/">nbfoa>, < ef=/.. .b/percpu_counter.c#L162" idv2L162" class="line" nam"v2L162">h162foa> unsigned longa ef=/..+code=acon> " class="sf=/">acon> foa>, void * ef=/..+code=hcpu" class="sf=/">hcpufoa>) < ef=/.. .b/percpu_counter.c#L163" idv2L163" class="line" nam"v2L163">h163opa>{ < ef=/.. .b/percpu_counter.c#L164" idv2L164" class="line" nam"v2L164">h164foa>#ifdefa ef=/..+code=CONFIG_HOTPLUG_CPU" class="sf=/">CONFIG_HOTPLUG_CPUfoa> < ef=/.. .b/percpu_counter.c#L165" idv2L165" class="line" nam"v2L165">h165foa> unsigned inta ef=/..+code=cpu" class="sf=/">cpufoa>; < ef=/.. .b/percpu_counter.c#L166" idv2L166" class="line" nam"v2L166">h166foa> structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>; < ef=/.. .b/percpu_counter.c#L167" idv2L167" class="line" nam"v2L167">h167foa> < ef=/.. .b/percpu_counter.c#L168" idv2L168" class="line" nam"v2L168">h168foa> ef=/..+code=compute_batch_lue="" class="sf=/">compute_batch_lue="foa>(); < ef=/.. .b/percpu_counter.c#L169" idv2L169" class="line" nam"v2L169">h169foa> if ( ef=/..+code=acon> " class="sf=/">acon> foa> !=a ef=/..+code=CPU_DEAD" class="sf=/">CPU_DEADfoa>) < ef=/.. .b/percpu_counter.c#L170" idv2L170" class="line" nam"v2L170">h170foa> return ef=/..+code=NOTIFY_OK" class="sf=/">NOTIFY_OKfoa>; < ef=/.. .b/percpu_counter.c#L171" idv2L171" class="line" nam"v2L171">h171foa> < ef=/.. .b/percpu_counter.c#L172" idv2L172" class="line" nam"v2L172">h172foa> ef=/..+code=cpu" class="sf=/">cpufoa>a=a(unsigned long) ef=/..+code=hcpu" class="sf=/">hcpufoa>; < ef=/.. .b/percpu_counter.c#L173" idv2L173" class="line" nam"v2L173">h173foa> ef=/..+code=spin_lock" class="sf=/">spin_lockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L174" idv2L174" class="line" nam"v2L174">h174foa> ef=/..+code=list_for_each_entry" class="sf=/">list_for_each_entryfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>, & ef=/..+code=percpu_counters" class="sf=/">percpu_countersfoa>,a ef=/..+code=list" class="sf=/">listfoa>) { < ef=/.. .b/percpu_counter.c#L175" idv2L175" class="line" nam"v2L175">h175foa> ef=/..+code=s32" class="sf=/">s32foa> * ef=/..+code=pcount" class="sf=/">pcountfoa>; < ef=/.. .b/percpu_counter.c#L176" idv2L176" class="line" nam"v2L176">h176foa> unsigned longa ef=/..+code=flags" class="sf=/">flagsfoa>; < ef=/.. .b/percpu_counter.c#L177" idv2L177" class="line" nam"v2L177">h177foa> < ef=/.. .b/percpu_counter.c#L178" idv2L178" class="line" nam"v2L178">h178foa> ef=/..+code=raw_spin_lock_irqsav"" class="sf=/">raw_spin_lock_irqsav"foa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>,a ef=/..+code=flags" class="sf=/">flagsfoa>); < ef=/.. .b/percpu_counter.c#L179" idv2L179" class="line" nam"v2L179">h179foa> ef=/..+code=pcount" class="sf=/">pcountfoa> =a ef=/..+code=per_cpu_ptr" class="sf=/">per_cpu_ptrfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=counters" class="sf=/">countersfoa>,a ef=/..+code=cpu" class="sf=/">cpufoa>); < ef=/.. .b/percpu_counter.c#L180" idv2L180" class="line" nam"v2L180">h180foa> ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=count" class="sf=/">countfoa> +=a* ef=/..+code=pcount" class="sf=/">pcountfoa>; < ef=/.. .b/percpu_counter.c#L181" idv2L181" class="line" nam"v2L181">h181foa> * ef=/..+code=pcount" class="sf=/">pcountfoa> =a0; < ef=/.. .b/percpu_counter.c#L182" idv2L182" class="line" nam"v2L182">h182foa> ef=/..+code=raw_spin_unlock_irqrestor"" class="sf=/">raw_spin_unlock_irqrestor"foa>(& ef=/..+code=fbc" class="sf=/">fbcfoa>-> ef=/..+code=lock" class="sf=/">lockfoa>,a ef=/..+code=flags" class="sf=/">flagsfoa>); < ef=/.. .b/percpu_counter.c#L183" idv2L183" class="line" nam"v2L183">h183foa> } < ef=/.. .b/percpu_counter.c#L184" idv2L184" class="line" nam"v2L184">h184foa> ef=/..+code=spin_unlock" class="sf=/">spin_unlockfoa>(& ef=/..+code=percpu_counters_lock" class="sf=/">percpu_counters_lockfoa>); < ef=/.. .b/percpu_counter.c#L185" idv2L185" class="line" nam"v2L185">h185foa>#endif < ef=/.. .b/percpu_counter.c#L186" idv2L186" class="line" nam"v2L186">h186foa> return ef=/..+code=NOTIFY_OK" class="sf=/">NOTIFY_OKfoa>; < ef=/.. .b/percpu_counter.c#L187" idv2L187" class="line" nam"v2L187">h187foa>} < ef=/.. .b/percpu_counter.c#L188" idv2L188" class="line" nam"v2L188">h188foa> < ef=/.. .b/percpu_counter.c#L189" idv2L189" class="line" nam"v2L189">h189foa>san> class="comment">/*span> < ef=/.. .b/percpu_counter.c#L190" idv2L190" class="line" nam"v2L190">h190foa>san> class="comment"> * Compare counter against given lue=".span> < ef=/.. .b/percpu_counter.c#L191" idv2L191" class="line" nam"v2L191">h191foa>san> class="comment"> * Return 1 if greater, 0 if equal and -1 if lessfoan> < ef=/.. .b/percpu_counter.c#L192" idv2L192" class="line" nam"v2L192">h192foa>san> class="comment"> */span> < ef=/.. .b/percpu_counter.c#L193" idv2L193" class="line" nam"v2L193">h193foa>inta ef=/..+code=percpu_counter_compare" class="sf=/">percpu_counter_comparefoa>(structa ef=/..+code=percpu_counter" class="sf=/">percpu_counterfoa> * ef=/..+code=fbc" class="sf=/">fbcfoa>,a ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=rhs" class="sf=/">rhsfoa>) < ef=/.. .b/percpu_counter.c#L194" idv2L194" class="line" nam"v2L194">h194foa>{ < ef=/.. .b/percpu_counter.c#L195" idv2L195" class="line" nam"v2L195">h195foa> ef=/..+code=s64" class="sf=/">s64foa>a ef=/..+code=count" class="sf=/">countfoa>; < ef=/.. .b/percpu_counter.c#L196" idv2L196" class="line" nam"v2L196">h196foa> < ef=/.. .b/percpu_counter.c#L197" idv2L197" class="line" nam"v2L197">h197foa> ef=/..+code=count" class="sf=/">countfoa> =a ef=/..+code=percpu_counter_read" class="sf=/">percpu_counter_readfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>); < ef=/.. .b/percpu_counter.c#L198" idv2L198" class="line" nam"v2L198">h198foa> an> class="comment">/* Check to see if rough count will be sufficient for comparison */span> < ef=/.. .b/percpu_counter.c#L199" idv2L199" class="line" nam"v2L199">h199foa> if ( ef=/..+code=abs" class="sf=/">absfoa>( ef=/..+code=count" class="sf=/">countfoa> -a ef=/..+code=rhs" class="sf=/">rhsfoa>) > ( ef=/..+code=percpu_counter_batch" class="sf=/">percpu_counter_batchfoa>* ef=/..+code=num_online_cpus" class="sf=/">num_online_cpusfoa>())) { < ef=/.. .b/percpu_counter.c#L200" idv2L200" class="line" nam"v2L200">h200foa> if ( ef=/..+code=count" class="sf=/">countfoa> >a ef=/..+code=rhs" class="sf=/">rhsfoa>) < ef=/.. .b/percpu_counter.c#L201" idv2L201" class="line" nam"v2L201">h201foa> return 1; < ef=/.. .b/percpu_counter.c#L202" idv2L202" class="line" nam"v2L202">h202foa> else < ef=/.. .b/percpu_counter.c#L203" idv2L203" class="line" nam"v2L203">h203foa> return -1; < ef=/.. .b/percpu_counter.c#L204" idv2L204" class="line" nam"v2L204">h204foa> } < ef=/.. .b/percpu_counter.c#L205" idv2L205" class="line" nam"v2L205">h205foa> an> class="comment">/* Need to use precise count */span> < ef=/.. .b/percpu_counter.c#L206" idv2L206" class="line" nam"v2L206">h206foa> ef=/..+code=count" class="sf=/">countfoa> =a ef=/..+code=percpu_counter_sum" class="sf=/">percpu_counter_sumfoa>( ef=/..+code=fbc" class="sf=/">fbcfoa>); < ef=/.. .b/percpu_counter.c#L207" idv2L207" class="line" nam"v2L207">h207foa> if ( ef=/..+code=count" class="sf=/">countfoa> >a ef=/..+code=rhs" class="sf=/">rhsfoa>) < ef=/.. .b/percpu_counter.c#L208" idv2L208" class="line" nam"v2L208">h208foa> return 1; < ef=/.. .b/percpu_counter.c#L209" idv2L209" class="line" nam"v2L209">h209foa> else if ( ef=/..+code=count" class="sf=/">countfoa> <a ef=/..+code=rhs" class="sf=/">rhsfoa>) < ef=/.. .b/percpu_counter.c#L210" idv2L210" class="line" nam"v2L210">h210foa> return -1; < ef=/.. .b/percpu_counter.c#L211" idv2L211" class="line" nam"v2L211">h211foa> else < ef=/.. .b/percpu_counter.c#L212" idv2L212" class="line" nam"v2L212">h212foa> return 0; < ef=/.. .b/percpu_counter.c#L213" idv2L213" class="line" nam"v2L213">h213foa>} < ef=/.. .b/percpu_counter.c#L214" idv2L214" class="line" nam"v2L214">h214foa> ef=/..+code=EXPORT_SYMBOL" class="sf=/">EXPORT_SYMBOLfoa>( ef=/..+code=percpu_counter_compare" class="sf=/">percpu_counter_comparefoa>); < ef=/.. .b/percpu_counter.c#L215" idv2L215" class="line" nam"v2L215">h215foa> < ef=/.. .b/percpu_counter.c#L216" idv2L216" class="line" nam"v2L216">h216foa>staticainta ef=/..+code=__init" class="sf=/">__initfoa>a ef=/..+code=percpu_counter_startup" class="sf=/">percpu_counter_startupfoa>(void) < ef=/.. .b/percpu_counter.c#L217" idv2L217" class="line" nam"v2L217">h217opa>{ < ef=/.. .b/percpu_counter.c#L218" idv2L218" class="line" nam"v2L218">h218foa> ef=/..+code=compute_batch_lue="" class="sf=/">compute_batch_lue="foa>(); < ef=/.. .b/percpu_counter.c#L219" idv2L219" class="line" nam"v2L219">h219foa> ef=/..+code=hotcpu_notifier" class="sf=/">hotcpu_notifierfoa>( ef=/..+code=percpu_counter_hotcpu_callback" class="sf=/">percpu_counter_hotcpu_callbackfoa>, 0); < ef=/.. .b/percpu_counter.c#L220" idv2L220" class="line" nam"v2L220">h220foa> return 0; < ef=/.. .b/percpu_counter.c#L221" idv2L221" class="line" nam"v2L221">h221foa>} < ef=/.. .b/percpu_counter.c#L222" idv2L222" class="line" nam"v2L222">h222foa>s ef=/..+code=module_init" class="sf=/">module_initfoa>( ef=/..+code=percpu_counter_startup" class="sf=/">percpu_counter_startupfoa>); < ef=/.. .b/percpu_counter.c#L223" idv2L223" class="line" nam"v2L223">h223foa>
lxr.linux.no kindly hosted by < ef=/..http://www.redpill-linpro.no">Redpill Linpro ASfoa>, provideraof Linux consulting and operaon> s services sinceh1995.