On 09.03.2010 00:18, Myles Watson wrote:
I divided the CAR copy into pieces to debug memory corruption that I'm seeing. It seems to fit a pattern, but I'm not sure what would be
causing
it. Any ideas would be appreciated.
To be honest, if post_cache_as_ram() works at all on K8, it is mostly luck.
:)
The memory copy is not inline asm (will lead to subtle corruption), the memory copy and the stack switching are not in one inline asm block (gcc is free to insert arbitrary code in between), and the stack is switched in the middle of a function (gcc may use some non-clobbered regs to access the old stack, or simply die).
Throwing out the complete v2 K8 CAR disabling code and replacing it with the v3 code is one of the possible fixes.
Unfortunately, v3 never worked for K8.
Thanks, Myles