Messages in this thread | | | Date | Thu, 13 Dec 2018 04:49:05 +0300 | From | "Dmitry V. Levin" <> | Subject | Re: [PATCH 1/8] perf: Allow to block process in syscall tracepoints |
| |
On Wed, Dec 12, 2018 at 08:26:39PM -0500, Steven Rostedt wrote: > On Thu, 13 Dec 2018 03:39:38 +0300, wrote: > > > btw, I didn't ask for the implementation to be ugly. > > You don't have to introduce polling into the kernel if you don't want to, > > userspace is perfectly capable of invoking wait4(2) in a loop. > > Just block the tracee, notify the tracer, and let it pick up the pieces. > > Note, there's been some discussion offlist to only have perf set a flag > when it dropped an event and have the ptrace code do the heavy lifting > of blocking the task and waking it back up. I think that would be a > cleaner solution and wont muck with perf as badly.
Yes, if perf could be instructed to invoke something like tracehook_report_syscall_entry/exit when it drops the event of entering/exiting syscall, that should probably be enough for the ptracer to do the recovery.
-- ldv [unhandled content-type:application/pgp-signature] | |