sparc64 kernel code question..

Julian Elischer julian at elischer.org
Sun May 9 15:44:44 PDT 2004


in vm_machdep.c the sparc64  code has
void
cpu_sched_exit(struct thread *td)
{
        struct vmspace *vm;
        struct pcpu *pc;
        struct proc *p;

        mtx_assert(&sched_lock, MA_OWNED);
 
        p = td->td_proc;
        vm = p->p_vmspace;
        if (vm->vm_refcnt > 1)
                return;
        SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
                if (pc->pc_vmspace == vm) {
                        vm->vm_pmap.pm_active &= ~pc->pc_cpumask;
                        vm->vm_pmap.pm_context[pc->pc_cpuid] = -1;
                        pc->pc_vmspace = NULL;
                }
        }
}



This is thw only architecture that has this..
What does it do? And what does it have to do with the scheduler?

thanks

Julian



More information about the freebsd-current mailing list