**-p**, **--period** *us*

        Set the *osnoise* tracer period in microseconds.

**-r**, **--runtime** *us*

        Set the *osnoise* tracer runtime in microseconds.

**-s**, **--stop** *us*

        Stop the trace if a single sample is higher than the argument in microseconds.
        If **-T** is set, it will also save the trace to the output.

**-S**, **--stop-total** *us*

        Stop the trace if the total sample is higher than the argument in microseconds.
        If **-T** is set, it will also save the trace to the output.
