Hi Steven,I think, 2 things should be accomplished here : (1) be sure to pull the _highest_ prio task ; i.e. the _highest_ prio task amongst all runnable (but not running) RT tasks across all the run-queues which is capable of running on this_cpu ; (2) don't pull more than 1 task at once. that said, just pull the highest prio task and run it. --- why (2)? Just to avoid situations when tasks are being pulled/pushed back and forth between run-queues. Let's say we have 4 cpu system: 0: task(10) , task(92) 1: task(10), task(91) 2: task(10), task(90) 3: task(10) when task(10) on cpu#3 is inactive, we pull task(92), task(91), task(90) and then run task(90)... in the mean time, some of cpu[0..2] becomes inactive and pull task(91) and task(92) back and run them... that may repeat again and again depending on when/how long task(10) run on their corresponding cpus... so it seems to me that the more optimal behavior would be "don't pull more than you can run at the moment -- that's 1". to this goal, something like find_lock_highest_rq() would be necessary. and I guess, {get,put}_task_struct() should be used in pull_rt_task() for the 'next' in a similar way as it's done in push_rt_task() . -- Best regards, Dmitry Adamushko -
| Greg Kroah-Hartman | [PATCH 006/196] Chinese: add translation of oops-tracing.txt |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Borislav Petkov | 2.6.23-rc1: no setup signature found... |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [BUG] New Kernel Bugs |
