On Sun, Aug 21, 2011 at 07:24:35AM -0400, Andrew Lutomirski wrote: > I don't see the point of all this hackery at all. sysenter/sysexit > indeed screws up some registers, but we can return on the iret path in > the case of restart.
We *do* return on iret path in case of restart, TYVM. > So why do we lie to ptrace (and iret!) at all? Why not just fill in > pt_regs with the registers as they were (at least the > non-clobbered-by-sysenter ones), set the actual C parameters correctly > to contain the six arguments (in rdi, rsi, etc.), do the syscall, and > return back to userspace without any funny business? Is there some > ABI reason that, once we've started lying to tracers, we have to keep > doing so? We do not lie to ptrace and iret. At all. We do just what you have described. And fuck up when restart returns us to the SYSCALL / SYSENTER instruction again, which expects the different calling conventions, so the values arranged in registers in the way int 0x80 would expect do us no good. ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel