Date: Mon, 08 Aug 2011 12:00:27 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r224947 - soc2011/rudot/kern Message-ID: <20110808120028.0E28810656B5@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rudot Date: Mon Aug 8 12:00:27 2011 New Revision: 224947 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224947 Log: cpuset functionality added Modified: soc2011/rudot/kern/sched_fbfs.c Modified: soc2011/rudot/kern/sched_fbfs.c ============================================================================== --- soc2011/rudot/kern/sched_fbfs.c Mon Aug 8 11:33:07 2011 (r224946) +++ soc2011/rudot/kern/sched_fbfs.c Mon Aug 8 12:00:27 2011 (r224947) @@ -282,7 +282,6 @@ void sched_exit(struct proc *p, struct thread *td) { - KTR_STATE1(KTR_SCHED, "thread", sched_tdname(td), "proc exit", "prio:%d", td->td_priority); @@ -293,7 +292,6 @@ void sched_exit_thread(struct thread *td, struct thread *child) { - KTR_STATE1(KTR_SCHED, "thread", sched_tdname(child), "exit", "prio:%d", child->td_priority); mtx_lock_spin(&sched_lock); @@ -820,14 +818,22 @@ struct thread *td_min; struct td_sched *ts; int deadline_min; + int c; - td = td_min = TAILQ_FIRST(rqh); + td_min = NULL; + deadline_min = 0; + td = TAILQ_FIRST(rqh); MPASS(td != NULL); - MPASS(td_min != NULL); - deadline_min = td_min->td_sched->ts_vdeadline; - - td = TAILQ_NEXT(td, td_runq); while (td != NULL) { + c = PCPU_GET(cpuid); + if (!THREAD_CAN_SCHED(td, c)) { + td = TAILQ_NEXT(td, td_runq); + continue; + } + if (td_min == NULL) { + td_min = td; + deadline_min = td->td_sched->ts_vdeadline; + } ts = td->td_sched; if (ts->ts_vdeadline < deadline_min) { deadline_min = ts->ts_vdeadline; @@ -835,8 +841,6 @@ } td = TAILQ_NEXT(td, td_runq); } - - MPASS(td_min != NULL); return (td_min); } @@ -856,7 +860,6 @@ pri = RQB_FFS(rqb->rqb_bits[i]) + (i << RQB_L2BPW); if ((pri == RQ_TIMESHARE) || (pri == RQ_IDLE)) { td = edf_choose(&rq->rq_queues[pri]); - KASSERT(td != NULL, "runq_choose_bfs: no thread on busy queue"); return (td); } rqh = &rq->rq_queues[pri];
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110808120028.0E28810656B5>