> So the best approach is a combination of the two patches. SMP-on-UP for
> everything outside of spinlocks, and then manually yielding locks that cause
> problems. Both Robert Love and Andrew Morton have come out in favor of each
> other's patches on lkml just in the past few days. The patches work together
> quite well, and each wants to see the other's patch applied.
Right. Here is what I want for 2.5 as a _general_ step towards a better
kernel that will yield better performance:
Merge the preemptible kernel patch. A version is now out for
2.5.2-pre11 with support for Ingo's scheduler:
ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
Next, make available a tool for profiling kernel latencies. I have one
available now, preempt-stats, at the above url. Andrew has some
excellent tools available at his website, too. Something like this
could even be merged. Daniel Phillips suggested a passive tool on IRC.
Preempt-stats works like this. It is off-by-default and, when enabled,
measures time between lock and unlock, reporting the top 20 worst-cases.
Begin working on the worst-case locks. Solutions like Andrew's
low-latency and my lock-break are a start. Better (at least in general)
solutions are to analyze the locks. Localize them; make them finer
grained. Analyze the algorithms. Find the big problems. Anyone look
at the tty layer lately? Ugh. Using the preemptive kernel as a base
and the analysis of the locks as a list of culprits, clean this cruft
up. This would benefit SMP, too. Perhaps a better locking construct is
useful.
The immediate result is good; the future is better.
Robert Love
-
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/