| CPU_NEED_RESCHED(9) | Kernel Developer's Manual | CPU_NEED_RESCHED(9) | 
cpu_need_resched —
#include <sys/cpu.h>
void
  
  cpu_need_resched(struct
    cpu_info *ci, struct lwp
    *l, int flags);
cpu_need_resched() function is the
  machine-independent interface for the scheduler to notify machine-dependent
  code that a context switch from the current LWP l, on
  the cpu ci, is required. This event may occur if a
  higher priority LWP appears on the run queue or if the current LWP has
  exceeded its time slice. l is the last LWP observed
  running on the CPU. It may no longer be running, as
  cpu_need_resched() can be called without holding
  scheduler locks.
If the RESCHED_KPREEMPT flag is specified
    in flags and __HAVE_PREEMPTION
    C pre-processor macro is defined in
    <machine/intr.h>,
    machine-dependent code should make a context switch happen as soon as
    possible even if the CPU is running in kernel mode. If the
    RESCHED_KPREEMPT flag is not specified, then
    RESCHED_UPREEMPT is specified instead.
If the RESCHED_IDLE flag is specified in
    flags, the last thread observed running on the CPU was
    the idle LWP.
If RESCHED_REMOTE flag is specified in
    flags, the request is not for the current CPU. The
    opposite also holds true. If ci is not the current
    processor, cpu_need_resched() typically issues an
    inter processor call to the processor to make it notice the need of a
    context switch as soon as possible.
cpu_need_resched() is always called with
    kernel preemption disabled.
Typically, the cpu_need_resched() function
    will perform the following operations:
userret().| November 17, 2019 | NetBSD 10.0 |