From owner-p4-projects@FreeBSD.ORG Sat Dec 1 22:50:11 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3FACB16A41A; Sat, 1 Dec 2007 22:50:11 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3512216A418 for ; Sat, 1 Dec 2007 22:50:10 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1C5FE13C457 for ; Sat, 1 Dec 2007 22:50:10 +0000 (UTC) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id lB1MoAsa086567 for ; Sat, 1 Dec 2007 22:50:10 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lB1Mo91B086561 for perforce@freebsd.org; Sat, 1 Dec 2007 22:50:09 GMT (envelope-from peter@freebsd.org) Date: Sat, 1 Dec 2007 22:50:09 GMT Message-Id: <200712012250.lB1Mo91B086561@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 129911 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Dec 2007 22:50:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=129911 Change 129911 by peter@peter_daintree on 2007/12/01 22:49:37 Initial compile fixes Affected files ... .. //depot/projects/bike_sched/sys/kern/kern_kthread.c#3 edit .. //depot/projects/bike_sched/sys/kern/kern_switch.c#5 edit .. //depot/projects/bike_sched/sys/kern/kern_thr.c#5 edit .. //depot/projects/bike_sched/sys/kern/sched_4bsd.c#9 edit .. //depot/projects/bike_sched/sys/kern/sched_ule.c#7 edit .. //depot/projects/bike_sched/sys/vm/vm_glue.c#4 edit Differences ... ==== //depot/projects/bike_sched/sys/kern/kern_kthread.c#3 (text+ko) ==== @@ -296,7 +296,7 @@ thread_link(newtd, p); thread_lock(oldtd); /* let the scheduler know about these things. */ - sched_fork_thread(oldtd, newtd); + sched_fork(oldtd, newtd); TD_SET_CAN_RUN(newtd); thread_unlock(oldtd); PROC_SUNLOCK(p); ==== //depot/projects/bike_sched/sys/kern/kern_switch.c#5 (text+ko) ==== @@ -585,7 +585,7 @@ * thread is being either created or recycled. * Fix up the per-scheduler resources associated with it. * Called from: - * sched_fork_thread() + * sched_fork() * thread_dtor() (*may go away) * thread_init() (*may go away) */ ==== //depot/projects/bike_sched/sys/kern/kern_thr.c#5 (text+ko) ==== @@ -170,7 +170,7 @@ default: return (EINVAL); } - + } /* Initialize our td */ newtd = thread_alloc(); if (newtd == NULL) ==== //depot/projects/bike_sched/sys/kern/sched_4bsd.c#9 (text+ko) ==== @@ -638,12 +638,6 @@ void sched_fork(struct thread *td, struct thread *childtd) { - sched_fork_thread(td, childtd); -} - -void -sched_fork_thread(struct thread *td, struct thread *childtd) -{ childtd->td_estcpu = td->td_estcpu; childtd->td_lock = &sched_lock; sched_newthread(childtd); ==== //depot/projects/bike_sched/sys/kern/sched_ule.c#7 (text+ko) ==== @@ -1996,24 +1996,6 @@ void sched_fork(struct thread *td, struct thread *child) { - THREAD_LOCK_ASSERT(td, MA_OWNED); - sched_fork_thread(td, child); - /* - * Penalize the parent and child for forking. - */ - sched_interact_fork(child); - sched_priority(child); - td->td_sched->ts_runtime += tickincr; - sched_interact_update(td); - sched_priority(td); -} - -/* - * Fork a new thread, may be within the same process. - */ -void -sched_fork_thread(struct thread *td, struct thread *child) -{ struct td_sched *ts; struct td_sched *ts2; @@ -2041,6 +2023,14 @@ ts2->ts_slptime = ts->ts_slptime; ts2->ts_runtime = ts->ts_runtime; ts2->ts_slice = 1; /* Attempt to quickly learn interactivity. */ + /* + * Penalize the parent and child for forking. + */ + sched_interact_fork(child); + sched_priority(child); + td->td_sched->ts_runtime += tickincr; + sched_interact_update(td); + sched_priority(td); } /* ==== //depot/projects/bike_sched/sys/vm/vm_glue.c#4 (text+ko) ==== @@ -921,6 +921,7 @@ !thread_safetoswapout(td)) { thread_unlock(td); goto nextproc; + } /* * If the system is under memory stress, * or if we are swapping