[1/4] RFC: SLB rewrite (core rewrite)

Anton Blanchard anton at samba.org
Sun Jul 11 11:05:22 EST 2004



> He did do some timings, the difference was certainly tiny, although it
> might have been (just) measurable.

Yeah it was tiny, although David's slbtest showed it to be on average
just under 1 cycle faster (probably due to averaging the extra
misprediction per 60 iterations).

> Of course, I do also have a plan to get rid of the slbmfee and that
> loop by locking the kernel stack into a fixed SLB slot.  I have a
> patch to do it even, but I need to figure out how to get it to work on
> iSeries.

There are a few more things that would be interesting to look at:

- Are there any more segments we should bolt in? So far we have
  PAGE_OFFSET, VMALLOC_BASE and the kernel stack. It may make sense to
  bolt in a userspace entry or two. The userspace stack is the best
  candidate.  Obviously the more segments we bolt in, the less that are
  available for general use and bolting in more userspace segments will
  mean mostly kernel bound workloads will suffer (eg SFS). It may make
  sense to bolt in an IO region too.

- We currently preload a few userspace segments (stack, pc and task
  unmapped base). Does it make sense to restore the entire SLB state on
  context switch? One problem we have is that we usually enter the
  kernel via libc which is in a different segment to our program text.
  This means we always take an SLB miss when we return out of libc after
  a context switch. (ie we are guaranteed to take one SLB miss per
  context switch)

It would be interesting to get a log of SLB misses for a few workloads.

Anton

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list