2.5 htab.c

Dave Engebretsen engebret at vnet.ibm.com
Fri Aug 9 08:59:11 EST 2002


As I have been merging iSeries into 2.5 & syncing the 2.4 / 2.5 little
fault handlers, a couple of things have come up.

First the easy one, in lpar_insert_hpte you have a comment asking about
why for guarded pages we turn off the coherent bit.  The history there
is that during bringup, guarded pages were marked as coherent as well.
The HV just rejects this combination of flags and does not insert the
PTE.  And yes, that one was fun to figure out :)  So, it is a relic that
could be fixed in a better way, if it has not been already.

Second, in a couple of places, you had removed the complete checks we
had for verifing a PTE before it is modified.  I believe this results in
the code being incorrect.  For example, in the updatepp path, we must
validate the entry before changing the pp bits, as the slot information
is really only a hint.  Just checking the avpn and valid bit is not
sufficient.  The hash group must also be checked as well.  I suspect you
were following the pSeries LPAR interface where the AVPN is used as a
hint on the PTE update paths.  The downside here is we now have 2
H-calls on the updatepp path.

The net of this is that the updatepp code has additional checks which
are required, I believe.  The hpte_invalidate path was also changed to
use the bolted tag, rather than the avpn hint.  This is needed for some
of the dynamic bolting work I have been doing.  It may result in a
slight increase in imprecise invalidations, but that would seem like a
very small hit.


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

More information about the Linuxppc64-dev mailing list