On Wed, 2016-08-03 at 12:32 +0100, Peter Maydell wrote: > Yeah, there's an LTP test that fails because of this (we > send a SIGSEGV when we should be sending a SIGBUS). It's > a bit painful to fix though, since as you say we've > effectively thrown away some information. I'm inclined to > put this in the big pile of "bugs we could fix if we > ever implemented linux-user-with-softmmu" and otherwise > ignore it, unless you have a real-world program that > needs this and makes some kind of bodge fix worthwhile.
Nope, not really... If we care, a simpler fix would be to add a "translate_user_fault" hook to the CPU class that takes more info about the original signal than handle_mmu_fault does, and call it when available (with a fallback) from user-exec.c That does mean going through all the cpu_signal_handler() variants in there though to make them extract more useful info. Not sure it's worthwhile... As far user-with-softmmu, I'm not too sure... softmmu significantly increases the overhead of load and stores. Maybe after we add 128-bit integers to TGC to alleviate that a bit ? :-) Cheers, Ben .