CPU_NEED_RESCHED(9) Kernel Developer's Manual CPU_NEED_RESCHED(9)

NAME

cpu_need_reschedcontext switch notification

SYNOPSIS

#include <sys/cpu.h>

void
cpu_need_resched(struct cpu_info *ci, int flags);

DESCRIPTION

The 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, 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.

If 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 the kernel code.

If RESCHED_IMMED flag is specified in flags, machine-dependent code should make a context switch happen as soon as possible. In that case, for example, 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.

Typically, the cpu_need_resched() function will perform the following operations:

SEE ALSO

sched_4bsd(9), userret(9)
July 31, 2010 NetBSD 6.1