freebsd-dev/sys/cddl/dev
Mark Johnston a11ac730a7 Prevent CPU migration when checking the DTrace nofault flag on x86.
dtrace_trap() consumes page and protection faults triggered by code running
in DTrace probe context. Such faults occur with interrupts disabled and are
detected using a per-CPU flag. Regular faults cause dtrace_trap() to be
called with interrupts enabled, and nothing was ensuring that the flag was
read from the correct CPU. This may result in dtrace_trap() consuming
unrelated page and protection faults when DTrace is enabled, causing the
fault handler to return without actually having handled the fault.

Diagnosed by:	Ryan Libby <rlibby@gmail.com>
MFC after:	3 days
Sponsored by:	Dell EMC Isilon
2017-02-16 23:05:20 +00:00
..
dtmalloc The dtmalloc provider uses the short description of a malloc type as the 2013-06-28 03:14:40 +00:00
dtrace Prevent CPU migration when checking the DTrace nofault flag on x86. 2017-02-16 23:05:20 +00:00
fbt Revert crap accidentally committed 2017-01-28 16:31:23 +00:00
profile Add initial DTrace support for RISC-V. 2016-05-24 16:41:37 +00:00
sdt Initialize SDT probes during SI_SUB_DTRACE_PROVIDER. 2016-04-10 01:24:27 +00:00
systrace Re-check the systrace probe ID before calling dtrace_probe(). 2016-09-22 23:22:53 +00:00
prototype.c