Scroll to navigation

UTRACE_BARRIER(9) utrace core API UTRACE_BARRIER(9)

NAME

utrace_barrier - synchronize with simultaneous tracing callbacks

SYNOPSIS

int utrace_barrier(struct task_struct * target, struct utrace_engine * engine);

ARGUMENTS

target

thread to affect

engine

engine to affect (can be detached)

DESCRIPTION

This blocks while target might be in the midst of making a callback to engine. It can be interrupted by signals and will return -ERESTARTSYS. A return value of zero means no callback from target to engine was in progress. Any effect of its return value (such as UTRACE_STOP) has already been applied to engine.

It´s not necessary to keep the target pointer alive for this call. It´s only necessary to hold a ref on engine. This will return safely even if target has been reaped and has no task refs.

A successful return from utrace_barrier guarantees its ordering with respect to utrace_set_events and utrace_control calls. If target was not properly stopped, event callbacks just disabled might still be in progress; utrace_barrier waits until there is no chance an unwanted callback can be in progress.

April 2023 Kernel Hackers Manual 2.6.