linux/kernel/sched/rt.c
<<
>>
Prefs
   1/*
   2 * Real-Time Scheduling Class (mapped to the SCHED_FIFO and SCHED_RR
   3 * policies)
   4 */
   5
   6#include "sched.h"
   7
   8#include <linux/slab.h>
   9
  10static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun);
  11
  12struct rt_bandwidth def_rt_bandwidth;
  13
  14static enum hrtimer_restart sched_rt_period_timer(struct hrtimer *timer)
  15{
  16        struct rt_bandwidth *rt_b =
  17                container_of(timer, struct rt_bandwidth, rt_period_timer);
  18        ktime_t now;
  19        int overrun;
  20        int idle = 0;
  21
  22        for (;;) {
  23                now = hrtimer_cb_get_time(timer);
  24                overrun = hrtimer_forward(timer, now, rt_b->rt_period);
  25
  26                if (!overrun)
  27                        break;
  28
  29                idle = do_sched_rt_period_timer(rt_b, overrun);
  30        }
  31
  32        return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
  33}
  34
  35void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
  36{
  37        rt_b->rt_period = ns_to_ktime(period);
  38        rt_b->rt_runtime = runtime;
  39
  40        raw_spin_lock_init(&rt_b->rt_runtime_lock);
  41
  42        hrtimer_init(&rt_b->rt_period_timer,
  43                        CLOCK_MONOTONIC, HRTIMER_MODE_REL);
  44        rt_b->rt_period_timer.function = sched_rt_period_timer;
  45}
  46
  47static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
  48{
  49        if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
  50                return;
  51
  52        if (hrtimer_active(&rt_b->rt_period_timer))
  53                return;
  54
  55        raw_spin_lock(&rt_b->rt_runtime_lock);
  56        start_bandwidth_timer(&rt_b->rt_period_timer, rt_b->rt_period);
  57        raw_spin_unlock(&rt_b->rt_runtime_lock);
  58}
  59
  60void init_rt_rq(struct rt_rq *rt_rq, struct rq *rq)
  61{
  62        struct rt_prio_array *array;
  63        int i;
  64
  65        array = &rt_rq->active;
  66        for (i = 0; i < MAX_RT_PRIO; i++) {
  67                INIT_LIST_HEAD(array->queue + i);
  68                __clear_bit(i, array->bitmap);
  69        }
  70        /* delimiter for bitsearch: */
  71        __set_bit(MAX_RT_PRIO, array->bitmap);
  72
  73#if defined CONFIG_SMP
  74        rt_rq->highest_prio.curr = MAX_RT_PRIO;
  75        rt_rq->highest_prio.next = MAX_RT_PRIO;
  76        rt_rq->rt_nr_migratory = 0;
  77        rt_rq->overloaded = 0;
  78        plist_head_init(&rt_rq->pushable_tasks);
  79#endif
  80
  81        rt_rq->rt_time = 0;
  82        rt_rq->rt_throttled = 0;
  83        rt_rq->rt_runtime = 0;
  84        raw_spin_lock_init(&rt_rq->rt_runtime_lock);
  85}
  86
  87#ifdef CONFIG_RT_GROUP_SCHED
  88static void destroy_rt_bandwidth(struct rt_bandwidth *rt_b)
  89{
  90        hrtimer_cancel(&rt_b->rt_period_timer);
  91}
  92
  93#define rt_entity_is_task(rt_se) (!(rt_se)->my_q)
  94
  95static inline struct task_struct *rt_task_of(struct sched_rt_entity *rt_se)
  96{
  97#ifdef CONFIG_SCHED_DEBUG
  98        WARN_ON_ONCE(!rt_entity_is_task(rt_se));
  99#endif
 100        return container_of(rt_se, struct task_struct, rt);
 101}
 102
 103static inline struct rq *rq_of_rt_rq(struct rt_rq *rt_rq)
 104{
 105        return rt_rq->rq;
 106}
 107
 108static inline struct rt_rq *rt_rq_of_se(struct sched_rt_entity *rt_se)
 109{
 110        return rt_se->rt_rq;
 111}
 112
 113void free_rt_sched_group(struct task_group *tg)
 114{
 115        int i;
 116
 117        if (tg->rt_se)
 118                destroy_rt_bandwidth(&tg->rt_bandwidth);
 119
 120        for_each_possible_cpu(i) {
 121                if (tg->rt_rq)
 122                        kfree(tg->rt_rq[i]);
 123                if (tg->rt_se)
 124                        kfree(tg->rt_se[i]);
 125        }
 126
 127        kfree(tg->rt_rq);
 128        kfree(tg->rt_se);
 129}
 130
 131void init_tg_rt_entry(struct task_group *tg, struct rt_rq *rt_rq,
 132                struct sched_rt_entity *rt_se, int cpu,
 133                struct sched_rt_entity *parent)
 134{
 135        struct rq *rq = cpu_rq(cpu);
 136
 137        rt_rq->highest_prio.curr = MAX_RT_PRIO;
 138        rt_rq->rt_nr_boosted = 0;
 139        rt_rq->rq = rq;
 140        rt_rq->tg = tg;
 141
 142        tg->rt_rq[cpu] = rt_rq;
 143        tg->rt_se[cpu] = rt_se;
 144
 145        if (!rt_se)
 146                return;
 147
 148        if (!parent)
 149                rt_se->rt_rq = &rq->rt;
 150        else
 151                rt_se->rt_rq = parent->my_q;
 152
 153        rt_se->my_q = rt_rq;
 154        rt_se->parent = parent;
 155        INIT_LIST_HEAD(&rt_se->run_list);
 156}
 157
 158int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent)
 159{
 160        struct rt_rq *rt_rq;
 161        struct sched_rt_entity *rt_se;
 162        int i;
 163
 164        tg->rt_rq = kzalloc(sizeof(rt_rq) * nr_cpu_ids, GFP_KERNEL);
 165        if (!tg->rt_rq)
 166                goto err;
 167        tg->rt_se = kzalloc(sizeof(rt_se) * nr_cpu_ids, GFP_KERNEL);
 168        if (!tg->rt_se)
 169                goto err;
 170
 171        init_rt_bandwidth(&tg->rt_bandwidth,
 172                        ktime_to_ns(def_rt_bandwidth.rt_period), 0);
 173
 174        for_each_possible_cpu(i) {
 175                rt_rq = kzalloc_node(sizeof(struct rt_rq),
 176                                     GFP_KERNEL, cpu_to_node(i));
 177                if (!rt_rq)
 178                        goto err;
 179
 180                rt_se = kzalloc_node(sizeof(struct sched_rt_entity),
 181                                     GFP_KERNEL, cpu_to_node(i));
 182                if (!rt_se)
 183                        goto err_free_rq;
 184
 185                init_rt_rq(rt_rq, cpu_rq(i));
 186                rt_rq->rt_runtime = tg->rt_bandwidth.rt_runtime;
 187                init_tg_rt_entry(tg, rt_rq, rt_se, i, parent->rt_se[i]);
 188        }
 189
 190        return 1;
 191
 192err_free_rq:
 193        kfree(rt_rq);
 194err:
 195        return 0;
 196}
 197
 198#else /* CONFIG_RT_GROUP_SCHED */
 199
 200#define rt_entity_is_task(rt_se) (1)
 201
 202static inline struct task_struct *rt_task_of(struct sched_rt_entity *rt_se)
 203{
 204        return container_of(rt_se, struct task_struct, rt);
 205}
 206
 207static inline struct rq *rq_of_rt_rq(struct rt_rq *rt_rq)
 208{
 209        return container_of(rt_rq, struct rq, rt);
 210}
 211
 212static inline struct rt_rq *rt_rq_of_se(struct sched_rt_entity *rt_se)
 213{
 214        struct task_struct *p = rt_task_of(rt_se);
 215        struct rq *rq = task_rq(p);
 216
 217        return &rq->rt;
 218}
 219
 220void free_rt_sched_group(struct task_group *tg) { }
 221
 222int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent)
 223{
 224        return 1;
 225}
 226#endif /* CONFIG_RT_GROUP_SCHED */
 227
 228#ifdef CONFIG_SMP
 229
 230static inline int rt_overloaded(struct rq *rq)
 231{
 232        return atomic_read(&rq->rd->rto_count);
 233}
 234
 235static inline void rt_set_overload(struct rq *rq)
 236{
 237        if (!rq->online)
 238                return;
 239
 240        cpumask_set_cpu(rq->cpu, rq->rd->rto_mask);
 241        /*
 242         * Make sure the mask is visible before we set
 243         * the overload count. That is checked to determine
 244         * if we should look at the mask. It would be a shame
 245         * if we looked at the mask, but the mask was not
 246         * updated yet.
 247         */
 248        wmb();
 249        atomic_inc(&rq->rd->rto_count);
 250}
 251
 252static inline void rt_clear_overload(struct rq *rq)
 253{
 254        if (!rq->online)
 255                return;
 256
 257        /* the order here really doesn't matter */
 258        atomic_dec(&rq->rd->rto_count);
 259        cpumask_clear_cpu(rq->cpu, rq->rd->rto_mask);
 260}
 261
 262static void update_rt_migration(struct rt_rq *rt_rq)
 263{
 264        if (rt_rq->rt_nr_migratory && rt_rq->rt_nr_total > 1) {
 265                if (!rt_rq->overloaded) {
 266                        rt_set_overload(rq_of_rt_rq(rt_rq));
 267                        rt_rq->overloaded = 1;
 268                }
 269        } else if (rt_rq->overloaded) {
 270                rt_clear_overload(rq_of_rt_rq(rt_rq));
 271                rt_rq->overloaded = 0;
 272        }
 273}
 274
 275static void inc_rt_migration(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
 276{
 277        struct task_struct *p;
 278
 279        if (!rt_entity_is_task(rt_se))
 280                return;
 281
 282        p = rt_task_of(rt_se);
 283        rt_rq = &rq_of_rt_rq(rt_rq)->rt;
 284
 285        rt_rq->rt_nr_total++;
 286        if (p->nr_cpus_allowed > 1)
 287                rt_rq->rt_nr_migratory++;
 288
 289        update_rt_migration(rt_rq);
 290}
 291
 292static void dec_rt_migration(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
 293{
 294        struct task_struct *p;
 295
 296        if (!rt_entity_is_task(rt_se))
 297                return;
 298
 299        p = rt_task_of(rt_se);
 300        rt_rq = &rq_of_rt_rq(rt_rq)->rt;
 301
 302        rt_rq->rt_nr_total--;
 303        if (p->nr_cpus_allowed > 1)
 304                rt_rq->rt_nr_migratory--;
 305
 306        update_rt_migration(rt_rq);
 307}
 308
 309static inline int has_pushable_tasks(struct rq *rq)
 310{
 311        return !plist_head_empty(&rq->rt.pushable_tasks);
 312}
 313
 314static void enqueue_pushable_task(struct rq *rq, struct task_struct *p)
 315{
 316        plist_del(&p->pushable_tasks, &rq->rt.pushable_tasks);
 317        plist_node_init(&p->pushable_tasks, p->prio);
 318        plist_add(&p->pushable_tasks, &rq->rt.pushable_tasks);
 319
 320        /* Update the highest prio pushable task */
 321        if (p->prio < rq->rt.highest_prio.next)
 322                rq->rt.highest_prio.next = p->prio;
 323}
 324
 325static void dequeue_pushable_task(struct rq *rq, struct task_struct *p)
 326{
 327        plist_del(&p->pushable_tasks, &rq->rt.pushable_tasks);
 328
 329        /* Update the new highest prio pushable task */
 330        if (has_pushable_tasks(rq)) {
 331                p = plist_first_entry(&rq->rt.pushable_tasks,
 332                                      struct task_struct, pushable_tasks);
 333                rq->rt.highest_prio.next = p->prio;
 334        } else
 335                rq->rt.highest_prio.next = MAX_RT_PRIO;
 336}
 337
 338#else
 339
 340static inline void enqueue_pushable_task(struct rq *rq, struct task_struct *p)
 341{
 342}
 343
 344static inline void dequeue_pushable_task(struct rq *rq, struct task_struct *p)
 345{
 346}
 347
 348static inline
 349void inc_rt_migration(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
 350{
 351}
 352
 353static inline
 354void dec_rt_migration(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
 355{
 356}
 357
 358#endif /* CONFIG_SMP */
 359
 360static inline int on_rt_rq(struct sched_rt_entity *rt_se)
 361{
 362        return !list_empty(&rt_se->run_list);
 363}
 364
 365#ifdef CONFIG_RT_GROUP_SCHED
 366
 367static inline u64 sched_rt_runtime(struct rt_rq *rt_rq)
 368{
 369        if (!rt_rq->tg)
 370                return RUNTIME_INF;
 371
 372        return rt_rq->rt_runtime;
 373}
 374
 375static inline u64 sched_rt_period(struct rt_rq *rt_rq)
 376{
 377        return ktime_to_ns(rt_rq->tg->rt_bandwidth.rt_period);
 378}
 379
 380typedef struct task_group *rt_rq_iter_t;
 381
 382static inline struct task_group *next_task_group(struct task_group *tg)
 383{
 384        do {
 385                tg = list_entry_rcu(tg->list.next,
 386                        typeof(struct task_group), list);
 387        } while (&tg->list != &task_groups && task_group_is_autogroup(tg));
 388
 389        if (&tg->list == &task_groups)
 390                tg = NULL;
 391
 392        return tg;
 393}
 394
 395#define for_each_rt_rq(rt_rq, iter, rq)                                 \
 396        for (iter = container_of(&task_groups, typeof(*iter), list);    \
 397                (iter = next_task_group(iter)) &&                       \
 398                (rt_rq = iter->rt_rq[cpu_of(rq)]);)
 399
 400static inline void list_add_leaf_rt_rq(struct rt_rq *rt_rq)
 401{
 402        list_add_rcu(&rt_rq->leaf_rt_rq_list,
 403                        &rq_of_rt_rq(rt_rq)->leaf_rt_rq_list);
 404}
 405
 406static inline void list_del_leaf_rt_rq(struct rt_rq *rt_rq)
 407{
 408        list_del_rcu(&rt_rq->leaf_rt_rq_list);
 409}
 410
 411#define for_each_leaf_rt_rq(rt_rq, rq) \
 412        list_for_each_entry_rcu(rt_rq, &rq->leaf_rt_rq_list, leaf_rt_rq_list)
 413
 414#define for_each_sched_rt_entity(rt_se) \
 415        for (; rt_se; rt_se = rt_se->parent)
 416
 417static inline struct rt_rq *group_rt_rq(struct sched_rt_entity *rt_se)
 418{
 419        return rt_se->my_q;
 420}
 421
 422static void enqueue_rt_entity(struct sched_rt_entity *rt_se, bool head);
 423static void dequeue_rt_entity(struct sched_rt_entity *rt_se);
 424
 425static void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
 426{
 427        struct task_struct *curr = rq_of_rt_rq(rt_rq)->curr;
 428        struct sched_rt_entity *rt_se;
 429
 430        int cpu = cpu_of(rq_of_rt_rq(rt_rq));
 431
 432        rt_se = rt_rq->tg->rt_se[cpu];
 433
 434        if (rt_rq->rt_nr_running) {
 435                if (rt_se && !on_rt_rq(rt_se))
 436                        enqueue_rt_entity(rt_se, false);
 437                if (rt_rq->highest_prio.curr < curr->prio)
 438                        resched_task(curr);
 439        }
 440}
 441
 442static void sched_rt_rq_dequeue(struct rt_rq *rt_rq)
 443{
 444        struct sched_rt_entity *rt_se;
 445        int cpu = cpu_of(rq_of_rt_rq(rt_rq));
 446
 447        rt_se = rt_rq->tg->rt_se[cpu];
 448
 449        if (rt_se && on_rt_rq(rt_se))
 450                dequeue_rt_entity(rt_se);
 451}
 452
 453static inline int rt_rq_throttled(struct rt_rq *rt_rq)
 454{
 455        return rt_rq->rt_throttled && !rt_rq->rt_nr_boosted;
 456}
 457
 458static int rt_se_boosted(struct sched_rt_entity *rt_se)
 459{
 460        struct rt_rq *rt_rq = group_rt_rq(rt_se);
 461        struct task_struct *p;
 462
 463        if (rt_rq)
 464                return !!rt_rq->rt_nr_boosted;
 465
 466        p = rt_task_of(rt_se);
 467        return p->prio != p->normal_prio;
 468}
 469
 470#ifdef CONFIG_SMP
 471static inline const struct cpumask *sched_rt_period_mask(void)
 472{
 473        return cpu_rq(smp_processor_id())->rd->span;
 474}
 475#else
 476static inline const struct cpumask *sched_rt_period_mask(void)
 477{
 478        return cpu_online_mask;
 479}
 480#endif
 481
 482static inline
 483struct rt_rq *sched_rt_period_rt_rq(struct rt_bandwidth *rt_b, int cpu)
 484{
 485        return container_of(rt_b, struct task_group, rt_bandwidth)->rt_rq[cpu];
 486}
 487
 488static inline struct rt_bandwidth *sched_rt_bandwidth(struct rt_rq *rt_rq)
 489{
 490        return &rt_rq->tg->rt_bandwidth;
 491}
 492
 493#else /* !CONFIG_RT_GROUP_SCHED */
 494
 495static inline u64 sched_rt_runtime(struct rt_rq *rt_rq)
 496{
 497        return rt_rq->rt_runtime;
 498}
 499
 500static inline u64 sched_rt_period(struct rt_rq *rt_rq)
 501{
 502        return ktime_to_ns(def_rt_bandwidth.rt_period);
 503}
 504
 505typedef struct rt_rq *rt_rq_iter_t;
 506
 507#define for_each_rt_rq(rt_rq, iter, rq) \
 508        for ((void) iter, rt_rq = &rq->rt; rt_rq; rt_rq = NULL)
 509
 510static inline void list_add_leaf_rt_rq(struct rt_rq *rt_rq)
 511{
 512}
 513
 514static inline void list_del_leaf_rt_rq(struct rt_rq *rt_rq)
 515{
 516}
 517
 518#define for_each_leaf_rt_rq(rt_rq, rq) \
 519        for (rt_rq = &rq->rt; rt_rq; rt_rq = NULL)
 520
 521#define for_each_sched_rt_entity(rt_se) \
 522        for (; rt_se; rt_se = NULL)
 523
 524static inline struct rt_rq *group_rt_rq(struct sched_rt_entity *rt_se)
 525{
 526        return NULL;
 527}
 528
 529static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
 530{
 531        if (rt_rq->rt_nr_running)
 532                resched_task(rq_of_rt_rq(rt_rq)->curr);
 533}
 534
 535static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq)
 536{
 537}
 538
 539static inline int rt_rq_throttled(struct rt_rq *rt_rq)
 540{
 541        return rt_rq->rt_throttled;
 542}
 543
 544static inline const struct cpumask *sched_rt_period_mask(void)
 545{
 546        return cpu_online_mask;
 547}
 548
 549static inline
 550struct rt_rq *sched_rt_period_rt_rq(struct rt_bandwidth *rt_b, int cpu)
 551{
 552        return &cpu_rq(cpu)->rt;
 553}
 554
 555static inline struct rt_bandwidth *sched_rt_bandwidth(struct rt_rq *rt_rq)
 556{
 557        return &def_rt_bandwidth;
 558}
 559
 560#endif /* CONFIG_RT_GROUP_SCHED */
 561
 562#ifdef CONFIG_SMP
 563/*
 564 * We ran out of runtime, see if we can borrow some from our neighbours.
 565 */
 566static int do_balance_runtime(struct rt_rq *rt_rq)
 567{
 568        struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq);
 569        struct root_domain *rd = cpu_rq(smp_processor_id())->rd;
 570        int i, rd;
 54code=24hacode=2 href="+code=u64" class="sref">u64 "sref">rd;
 492
 47sref">i, rd = cp_ href="+code=w80 href hr">cp_ href=_rt_bandwidth(rd->rt_rq);
 554
 47sref">i, rt_rq->rt_rq);
 466        "sref">rd = ktime_to_ns(rt_rq->rt_period);
 447        ktime_to_ns(i, rd-> 438   _runtime(struct rt_rq *iter = sched_rt_perindwidth *);
 438   ">iter = u64  e=container_of" "> eef">"sref">rd;
 520
 438   1        if (rt_se = rt_rq)
 532           clasinue"sref">rd;
 543
 464   sref">i, iter->rt_rq);
 484   s63"> 563/*
 565 there's nothing to _real="comment">/*
 565do_ba() belf weets a specific rq to 0< Wto="comment">/*
 565 disalf werealingur neighbours.
 565 */
 450   1        if (rt_rq->rref">rt_se = rt_rq)
 438           goto >rt_se = "sref">rd;
 492
 403   s63"> 563/*
 564 * Wtheir="comment">/*
 565scur neighbours.
 565 */
 437   ref">u64  e=container_of" "> eef">ref">iter = rt_rq->rr-f">iter = rt_rq->rt_runtime;
 438   1        if ( e=container_of" "> eef">rf">r 0e_running) {
 438   7   ref">u64  e=container_of" "> eef">ref">iter =         if (u64  e=container_of" "> eef">="sref">i, rt_rq);
 450   8   1        if (rt_rq->rr+ ref">u64  e=container_of" "> eef">rf">r t_rq->r">rt_rq);
 438           7   ref">u64  e=container_of" "> eef">ref">iter = "-f">iter = rt_rq->rf">rt_rq);
 532           ">iter = rt_rq->rr-ef">iter =  eef">"sref">rd;
 403           ">iter = rt_rq->rr+ef">iter =  eef">"sref">rd;
 464           ">iter = rd;
 484   8   1        if (rt_rq->rref">rt_se = r_running) {
 436                   ">iter = iter->rt_rq);
 437                   breakf">rt_rq);
 438           558"> 558}
 438   558"> 558}
:58"> 558}
 438   ">iter = iter->rt_rq);
 53558"> 558}
 47sref">i, rt_rq->rt_rq);
 554
 485        return rt_rq);
 516}
 517
 565/*
 565 to70ts ome from our neighbours.
 565 */
 4">inline void do_balance_runtime" __disablef">do_ba_rt_b_runtime(struct  * */
 472{
 479        struct root_domain *rd = rq->rd;
 47sref">i, rt_ ">iter = rd;
 479        struct rt_rq *rd;
 506
 431        if ( */
 438   5 "sref">rd;
 559
 47sref">i, for_each_rt_rq(rt_rq, iter,  472{
 438   8        struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq);
 532                u64 rd;
 403   0        int rd;
 534
 484   sref">i, rt_rq->rt_rq);
 436   sref">i, rt_rq->rt_rq);
 437   r65"> 565/*
 565 nobody omeds to7ee if , or we'ra="comment">/*
 565 thus have7nothing to do, or we have="comment">/*
 565 565 */
 532   1        if (rt_rq->rref">rt_se =  */
 403           6   sref">i, rt_rq->rref">rt_se = rt_rq->r"t"> */
 464           goto >rt_se = rd;
 484   sref">i, rt_rq->rt_rq);
 506
 437   r65"> 565/*
 565 eeresre between what we started t"> with="comment">/*
 565 what we clasn c have,Wthmt's theWamof=" * We ran o="comment">/*
 565 f"> now have7to re565imur neighbours.
 565 */
 532                iter = rt_rq->r"-f">iter = rt_rq->rf">rt_rq);
 543
 464   s65"> 565/*
 565
 565 */
 437   ref">u64 ktime_to_ns(i, rd-> 438           _runtime(struct rt_rq *iter = sched_rt_perindwidth *) {
 438   7   ref">u64 u64  e=container_of" "> eef">"sref">rd;
 520
 438           s65"> 565/*
 565
 563 */
 464           1        if (rt_se = iter = rt_rq->rref">rt_se = rt_rq)
 484   8           clasinue"sref">rd;
 506
 437           sref">i, iter->rt_rq);
 438           1        if (r 0e_running) {
 438   7           sref">i,  e=container_of" "> eef">ref">iter =  *rt_rq, rt_rq->r="sref">i, rt_rq);
 450   8           sref">i, rt_rq->rr-ef">iter =  eef">"sref">rd;
 438           7   ref">u64 iter =  eef">"sref">rd;
 532           } 93"> running) {
 403           6   sref">i, rt_rq->rr-ef">iter = rd;
 464           7   ref">u64 iter = rd;
 484   8   516"> 516}
 436           sref">i, iter->rt_rq);
 517
 438           1 517
 438                   breakf">rt_rq);
 450   516"> 516}
 561
 532   sref">i, rt_rq->rt_rq);
 403   s63"> 563/*
 564 e cane ran o="comment">/*
 565 * Wthe systemur neighbours.
 565 */
 437   ref">u64  *rt_rq);
 558}
 438   "63"> 563/*
 565ng we have 0< ="comment">/*
 565ng doesn't make senseur neighbours.
 565 */
 403   sref">i, rt_rq->rre">rt_se = rt_rq);
 464   sref">i, rt_rq->rt_"sr0"sref">rd;
 484   sref">i, rt_rq->rt_rq);
 436   sref">i, rt_rq->rt_rq);
 43516"> 516}
 558}
 559
 4">inline void do_balance_runtime" disablef">do_ba_rt_b_runtime(struct  * */
 551{
 53unsigned long ref">u64 rt_rq);
 543
 47sref">i, rq->i, rt_rq);
 48sref">i, do_balance_runtime" __disablef">do_ba_rt_b_domain *rt_rq);
 466        rq->i, rt_rq);
 547}
 548
 4">inline void do_balance_runtime" __enablef">do_ba_rt_b_runtime(struct  * */
 540{
 43 return &rt_ ">iter = rd;
 539        struct rt_rq *rd;
 543
 471        if ( */
 484   5 "sref">rd;
 506
 44763"> 563/*
 565   * Reset s="s ss=ched_'s ef">schedweet=ings="comment">/*
 565   *="comment"> */
 47sref">i, for_each_rt_rq(rt_rq, iter,  472{
 438   8        struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq<{
 492
 403   sref">i, rt_rq->rt_rq);
 464   sref">i, rt_rq->rt_rq);
 484   sref">i, rt_rq->rre">rt_se = rt_rq->rf">rt_rq);
 436   sref">i, rt_rq->r"sr0"sref">rd;
 437   ref">u64 rt_rq->rt_"sr0"sref">rd;
 438   sref">i, rt_rq->rt_rq);
 438   ">iter = rt_rq->rt_rq);
 47547"> 547}
 547}
 492
 4">inline void do_balance_runtime" enablef">do_ba_rt_b_runtime(struct  * */
 472{
 48unsigned long ref">u64 rt_rq);
 506
 447        rq->i, rt_rq);
 447        do_balance_runtime" __enablef">do_ba_rt_b_domain *rt_rq);
 447        rq->i, rt_rq);
 547}
 561
do_balance_runtime" updatef">do_ba_rt_b_runtime(struct  *u64 inlt_domain *kt"t"> */
 472{
 460        int kt"sr(0u64 ktf">rt_rq);
rt_rq);
 43switch/a>        if ( 472{
 43e,seW>        if ( 558}
 43e,seW>        if ( 558}
 438   ">iter = do_balance_runtime" disablef">do_ba_rt_b>        int cpu_rq(kt)ef">rt_rq);
 450   5        return ktf">rt_rq);
 561
 53e,seW>        if ( 558}
 53e,seW>        if ( 558}
 46e,seW>        if ( 558}
 46e,seW>        if ( 558}
 436   sref">i, do_balance_runtime" enablef">do_ba_rt_b>        int cpu_rq(kt)ef">rt_rq);
 437   5        return ktf">rt_rq);
 548
 43default:58"> 558}
 450   5        return ktf">rt_rq);
 43547"> 547}
 547}
 543
 40        int do_balance_runtime" ss="sref">do_ba_rt_b_runtime(struct rt_rq * */
 472{
 430        int rd;
 517
 431cpu_rq( */
 438   5        return rt_rq);
 520
 431        if (rt_rq->r"f">r t_rq->rt_rq->r"s472"> 472{
 532   sref">i, rt_rq->rt_rq);
 403   >        int iter = do_balance_runtime" do_ss="sref">do_ba_rt_bandwidth(rt_rq<{
 464   sref">i, rt_rq->rt_rq);
 48547"> 547}
 506
 435        return rt_rq);
 558}
 763"> 563 */
 4      return do_balance_runtime" ss="sref">do_ba_rt_b_runtime(struct rt_rq * */
 551{
 535  0"sref">rd;
 558}
f 763"> 563 */
rt_rq);
 40        int scho_baef="+code=iter" do_class="sref">scho_bae_rt_b_runtime(struct rt_bandwidth *df="+code=rt_b" over">d="sr"t"> */
 551{
 431        int rt_rq, rt_rq, rt_"sr0"sref">rd;
 43const 8        struct rt_bandwidth *rd;
 520
 43 return &iter = rt_rq);
 520
 40763"> 563/*
 564/*
 565/*
 565/*
 565ng other CPUs indefinitely th="sref".  I ="comment">/*
 565   * isolation is really required,7theWuser will ta>  theWoh="sref="comment">/*
 565   * off7to kill theWodeta>bations it causes anyway.  Meanwhile,="comment">/*
 565 565 */
 531        if (rt_"t"> */
 403   >        int iter = rd;
fsref">rd;
 48sref">i, ktime_to_ns(i,  436   1        int rt_"sr0"sref">rd;
 437   _runtime(struct rt_rq *iter = sched_rt_perindwidth *) {
 438   _runtime(struct  *rd = (rt_rq<{
 559
 450   sref">i, rq->rt_rq<{
 43532"> 531        if (rt_rq->re_running) {
 532           t_rq->u64 rf">rt_rq);
 543
 464           sref">i, rt_rq->rt_rq);
 484   532"> 531        if (rt_rq->rt_"t"> */
 436                   sref">i, do_balance_runtime" ss="sref">do_ba_rt_bandwidth(rt_rq<{
 437           sref">i, rre">rt_se = rt_rq->rf">rt_rq);
 438           >        if (rt_rq->r"-ef">iter = (rt_rq->rreme_to_ns(df="+code=rt_b" over">d="srt_domain *ref">rt_rq<{
 438           1        if (rt_rq->rt_            >        if (rt_rq->r"&l>r t_rq->re_running) {
 450   8           sref">i, rt_rq->rt_"sr0"sref">rd;
 438   8           sref">i, rt_"sr1"sref">rd;
 492
 403   8           s63"> 563/*
 564/*
 565r s="s="srefWo_ba accumulateur neighbours.
 565 */
 437                   1        if (rt_rq->rq->rq-> */
 438                           >        if (rq->rt_"sr-1"sref">rd;
 438           558"> 558}
 450   8   1        if (rt_rq->r"|| ">iter = rt_rq-> */
 438   8           sref">i, rd;
 532           t_rq->rt_rq->rt_rq);
 403   } 93"> 1        if (rt_rq-> 464           sref">i, rd;
 484   532"> 531 */
 436                   sref">i, rt_"sr1"sref">rd;
 437   558"> 558}
 438   1        if (rt_rq->rt_"t"> */
 438   7   ref">u64 rt_"sr1"sref">rd;
 520
 43532"> 531        if (rt_"t"> */
 532           t_rq->rt_rq<{
 403   sref">i, rq->rt_rq<{
 46558"> 558}
rt_rq);
 431rt_"           a     return !!iter = rt_rq->rref">rt_se =  */
 437   5  1"sref">rd;
 548
 435        return rd;
 547}
 561
 4      return (struct rt_rq *rt_"t"> */
 472{
 520
 46_runtime(struct rt_rq *iter = (rt_""sref">rd;
 506
 431        if ( */
 438   5        return rt_rq->rd;
fsref">rd;
 520
 435        return (rt_"ef">rt_rq->rd;
 547}
 543
 40        int (struct rt_rq * */
 472{
 466        u64 rref">iter = (rt_rq<{
 517
 431        if (rt_rq->rt_"t"> */
 438   5        return rt_rq<{
 520
 431        if (rrf">ref">iter =  */
 532   5  0"sref">rd;
 543
 46andwidth(do_balance_runtime" ss="sref">do_ba_rt_bandwidth(rt_rq<{
 48ref">u64 rref">iter = (rt_rq<{
 431u64 rref">rt_se = rt_rq<{
 437   5  0"sref">rd;
 548
 431        if (rt_rq->r"f">r t_rq->re_running) {
 450   8        struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq<{
 561
 532   s63"> 563/*
 565/*
 564ngur neighbours.
 565 */
 436   1        if (iter = rt_rq->r)e_running) {
 437           551"> 4      return u64 rt_b = rd;
 548
 438   7   ref">u64 rt_rq->rt_"sr1"sref">rd;
 520
 438   8   1 532           7   ref">u64 rt_b = rd;
 403   8           s_rq-> 5658"class: RT "s="sre>ng activated\n""commenef">rt_rq<{
 464           547"> 547}
 484   } 93"> running) {
 436           s63"> 563/*
 565/*
 565   ssssssssssssssss* replenishan c is a joke, sisre it will replenish us="comment">/*
 565   ssssssssssssssss* with exactly 0 nsur neighbours.
 565 */
 438   8   >        if (rt_rq->r"sr0"sref">rd;
 532   547"> 547}
 543
 464   1        if () {
 484   8   >        if (rt_rq<{
 436           5  1"sref">rd;
 437   547"> 547}
 43547"> 547}
 559
 455  0"sref">rd;
 547}
 492
 565/*
 564s"> s. SkipWclasn c tases "sat="comment">/*
 565ng 565
 565 */
 4">inline void  * */
 43_runtime(struct  *rq->rd;
 45_runtime(struct rt_rq *rt_ =       return &rt_rq->rd;
 43_runtime(struct rt_rq *iter = (rt_""sref">rd;
 536        u64 rd;
 543
 460        if (rt_rq-> */
 484   5 "sref">rd;
 506
 447        rq->iter = rt_rq->rt_.e(struct rd;
 431        if (        if (u64  */
 438   7        rd;
 520
 43t_rq->(rt_rq->rt_.e(struct s"> slance_runtime" c51">s"> s>rt_.e(struct rt_,520"> 520
 532         e(struct rt_bandwidth(rt_rq->rt_.e(struct s"> slance_runtime" c51">s"> s>rt_.e(struct rt_, 7        rt_rq);
 543
 46andwidth(rt_rq->rt_.e(struct iter = rd;
 48ref">u64 rt_bandwidth(rd;
 506
 447        rt_rq->rt_.e(struct rq->rd;
 43">rq->rt_bandwidth(rd;
 559
 43">rq->        rd;
 561
 531 */
 403   5 "sref">rd;
rd;
 48sref">i, (rt_" running) {
 436   sref">i, iter = (rt_""sref">rd;
 517
 438   1        if (( 438   7   ref">u64 rt_rq->rt_rq);
 450   8   >        if (rt_rq->r"+sr">iter = rd;
 438   8   1        if ((rd;
 532           7   ref">u64 rt_bandwidth(rt_rq);
 403   8   ref">u64 rt_rq->rt_rq);
 464   547"> 547}
 46547"> 547}
 547}
 517
u64  517
 559
 4">in559"> 559
u64 rt_rq * */
 40_runtime(struct  *rd = (rt_rq<{
rd;
 461        if (rq->r t_rq-> */
 436   sref">i, rq->rq->        rq->kt, 7        rt_rq<{
 547}
 548
 4">in559"> 559
rt_rq * */
 53_runtime(struct  *rd = (rt_rq<{
 543
 460        if (rq->rt_rq-> */
 484   sref">i, rq->rq->        rq->kt, 7        rt_rq->rt_rq<{
 547}
 517
 565"> 565 */
 559
 4ref">u64  559
inline void rt_rq * 547}
 4      return  547}
inline void rt_rq * 547}
rd;
f 565"> 565 */
 506
u64 iter = u64  520
 4">in559"> 559
rt_rq * */
 430        int rt_se = rt_rq->rd;
 492
 400        if (r t_rq-> */
 464   >rt_se = rt_rq->rt_se = rd;
rt_rq);
 466        rt_rq *rd;
 547}
 548
 4">in559"> 559
        if (rt_rq *59"> 559
) {
 430        int rt_se = rt_rq->rd;
 543
 460        if (rt_rq->rt_rq);
 436   sref">i, rt_rq *r t_rq->rd;
 517
 438   565"> 565/*
 565   ssssssss* This may have7been our highest tase, and the*/*
 565   ssssssss* we may have7somfWreon to do="comment">/*
 565   ssssssss*="comment"> */
 532   0        if (rt_se =  */
 403   8   _runtime(struct rt_rq *rt_rq->rd;
rd;
 484   8   >        if (rt_rq->rd;
 436                   sref">i, rt_rq *rt_rq->rd;
 437   547"> 547}
 548
 43} 93">548"> 548
 464   >rt_se = rt_rq->rt_se = rd;
 561
 536        rt_rq *rd;
 547}
rd;
sref">rd;
 506
 4      return inline void rt_rq * 547}
 4      return inline void rt_rq * 547}
 559
f 565"> 565 */
 561
        if ( 520
 543
 4">in559"> 559
 void rt_rq *rt_,3_runtime(struct rt_rq * */
) {
 431        if (rt_rq *rt_""t"> */
 438   5        if (rt_rq->rd;
 559
 460        if (rt_rq-> */
 438   e(struct rt_rq->rt_rq->rt_""sref">rd;
 547}
 543
 4">in559"> 559
 void rt_rq *rt_,3_runtime(struct rt_rq * */
) {
 431        if (rt_rq *rt_""t"> */
 438   5        if (rt_rq->rd;
 559
 536        rt_rq->rt_rq->rd;
 547}
 492
 565"> 565 */
rd;
 4">in559"> 559
 void rt_rq *rt_,3_runtime(struct rt_rq * */
) {
 43">rq->rd;
 547}
rd;
 4      return rd;
inline void rt_rq *rt_,3_runtime(struct rt_rq * 547}
 543
f 565"> 565 */
rt_rq);
 4      return rd;
inline void rt_rq *rt_,3_runtime(struct rt_rq *rd;
) {
 430        int rt_se = rt_rq *rt_""sref">rd;
rd;
 43t_rq->rt_rq *rd;
 536        rt_rq->rd;
 543
 46andwidth(rt_rq *rd;
 48sref">i, onf="+code=rt_b" inc="+cmigr1">on_rt_b">rt_rq *rt_, 7        rd;
 466        rt_rq *rt_, 7        rd;
 547}
 548
 4      return rd;
inline void rt_rq *rt_,3_runtime(struct rt_rq *rd;
) {
 536        rt_rq *rt_rq *rt_""""sref">rd;
 536        rt_rq->rd;
 46andwidth(rt_rq->rd;
rt_rq);
 466        rt_rq *rt_rq *rt_"""sref">rd;
 447        onf="+code=rt_b" dec="+cmigr1">on_rt_b">rt_rq *rt_, 7        rd;
 43">rq->rt_rq *rt_, 7        rd;
 547}
rt_rq);
 4">inline void rt_rq *rt_,3">rt_rq *rt_rq *rd;
) {
 40_runtime(struct rt_rq *iter = (rt_""sref">rd;
 40_runtime(struct rt_rq *rt_rq->rd;
 40_runtime(struct rt_rq *iter = (rt_""sref">rd;
 40_runtime(struct rt_rq *iter = rt_rq->rt_se = rt_rq *rt_""sref">rd;
 517
 43"65"> 565/*
 565   * Don't n ched_ the group31/*
 565   * The latter is a consechence of the former when a child group_rcomment">/*
 565   * get throttled and the clasn c group3doesn't have7any othe*_rcomment">/*
 565   * activo members.="comment">/*
 565   *="comment"> */
 460        if (rt_rq *rt_rq *rt_rq->rd;
 484   5 "sref">rd;
 506
 431rt_rq-> 506
 438   5(struct rt_rq *rd;
 559
 460        if (rd;
 438   e(struct rt_ef">rt_rq->rt_,3">rt_rq *rd;
 5393">sref">rd;
 403   5(struct rt_ef">rt_rq->rt_,3">rt_rq *rd;
 46andwidth(rt_rq *rt_rq *rt_",3">rt_rq *rt_rq->rd;
rt_rq);
 466        rt_rq *rt_, 7        rd;
 547}
 548
 4">in6andwidth(rt_rq *rt_"sref">rd;
) {
 43_runtime(struct rt_rq *iter = (rt_""sref">rd;
 53_runtime(struct rt_rq *rt_rq->rd;
 543
 46andwidth(rt_ef">rt_rq->rt_""sref">rd;
 461        if ((rt_rq->rt_se = rt_rq *rt_"e"sref">rd;
 436   sref">i, rt_rq *rt_rq *rt_",3">rt_rq *rt_rq->rd;
 517
 43">rq->rt_rq *rt_, 7        rd;
 461rt_rq-> 506
 464   >rt_se = rt_rq *rd;
 547}
 492
 565/*
 565 upper n cry depends on the lowe*_rcomment">/*
 565/*
 565 */
 4">inline void rt_rq *rt_"sref">rd;
) {
 46_runtime(struct rt_rq *iter = rd;
rt_rq);
 43">iter = rt_rq *rt_" {t"> */
 532    return &rt_ef">rt_rq->iter = rd;
 403   5(struct iter = rt_"sref">rd;
 46547"> 547}
rt_rq);
 43for/a>        if (rt_ref">iter = iter = rt_"f">iter = rt_ref">iter = rt_ef">rt_rq-> */
 437   1        if (rt_rq *rt_"et"> */
 438   6   sref">i, rt_""sref">rd;
 46547"> 547}
 547}
 561
 4">inline void rt_rq *rt_,3">rt_rq *rt_rq *rd;
 */
 46andwidth(rt_""sref">rd;
 48sref">i, rt_rq *rt_"sref">rd;
 436   sref">i, rt_rq *rt_,3">rt_rq *rd;
 547}
 548
 4">in6andwidth(rt_rq *rt_"sref">rd;
) {
 43">iter = rt_""sref">rd;
 492
 536        rt_rq *rt_" {t"> */
 464   _runtime(struct rt_rq *iter = (rt_""sref">rd;
rt_rq);
 436   0        if (rt_rq-> 506
 437   6   sref">i, rt_rq *rt_,3">rt_rq *rt_""sref">rd;
 43547"> 547}
 547}
rd;
 565/*
 565/*
 565 */
 4">in559"> 559
 void (struct rt_rq *rt_rq *rt_e506"> 506
) {
 43_runtime(struct rt_rq *rt_e=       return &rt_rq->rt_"sref">rd;
 548
 461        int rt_       >        if (rt_e506"> 506
 464   >rt_se = rt_ef">rt_rq->rt_e= 0"sref">rd;
 561
 536        rt_rq *rt_,3">rt_rq *rt_       >        if (rt_""sref">rd;
 543
 460rt_rq *rt_rq->rt_  ">r 1e506"> 506
 484   6        rt_rq *rd;
 506
 447        rt_rq *rd;
 547}
 559
 4">in6andwidth((struct rt_rq *rt_rq *rt_e506"> 506
) {
 53_runtime(struct rt_rq *rt_e=       return &rt_rq->rt_"sref">rd;
 543
 46andwidth(rt_rq *rd;
 48sref">i, rt_""sref">rd;
 506
 447        rt_rq *rd;
 548
 447        rt_rq *rd;
 547}
 561
 565/*
 565/*
 565/*
 565 */
 4">in559"> 559
rt_rq *rt_rq *rt_rq *rt_,30        int rd;
) {
 461        int rt_rq *rt_"e {t"> */
 464   _runtime(struct rt_rq *rt_rq->rd;
 438   _runtime(struct rt_rq *iter = rt_rq->rt_se = (rt_""sref">rd;
 492
 403   0        if (rd;
 464   447"> 447        rt_ef">rt_rq->rt_,3">rt_rq *rd;
 484   93">sref">rd;
 436   447"> 447        rt_ef">rt_rq->rt_,3">rt_rq *rd;
 44547"> 547}
 547}
 559
 4">in6andwidth((struct rt_rq *rt_rq *rd;
) {
 53_runtime(struct rt_rq *rt_e=       return &rt_rq->rt_"sref">rd;
 40_runtime(struct rt_rq *rd;
rd;
 48sref">i, rt_rq *rt_" {t"> */
 436   sref">i, iter = (rt_""sref">rd;
 437   ">rt_rq *rt_rq *rt_rq *rt_,3">rt_rq *rd;
 43547"> 547}
 547}
rd;
 4">inline void (struct rt_rq *rd;
) {
 536        rt_rq *rt_rq->rd;
 547}
rt_rq);
rt_rq);
 40        int (struct rt_rq *rd;
 548
 40 548
(struct (struct rt_rq *rt_e506"> 506
) {
 53_runtime(struct rt_rq *rd;
 40_runtime(struct rt_rq *rd;
 460        int rd;
rt_rq);
 466        iter = rt_rq *rd;
 517
 430        if (rt_rq->rt_ == 1e506"> 506
 4666666666gotof">iter = rt_"sref">rd;
rd;
 43"65"> 565  the tase=cpus*="comment"> */
 430        if (iter = iter = rt_e506"> 506
 403   gotof">iter = rt_"sref">rd;
rd;
 48sref">i, iter = rt_rq *rd;
 506
 447        rd;
 43">rq->iter = rt_rq *rt_rq-> 565 */
 559
 43"65"> 565 */
 565   * If the clasn c tase on @p's "+cched_ is an RT tase, then"comment"> */
 565   * cry tofsee30 wake thds RT tase up on anothe*_rcomment">/*
 565   * "+cched_. Othe*wise simply0_rart thds RT tase_rcomment">/*
 565   * on its clasn c "+cched_._rcomment">/*
 565   *_rcomment">/*
 565   * We wa c to a">inloverloadde= "+cched_s. If the woken"comment"> */
 565   * case is a highe* prioritc, then it will0_ray on this CPU"comment"> */
 565   * and the lowe* prio case should be moved to anothe* CPU._rcomment">/*
 565   * Even though this will0probably0make the lowe* prio case_rcomment">/*
 565   * lose its caref, we do not wa c to bounce a highe* case_rcomment">/*
 565   * around just becaus_ it gave7up31ts CPU, perhaps3for/a_rcomment">/*
 565   * lock?_rcomment">/*
 565   *_rcomment">/*
 565   * For7equal prio cases, we just let the href=ule* sort it oui._rcomment">/*
 565   *_rcomment">/*
 565   * Othe*wise, just let it ride on the aff476d RQ and the_rcomment">/*
 565   * post-href=ule router will0push the preempted tase awac="comment">/*
 565   *="comment">/*
 565   * This test is optimistic,30/*
 565   * will0have7tofsort it oui._rcomment">/*
 565   *="comment"> */
 430        if (rt_rq *rt_rq * */
 403rt_rq *rt_rq->rt_  lt; 2 ||t"> */
 464">rt_rq *rt_rq->iter = rt_rq-> */
 484        if (rt_rq->rt_  ">r 1e" {t"> */
 436   0        int iter = rt_rq *rd;
 517
 438   0        if ( 506
 4666666666 464">rt_rq *iter = rd;
 43547"> 547}
 43">iter = rd;
 492
iter = rt_:492"> 492
 46re/a>  >        int rd;
 547}
 506
 4">inline void (struct rt_rq *rt_rq * 506
) {
 461        int rt_rq->rt_rq->rt_ == 1e506"> 506
 464   re/a> "sref">rd;
 561
 430        if (rt_rq->rt_ != 1561"> 561
 403        if (rt_rq->rt_rq->rt_rq *rt_rq * */
 464   re/a> "sref">rd;
rt_rq);
 430rt_rq->rt_rq->rt_rq *rt_rq->rt_rq * */
 437   re/a> "sref">rd;
 548
 46"65"> 565 */
 565   * There appears to be othe* cpus that c"> accept"comment"> */
 565   * clasn c and none7tof"+c 'p',3_o lets rehref=ule"comment"> */
 565   * co cry and push clasn c awac:="comment">/*
 565   *="comment"> */
 46">rt_rq *rt_rq *rd;
 48sref">i, rt_rq *rt_rq->rd;
 547}
 517
 565 */
 559
 565 */
 565/*
 565 */
 4">inline void rt_rq *rt_rq *rt_e506"> 506
) {
 480        if (rt_rq->rt_rq *rt_rq->rt_rq->) {
 436   sref">i, rt_rq *rt_rq->rd;
 437   re/a> "sref">rd;
 43547"> 547}
 559
rt_rq);
 43"65"> 565 */
1312e="L565"> 5651312e="L565"> 5651312e="L565"> 5651312e="L565"> 5651312e="L565"> 5651/a>   * onet it wrd/rt.12#L563" id="L563" class="12#L5>126me="L565"> 565rd 559 */
132me="L551"> 4">inline vt_clas="s_rt_b_runtimen>
/*rt_rq);

*/
 40        int  565   * post-href-e href="k282hebd/rt.12#L479eemptednexta href="kernel13#3hed/rt.13#L513" id="L513" class="sref">rt3rq * 565   *="commennel13#3hed/rt.13#L513" id="L513" class=30" id="L5540" class="12#L5>124Le="3e335"> 565   * Even thwe0make th_rqrtase="q="s_rt_b_runtime(str33e="L565"> 565   * wcpu. his so href282he href="ker.12#aetur9hed/rt.13loga>(nel13#=cl13#3hed/rt.13#L513" id="L513" classf">rt_rq *
=cl13#3hed/rt.13#L513" id="L513" classfL565"> 565unti="sref">rt_rq * 565   * co cry  id=482" class="12#L4>1282e="L438"> 4301/a>   * onet itime(struct  460   rt_rq->) {
 437  s="13#L5>132me="L436"> 436   sref">i, rt_rq *rt_rq-L488trun3" c_ href="s="13#L5>132me="L488trun3" c_ href="/a>   re/a> "sref">rd;
">rt_rq 430rt_rq *rt_rq * 43547"> 547}
 =3 43547"> 547}
rd;
-&3t;rt_ == 1e506"> 5063/a>
(hde=rt_runtime" cl>rt_"sref">rd;
rd;
rd;
rt_b" p="sr,30        int rt_e506"> 506
 5063/SMPe="L">ref">rd;
rd;
 48sref">i,  if (e ups, jus3 re/a>  the tase=cpus*="c3mment35e=rt_runtime" clas_>rt_""sref">rd 430   ;rd;
 438   _runtime(struct rt_rq *iter  3     if (->rt_"sref">rd;
iterrd;
 460        int rt_se = (iterrt_rqiter =3rd;
rt_rq->rd;
(rd;
 * 43547"> 547}
 43">rq-&3t; *(( 43547"> 547}

rt_rq-> 565< 547}bandwidth(rt_""sref">rd;
 492
(iter   * If the clasn c ta3e on 3p's "+cched="L523" class=3"xt cpupri_find_rt_"xt11e="L4d/rt.13sL498" iode=rt.1r">rd;
 43547"> 547}
 561126me3"L56536q-> 43547"> 547}
 565   36>rt_rq *   * We wa c to a">inl3verlo3dde= "me(hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) {
rt_e506"> 506
2#L567" id3"L567" class="12#L5>126me3"L56536 hrsode=rt_runtime" clas_>rt_e=     3rt.12#L5683 id="L568" class="12#L5>136me="36q->rt_"sref">rd;
 548
"L438"> 43547"> 547}

->rt_"L524" class="13#L5>132me="Lrunning) {
 43547"> 547}
->rt_nel12#5hed/rt.12#L525" id="L525" class="12#L5>122me="L485"> 48sref">i, 
->rt_rq *rd;
/3 46re/3span clas43/a>   * For7equal prio ca3es, w37"> 460   rt_r"sref">rt_rqime(struct hed/rt.12#3475" id="L475" class="12#34>1273706e="L438"> 430iter   * Othe*wise, just l3t it 37de=rt_rq" cs="sref">rt_rq->rt_rqime132me=ime 48sref">i,   if (ht.12#L5683d="L478" class="12#L4>1273e="L537"13#L5>132me="L559"> 559iter
   * This test is opti3istic37 class="13#L5>131Le="L565"> 565rt_rq->1281e=3L565"> 565  3802e="L438"> 430  d="L478" class="11#L4>11#me="L548"> 548
"L4d/rt.13sL498" ipicun3"xt">rd;
rd;
rt_b"rt_rq 48sref">i,  throttled" ched_="srref">iter-> *rt_rqimen citc_rt_b">rt_rq *r3_rq *rt_rq *
 48sref">i,  href="+code=rt_rq" class="sr,3"3hed/rt.12#3ref">rt_rq->rt_rq *
3a href="kernel1286hed/rt.32#L4838kernel13#6hed/rt.13#L516" id13#5hed/rt.13#L525" ie="L437"> 437   ""Lrunof="L485"> 48sref">i"Lrunofrt_b"rt_rq *) {
n citc_rt_b">rt_ra> *) {
exec_
rt_rexec_
 437  ;
iter 506
 46666666663464">rt_rq *559 43547"> 547}
 void 
129me="L492"> 492
3a hre39ref="kernel1hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) {
rt_e506"> 506
>
  >      3 int  460        int ) {
 437 _picun3"xt"class="13#L5>131me="L4_picun3"xt"class="rt_b"flags>rt_e506"> 506
 43547"> 547}
 537}
 4"3inlin39kernel13#6hed/ class="13#L5>132Le="L56Tnt">/*kern" id="Lscsever eligia>
 73" rt.1ern"time(struct rt_rqL464"> 461        int  *rt_rq * 48srt.1/a>
 class="13#L5>132me=d5"> 48srt.1/a>
 clasrt_b"rt_rq * 43547"> 547}
rt_rq 565rt_ ==31e5063> 506<> */
1312e43s2hed/rt.43sL492" id="L492" class="43sL4>4302e="L438"> 4Ilass="13#L5>1312e="L565"> 5651312e="L564t_rq-&4t; 565   * co cry We detechref="kkerne tof"+soehref=ly0_rarritc, te willhed/RQ"> 5651312e="L564t2rq-&4ternel12#4hed/rt.12#L494"4 id="40
 5651312e="L564t3rq-&4tint rt_rq *;
/*_ref="ker> * 437 hassrt.1/a>
 clasme="L485"> 480
 clasmrt_b"flags>rt_e506"> 506
 43547"> 547}
 43547"> 547}
rt_rq4><40untime(struct  4559 43547"> 547}
   * There appears to 4e oth40/rt.13#L531" id="L531" class="13#L54" id="L5114 class="13#L5>1311e="L5654> 56541struct rt_e506"> 506
) {
 461        int rd;
134me="L565"> 565rtupdaef" tase=_rt_b"flags>rt_e506"> 506
 43547"> 547}
 * 43547"> 547}
rd;
<4 href4"kernel13#5hed/lass="13#L5>1312e="L565"> 5651312e="L564ode=rt_rq"4clas="sr);sref">rd;
<4 href41de on the aff476d RQ and the_rcommentaTed/rt.vio rehid="3" c;p',made eligia>
 73" rt.1ern"> 5651312e="L564od="+code=4s="13#L5>131me="L#end0 541> 565   * post-hrefis i"kLscst82heached_=r 5651312e="L564os9hed/rt.4>
 565   *="commenode=rt_rq" cs="sr,3 return & 559
 on_d id="L527" class="1on_d id=rt_b"/a>(struct rt_rq * 436   0        int iter =  48srt.1/a>
 class="13#L5>132me=en"> 48srt.1/a>
 clasrt_b"rt_rq * 43547"> 547}
(rt_ != 1561"> 561<4oid  */
1312e4ref">rt_rq4/a> * 43547"> 547}
-4gt;inline vt_clas="s_rt_b/* Onlyl13#4hlgp"L4hmrehrree time"> 565 */4cs="sref">4t_rq->
 */4cd="+code=4=rt_rq" clas="sr);sref">r4;42untime(struct rd;
rt_rq *rt_rqrt_b" p="sr,30        int rt_e506"> 506
) {
 461       d="L525" class="13#L5me="L447"> 447        e(struct  559133Le="L4ifdef42ref">rt_rq->4t_rq);
rt_rq-lass=="kernel12s1hed/rt.12-lass=="kernrt_b"rt_rq *rt_  ">r 1e" {t">41331e="L434"> 43"65"> 565 430125me="L447"> 447       3#L5260 ||25" class="13#L5me=mlass"L488me="L447"> 447   mlass"L488me=rt_b" 447       ase_rt_b">rt_rqitNCE_WA=rt_rq" trt_b" *rt_  lt; 2 4"L565"> 56413124="L5643->128me="L436"> 436   0        int iter = rt_  lt; 2 4"id 1312e="L545"> 543 *rt_  lt; 2 4"ef">rt_rq4 565rd 460   559rt_  lt; 2 4"t_rq-41class="13<13#L5>132me="L451"> 4">inli/a>(4t_rq);
rt_rq-><41las="+cod4"> 40        int  565   /* R = 1,3_o lt">/* 565 */4="sref">rt4rq *hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) {
rt_e506"> 506
 447        e(struct 43ref">rt_rq->4tase="q="s_rt_b_runtime(str439->rt_"L524" class="13#L5>132me="Lrunning) {
iterrt_rq *rt_"sref">rd;
 548
"L438"> 43547"> 547}
 564unti="sref">rt_rq * 430   ;rd;
 43547"> 547}
->rt_nel12#5hed/rt.12#L525" id="L525" class="12#L5>122me="L485"> 48sref">i,  460   r class="12#L5>124midxidth(iterrt_rq =4 48sref">i, id="L497" class="13sL4>130me="L437"> 437=rt_rq" cs="sref">rt_rq-><4ilas="+cod4">rd;
 438   _runtime(struct rt_rq *iter-&4t;rt_rq *(rd;
 * 43547"> 547}

(4ef">rd;
 idxidth(( 430          continue"L438"> 43547"> 547}
->1249e="L464"> 3"xt cpupri_find_rt_"xt11e="+code=rt_rq" cpupri="sr,3"3"xt cpupri_find_rt_"xt11e=hed/rt.12#L485" id="L485" class="12#L4>128me="L485"> 484        idxidth( 43547"> 547}
rd;
rd;
11#me="L548"> 548
id="L497" class="sref">rd;
 492
(rt_rq-><4 >rt_rq 430rt_"L524" class="13#L5>132me="Lrunning) {
 43547"> 547}
 =4rd;
rt_rq-><4ureead_loc4_rt_b)"sref">rd;
rt_rqimet.11#L_isrt_rq *11#me="L548"> 548
="d" nf=cpus_allowee>rt_  lt; 2 4ss="12#L5>425me="L438"> 43">rq-&4t;rt_rq * 43547"> 547}

rt_rq-> 5654 437   ""Lrunof="L485"> 48sref">i"Lrunofrt_b"rt_rq *   * If the clasn c ta4e on 4602e="L438"> 430          rt_rsref">rt_rqLicun">rt_rq *rt_rqrt_b"rt_rq *rt_rq 447        =rt_rq" cs="sref">rt_rq-><4hed/rt.12#4562" id="L562" class="12#45>12646-> 43547"> 547}
 43547"> 547}
->(1265e="4i65"> 565   4606e="L438"> 430( =4/a>   * We wa c to a">inl4verlo46 id="L486" class=    rt_r"sref">rt_rq3"xt cpupri_find_rt_"xt11e==rt_rq" cs="sref">rt_rq-><4hreead_loc4"L567" class="12#L5>126me4"L56546a href="kernel13#7heded_="L55t_throttled" heidxidth(rd;
 *rt_rq(rt_rq(rt_rq->rt_rq *(rt_rq->
rt_rq *(->(
 43547"> 547}
   *_rcomment">/4(   * For7equal prio ca4es, w47ed_=tL438"> 43547"> 547}
lass="12#L4>129DEFINE_PER_CPU cpupri_find_rtDEFINE_PER_CPUrt_b"rt_e=mlassvar__t_rqase_rt_b">rt_rq *   * Othe*wise, just l4t it 47de=rt_rq" cs="sref">rt_rq-><412#L477" i4="L477" class="12#L4>127m4="L5647pupri"sref">rd;
rt_"L524" class="13#L5>132me="Lrunning) {
rt_  lt; 2 4ht.12#L5684d="L478" class="12#L4>1274e="L547"13#Lt_rq" cs="sref">rt_rq-><4sa>
   * This test is opti4istic478->rt_a2#3hedomaind_flag="sr,30) {
isd11e="L438"> 43547"> 547}
rt__e=mlasrunti="sref">rt_e=mlasa>) {
 * * *1281e=4L565"> 565  4802e="L438"> 4l1287hed/rt.12#L487"hisrme="L447"> 447"hisrme=t_ru"L4d/rt.13sL498" i1mp_processor_idarget="sreef">ismp_processor_idrt_b" href="+code=rt_rq" class="sr,3"4#2#L472" i4( 447       t; *r4_rq129me="L464"> 46re/4hpan clas44an>
 */4hed/rt.12#4ref">rt_rq->rt_rqunlikel">rd;
rt_rqd="L488m_rq *rt_  lt; 2 4*/
4a href="kernel1286hed/rt.42#L4848 id="L486" class=    L496" c-1ed" nf=cpus_allowee>rt_  lt; 2 4h2#L477" i4*(struct  506
rt_rqt_rq *rd;
 561
1289e="L464"> 46666666664464rt_rq *   /* No,3_o letarg>

  565 */4ha href="k429ched/rt.12#L490" id="L440" cl48/rt.13#L531" id="L531" class="13#L54ed_task" r4ureead_unloce_rt_b)"sref"4rdrt_rq *rt_rq-> *rt_rq * */
rt_rq *rt_  lt; 2 4 class="124L4>129me="L492"> 492
4a hre49->   /* No,targ>
 */4>
 46re/4>  >      4 int  */4>ed/rt.12#47}
 */4>/
4s="12#L4>129me="L551"> 4"4inlin49de on the aff476d RQ and the_rcommentalo"L48* 565   * post-hrefD_BAbL48*n c bas479eemourcaffinit#4hed/topology482" class="12#L4>1282e="L438"> 430 * 565   *="commennel13#3hed/rt.13#L513" id="L513" clas4">rt_rq 565   * Even thWe* */4>a href="k4d" nf=cpus_allowee>rt_ ==41e50649e="L565"> 565   * wi"kLscmoatelikel" ca"> -hotcinSD_ef=location482" class="12#L4>1282e="L438"> 430 */5t_rq-&5t;rt_rqme=mlass"L488me="L447"> 447   mlass"L488me=rt_b" 447       ase_rt_b">rt_rq *rt_  lt; 2 5t2rq-&5ternel12#4hed/rt.12#L494"5 id="50 * 447       ed" nf=cpus_allowee>rt_  lt; 2 5t3rq-&5tint  43547"> 547}
 */5 cpupri_fi5d_rt_b      return &<5 f="+50de on the aff476d RQ and the_rcommentaO_o lt">/ hrefconsulf=D_BAa2#3hedomains the amap;pfigure65 */5 6pupri_fi5d refck_preempt_equal_pri5><50> 565   * post-hrefout whichets eLscloga>ss=" closL48*ourchotcca">  data482" class="12#L4>1282e="L438"> 430 * 565   *="commenode=rt_rq" cs="sr,3 return &rtmlass"L488me="L447"> 447   mlass"L488me=rt_b" 447"hisrme=t_ruase_rt_b">rt_rq *rt_  lt; 2 5t9 href="k5r" nf=cpus_allowee>rt_ ==5e oth50d/rt.12#L551" id="L55running) {
"hisrme="L447"> 447"hisrme=t_ru"L4-1e8   /* Skip "hisrme= opt"L523otcamoilllo"L48*node=rt_rq" cs="sr,3 return &1311e="L5655> 56551 */
 565 447       ase_rt_b">rt_rqisd11e==rt_rq" cs="sref">rt_rq-><5rq *->rt_rqstarget="sreef">isd11e="et"> */
132me="L485"> 480        =rt_rq" cpupri="sr,3"SD_WAKE_AFFINEe="L485"> 480rt_rq-><5r06hed/rt.5p="sr,31)"sref">rd;
<5 href5106e="L438"> 430 447bL488me=rt_bhref="+code=rt_rq" class="sr,3"5=cpupri_fi5clas="sr);sref">rd;
<5 href51de=rt_rq" cs="sref">rt_rq-><5od="+code=5s="13#L5>131me="L#end0 551a href="kernel13#7heded_="L55t/a>   /*65 */5os9hed/rt.5>
 565   *="commeeeeeeeeeeeeeeeee* ""hisrme="eLsc"> ap leto/rt.12#LSD_en a65 */5oa href="k5>
 565   * Even eeeeeeeeeeeeeeee* remote* 430 565   *eeeeeeeeeeeeeeee*ode=rt_rq" cs="sr,3 return & 430          rt_rsref">rt_rq"hisrme="L447"> 447"hisrme=t_ru"!L4-1rt_throttled" nf=cpus_allowee>rt_  lt; 2 5#L522" id=5L522" class="13#L5>1322e=5L565"52->rtmlass"L488me="L447"> 447   mlass"L488me=rt_b" 447"hisrme=t_ruase_rt_b">rt_rqisd11e== =rt_rq" cs="sref">rt_rq-><5oid rt_rq5/a> * 447"hisrme=t_ruhref="+code=rt_rq" class="sr,3"5r06hed/rt.5gt; 430(5t_rq->rt_rq-><5cd="+code=5=rt_rq" clas="sr);sref">r5;52a href="kernel13#7heded_="L55t_throttled" hebL488me="L447"> 447bL488me=rt_bh491" id="L491" cl   mlassfire=ra> * *rt_ == 1e506"> 5065="kernel1359hed/rt.13#L529" id="L5295 clas52">rt_rq *isd11e== href="+code=rt_rq" class="sr,3"5ra href="k530" class="13#L5>133Le="L5ifdef52">rt_rq *rt_rqbL488me="L447"> 447bL488me=rt_bh#L526/a>;
 480rt_rq-><5_SMPe="L">5t_rq);
 43"65"> 565 430 447bL488me=rt_bhref="+code=rt_rq" class="sr,3"5"L565"> 56513125="L5653->( 553 *(rt_rq5 565rd 460   /a>( 53kernel13#5hed/rt.13#L515" id=cu_er5t_rq);
rt_rq-><51las="+cod5"> 40        int    /*65 */5="sref">rt5rq * 565   *="commen And finss=","is CPUre"wUre"no mat"> s wi"hinSD_BAdomains65 */5=a href="k5540" class="12#L5>124Le="5e535"> 565   * Even thjust givefD_BA>ss= le*some"hing*eto/work wi"h fromfD_BA>ompatia>
65 */5=SMPe="L">5tase="q="s_rt_b_runtime(str53e="L565"> 565   * wlocations482" class="12#L4>1282e="L438"> 430rt_rq * */5fL565"> 565unti="sref">rt_rq *rt_rq"hisrme="L447"> 447"hisrme=t_ru"!L4-1"d" nf=cpus_allowee>rt_  lt; 2 5fid  447"hisrme=t_ruhref="+code=rt_rq" class="sr,3"5.12#L544" 5d="L544" class="12#L5>1245e="L454ed_=tL438"> 43547"> 547}
rt_rq 447       t491" id="L491" cl   mlassan">rd;
 * =5rt_rqme="L447"> 447       t#L526/a>;
 480rd;
 447       ed" nf=cpus_allowee>rt_  lt; 2 5t_rq-&5t; 4559rt_  lt; 2 5/a>
(5ef">rd;
   * clasn/* W82he="L4 D_BArqwi"k="sr"> 565 */5.12#L552" 5d="L552" class="12#L5>1255e="L455ref="kernel1hde=rt_runtime" cl>rt_nt rt_e506">88" id=ckf="kernel1288hed/rt.12#L488" id=ckf="kernel1rt_b"hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) {
) {
rt_e506"> 506
rd;
 460        int rt_e506">="kernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" id="L498" class="13sL4>130methrottled" ched_="srref">iterrt_rq 4l1287hed/rt.12#L487"rieme="L485"> 480iter =5rd;
 4l1287hed/rt.12#L487me="L447"> 447       ed" nf=cpus_allowee>rt_  lt; 2 5ureead_loc5_rt_b)"sref">rd;
525me="L438"> 43">rq-&5t;rt_rq *73" rsref">rt_rq"rieme="L485"> 480;
 480;
;
 480rt_rq-><5.a>
rt_rq->rt_rq * 447       t491" id="L491" cl href="kernel1288hed/rt.12#L488" id="L488" class 430  "t_rrsref">rt_rqme="L447"> 447       t=L4-1" ||2rsref">rt_rqme="L447"> 447       t=L4t  */
 447       ="d" nf=cpus_allowee>rt_  lt; 2 5hed/rt.12#5562" id="L562" class="12#55>12656-> 43547"> 547}
 46re/5212#L544" 5class="12#L5>126ass="565"5 565<56a>->rt_e506">="kernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" iel1_l1288hed/rt.12#L4el1_l1rt_b" 447        href="+code=rt_rq" class="sr,3"5L5>1265e="5i65"> 565   56>rt_rq * =5/a>   * We wa c to a">inl5verlo56 id="L486" class=    an clas4   * clasn/* is CPU* 48 changed,l13#4hgain  565 */5hreead_loc5"L567" class="12#L5>126me5"L56556a href="kernel13#7hed"t_rsref">rt_rqdoua>
 d=ckfbalance"L447"> 447doua>
 d=ckfbalancert_b"rt_rqrt_rq-><5rt.12#L5685 id="L568" class="12#L5>156me="56">rt_rq *   /*65 */5ra>
 565   * Even eeeeeeeeeeeeeeee* We hacenelun="L4 D_BArun "> 48. In65 */5ra href="k5id="L570" class="12#L5>125Le="L56e="L565"> 565   *eeeeeeeeeeeeeeee*SD_BAme> 5time,Ahid="could have65 */5.12#L471" 5d="L471" class="12#L4>1275e="L557a>   * clasn c and noeeeeeeeeeeeeeeee*SmigraL479aler 430 565   * co creeeeeeeeeeeeeeee*SAlso make sureSD_atwi"kwasn'tAa2#3hul479eemitscrq482" class="12#L4>1282e="L438"> 430   *_rcomment">/5 */5.12#L544" 5/a>   * For7equal prio ca5es, w57a>->rt_rqunlikel">rd;
rt_"L524=1288hed/rt.12#L4class=1rt_b" * */5.5>1265e="5475" id="L475" class="12#54>1275706e="L438"> 430rtmlass"L488me="L447"> 447   mlass"L488me=rt_b" */
 447       lpus_allowee>rt_ == 1e506"> 5065span clas45/a>   * Othe*wise, just l5t it 57 id="L486" class=                                           itNCE_WA=rt_rq" trt_b" * */5.reead_loc5="L477" class="12#L4>127m5="L5657a href="kernel13#7heded_="L55             rt_rq * */5.t.12#L5685d="L478" class="12#L4>1275e="L557">rt_rq *rt_rq-las * */
rt_rq-><5sa>
   * This test is opti5istic57 class="13#L5>131Le="L565"> 56555a href="k5L480" id="L480" class="125L4>1257d/rt.12#L551" id="L5555555555ed_="L55t_throttled" hedoua>
 un="L4fbalance"L447"> 447doua>
 un="L4fbalancert_b"rt_rq1281e=5L565"> 565  5802e="L438"> 430rt_e506">="kernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" id="L498" class="13sL4>130methrottled" ched_="srref">iter-> 43547"> 547}
r5_rq(
(1265e="5ref">rt_rq->rt_rq *
5a href="kernel1286hed/rt.52#L4858 id="L486" class=    an clas4   * clasn/* Ifeef="krqkLscst82hesuit/a>
 usemit.e*565 */5h2#L477" i5*rt_rq="kernel1288hed/rt.12#L4="kernel1rt_b"et"> */


 447 tas30me"#g526/a>;
 */
rt_  lt; 2 5q" target=5sre!= -1e506"> 506
rt_rq * 43547"> 547}

1289e="L464"> 46666666665464131Le="L565"> 5655ha href="k529ched/rt.12#L490" id="L450" cl58d/rt.12#L551" id="L55rn clas4   * clasn/* 13#4hgain  565 */5ed_task" r5ureead_unloce_rt_b)"sref"5rd 430
 un="L4fbalance"L447"> 447doua>
 un="L4fbalancert_b"rt_rq129me="L492"> 492
5a hre59->rt_e506">="kernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" id="L498" class="13sL4>130methrottled" ched_="srref">iter
  >      5 int  43547"> 547}
ed/rt.12#57}
 4559iter/
5s="12#L4>129me="L551"> 4"5inlin59de on/a>(2#L477" i5" refck_preempt_equal_pri5_rt_b59untime(struct  *hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) {

 class="13#L5>132me=1icun3"xt"rt.1/a>
 clasrt_b"hde=rt_runtime" cl>rt_nt rt_e506"> 506
rt_rqrt_rq->a href="k5d" nf=cpus_allowee>rt_ ==51e506599->rt_"L524" class="13#L5>132me="Lrunning) {
 43547"> 547}
-&6t;rt_rqhas"rt.1/a>
 clasme="L485"> 480
 clasmrt_b"rt_  lt; 2 6t2rq-&6ternel12#4hed/rt.12#L494"6 id="60 *iter-&6tint  43547"> 547}
 437 pode=rfire=rt.1r">rd;
 438   _runtit  */


 clasme="L485"> 480
 clasmrt_blpus_allowee>rt_ == 1e506"> 5066 cpupri_fi6d_rt_b      return &<6 f="+60 id="L486" class=                  hde=rt_runtime" cl>rt_"L524" class="13#L5>132me="Lrunning) ase_rt_b">rt_rq
 clasme="L485"> 480
 clasmrt_b href="+code=rt_rq" class="sr,3"6 6pupri_fi6d refck_preempt_equal_pri6><60untime(struct  * 480 */
 447       "!L4t 132me="Lrunme=rt_b" * 480132me="Lrunmtasclart_b"rt_rq *rt_ ==6e oth60d/rt.12#L551"/rt.13#L515" idBUG_ONe="L485"> 480 436   0        int iter =  4cs="sref">rt_rq->1311e="L5656> 56561 */
 480rt_rq36"> 436   0        int rt_rq->-&6me="L565"> 565 480rt_rq">rt_rq *rt_rqrt_b" * * 43547"> 547}
rd;
<6 href6106e="L438"> 4559 43547"> 547}
rd;
<6 href61de on/a>(131me="L#end0 561untime(struct 
 565  /*65 */6oa href="k6>
 565  * Ifeefe mtascla CPU has moreSD_an*n c he*_rcommsee is CPU*non65 */65pan clas46hed/rt.13#L521" id="L521"6class61e="L565"> 565 */6s* Preempt6the clasn c tase with a n6wly w62a>   * clasn *"ofeless le 430 565   565 */6oid rt_nt rt_e506"> 506
rt_rqrt_"L524" class="13#L5>132me="Lrunning) {
 547}
->rt_e506">="kernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" i7}
>131me="L#sref">r5;52a href="ke6nel1367heded_="L55t_-rt.1_pan>6oid rt_e5e98" i13#07}
f="kernel1d="L5295 clas52">rt_rq}
f="kernel133Le="L5ifdef52">rt_rqrtmlass"L488me="L=rt_b"et"> */


 clasme="Lwis loader = rt_rq 56513125="L5653-><6ched_6312#L493" iBUG_ONe="L485"> 48t_"xempf=rtasehd="L498" t_"xempf=> 54pode=rfire=rt.1r">rclass="13#L5>132me=1icun3"xt"rt.1/a>
 clasrt_b"hde=rt_runtime" cl6
}
 553 *(3"xt cpupri_find_rt_"xempf=rtasehd="L498" t_"xempf=> 54t_b" p="sref"5">rt_rqrd 4606  /a>63e=r/a>(}
 53kernel13#56ed/rt63"+code=rt_rq" cpu5*/
5a href6>);
rt_#ifdefge88me=svar *
5a href6>>131me="L#nt unlikel">rd;
rt_"L524=1288hed/rt.12#L4cl.12-lass=="kernrt_b"rt_rq * 54tee>rt_  lt; 2 6t2rq-&6ternel1* 5656span 63e=rel12#3hebreak"L43aseh13#07}
535"> 565}
(str53e="L565"> 6654ef">rd6ref">rt_rq6/a> *rt_rq"hisrme="L447"> 44a hreunlikel"rt_b"runtime" cl>rt_"L524=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54pot  */
 447  tas30me"#g526/a>;
rt_rq-><5sa>
   6d/rt.12#L563" id="5543" 54 * 447WARNBUG_ONrt_b""sref">WARNBUGt_"L5>->(}
rt_rq-><51las="+cod5"> 40<6>;
 */5="sref">rt5rq6cpus_allow6e=rt_th5ottle5409e="L464"6 455964as4   *="commen And finss=","is CPItemits> */5="sref">rt5rq6cf="kernel1.12#L545" id=54idth(<6reche64las4   * Even thjust givefD_BA>ss=*/ */5.12#L471" 5d="L476/a>;
   * wlocations482" clas le*sreq482" clireSD_an.comment"> */5.12#L471" 5d="L476 the tase=6pus*="c5mment55a> */6oid rt_rq"hisrme="L447"> 44a hreunlikel"rt_b"runtime" cl>rt_"L524=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54 hL485" class="12#L4>128me="L"d" nf=cpus_allowe="kRT_MAX_TRIESed/rt.=rt_b"et"> */
 447  tas30me"#g526/a>;
-><5sa>
   6 ( 447req482""+">rt_rqrt_b"rehed_rt_entity"  ehref=rt"et"> */
 447  tas30me"#g526/a>;
7}
;
 4606     65e=r/a>(}
rt_rq-><51las="+cod5"> 40<6sref">rd;

 . In6a"comment"> */6oid -&5t;rt_rq 48 ehr5>132me="Lrunning) {
< ehr5>132me="Lrt_"L524=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54>7}
rt_rq 5655ha href="k529ched61hed/rt.126L561" i5="L5655/rt.13#L536" id=659pan clas4   /*65 */4>
  "t_rrsref"ernel1288hed/rt.12#L4="kernel1rt_b"L4d/rt.13sL498" i href="kernel1288hed/rt.1/rt.12#L488" id=ckf="kernel1rt_b"hde=rt_runtime" cl24=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54_rq *rt_rqhas"rt.1/a>
 clasm.12#L4="kernel1rt_b href="+code=rt_rq"t_rq-><5sa>
   6class="12#65>126me5"L565564" class="62#L4>663he559rt_"L524" class="13#L5>132me="Lrunning) {
) {
<7}
;
->rt_e506">="ke   /*65 */5="sref">rt5rq665   56>rt_rq6*
 hrefode=rtmment"> */5="sref">rt5rq66inl5verlo56 id="L486"6class66RQ and the_rcommentaO_o lt">/ hrefcos482" classo ca"> -span clasuL479t_"xempf= he*_r haceit.comment"> */5.12#L471" 5d="L476class="12#65>126me5"L56556a href="ke6nel1366s4   * post-hrefout whichets eLss482" clacomment"> */5.12#L471" 5d="L476cpus_allow612#L5>156me="56">rt_rq   *="commeeeeeeeeeeeeeeeee* ""h"D_BAneen "> wasn'tAa2#3eemsincd6usemit.e*ohref2a=t_rcomment"> */5.12#L471" 5d="L476cf="kernel12#L5>125me="L565"> 565   * Even eeeeeeeeeeeeeeee* We hacenamigr-4hgainlassuseawi"kmit.e*eemst_"xsincd65lig clasforcomment"> */5.12#L471" 5d="L476ched/rt.1262#L5>125Le="L56e="L565"> 665   *eeeeeeeeeeeeeeee*SD_BAme> * hde=ing.comment"> */5.12#L471" 5d="L476" class="16#L4>1275e="L557a> */4>
 565rt_e506">="kernel1288hed/rt+t_rqrt_b"Lrunning) {
rclass="13#L5>132me=1icun3"xt"rt.1/a>
 clasrt_b"hde=rt_runtime" cl6
}
   *_rco6ment">/5 * 54>=nt  */
 447       ="d" nf=cpus_allowpus_alloweekernel1288hed/rt+t_rqrt_b"Lrunning) {
 54>=_rq-><5sa>
   6 For7equal6prio ca5es, w57a>->rt_rq */5="sref">rt5rq6="L475" cl6ss="12#54>1275706e="L438"6 430<67s="s_rt_b_runtime * Temsincd6h79eemitscrr haceit,nlassusemit.e*eemst_"xcomment"> */5="sref">rt5rq6=/ hrefcos482" clD_BAme> * 5lig clason65 1rt_ amigr-4hgaicomment"> */5="sref">rt5rq6=lass="12#6L4>127m5="L5657a href="ke6nel1367s4   * post-hrefout whichets eLss482" clD_BAme> * 5 */4>a href="k4d" nf=6" class="16#L4>1275e="L557">rt_rq   *="commeeeeeeeeeeeeeeeee* ""hisrme=&quoia>
  hed65wt.e*pu.e*
65 */5.12#L471" 5d="L476"f="kernel1is opti5istic57 class="136L5>1367las4   * Even eeeeeeeeeeeeeeee* We hacenelun="L4 "comment"> */4>
) {
}
  5802e="L438"6 430<6////////////////////fl="shed_rt_ent6od="+code=6s="13#L="+code=rt6rq" cla5="sre58-><6ched_6"L55 i"shed_rt_ent6od="+code=6s="13#L=>   *_rco6rt_b">r5_rq(has"rt.1/a>
 clasm+t_rqrt_b""||span class"comm"shed_rt_ent6od="+code=6s="13#L=For7equal6l1284he5/rt.158a>->(   /* No,targ>

 clasme="Lwurunning) {
}
rt_rq-><51las="+cod5"> 40<6+code=rt_b6 p="sr)5sref"58a href="ke6nel1367hed"t_rsref">rt_rq */5="sref">rt5rq61e506"> 506
rt_rq   *="commeeeeeeeeeeeeeeeee* ""h"DSwi"h fro he*_e=ift */5.12#L471" 5d="L476"L464"> 466666666654641368las4   * Even eeeeeeeeeeeeeeee* We hacena3 return &   * cl_pan>6oid 132me="Lrunning) {
132me="Lrt_"L524=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54>7}

 un="L4fbalat_"xempf=rtasehd="L498" t_"xempf=> 54pode=rfire=rt.1r">+t_rqrt_b"Lrunning) {
<7}
 692
5a hre59-><6ched_6"L55flags>rt_e506">="kgo5
 clasme="Laseode=rfire=rt.1r"raseod * c7}
   *_rco62#L494"5id="L59 *6  >      5 int <6cpu="+code6rt_rq" 5pu="s59ed_=tL438"6 43546"> 547}
ed/rt.12#57}6rt_rq * 54, 0>7}
 4"5inlin59de on/a>(<6reche695#L515" id13#5hed/rt.13#L525sehr5>132       ="d" nf=cpusehr5>132   e" cl24=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54_rq * */
 447       lpus_allowee>rt_ =>7}
6struc696#L515" id13#5hed/rt.13#L525activceiempf=rtasehd="L498" activceiempf=ehed_rt_entity"  ehr.12#L4="kernel1rt_b"et"> */
 * 54, 0>7}
 506code=rt5rq" c59_rt_""sref6>hde=693#L515" idBUG_ONe="L485"> 48aset_b" flags>rt_e5e98" i13#ee>rt_  lt; 2 5/a>
rt_rq6/a>-&69e="L565"> 5655ha href="k529ched6pus_allowe6>rt_ ==51e506599->6a hde693#L515" idBUG_ONe="L485"> 48req482""+">rt_rqrt_b"rehed_rt_entity"  ehr.12#L4="kernel1rt_b"et"> */
 447  tas30me"#g526/a>;
7}
-&6t; 48nce"L447"> 447doua>
 un="L4fbalancert_b"rt_rq12972#4hed/rt.72#L494"6 id="60 * 46re/5212#L544" 5class=7cpu="+code7rt_rq" 6rt_rq60ed_=tL438"7 43547"> 5471/a>
 clasme="Lwurunning) {
4ef">rd7 id="L496"7class="63sL4>60kernel13#57ed/rt713#L515" id13#5hed/rt.13#L525"chr5>132me="Lrunning) {
132me="Lrt_"L524=1288hed/rt.1t_"xempf=rtasehd="L498" t_"xempf=> 54>7}
rt_rq-><51las="+cod5"> 40<7_preempt_e7ual_pri6><60untime7struc706#L515" id13#aseh13#5hed/rt.13#L525aset_b" flags>rt_e5e98" i7}
 5655ha href="k529ched7pus_allowe7>rt_ ==6e oth60d/rt.12#L571"/rt713#L51479void.1_pan>6oid 
 clasmrt_b hrepreempf=.t_"L5>rt_nt rt_e506"> 506
rt_rq1317e="L5656> 56561 */7
 565 *
rt_rqrt_rq}
r7;
<6 href6106e="L438"7 45597/a4  >      5 int <7r);sref">r7;
<6 href61de on/a>(<7reche7f">rt_rq-><5od="+code=5s="13#75>131me="L7end0 561untime7struc7 -rt.1_pan>6oid rt_nt rt_e506"> 506
rt_rq 5657span 7las4-><5sa>
   72las="+cod732ched/6t.13#615"> 565 480<"hisrme=t_ru"!L4-1"d" nf=cpus_aode=rfire=rt.1r">+codelass=1rt_b" 447       lpus_allowee>rt_ ==.1_pan>6oid rt_e5e98" i13#0=.1_pan>6oid rt_  lt; 2 5ureead_loc5_rt_b)713#L521" i7="L521"6class61e="L565"> 765rt_"L524" class="13#L5>132me="Lrunning) {
 43547"> 547}
          rt>rt_nt rt_e506"> 506
 547}
 565rt_"L5rt_rq * = 
rt_rq
5a href7>->"hisrme=t_ru"!L4-1for_each>"hie" cl6
 447rr =  447rto"+lo"L488m_rqt_ru hrrto"+lo"> 54>=_rq-><5sa>
   7>>131me="L7sref">r5;52a href="ke7nel1377heded_="L55t_throttle>"hisrme="L447"> 447"hisrme=t_ru"!L4-1"d" nf=cpus_aot rt_ =>rq-><5sa>
   7>7reempt_e7d="L5295 clas52">rt_rq}
rt_rq 5655ha href="k529ched7 3#L521" i7="kerne51331h52d/rt.12#L571" id7"L5555555555ed_="L55t_6
 54el1_l1288hed/rt.12#L4el1_l1rt_b" 447        href="+code=rt_rq" class="sr,3"5L5>1265e="5i65"> 75"> 56513125="L5653-><7ched_7============/a>( */5="sref">rt5rq75_clas="sh712e="L555"> 553 *
  takL4 ovf2a=rcela hrefode=span clas_"xs*/ */5="sref">rt5rq75f="+code=7d="L5295 clas53"> 4607  /a>73e=r/a/rt.12#L474" eeeeeeeeeeeeeeee*565 */5.12#L471" 5d="L4775ode=rt_ru732me="L551"> 53kernel13#57ed/rt73s="s_rt_b_runtime */5.12#L471" 5d="L4775->/ hrefcos482" claslogieto/y=*/ */5.12#L471" 5d="L477>>131me="L7nt    * post-hrefout whichets eLss482" claPUre"panits goL4 ologieto/y=="+cr,id="donode=car"comment"> */4>a href="k4d" nf=7* 5657span 7las4   *="commen And finss=","is s482" cla3 return & 565"hisrme="L447"> 44srcelass=1rt_b" 54 href="+code=rt_rq" class. */

 447(str53e="L565"> 7656oid  447rlass. */

 447 tas30me"#g526/a>;
rq-><5sa>
   7="+code=rt7b" p="s5,30rt_econtinue7}
rt_rq7/a> * */5="sref">rt5rq7" class="17#L5>1245e="L454ed_=tL438"7 435474e=r/a/rt.12#L474" eeeeeeeeeeeeeeee*565 */65pan clas46hed/rt7ref="kerne71246hed5rt.1254kernel13#57ed/rt74s="s_rt_b_runtime
  nAa pan ccomment"> */65pan clas46hed/rt7r->/ hrefcos482" clasalt
  tcodelademment"> */65pan clas46hed/rt7r>131me="L7"kernel5247he54a href="ke7nel1374s4   * post-hrefout whichets eLss482" cla3 return & 48nce"L44> 447doua>
 d=ckfbalancert_b"6oid  54" class="sr,3"5L5>1265e="5i65"> 7cf="kernel7.12#L545" id=54idth(<7reche74e="L565"> 5655ha href="k529ched7/a>;
   * clasn/* 13#4hgain  565rt_rq7#L5>1255e="L455ref="kerne71hde=75las4   * co creeeeeeeeeeeeeeee*SAlso maka3 return & 44srcelass=1rt_b" 54 href="+code=rt_rq" class. */
- & 4607     75e=r/a>(
 clasme="Lski" i"L438"> 43547ski"> 547}

5a href7
   * clhed/rt.13#L525" i"L438"> 43547"> 54pode=rfire=rt.1r">rclass="13*/) {
 54=.1_pan>6oid 1265e="5i65"> 7sref">rd;

-&5t;rt_rqrt_rq   * Even eeeeeeeeeeeeeeee* We hacenamDoid="ass"scnPU*nincd6Aa2#3preempts return &   *eeeeeeeeeeeeeeee*SD_BAme> * eemsio-be-q482" cldnincd? return & */4>
"hisrme="L447"> 44" i"L438"> 43547"> 54pus_alloweek"> 436   0        int 128me="L"d" nf=cpus_allowe="kRT_MAX_TRIESed/rt.+codelass=1rt_b" 447rlass. */

 447 tas30me"#g526/a>;
>=_rq-><5sa>
   7class="12#75>126me5"L565564" class="72#L4>763he559   * clhed/rt.13#L525WARNBUG_ONrt_b""sref">WARNBUGt_"L5lhed/rt.13#L525" i"L438"> 43547"> 54poode=rfire=rt.1r">srcelass=1rt_b" 54 href="+code=rt_rq"   tas30me"#g526/a>;
7}
;
->rt_e506">="ka>   * clhed/rt.13#L525WARNBUG_ONrt_b""sref">WARNBUGt_"L5"> 436   0        int rt_rq->-&6me="L5765   56>rt_rq7*
5a href76inl5verlo56 id="L486"7class76                 hde=rt_runti_asn/* 13#4hgain  565126me5"L56556a href="ke7nel1376s4   * post-hrefout whichets eLss482" clD_BAme> * Tae9;emits>rt_rq   *="commeeeeeeeeeeeeeeeee* ""hD_BAme> * mee iw atemits> */5.12#L471" 5d="L477cf="kernel72#L5>125me="L565"> 565   * Even eeeeeeeeeeeeeeee* We hacenD_BAme> * Taps ps  le*sAa2#3psps wakepan upnlassh79eemitsccomment"> */5.12#L471" 5d="L477ca>;
125Le="L56e="L565"> 765   *eeeeeeeeeeeeeeee*SD_BAme> D_BAme> * had */5.12#L471" 5d="L477" class="17#L4>1275e="L557a> * pspanit is=="+crSinSD_BAsyst mee ieemcomment"> */5.12#L471" 5d="L477""L562" cl7L4>12725="L56575"> 565   * co creeeeeeeeeeeeeeee*SAlso makD_BAme> * reSD_an*incd*ohref2aa>< 4hgaicomment"> */5="sref">rt5rq7a>   *_rco7ment">/5 *"comment"> */4>
->rt_rq"hisrme="L447"> 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allowe="kRT_MAX_TRIESed/rt.srcelass=1rt_b" 54 href="+code=rt_rq"   tas30me"#g526/a>;
rt_  lt; 2 5q" target=5sre!= 7="L475" cl7ss="12#54>1275706e="L438"7 430<77                        q" cpppppppppgo5
 clasme="Lski" i"L438"> 43547ski"> 547}
rt_rq-><5od="+code=5s="13#7=lass="12#7L4>127m5="L5657a href="ke7nel1377heded_="L55t_throttleeeeeeeee1_pan>6oid rt_e5e98" i13#ee>rt_  lt; 2 5/a>
rt_rq}
6oid  54=.1_pan>6oid  43547"> 54, 0>7}
132       ="d" nf=cpusehr5>132   e" cl24=1288hed/rt.1" i"L438"> 43547"> 54, 1_pan>6oid 1265e="5i65"> 7565  5802e="L438"7 430<7////////////////////flags>rt_e1_pan>6oid 6oid  43547"> 54, 0>7}
rt_e1asn/* 13#4hgain  565r5_rq * Wetoontinue withovf2a=earch,s le*sp"comment"> */65pan clas46hed/rt7=For7equal7l1284he5/rt.158a>-> * SaAatAae9;emits> */6s* Preempt6the cl7_rq-&g7;rt_rq7* * inSania>
  a><4hgai. (="+ " cl>ihooccomment"> */65pan clas46hed/rt75/ hrefcos482" clD_BAme> * bumispan cla)comment"> */65pan clas46hed/rt75lass="12#7 p="sr)5sref"58a href="ke7nel1378s4   * post-hrefout whichets eLss482" clD_BAme> *"comment"> */4>
 50n>4>
5.12#LL565564" class=" 40<6+code=rt_b6 p="sr)5sref"58a h2#L493" iB4"> 46666666665464136pgo5
 clasme="Lski" i"L438"> 43547swur {
129m4/SMPe="L">4 class6_he7/rt.126 id="L450" cl58d/r7.12#L761" id6"L55rn clas4   * cl_pan>6o85"> 48nce"L447"> 447doua>
 un="L4fbalancert_b"6oid  54" class="sr,3"5L5>1265e="5clas="sunl7ce_rt_6)"sref"5rd 692
5a hre59 7 *_rco62#L494"5id="L59 *<7clas=76co/a>6rt_e5e98" i7}

5clas="su 4"5inlin59de 7n/a>(76reche713#L51479void.1_pan>6oire_#c;tAorqpana ehrerunningrt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
>=_rq-><5sa>
 506code=rt5rq" c59_rt7""sre76>hde=693#L515"" iBUG_   /* No,targ>
 lllll/a> *"comment"> */4>
rt_r79 * 506
 447rlass. */

 447 tas30me"#g526/a>;
_"x"+/a>void.1_pan>6oireva ehrerunningrt_  lt; 2 5q" target=529ched6pus7allowe6>rt_ ==51e506599->791" id6"L55rn clas4   * cl_pan>6oid  506
 54" class="sr,3"5L5>1265e="8clas="7 id8"L492"7class="63sL4>60 */8/span87rt_nt rt_e506"> 506
rt_  lt; 2 5q" target=8class=7cpu8"+code7rt_rq" 6rt_rq60ed_8tL43880upri=6ae=rrr=cpus_allowee5>a href="k8ef">rd7 id8"L496"7class="63sL4>60ker8el13#87ed/rt713#L515" id13#5hed/rt.13 
 clasmrt_b hrepreempf06"> 506
 54" class="sr,3"5L5>1265e="8c5">rd7 id8"ref="651"> 4"5inlin59de 8"L48680reched_=tase="shed_rt_ent6od="+code=8"> 40<7_pr8empt_e7ual_pri6><60unt8me  /*65 */6oa href="k8 int <7cla8="+cod7=rt_rq"6="L51605498 clas80  * Ifeefe mtasclawwnareto.  Drqrtndawwnareto.  panitsAmeas le*sreq4soony=="+sh  nAa pan ccomment"> */65pan clas4829ched7pus8allowe7>rt_ ==6e oth60d/r8.12#L8065 wt.e> */65pan clas48-><7"138L5>1317e="L5656> 56561 */8/span81s4   * clasn *"ofeless leBAme> *"comment"> */4>
   72" 8lass="73#L5>1362e="L61"ke8nel1287hed/r713#L51479void.1_pan>6oa>) {wokenpana ehrerunning) {wokenpanef=rt=.t_"L5>rt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435_allowee>rt_  lt; 2 5q" target=8 class75">8565a href="k8-><7"pu8"+code7rt_enti6y" re61ed_8tL43887 43547ae=r"t_(has"rt.1/a>
 clt.12#L4cl.12-lass=="kernrt_b"rt_rq *<1d  435_47"> 54pus_ae=rrr=cpus_allowee5>a href="k8-f">rd7 id8ref">r7;
<6 href6106e8"L43881 430<77          echa>has"rt.1/a>
"13*/s {
rela> 54 href="+code=rt_rq"   tas30me"#g526/a>;
<47"> 54pus_ae=rrr=cpus_allowee5>a href="k8-5">rd7 id8ref">r7;
<6 href61de 8n/a>(81class76          
 cl5aslasrt_b"hde=rtreempf06"> 506
 54pus_ae=rrr=cpus_allowee5>a href="k8-> 40<7_pr81me="L7end0 561unt8me"hisrme="L447"> 44" i"L438"> 43547"> 54t="+code=rt_rnr4-1"s_al 5;
_"x"+/147"> 54pus_ae=rrr=cpus_allowee5>a href="k8-las="7 7r8empt_e73#9hed/6t.13#61"> 865 44req482""+">rt_rqrt_b" clllpreemp06"> 506
 54 href="+code=rt_rq"   tas30me"#g526/a>;
<47"> 54pus_ae=rrr=cpus_allowee5>a href="k8-int <7cla8="+cod732ched/6t.13#615">85651377="+/rt.13#p06"> 506
 54 href="+code=rt_rq"   tas30me"#g526/a>;
47"> 54t="+code=rt_rnr4-1"s_al 5;
_"llow2 ||ae=rrr=cpus_allowee5>a href="k8-9ched7pus8521" i7="L521"6class61e="8565">811" id6"L55rn clas406"> 506
 54 href="+code=rt_rq"   tas30me"#g526/a>;
47"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allo7"> 54pode=rfire=r7"> 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpuslade=rttt_b" p="sref"5">rt_rq<8pan c82 430<6////t_throttled" hedoua>
 un="13 
 clasmrt_b hrepreempf06"> 506
 54" class="sr,3"5L5>1265e="83sL4927s" 8lass="7>1322e=6L565"625">8565 46re/5212#L544" 8-><7 f=8+code=7t_rq" c5="sr,52a>-8gt;void.1_pan>6o nf=-1"s_al 5rt_nt 132me="Lrunning) {
 435,709me="L464"> 46re/5212#L544" 8-f">rd7 id8=rt_ru7time" p5io_rt5206e8"L43882 430<77                        q" cppconsttime" cl>rt_"L524" clas-1"/a>rto"+lo"L488m_rq-1"/a>ref="kernel13#5hed/rt.newrto"+lo"L488m_rqnewr 435_allowee>rt_  lt; 2 5q" target=8a href7>-&8t;a href="k8/a>   7>>181me="L7sref">r5;52a h8ef="k87nel1377heded_=.t_"L5>rt_nt rt_e506"> 506
 54" class="sr,3"5L5>1265e="83las="7 7r8empt_e7d="L5295 clas52">r8_rq 54" class="sr,3"5L5>1265e="83int <7cla8="+cod733Le="L5ifdef52">r8_rq 5655ha href="k829ched7 3#8521" i7="kerne51331h52d/r8.12#L82a hde693#L515" idBUG_ONe="L4BUG525WARNBUG_ONrt_b"BUG525ef=rt>rt_"L5rt_rq *rt_rqrt_b" clllpreemp06"> 506
 435_ela> 54" class="sr,3"5L5>1265e="8i65"> 75">856513125="L5653has"rt.1/a>>   0        int rt_73="kernel12#2hed/r6t.13#L512"8i="13#7t_c8as="sh712e="L555"> 553 *<8clas=832#L4>763he559 54" class="sr,3"5L5>1265e="8i><7 f=8+code=7d="L5295 clas53"> 860 547}
ed/rt.12#8d="L4775od8=rt_ru732me="L551"> 53ker8el13#83ed/rt713#L515" id13#5hed/rt.wes"D_ref="kerne if (wes"D_pf="ela> 54el1_l1288hed/rm>) {wes"D_ref="kerne if (d/rm>) {wes"D_reemp06"> 506
rto"+lo"L488m_rqnewr 435_la> 54" class="sr,3"5L5>1265e="8i href7>-&8t;rt_rq-><5od="+code=8d="L477>>181me="L7nt    /*65 */5="sref">rt8d" nf=7* 865   *="commen And finss* Ol. Wupdaterefode=sprocess* hadgesspan 713#e.e*pu.whe inSai9eemitsccomment"> */5.12#L471" 8 class75f=8kernel7124Le="5e535">8565   * Even thjust givefD */5.12#L471" 8 class753#8521" i7ntime(str53e="8565">83" id=64span clas4   * wlocations4BAme> *"comment"> */4>
   7="+8ode=rt7b" p="s5,30<8pan c87s4"hisrme="L447"> 44" i"L438"> 43547"> 54t="+code=rt_rnr4-1"s_al 5;
_"x"+/1pf=> q"hisrme="L4wes"D_ref="kerne if (wes"D_pf="e"x"+/1p_73="kernel12#2hed/r6t.13#L512"8clas="7ref8>rt_rq7/a> * 54" class="sr,3"5L5>1265e="8s="13#7d/r8.12#L573" id="5543" 54 *<8clas=84coel1709me="L464"> 46re/5212#L544" 8rq7" c8ass="17#L5>1245e="L454ed_8tL438843d/rt713#L515" id13#5hed/rt.="+code=rt_b" flags>rt_ef=> 54pode=rfire=rt.1ehr+codelass=1rt_b"t.1ehrreemp06"> 506
 435_la> 54" class="sr,3"5L5>1265e="8s="L4775od8"kerne71246hed5rt.1254ker8el13#84*
8hed/rt7r-&8t;   /*65 */5="sref">rt8hed/rt7r>181me="L7"kernel5247he54a h8ef="k87nel1374s4   * post-hrefout which_BAme>process*usd="faibe .e*clBAnemitscr OR * p */5="sref">rt8h" nf=7*   *="commen And finss*BAme> *"comment"> */4>
(84 * 506
>=_rq-><5sa>
8
has"rt.1/a>
 cltAme> * +codelass=1rt_b"t.1eAme> * ef=rtasehed_rt_entity"  ehref=rtase_rt_b">rt_rq *<1d  435__73="kernel12#2hed/r6t.13#L512"8 class7 th8 tase=7pus*="c5mment55a><8pan c85 430<7////////////////////flags>rt_e1_pan>6ode>
  alass="13#L5>132me=1icun3"xt"rde>
  alass="13#L5>13ef=rtasehed_rt_entity"  ehref=rtase_rt_b">rt_rq *<1d  435_la> 54" class="sr,3"5L5>1265e="8 class7 ef8>rt_rq7#L5>1255e="L455ref8"kern85rt_e506">="kernel128BUG525WARNBUG_ONrt_b"BUG525ef=rt>rt_"L5rt_rq href="kerne if ( 447rlass. */
 54" class="sr,3"5L5>1265e="8 ="13#7d/r8sd_fla7hed_rt_5ntity55e=r8_rq" 87="sr,753he559 href="kerne if ( 447rlass. */
 54" class="sr,3"5L5>1265e="8 q7" c8ass="17f="kern5l125555"> 860} else href>>=_rq-><5sa>
has"rt.1/a>
 cltAme> * +codelass=1rt_b"t.1eAme> * ef=rtasehed_rt_entity"  ehref=rtase_rt_b">rt_rq *<1d  435__73="kernel12#2hed/r6t.13#L512"8 ed/rt7r-&8href="7ernel1256hed/5556e8"L43887 4l1275   an clas4en>
  alass="13#L5>132me=1icun3"xt"ren>
  alass="13#L5>13ef=rtasehed_rt_entity"  ehref=rtase_rt_b">rt_rq *<1d  435_la> 54" class="sr,3"5L5>1265e="8 ed/rt7r>18">rd;
rtt_"L5rt_rq href="kerne if ( 447rlass. */
 54" class="sr,3"5L5>1265e="8 " nf=7*-&5t;r8_rqr8_rq 5655ha href="k8 class7 a>8
 href="kerne if ( 447rlass. */_la> 54" class="sr,3"5L5>1265e="8 class7 If8the cl7sn c ta5e on 5602e8"L43886126me5"L565564" 8lass=86coel17874hed/rt.12#L474" ee/* Assumeusp a=rcela hreU aslds*BAme> *"comment"> */4>
8
-8gt;void.1_pan>6orq_on65"5pana ehrerunningrt_nt rt_e506"> 506
inl5verlo56 id8"L48687class76      ri="06"> 506
 447rlass. */
18s="12#75>126me5"L56556a h8ef="k86nel1367hed"t_rsref">rtt_"L5rt_rq t_ nf=nd_ls="w"Laseode=rfire=rrt nf=nd_ls="weempf06"> 506
 54" class="sr,3"5L5>1265e="8 class7cpu8_allow712#L5>156me="56">r8_rq}
125me="L565">8565doua>
 un="__en"13#Lruntim7eempf06"> 506
 54" class="sr,3"5L5>1265e="8 class7 a>8
125Le="L56e="8565">8765 54" class="sr,3"5L5>1265e="8d="L477" c8ass="17#L4>1275e="L557a><8pan c870 hde693#L515" idBUG_ONe="L4cpuprit nfref="kerne if (d/rprit nfef=rt4pus_tt_"L5rt_rq href="kerne if ( 447rr =  d/rpriref="kerne if (d/rprib">rt_rq *< href="kerne if ( 54 href="+code=r47       lpus_allowee>rt_ ==.1_pan>6oihref="kerne if ( 447rlass. */

 447 tas30me"#g526/a>;
ela> 54" class="sr,3"5L5>1265e="8d="L477""L862" cl7L4>12725="L56575">85657a> 8 *_rco7ment">/5 46re/5212#L544" 8kernel7 Fo87equal7prio ca5es, w57a>-8gt; *"comment"> */4>
void.1_pan>6orq_off65"5pana ehrerunningrt_nt rt_e506"> 506
127m5="L5657a h8ef="k87nel1377heded_ri="06"> 506
 447rlass. */
r8_rq 506
 54" class="sr,3"5L5>1265e="8clas="7"f=8kernel7is opti5istic57 cl8ss="187 * 5655ha href="k8clas="7 he8/rt.127ass="125L4>1257d/r8.12#L87a hde693#L515" idBUG_ONe="L4__dis"13#Lruntim7doua>
 un="__dis"13#Lruntim7eempf06"> 506
 54" class="sr,3"5L5>1265e="8i65"> 75658/a>  5802e8"L43888 430<73="kernel12#2hed/r6t.13#L512"8clas="7="+8ode=rt7rq" cla5="sre58 href="kerne if ( 447rr =  d/rpriref="kerne if (d/rprib">rt_rq *< href="kerne if ( 54 href="+code=r47       lpus_allowee>rt_ ==.1_pan>6oCPUPRI_INVALID       lpusCPUPRI_INVALIDpf="ela> 54" class="sr,3"5L5>1265e="8iq7a> 8 *_rco7rt_b">r5_rq-8gt; 547}
ed/rt.12#8the cl7_rq8/a>-&g7;rt8rq */5="sref">rt8hed/rt75y=="+brly/a>urselveusto a> * icioneflass"comment"> */5="sref">rt8h="13#7=la8s="12#7 p="sr)5sref"58a h8ef="k87nel1378s4   * post-hrefo*ps  le="+ms"D_ wantBAme> lllll/a>
  as12#Lf=c.comment"> */5.12#L471" 8kernel71e586"> 50n>4>
88span 7las4   *="commen A*BAme> *"comment"> */4>
 4666666666546413713#L51479void.1_pan>6o witched_e*pupana ehrerunningrt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435_allowee>rt_  lt; 2 5q" target=8 class6_he8/rt.126 id="L450" cl58d/r8.12#L861" id6ae=rrr=cpus_allowee5>a href="k8clas="sunl8ce_rt_6)"sref"5rd */5="sref">rt8clas="se="8492"> 692
5a hre59   * co creeeeeeeeeeeasclalasA9;aret* inSall/a> */5="sref">rt8cq7a> 8 *_rco62#L494"5id="L59 *<8clas=89coel17874hed/rt.12#L474" eeeeeeeeeee*a>ndae witle*srely/a>fode=s* inSall/a>ndeq class"comment"> */5="sref">rt8ced/rt7=Fo8"+code6rt_rq" 5pu="s59ed_8tL43889upri=78e=r/a/rt.12#L474" eeeeeeeeeee_BAme>"/rttall/a> */5="sref">rt8che cl7_rq8ref="k6rnel1295hed/r5906e8"L43889* */5="sref">rt8ced/rt75 4"5inlin59de 8n/a>(89class78RQ and the_rcommentaO_o lt">/* now12#Lf=c.comment"> */5.12#L471" 8clas="suco8e=rt_b6ual_pri5_rt_b59unt8me   * post-hrefout which_BAme> *"comment"> */4>
 506code=rt5rq" c59_rt8""sre86>hde=693#L515t_rq"hisrme="L447"> 44" i"L438"> 43547"> 54t="+code=rt_r class="1on_d1rt_b ="sref">rt47"> 54pus_a>rt_"L5rt_rq href="kerne if ( 447rlass. */
rt_  lt; 2 5q" target=8="kern6cla8="+cod6=rt_rq"5clas=59ref8>rt_r89L5>1377="+/rt.13#L515"hisrme="L44d  506
 54" class="sr,3"5L5>1265e="829ched6pus8allowe6>rt_ ==51e506599->891" idd_=tase="shed_rt_ent6od="+code=9clas="7 id9"L492"7class="63sL4>60 */9/span90 430<73="kernel12#2hed/r6t.13#L512"9t;void.1_pan>6oini *#c;tA_rrtcl7e=ref="kerne if (ini *#c;tA_rrtcl7e=reemp479<_allowee>rt_  lt; 2 5q" target=9L4>12972#49ed/rt.72#L494"6 id="60 *<9clas=90ed/rt6ae=rrr=cpus_allowee5>a href="k9class=7cpu9"+code7rt_rq" 6rt_rq60ed_9tL43890     75e=r/a>unsignd="ri="sr,3"rieme="L48iref="kerne if (ib">rla> 54" class="sr,3"5L5>1265e="9ef">rd7 id9"L496"7class="63sL4>60ker9el13#90*
9c5">rd7 id9"ref="651"> 4"5inlin59de 9"L48690s="sr725#L515" id13#5hed/rt.13#L525fo * bumisor_each>"hisrme=t_ru"!L4-1fo * bumisor_ereemp06"> 506
rh href>>=_rq-><5sa>
 40<7_pr9empt_e7ual_pri6><60unt9mertt_"L5rt_rqzal 5c_d/rm>) {var_n) {var_nperor_each>"hisrme=t_rperor_ereemp06"> 506
rto"+lo"L488m_rq 5calor_erlowee>rt_ ==.1_pan>6oiref="kerne if (ib">rh,709me="L464"> 46re/5212#L544" 9clas="7 7r9empt_e7uode=rt5rq" c59_rt9""sre90 *rtt_"L5rt_rqGFP_KERNELref="kerne if (GFP_KERNELlowee>rt_ ==.1_pan>6or_e 506
rhela> 54" class="sr,3"5L5>1265e="9 int <7cla9="+cod7=rt_rq"6="L51605499 clas90L5>1377="+/rtd_=tase="shed_rt_ent6od="+code=9c9nt <7cla9=llowe6>rt_ ==51e5065991317e="L5656> 56561 */9/span91s4 *"comment"> */4>
   72" 9lass="73#L5>1362e="L61"ke9nel129146"t_74L55 i"shed_rt_ent6od="+code=9 class75">9565 *"comment"> */4>
"scnPU*ooll,e="+mintnd_ls="wincd*ohrf2aa>< 4hgaicomment"> */5="sref">rt9-f">rd7 id9ref">r7;
<6 href6106e9"L43891* ="+tryBAme> wt.ehema>ffodua"to gocomment"> */5.12#L471" 9-5">rd7 id9ref">r7;
<6 href61de 9n/a>(91class78RQ and the_rcommentaO* * inSania>
  as12#Lf=c.comment"> */5.12#L471" 9-> 40<7_pr91me="L7end0 561unt9me   * post-hrefo*BAme> *"comment"> */4>
 965void.1_pan>6o witched_to_ana ehrerunningrt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435_allowee>rt_  lt; 2 5q" target=9-int <7cla9="+cod732ched/6t.13#615">956513href>>=_rq-><5sa>
911" id6"L55rn ri="sr,3"rieme="L48<5sck_as le*sl.12-lass=="ker<5sck_as le*s" id6e98" i13#ee>rt_  lt; 2 5/a>
<9pan c92 430<73="kernel12#2hed/r6t.13#L512"93sL4927s" 9lass="7>1322e=6L565"625">9565 *"comment"> */4>
 *"comment"> */4>
 *"comment"> */4>
rd7 id9=rt_ru7time" p5io_rt5206e9"L43892* */5.12#L471" 9a href7>-&9t;/* clalaattAme> * rDrqrt */5.12#L471" 9a> 40<7_pr91me="L7sref">r5;52a h9ef="k92nel1374s4   * post-hrefout which_Bthen se9;t_rwwnan*incd.comment"> */5.12#L471" 9alas="7 7r9empt_e7d="L5295 clas52">r9_rq   *="commen And finss*BAme> *"comment"> */4>
r9_rq 506
 44" i"L438"> 43547"> 54t="+code=rt_r class="1on_d1rt_b ="sref">rt47"> 54pus_arq *< href="kerne if ( 54 href="+code=r447 tas30me"#g526/a>;
_!7"> 54pode=rfire=r7"> 44" i"L438"> 435h href>>=_rq-><5sa>
 75">9565 506
 447rlass. */
 54pus_arq * 506
 54pus_ae=rrr=cpus_allowee5>a href="k9id="L57aIl9ss="137L5>13125="L5653rt8e=r/a/rt.12#L474" ee/* Dolassh79f=5 le*s;t_rwwn
  ass*BAme> *"comment"> */4>
 553 *<9clas=932#L4>763he559rtt_"L5rt_rq="+code=rt_b" flags>rt_e!7"> 54pode=rfire=rt.1ehr+codelass=1rt_b"t.1ehrreemp06"> 506
 435__allowee>rt_  lt; 2 5q" target=9i><7 f=9+code=7d="L5295 clas53"> 960rt_e506">="ka>   * clhed/rt.<5sck_as le*sl.12-lass=="ker<5sck_as le*s" id6e90_ae=rrr=cpus_allowee5>a href="k9if">rd7 id9=rt_ru732me="L551"> 53ker9el13#93ed/rt#endt_r78e=r/a/rt.12#L474" ee/* CONFIG_SMPh_BAme> *"comment"> */4>
-&9t; 506
 54pus_arq * 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allowe="kRT_MAX_TRIE href="kerne if ( 54 href="+code=rt_rq"   tas30me"#g526/a>;
47"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allowee>rt_  lt; 2 5q" target=9i> 40<7_pr91me="L7nt 6oid#c;tA_eq482""+">rt_rqrt_b"d#c;tA_eq48reemp06"> 506
 54 href="+code=rt_rq"   tas30me"#g526/a>;
7}
 965535">9565(str53e="9565">9365 54" class="sr,3"5L5>1265e="9/a>   7="+9ode=rt7b" p="s5,30<9pan c94s4   * clasn *"ofeless /*Ame> *"comment"> */4>
rt_rq7/a> * */5="sref">rt9s="13#7d/r9.12#L573" id="5543" 54 *<9clas=94coel17874hed/rt.12#L474" eee* us"faiini iscr ae> wt.orsp llan*incd.comment"> */5.12#L471" 9rq7" c9ass="17#L5>1245e="L454ed_9tL43894upri=78e=r/a/rt.12#L474" eee*BAme> *"comment"> */4>
 */4>
-&9t;rt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435, ri="sr,3"rieme="L48oldq" targ>128me="L"d"oldq" tcpus_allowee>rt_  lt; 2 5q" target=9hed/rt7r>191me="L7"kernel5247he54a h9ef="k94struchref>>=_rq-><5sa>
hde=693#L515t_rqecha>has"rt.1/a>>   0        int rt_73="kernel12#2hed/r6t.13#L512"9/class75f=9kernel7.12#L545" id=54idt9(94L5>1377="+/rt.13#L515" id13la> 54" class="sr,3"5L5>1265e="929ched7/a>9
1265e="9 class7 th9 tase=7pus*="c5mment55a><9pan c95s4 *< href="kerne if ( 54 href="+code=r447 tas30me"#g526/a>;
_7"> 54poode=rfire=r7"> 44" i"L438"> 435h href>>=_rq-><5sa>
rt_rq7#L5>1255e="L455ref9"kern95rt_ ==.1_pan>6oCONFIG_SMP       lpusCONFIG_SMP430<73="kernel12#2hed/r6t.13#L512"9 ="13#7d/r9sd_fla7hed_rt_5ntity55e=r9_rq" 97="sr,753he559 *"comment"> */4>
7" c9ass="17f="kern5l125555"> 960< 4hgaicomment"> */5="sref">rt93sL4927"+c9de=rt_7q" cpur5f_rt_5506e9"L43895* */5="sref">rt93 href7>-&9href="7ernel1256hed/5556e9"L43895class78RQ and the_rcommentaO_o lt">/ hrefcos*BAme> *"comment"> */4>
19">rd;
r( *128me="L"d"oldq" tcpus_allowe="kRT_MAX_TRIEr7"> 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpuslcomment"> */4>
-&5t;r9_rq"hisrme="L44d  506
 54" class="sr,3"5L5>1265e="9 class7 f=9kernel7>r9_rq1377="+/rt.13#L515<   * clasn *"ofeless /*Ame> *"comment"> */4>
9
 */5="sref">rt9 class7 If9the cl7sn c ta5e on 5602e9"L43896s4 */5="sref">rt9 class7 ef962" cl7ss="12#55>12656   * co creeeeeeeeeeeeeeee*SAfD * S rq la hr>ndap c  nAnemitscr>< 4hgaicomment"> */5="sref">rt9/a>   7cla9s="12#75>126me5"L565564" 9lass=96coel17874hed/rt.12#L474" eeeeeeeeeeeeeeee*SAfDOl. Was le*sreq4(
  a>< 4hgaicomment"> */5="sref">rt9clas="7=a>9
-9gt; *"comment"> */4>
   56>rt9rq * 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_ax"+/a>void.1_pan>6oihref="kerne if ( 447rlass. */

 447 tas30me"#g526/a>;
47"> 54pus_arq *< href="kerne if ( 54 href="+code=r447 tas30me"#g526/a>;
_7"> 54poode=rfire=r7"> 44" i"L438"> 435hcomment"> */4>
-&9href="7 a">inl5verlo56 id9"L48696 4l1275   an clas4id#c;tA_eq482""+">rt_rqrt_b"d#c;tA_eq48reemp06"> 506
 435_la> 54" class="sr,3"5L5>1265e="9med/rt7r>19s="12#75>126me5"L56556a h9ef="k96nel13#elsea> 54" class="sr,3"5L5>1265e="9m" nf=7*156me="56">r9_rqfo*/ *"comment"> */4>
125me="L565">95651377="+/rt.13#L515( *128me="L"d"oldq" tcpus_allowe="kRT_MAX_TRIEr7"> 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpuslcomment"> */4>
9
125Le="L56e="9565">961" id7"L5555555555ed_="L55t_throttlert_entitid#c;tA_eq482""+">rt_rqrt_b"d#c;tA_eq48reemp06"> 506
 435_la> 54" class="sr,3"5L5>1265e="9d="L477" c9ass="17#L4>1275e="L557a><9pan c97s4 *"comment"> */4>
12725="L56575">9565>=_rq-><5sa>
7a> 9 *_rco7ment">/5 *"comment"> */4>
-9gt; eSD_/avao.  Drqrtt_rie>tU class"comment"> */5="sref">rt9sre!= 7="L975" cl7ss="12#54>1275706e9"L43897* * rDrqrt */5="sref">rt9s href7>-&9href="7 just l5t it 57 id9"L48697class78RQ and the_rcommentaO_o lt">/ hrefcos*Bthen =5 le*sreq. class"comment"> */5="sref">rt9sed/rt7r>19s="12#7L4>127m5="L5657a h9ef="k97nel1378s4   * post-hrefout whichets eLss_BAme> *"comment"> */4>
1275e="L557">r9_rq * 44" i"L438"> 43547"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allowe="kRT_MAX_TRIE href="kerne if ( 54 href="+code=rt_rq"   tas30me"#g526/a>;
47"> 54t="+code=rt_rq" targ>128me="L"d" nf=cpus_allowee>rt_  lt; 2 5q" target=9clas="7"f=9kernel7is opti5istic57 cl9ss="197L5>1377="+/rt.13#L515="L55t_throttlert_entitid#c;tA_eq482""+">rt_rqrt_b"d#c;tA_eq48reemp06"> 506
 54 href="+code=rt_rq"   tas30me"#g526/a>;
7}
 75659/a>  5802e9"L43898r5_rqvoid.1_pan>6owatchdocl.12-lass=="kerwatchdocef=rt=.t_"L5>rt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435_allowee>rt_  lt; 2 5q" target=9hed/rt7=Fo97equal7l1284he5/rt.158a>-9gt;a href="k9the cl7_rq9/a>-&g7;rt9rqrr = <5a44pf="a href>7}
rt_rq-><5od="+code=9h="13#7=la9s="12#7 p="sr)5sref"58a h9ef="k98nel1364span clas4   /*65 */4>
 50n>4>
98>hde=693#L515"nel13#5hed/rt.sofna ehrerunning 54pode=rfire=rt.1ehlimi32me="Lrunning) {hlimi3reemp06"> 506
 435,t;
7}
 46666666665464rr = <5a44pf="ef=> 54pode=rfire=rt.1ehlimi3_max2me="Lrunning) {hlimi3_maxreemp06"> 506
 435,t;
7}
 54" class="sr,3"5L5>1265e="9clas="sunl9ce_rt_6)"sref"5rd * 54pode=rfire=RLIM_INFINITYd >=_rq-><5sa>
 692
5a hre59 46re/5212#L544" 9ced/rt7=Fo9"+code6rt_rq" 5pu="s59ed_9tL43899upri=7ae=rflags>rt_e5rq * 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */
1265e="9che cl7_rq9ref="k6rnel1295hed/r5906e9"L43899 430<77              rnel13#5hed/rt.nextd  506
 506
rr = <5a44pf="),trr = rr = ;
7}
 4"5inlin59de 9n/a>(99 4l1275   an clas4 506
 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */
void.1_pan>6onextd 6oa7"> 44" i"L438"> 43547"> 54t="+code=rt_rcpuaim7_expi"d#q"   tas30me"#g5puaim7_expi"d#pan>
 44" i"L438"> 43547"> 54t="+code=rt_rsaref="kerne if (sepan>
doua>
 un="#um_execLruntim7pf="a href>7}
 506code=rt5rq" c59_rt9""sre99 *73"75e=rel1d_=tase="shed_rt_ent6od="+code=9="kern6cla9="+cod6=rt_rq"5clas=59ref9>rt_r99reched_=tase="shed_rt_ent6od="+code=929ched6pus9allowe6>rt_ ==51e506599->9965 54" class="sr,3"5L5>1265e=20clas="7 i20claswe6>rt_ ==51e506599<20cla>20cleche713#L51479void.1_pan>6oa>) {#L5k_ana ehrerunning) {#L5k_anef=rt=.t_"L5>rt_nt rt_e506"> 506
rt_"L524" class="13#L5>132me="Lrunning) {
 435, ri="sr,3"rieme="L48>
  a47rr = <>
  a4pf="_al/pre>rr> 54" class="sr,3"5L5>1265e=20c1as="7 i20c92"> 692
5a hre5920c1pri=6ae=rrr=cpus_allowee5>a href="20c2as="7 i20c*_rco62#L494"5id="L59 *20c*_>20c="sr,753he559ime" cl>rt_"L524" clas#c;tA_rrta>rt_e506"> 506
rlass. */ef=4pus_tt_"L5rt_rqp7"> 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */a href>7}
 547}
ed/rt.1220c4as="7 i20cef="k6rnel1295hed/r590620cef>20ced/rt713#L515" id13#5hed/rt.updatet526/_ana ehrerunning 506
 54" class="sr,3"5L5>1265e=20c5as="7 i20cref="651"> 4"5inlin59de20cre>20cclass77">rt_rq-><5od="+code20c6as="7 i20c=rt_b6ual_pri5_rt_b59un20c=r>20c6d/rt713#L515" id13#5hed/rt.watchdocl.12-lass=="kerwatchdocef=rt06"> 506
 506
 435_la> 54" class="sr,3"5L5>1265e=20c7as="7 i20c"> 506code=rt5rq" c59_r20c">>20c *}
20c8 hde693#L515"   * clasn *"ofeless /*Ame> *"comment"> */4>
   * wlocations4 RRla> */5="sref">r201las="7 i20L5>1317e="L5656> 56561 *20L5>>20L5 id=64span clas4   * wlocations4 FIFOla> */5.12#L471"20L1as="7 i20lass="73#L5>1362e="L61"k20las>20L   * co creeeeeeeeeeeaBAme> *"comment"> */4>
 * 44" i"L438"> 43547"> 54t="+code=rt_rqolic="Laseode=rfire=qolic=pf="e!7"> 54pode=rfire=SCHED_RR"Laseode=rfire=SCHED_RRpf="_allowee>rt_  lt; 2 5q" target20L3as="7 i20"+code7rt_enti6y" re61ed20"+c>20Lupri=7ae=rflags>rt_e5" id13la> 54" class="sr,3"5L5>1265e=20L4as="7 i20ref">r7;
<6 href610620ref>20L*20L5as="7 i20ref">r7;
<6 href61de20ref>20Lclass76      ri="--06"> 506
 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */
 561un201me>20Lnel1377heded_="L55t_t" id13la> 54" class="sr,3"5L5>1265e=20L7as="7 i20empt_e73#9hed/6t.13#61">20emp>20L *}
 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */
a href>7}
20L65 54" class="sr,3"5L5>1265e=202las="7 i20 tase 7ith a n6wly w62a>20 ta>20 t hde693#L515"   * clasn *"ofeless /*Ame> *"comment"> */4>
1322e=6L565"625"20las>20    * co creeeeeeeeeeeasRe>
  a to.e*e end_>fo>
  a t_rwwn(>ndaampfnlaour"anc"stors)naretAmeAme> *"comment"> */4>
20 coel17874hed/rt.12#L474" eeeeeeeeeee*aol. Wele   *fn*incd*f2aa>< 4hgaicomment"> */5="sref">r20 3as="7 i20+code=7t_rq" c5="sr,52a>20+co>20 upri=78e=r/a/rt.12#L474" eeeeeeeeeee_BAme> *"comment"> */4>
20 ed/rt713#L515" id13#5hed/rt.u"!L4-1fo#c;tA_rrta> 506
rlass. */h href>>=_rq-><5sa>
20  4l1275   an clas4 506
rlass. */47"> 54t="+code=rt_r4un_lis47rlass. */
128me="L"d" nevpf="e!7"> 54pode=rfire= rt n7rlass. */47"> 54t="+code=rt_r4un_lis47rlass. */
r5;52a 201me>20 nel1377heded_="L55t_throttleeeeeeeee1_pan>6oid>
  ala>) {h47rlass. */
  ala>) {h4ef=rt06"> 506
 506
 435, 0_la> 54" class="sr,3"5L5>1265e=2027as="7 i20empt_e7d="L5295 clas52">20emp>20  *"hisrme="L4 nf=t) {oed=_as le*sl.12-lass=="ker nf=t) {oed=_as le*sreemp06"> 506
 435_la> 54" class="sr,3"5L5>1265e=2028as="7 i20="+cod733Le="L5ifdef52">20="+>20 L5>1377="+/rt.13#L515="L55t_t" id13la> 54" class="sr,3"5L5>1265e=2029as="7 i20521" i7="kerne51331h52d/20521>20 1" id7"L5555555555ed_d_=tase="shed_rt_ent6od="+code203las="7 i205652056*73"75e=rel1d_=tase="shed_rt_ent6od="+code2051as="7 i20ss="137L5>13125="L5653205 553 *20as=>205coel1709me="L464"> 46re/5212#L544"2053as="7 i20+code=7d="L5295 clas53">_>fo>544"2053as="7 i20 e="L464"> 4+co212#L544"2053as="7 s="152as>131+code=rt_r="sh7d_rt_hisrpf="lags>t_r=""shelagsf="+code=rt_b" flags>rt_e506"> sheL4-1fo#c;t9if">rd7 id9=rt_ru732me=;t9if"shefo#c;tA_rrta>void.1_pan>6oa>) {#L5k_ana ehrerunning) {#L5k_anef=rt=.t_"L5>rt_nt rtde693#L515" idBUG_s="7"f=9kernel7is opti5istic57 cl9ss="197L5>1377="+/rt.13#L515="L55t_t 506
 4353/ 54 href="+coan( 506<*/#c;"shemintchadge aft/b.526 was rea 43547"> 54t="+code=rt_rcpuaim7_expi"d#q"   tas30me"#g5puaim7_expi"d#pan>
 553 *20as=>20;tA_eent5"s>rtde693#L515" idBUG_s="7"f=9kernel7is opti5istic57 cl9ss="197L5>ass"8me="L"d" nf=cpus_al>ass"8me="5t_t 506
 4353/a>"hisrme"#g526/a>;
7me"#g"she=rfire=rrtclear=nd_ls="weempf06"> shela> 54" cl6512ri_fi9hed/rt75< 4hgaicomment4="L55t_t" /a>535">9565>" /aintchadge aft/b.526 was rea*<1d  435__73="kernel12#2hed/r6t.13#L512"8 class7 th8 tase=7pus*="c5mment55a><8pan c85 430<7////////////////////flags>rt_e1_pan>6ode>
  alass="13#L5>132me=" / 1" id7"L5ass="sr,3"5L5>1265e="9/aL5ass>" /od="+code203las="7 i20565" /_rt_ent6od="+code2051as="7 i20ss="134L5>13125="r9.12#L573" id="5543" 54="r9.>" /d_rt_ent6od=rget=9L4>12972#49ed/rt.72#L4gcoe709129erval55"> 553 *20as=>20gcoe709129erval55" 54" class="sr,3"5L5>1265e=20clas="7 i20claswe6>rt_ ==51e506599<20cla>20cleche713#L51479void.1_pan>6oa>) {#L5k_ana ehrerunning) {#L5k_anef=rt=.t_"L5>rt_nt  435__73="kernel12"8 clas+co212#L544"2053as="7 s="152as>141+code=rt_*/5.12#L471" 9rq" /lagsf="+code=rt_b" flags>rt_e506"> sh4L4-1fo#c;tee*BAme> *"comment"> */<;tee*>" /5="sr,3"5L5>12ri_fi9hed/rt75< 4hgaicomment4//* clalaattAme> * rDrqrt *d.c0*Ame.sr,753>fodim7slil. Wele   *fn*incd*f2aa>< 4hgaicomment4>rlass. */8me="L"d"oldq" tcpus_all*/8me>" /t-hrefout which_Bthen se9;t_rwwnan*incd.comme" //a>"hisrmede=693#L515t_rqecha>has"mede=>" /"L5295 clas52">r9_rq 435__73="kernel12"8 claseeeeeeeaBAme> *"comment"> */4>

20L="sr,753he559( * 44" i"L434la> 54" cl3="kernel12#2hed/r6t.13#cl3=">" /="+cod733Le="L5ifdef5mp06">693#L515" idBUG_ONe="L4a7"> 44" i"L438"> 43547"> 54t="+code=rt_r447rlass. */
" 7=">" 7="+cod733Le="t_rqrt_b"d#c;tA_eq48reemp06"> 506" 7 1" id7"L5e if ( 54 hrefL5e i>" 7="e!7"> 54pode=rfire=mp06">6target=9i><7 f=9+code=7d="L5" 7ss"c530220ef9>rt_rq7#L5>1255e="L4520ef9>" 7owee>rt_ ==.1_pan>6oCPUPRI_INVALID<" 7L5>13125="L512"9 ="13#7d/r9sd_fla7="L51>" 7p7"> 44" i"L438"> 43547"> 54t="+51+code=rt_0" 7lagsfconst265e=20c1as="7 i20c92"> 69220c1pri=6ae 506
20c1pt n7692rtde6="+code=rt_b" flags>rt_e506"> sh5L4-1fo#c;te9"L43895*" 75="sr,3"5L5>1a h/a_rcst"L48prevarg>128me="L"d" nevpf="e!t) {oed=_as le*sree59 *20c*_>20c="sr,753hfairn769220c1pfairn7692rt_e506"> sh5/rt93 href7>-&9href="7ean">r>" 76="sr,3"5L5>1a h/a_rcst"L48prenrq->> 553 *20as=>20;nrq->="e!t) {oed=_asn>
->55"> 553 *20as=>20;nrq->55"79rt_e506"> sh5>rlass. */"oldq" tcpus_allowe="kRT*/"ol>" 77="sr,3"5L5>1a h/a_rcst"L48prderq->> 553 *20as=>20derq->="e!t) {oed=_asn>
rt_e506"> sh5/a>"hisrmeker"hisrme="L44d " 78="sr,3"5L5>1a h/a_rcst"L48pryiel28me="L"d" nf=cpus_alyiel28me="="e!t) {oed=_as ln>

a"+code=rt_b" flags>rt_e506"> sh5la> 54" cl65e="9 class7 f=9kernel7cl65e>" 7ic"pf="ef=> 54pode=rfire=RR_TIMESLIC6="L55t_t" /a7   *ee" /a7>" /a="sr,3"5L5>1a h/a_rcst"L48prccomme  Drqrt_>1377="+/rt.13#L515=comme  Drqrt_>137="sr,3"5Ln>
1378"nextpf="_ href>>=comme  Drqrt_>1378"nsa>
a"+code=rt_b" flags>rt_e506"> sh6 1" id7"L53896s4" /_rt_ent6od="+code=9i65"> 75659/a><" /ss"c530220gt;96   *20gt;>" /2="sr,3"5L5>1a h/a_rcst"L48prp5 44" i"L438"> 5> 5
a"+code=rt_b" flags>rt_e506"> sh6L5>13125="el17874hed/rt.12#L474" e="el1>" /3="sr,3"5L5>1a h/a_rcst"L48prpu nf=ev8me="L"d" nf=cpuslcomm nf=ev8me="="e!t) {oed=_aa7"> 44" i"L438"> m nf=ev8me="8"nextpf="_ href>> m nf=ev8me="8"nsa>
a"+code=rt_b" flags>rt_e506"> sh61+code=rt_">rt9clas="7=a>9
r>" /s="7 i20"+code7rt_enti6y" re61ed20"+6L4-1fo#c;trne if ( 54 hr;trne>" /5="sra> tas30me"#g526/a>;
_7"> 54poode=rfire=r7"> 44" i"L438"> 435h href>>=_rq-><5sa>
id#can4" /6="sr,3"5L5>1a h/a_rcst"L48prselecf8me="8"a>20cleche713#L5selecf8me="8"a="e!t) {oed=_a7"> 44" i"L438">selecf8me="8"a55"> 553 *20as=>205clecf8me="8"a55"sa>
a"+code=rt_b" flags>rt_e506"> sh6>rlass. */e" i"L438"> 435_la> 54" */e" >" /s="7 i201me="L7end0 561un201m6/a>"hisrmer9_rq" /8="sr,3"5L5>1a h/a_rcst"L48pr5coelpus__rq 54" class="lpus__rqa7"> 44" i"L438">se="lpus__rq 553 *20as=>205coelpus__rq
a"+code=rt_b" flags>rt_e506"> sh6la> 54" cl"oldq" tcpus_allowe="kRTcl"ol>" /9="sr,3"5L5>1a h/a_rcst"L48pr"a5ons_allo0cleche713#L5145ons_al="e!t) {oed=_as lee693#L515" idBUG_s=5ons_al8"nextpf="_ href>>==5ons_al8"nsa>
a"+code=rt_b" flags>rt_e506"> sh7="L55t_t" 55t_throttlert_entitid#c" 55t>" 55="sr,3"5L5>1a h/a_rcst"L48pr"a5offs_allo0cleche713#L5145offs_al="e!t) {oed=_as ln>

a"+code=rt_b" flags>rt_e506"> sh7 1" id7"L59d="L477" c9ass="17#L4>1L59d=>" 51="sr,3"5L5>1a h/a_rcst"L48prpre_rt
a"+code=rt_b" flags>rt_e506"> sh7ss"c530220me> *"comment"> */>" 52="sr,3"5L5>1a h/a_rcst"L48prpost_rt 44" i"L438"> ost_rt> ost_rt
a"+code=rt_b" flags>rt_e506"> sh7L5>13125="a hre9rq7a> 9 *_rco7="a h>" 53="sr,3"5L5>1a h/a_rcst"L48prme="8woke99 430<77       me="8woke9="e!t) {oed=_as ln>
rt_e506"> sh71+code=rt_a>-9gt;->" 54="sr,3"5L5>1a h/a_rcst"L48pr5e> *"comment> 553 *20as=>205e> *"comment="e!t) {oed=_aa7"> 44" i"L438">span 7las4   *="commen A*BAme> *"comment"> */rt_e506"> sh7L4-1fo#c;t706e9"L43897*" 55="srat_rqr"+code=rt_b" flags>rt_e506"> sh7/" 56rt_ent6od="+code2051as="7 i20ss="137>rlass. */">rt9sed/rt7r>19s="12#7L*/">r>" 57="sr,3"5L5>1a h/a_rcst"L48pr5coel1709me="> 553 *20as=>205coel1709me="="e!t) {oed=_aa7"> 44" i"L438">s="sh712e="L555"> 553 *20as=>205coel1709me="L464"> a"+code=rt_b" flags>rt_e506"> sh7/a>"hisrme( 54 href="+come(" 58="sr,3"5L5>1a h/a_rcst"L48pr>9965->9965rt_ ==51e506599->9965 54"a"+code=rt_b" flags>rt_e506"> sh7la> 54" cl#c;tA_eq48reemp06"> 506" 5ic"pf="ef=> 54pode=rfire=RR_TIMESLIC8="L55t_t" "#g526/a>;
7" "#g>" "#="sr,3"5L5>1a h/a_rcst"L48prgcoe709129erval> 553 *20as=>20gcoe709129erval="sr,3"5L5>1e693#L515" idBUG_gcoe709129erval55"> 553 *20as=>20gcoe709129erval55" 54"a"+code=rt_b" flags>rt_e506"> sh8 1" id7"L5.12#L97a hde693#L515d_=tL5.12>" "_rt_ent6od="+code=9i65"> 75659/a><" 8ss"c530220>  5802e9"L43898  >" "2="sr,3"5L5>1a h/a_rcst"L48prp94 430<713#extpf="_ href>> s4 430<713#="e!t) {oed=_asn>
rt_e506"> sh8L5>13125="ime" cl>rt_"L524" class=="ime>" "3="sr,3"5L5>1a h/a_rcst"L48prBAme> *"com *="commen A*BAme> *"comto="e!t) {oed=_as a7"> 44" i"L438">span 7las   * post-hrefo*BAme> *"comment"> a"+code=rt_b" flags>rt_e506"> sh81+code=rt_d  435_allt_d <>" "4="sr}arget=9i><7 f=9+code=7d="L5" 8L4-1fo#c;t unsignd="lo" "erunning 508/rr = <5a44pf="a han/a>>" "6="sra> tas30me"#g526/a>;
_7"> 54por,753DEBUGe=rfire=r7"> 44" i"L438r,753DEBUGrunning 508>rlass. */an clas4   /*65<*/an >" "7="srex9ern="+code2052as="7 i20a#94nt20cleche713#L5#94nt1265e=seq_fiSD 4l1275   an clseq_fiSDt_"L5>rt_nt  553 *20as=>20m79rget=9-int <7cla9="+gt;<60unt9mevoid.1_pan>6oa>) {#L5k/sp"a>20cleche713#L5/sp"a 54"owee5>a href="20c2as"a>20cleche713#L5/sp"a 54"pan>6ode>
  alass="13#L5>132me=" 8/a>"hisrmemp06"> 506
" "=rfire=rrtclear=nd_ls="weempf06"> sh8la> 54" clmp06"> 506
" "ic"pf"+code2052as="7 i20a#94nt20c1p#94nt1265e=seq_fiSD 4l1275   an clseq_fiSDt_"L5>rt_nt  553 *20as=>20m79rget=9-int <7cla9="+gt;<60unt9me * 44" i"L439="L55t_t" 38"RLIMIT_RTTIMEa>;
" 38agsf="+code=rt_b" flags>rt_e506"> sh9 1" id7"L5q *" 3  lt; 2 5/a>
a href="20c2as"a_i9er_7e=rel}
 506
}
rlass. */

5a hre59" 3="sr,3"5L5>1265e=20c1as="7 i20c92">/sp"a>20cleche713#L5/sp"a 54"owee5>a href="20c2as"a>20cleche713#L5/sp"a 54"=rt_r447rlass. */
13125="" 3p7"> 44" i"L438"> 43547"> 54t="+91+code=rt_8"> 43547"> 54t="+code=rt_8">>" 3rq" c5="sr,52a>20+co>20 uprircu_ss77_ass">20cleche713#L5/cu_ss77_ass" 54" pan>6ode>
  alass="13#L5>132me=" 9L4-1fo#c;t),t" 3s="sr,3"5L5>1265e="9ef">rd7 id9"L496"2as"a>20cleche713#L5id9"L496"2as"aclass7 th8 tase=7pus*as"a>20cleche713#L5/sp"a 54"zal 5c_d/rm>) {var9ere=rel}
20cleche713#L5e7uo"aclass7 th8 tase=7pus+gt;<60unt9me * 44" i"L439/
" 3>rlass. */20cleche713#L5#94nt 553 *20as=>20m79=9-int <7cla9="+gt;<60unt9meee5>a href="20c2as"a>20cleche713#L5/sp"a 54"pan>6ode>
  alass="13#L5>132me=" 9>rlass. */"+code=rt_rsaref="kerne */"+c>" 3mintchadge aft/b.526 was rea/cu_ss77_unass">20cleche713#L5/cu_ss77_unass" 54" pan>6ode>
  alass="13#L5>132me=" 9/a>"hisrmeLruntim7pf="a href>7meLru>" 3=cpupri_fi9cernel71e596"> 506code=r" 3la> 54" cl""sre99 *73"75e=rel1d_=tcl""s>" 39="srat_rqrt_b"d#c;tA_eq48reemp06"> 506
an*incd.comme"16=rt_rq"5c1as=59ref9>rt_r99reched_=t1se="s1ed_rt_"L524" /div>


 /div>

rfoo9ere>
Thetoriginal LXR extpw021aby)nare* inSaniahttp://sourceid9ge.netL52ojects/lxre>LXR 8reeun4>
rt_rqexperiemp0al versionaby)* inSaniamailto:lxr@t_rux.no">lxr@t_rux.no
rsubfoo9ere>
lxr.t_rux.no kindly hostedaby)* inSaniahttp://www.redpill-t_r52o.no">Redpill L_r52o AS52ovider/4>