Messages in this thread | | | Date | Mon, 30 Oct 2000 00:20:19 -0700 | From | "Jeff V. Merkey" <> | Subject | Re: 2.2.18Pre Lan Performance Rocks! |
| |
On Mon, Oct 30, 2000 at 09:26:59AM +0100, Ingo Molnar wrote: > > On Mon, 30 Oct 2000, Andi Kleen wrote: > > > One problem in Linux 2.2 is that kernel threads reload their VM on > > context switch (that would include the nfsd thread), this should be > > fixed in 2.4 with lazy mm. Hmm actually it should be only fixed for > > true kernel threads that have been started with kernel_thread(), the > > "pseudo kernel threads" like nfsd uses probably do not get that > > optimization because they don't set their MM to init_mm. > > yes, but for this there is an explicit mechanizm to lazy-MM during lengthy > system calls, an example is in buffer.c: > > user_mm = start_lazy_tlb(); > error = sync_old_buffers(); > end_lazy_tlb(user_mm); > > > > to get disproportiantely higher in Linux than NetWare 5.x and when it hits > > > 60% of total clock cycles, Linux starts dropping off. NetWare 5.x is 1/8 > > > > I think that can be explained by the copying. > > yes. Constant copying contaminates the L1/L2 caches and creates dirty > cachelines all around the place. Fixed in 2.4 + TUX ;-) >
Ingo, we need a build option to completely disable multiple address spaces for a start, and just map everything to a linear address space. This will eliminate the overhead of the CR3 activity. The use of segment registers for copy_to_user, etc. causes segment register reloads, which are very heavyweight on Intel.
Is there an option to map Linux into a flat address space like NetWare so I can do an apples to apples comparison of raw LAN I/O scaling?
> Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |