Re: 2.2.18Pre Lan Performance Rocks!

Jeff V. Merkey
2000-10-30T07:24:12Z

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