On Thu, May 24, 2012 at 1:04 AM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 23 May 2012 23:38, Alex Barcelo <abarc...@ac.upc.edu> wrote: >> This *always* goes wrong without calling the signal handler > > I haven't looked too closely, but I suspect we're just not > paying any attention to whether memory does or doesn't have > the PROT_EXEC permission when we translate code from it.
Ok, makes sense. > This is the kind of corner case that the linux-user code is > often not very good at, because not many guest programs play > this sort of game. I see. But, does qemu-system play this sort of game? I haven't been able to find this sort of protect-catch-unprotect for execution, and my goal is to run qemu-system on top of qemu-user. The self-modifying code is done through the write protection of memory pages, but I can't see which would be the root problem. It seems that self-modifying code is done in two levels, in qemu-user and in qemu-system, but this should not be a problem... once the signal mask is correctly managed by usermode. Am I right? I plan to bugfix the usermode masking problem as best as I can, but first I wanted to make sure that this will bring me closer to the goal. Thanks a lot for your time and patience