On 03/18, Roland McGrath wrote:
Yes, but the other side lacks a barrier. UTRACE_REPORT does
utrace-report = 1;
wmb(); // actually mb, but wmb is enough
set _TIF_NOTIFY_RESUME;
do_notify_resume()-utrace_resume()-start_report() path does
if (_TIF_NOTIFY_RESUME)
On 03/12, Roland McGrath wrote:
So I think we need this:
@@ -181,7 +181,13 @@ static int utrace_add_engine(struct task_struct *target,
* also set. Otherwise utrace_control() or utrace_do_stop()
* might skip setting TIF_NOTIFY_RESUME upon seeing -report
I'm afraid I wasn't clear again,
On 03/12, Oleg Nesterov wrote:
Oh. utrace_attach_task()-utrace_add_engine() sets -report +
TIF_NOTIFY_RESUME.
But tracehook_notify_resume() does nothing because -utrace_flags == 0 ?
Confused.
Perhaps this is not problem per se. But let's suppose we call,
Hmm. But this leads to another question: why does utrace_reset() set
UTRACE_EVENT(REAP) ?
This looks as: make sure -utrace_flags is never 0 unless we detach
all engines. Perhaps because sometimes, say tracehook_notify_resume(),
we just check task_utrace_flags() != 0 ?
Right, it's an