Manual Page Result
0
Command: kpreempt_disable | Section: 9 | Source: NetBSD | File: kpreempt_disable.9
KPREEMPT(9) FreeBSD Kernel Developer's Manual KPREEMPT(9)
NAME
kpreempt - control kernel preemption
SYNOPSIS
#include <sys/systm.h>
void
kpreempt_disable(void);
void
kpreempt_enable(void);
bool
kpreempt_disabled(void);
DESCRIPTION
These functions are used to control kernel preemption of the calling LWP.
On architectures where kernel preemption is not supported natively, these
functions may still be used.
It should be noted that kernel preemption is also disabled when holding
the interrupt priority level above IPL_NONE, e.g. using spl(9) or
spinning mutex(9) calls or holding kernel_lock (indicating that the code
is not MT safe).
kpreempt_disable() disables kernel preemption of the calling LWP. Note
that disabling kernel preemption can prevent LWPs with higher priorities
from running.
kpreempt_enable() enables kernel preemption of the calling LWP, which was
previously disabled by kpreempt_disable().
kpreempt_disable() and kpreempt_enable() can be nested.
kpreempt_disabled() returns true if preemption of the calling LWP is
disabled. It is only for diagnostic purpose.
SEE ALSO
intro(9), mutex(9), spl(9)
FreeBSD 14.1-RELEASE-p8 February 16, 2010 FreeBSD 14.1-RELEASE-p8