]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dtrace: prevent Oops caused by preemption issues with probes
authorKris Van Hees <kris.van.hees@oracle.com>
Fri, 13 Sep 2013 14:36:07 +0000 (10:36 -0400)
committerKris Van Hees <kris.van.hees@oracle.com>
Tue, 17 Sep 2013 11:26:43 +0000 (07:26 -0400)
commit2c6c9aadeb7b5f8a60e18a4e44438879a7599f4e
tree2569cde051b9f1536b8f4cbd46fe7a567476a1e9
parentd8a2826898f6b941ed9f86a6eaa9ecc224153476
dtrace: prevent Oops caused by preemption issues with probes

It was possible (specifically with direct-call probes) for the execution of
actions (using the DIF emulator) to get preempted, causing interesting side
effects because dtrace_probe() (and the functions it calls) are designed to
run on a specific CPU without any interruption especially not from another
call to dtrace_probe()).  Since the UEK3 kernel uses voluntary preemption,
the behaviour was not as expected and explicit preemption protection had to
be added to resolve this.

Orabug: 17403196
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/dtrace_probe.c
dtrace/include/dtrace/dtrace_impl_defines.h