[lttng-dev] Compat syscall instrumentation and return from execve issue

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Nov 18 09:57:17 EST 2015


----- On Nov 11, 2015, at 8:08 PM, Andy Lutomirski luto at amacapital.net wrote:

> On Mon, Nov 9, 2015 at 6:31 PM, Steven Rostedt <rostedt at goodmis.org> wrote:
>> On Mon, 9 Nov 2015 17:51:25 -0800
>> Andy Lutomirski <luto at amacapital.net> wrote:
>>
>>
>>> do_syscall_32_irqs_on would call syscall_return_slowpath(regs,
>>> AUDIT_ARCH_I386).  do_syscall_64 (which doesn't exist yet) would call
>>> syscall_return_slowpath(regs, AUDIT_ARCH_X86_64).
>>>
>>
>> OK, so you are saying that a execve that switches the current state
>> into ia32 will return from the do_syscall_64 regardless? Then we would
>> have to add tracepoints that would be for both ia32 and x86_64. But
>> that would solve the current issue at hand.
>>
> 
> Indeed.  Unlike fork/clone, execve is only magical insofar as it does
> magical things to task_struct and it enters in the 64-bit native case
> through a nasty asm path.  The former has no effect on the entry code
> (except most likely blocking opportunistic sysret because we're a bit
> silly and it might break ABI to change that), and the latter barely
> matters for this purpose.  In any event, I'm planning on getting rid
> of the asm stub for 4.5 if I can get the code written and tested in
> time.

I guess there are no plans to do this kind of change to other
architectures in the near future ? If so, we might want to
investigate the thread status flag approach for other architectures,
and use the AUDIT_ARCH_* approach for x86.

Thoughts ?

Thanks,

Mathieu

> 
> --Andy
> 
> 
> 
> 
> --
> Andy Lutomirski
> AMA Capital Management, LLC

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list