Re: + do_wait-wakeup-optimization.patch added to -mm tree

From: Roland McGrath
Date: Thu Dec 04 2008 - 16:00:46 EST


> > I don't see an exposed __wake_up* variant that both passes a "key" pointer
> > through and does "sync". For __wake_up_parent, "sync" is quite desireable.
>
> Well, yes... and __wake_up_common() is static. Perhaps we can make a new
> helper.

Right, that's what I was suggesting (and not volunteering to do ;-).

> I must admit, I don't understand what "sync" actually means nowadays.

I don't claim to know any actual scheduler innards. But the meaning as I
understand it is to "make it runnable, but don't try to reschedule right
now because current will block quite soon anyway. If this does indeed
reduce work done to immediately reschedule, then it seems quite desireable
to avoid that flutter since the dying/stopping thread is very few cycles
away from yielding, and in the death case it will be for the last time and
rescheduling earlier just means a later unnecessary switch back and delayed
put_task_struct processing after the reap.


Thanks,
Roland

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/