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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to