Messages in this thread | | | Subject | Re: [2.4.17/18pre] VM and swap - it's really unusable | From | Robert Love <> | Date | 12 Jan 2002 01:01:39 -0500 |
| |
On Fri, 2002-01-11 at 15:22, Rob Landley wrote:
> 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/
| |