[Top] [All Lists]

Re: get_mmu_context()

To: Rik van Riel <>
Subject: Re: get_mmu_context()
Date: Thu, 15 Oct 1998 01:49:55 +0200
Cc: Vladimir Roganov <>,,,,
In-reply-to: <Pine.LNX.3.96.981014144230.10483B-100000@mirkwood.dummy.home>; from Rik van Riel on Wed, Oct 14, 1998 at 02:45:45PM +0000
References: <> <Pine.LNX.3.96.981014144230.10483B-100000@mirkwood.dummy.home>
On Wed, Oct 14, 1998 at 02:45:45PM +0000, Rik van Riel wrote:

> > Ok, here is a draft version of an agressively optimized version of
> > get_mmu_context().  I just didn't like the idea of referencing
> > global variables in get_mmu_context() if avoidable.  The code below
> > will work on both R3000 and R4000 with no performance penalty for
> > being generic.  The trick is to patch the operands of two machine
> > instructions at runtime, shoot me.
> ROFL! No offense to the code, I'm sure it works, but
> this just _has_ to be the funniest piece of source
> code to appear on the lists this month...
> Self-modifying code -- this is so much fun :)

Lame example of self modifying code, it doesn't even modify the instructions
and only on bootup.

> > extern inline void r3000_asid_setup(void)
> > 
> > extern inline void r4xx0_asid_setup(void)
> Very nice Ralf... My compliments on this piece
> of code -- I can only imagine the amount of
> phantasy and inspiration that was needed to
> create it...

Guess why I had to post it :-)  Seriously, I didn't like the proposed
alternative and some of the older machines which have main memory latencies
like 1400ns for shure win each time when _not_ using memory.  Even in
case of a l1 hit the amount of time wasted for the load should still be
visible in context switching times.  So, no mercy.  Patch as patch can.
And maintenance isn't the issue.  I messed it up, I maintain it :-)


<Prev in Thread] Current Thread [Next in Thread>