Messages in this thread | | | Subject | Re: [RFC PATCH v3 0/3] sched: simplify the select_task_rq_fair() | From | Peter Zijlstra <> | Date | Fri, 22 Feb 2013 10:57:36 +0100 |
| |
On Fri, 2013-02-22 at 17:11 +0800, Michael Wang wrote:
> Ok, it do looks like wake_affine() lost it's value...
I'm not sure we can say that on this one benchmark, there's a preemption advantage to running on a single cpu for pipe-test as well. We'd need to create a better benchmark to test this, one that has some actual data payload and control over the initial spread of the tasks or so.
> > Now as far as I can see there's two options, either we find there's > > absolutely no benefit in wake_affine() as it stands today and we simply > > disable/remove it, or we go fix it. What we don't do is completely > > wreck it at atrocious cost. > > I get your point, we should replace wake_affine() with some feature > which could really achieve the goal to make client and server on same cpu. > > But is the logical that the waker/wakee are server/client(or reversed) > still works now? that sounds a little arbitrary to me...
Ah, its never really been about server/client per-se. Its just a specific example -- one that breaks down with the 1:n pgbench situation.
Wakeups in general can be considered to be a relation, suppose a hardware interrupt that received some data from a device and issues a wakeup to a task to consume this data. What CPU would be better suited to process this data then the one where its already cache hot.
| |