Riccardo wrote:
Hey,
Here is the final implementation (before commit). I have 0 regressions on my laptop. BTW, I've removed
one or two mutex protections which looks like causing a deadlock in glibc when the world is suspended.
I do not yet understand how this can be caused but removing them suppresses the deadlocks and
GCTest passes everytime I've run it here (for the time being). We'll need to clear this up to check whether
it is really a glibc bug.
Adam, could you try it on your real SMP ?
you worked on legolas last day, which is a true SMP box and has no libc... and it "hangs" right now. Any more insights from that ?
cheers,
Riccardo
The hang is due to another error. :) Here is a summary of yesterday:
pthreads/signal.c detects stack boundaries by catching SIGSEGV, SIGBUS. But it was not restoring handlers.
In processClass, the JIT is called and a SIGBUS is thrown by KaffeJIT_establishConstants. The SIGBUS jumps again in detectStackBoundaries and hangs somewhere because the stack is completely wrong now.
I've solved the hang problem by uninstalling the signal handlers so kaffe is now throwing a SIGBUS and generates a coredump. However I still not understand why there is a SIGBUS at that point at the pointers looks correct.
Cheers,
Guilhem.
_______________________________________________ kaffe mailing list [email protected] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
