In some cases, the O(1) scheduler will produce higher latencies than
the old scheduler. On 'some' workloads/benchmarks the old scheduler
was better because it had a greater tendency to schedule tasks on the
same CPU. This is certainly the case with the lat_ctx and lat_pipe
components of LMbench. Note that this has nothing to do with the
wake_up sync behavior. Rather, it is the difference between scheduling
a new task on the current CPU as opposed to a 'remote' CPU. You can
schedule the task on the current CPU quicker, but this is not good for
optimal cache usage. I believe the O(1) scheduler makes the correct
trade off in this area.
Is there anything simple I can do to check the latencies of the
pthread_cond_*() functions? I'd like to do some analysis of
scheduler behavior, but am unfamiliar with the user level code.
-- Mike - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/