SMP - CPU local run queues
- each CPU has its own runqueues
- processes on BSP are put on the runqueues later after a switch to
the final stack when cpuid works to avoid special cases
- enqueue() and dequeue() use the run queues of the cpu the process is
assigned to
- pick_proc() uses the local run queues
- printing of per-CPU run queues ('2') on serial console
This commit is contained in:
@@ -102,6 +102,12 @@ _PROTOTYPE( int disable_irq, (const irq_hook_t *hook) );
|
||||
|
||||
/* debug.c */
|
||||
_PROTOTYPE( int runqueues_ok, (void) );
|
||||
#ifndef CONFIG_SMP
|
||||
#define runqueues_ok_local runqueues_ok
|
||||
#else
|
||||
#define runqueues_ok_local() runqueues_ok_cpu(cpuid)
|
||||
_PROTOTYPE( int runqueues_ok_cpu, (unsigned cpu));
|
||||
#endif
|
||||
_PROTOTYPE( char *rtsflagstr, (int flags) );
|
||||
_PROTOTYPE( char *miscflagstr, (int flags) );
|
||||
_PROTOTYPE( char *schedulerstr, (struct proc *scheduler) );
|
||||
|
||||
Reference in New Issue
Block a user