Messages in this thread | | | From | (Linus Torvalds) | Subject | Re: Using %cr2 to reference "current" | Date | Tue, 6 Nov 2001 17:02:32 +0000 (UTC) |
| |
In article <9s82rl$k51$1@cesium.transmeta.com>, H. Peter Anvin <hpa@zytor.com> wrote: > >Is using %cr2 really faster than the old implementation, or is there >another reason? It seems that the alignment constraints on the stack >still remains, since the %esp solution still remains in places...
I think the _real_ issue with that patch is that %cr2 is by no means architecturally even guaranteed to work the way the patches want it to work.
It's simply not a general-purpose register, and I don't see why it is assumed to be (a) fast (b) stable and (c) writable.
I could well imagine a x86-compatible chip where %cr2 isn't even writable. In fact, reading the intel documentation, I see _nowhere_ a mention of %cr2 being writable at all - it all just says "contains the fault address".
Similarly, there is _nothing_ that guarantees that the low bits of %cr2 are meaningful, writable, or even implemented.
Which means that the whole approach is just depending on undocumented implementation behaviour. That's asking for trouble.
Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |