linux-2.2.13pre15 stability w/ head.S patch
Gabriel Paubert
paubert at iram.es
Fri Oct 29 20:34:30 EST 1999
On Thu, 28 Oct 1999, David Edelsohn wrote:
>
> The general, conservative procedure that should be followed for
> any BAT change is:
>
> li rX, 0
> mtdbatu N, rX
> isync
> mtdbatl N, rL
> mtdbatu N, rU
> isync
>
> I do not see the posted assembly code performing any isync's to prevent
> speculation. mtspr does not produce complete serialization in the
> pipeline, and the serialization is implementation-dependent.
Is it true even if you know that you have address translation turned off ?
I thought that mtspr (to privileged registers, not ctr/lr) are executed
strictly in the order they appear, so that no intermediate incoherent
state could appear.
OTOH when address translation is turned on (or when the its state is
unknown) I would have put an isync _before_ the first mtdbatu to make
sure that it does not interfere with previous instructions (this is
required from the manuals AFAICT).
Gabriel.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list