Deleted Added
full compact
sched_ule.c (144777) sched_ule.c (145256)
1/*-
2 * Copyright (c) 2002-2003, Jeffrey Roberson <jeff@freebsd.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2002-2003, Jeffrey Roberson <jeff@freebsd.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/kern/sched_ule.c 144777 2005-04-08 03:37:53Z ups $");
28__FBSDID("$FreeBSD: head/sys/kern/sched_ule.c 145256 2005-04-19 04:01:25Z jkoshy $");
29
30#include <opt_sched.h>
31
32#define kse td_sched
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/kdb.h>

--- 11 unchanged lines hidden (view full) ---

48#include <sys/sysproto.h>
49#include <sys/turnstile.h>
50#include <sys/vmmeter.h>
51#ifdef KTRACE
52#include <sys/uio.h>
53#include <sys/ktrace.h>
54#endif
55
29
30#include <opt_sched.h>
31
32#define kse td_sched
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/kdb.h>

--- 11 unchanged lines hidden (view full) ---

48#include <sys/sysproto.h>
49#include <sys/turnstile.h>
50#include <sys/vmmeter.h>
51#ifdef KTRACE
52#include <sys/uio.h>
53#include <sys/ktrace.h>
54#endif
55
56#ifdef HWPMC_HOOKS
57#include <sys/pmckern.h>
58#endif
59
56#include <machine/cpu.h>
57#include <machine/smp.h>
58
59/* decay 95% of `p_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */
60/* XXX This is bogus compatability crap for ps */
61static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */
62SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "");
63

--- 1322 unchanged lines hidden (view full) ---

1386 */
1387 newtd->td_kse->ke_flags |= KEF_DIDRUN;
1388 newtd->td_kse->ke_runq = ksq->ksq_curr;
1389 SLOT_USE(newtd->td_ksegrp);
1390 TD_SET_RUNNING(newtd);
1391 kseq_load_add(KSEQ_SELF(), newtd->td_kse);
1392 } else
1393 newtd = choosethread();
60#include <machine/cpu.h>
61#include <machine/smp.h>
62
63/* decay 95% of `p_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */
64/* XXX This is bogus compatability crap for ps */
65static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */
66SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "");
67

--- 1322 unchanged lines hidden (view full) ---

1390 */
1391 newtd->td_kse->ke_flags |= KEF_DIDRUN;
1392 newtd->td_kse->ke_runq = ksq->ksq_curr;
1393 SLOT_USE(newtd->td_ksegrp);
1394 TD_SET_RUNNING(newtd);
1395 kseq_load_add(KSEQ_SELF(), newtd->td_kse);
1396 } else
1397 newtd = choosethread();
1394 if (td != newtd)
1398 if (td != newtd) {
1399#ifdef HWPMC_HOOKS
1400 if (PMC_PROC_IS_USING_PMCS(td->td_proc))
1401 PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT);
1402#endif
1395 cpu_switch(td, newtd);
1403 cpu_switch(td, newtd);
1404#ifdef HWPMC_HOOKS
1405 if (PMC_PROC_IS_USING_PMCS(td->td_proc))
1406 PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_IN);
1407#endif
1408 }
1409
1396 sched_lock.mtx_lock = (uintptr_t)td;
1397
1398 td->td_oncpu = PCPU_GET(cpuid);
1399}
1400
1401void
1402sched_nice(struct proc *p, int nice)
1403{

--- 543 unchanged lines hidden (view full) ---

1947void
1948sched_unbind(struct thread *td)
1949{
1950 mtx_assert(&sched_lock, MA_OWNED);
1951 td->td_kse->ke_flags &= ~KEF_BOUND;
1952}
1953
1954int
1410 sched_lock.mtx_lock = (uintptr_t)td;
1411
1412 td->td_oncpu = PCPU_GET(cpuid);
1413}
1414
1415void
1416sched_nice(struct proc *p, int nice)
1417{

--- 543 unchanged lines hidden (view full) ---

1961void
1962sched_unbind(struct thread *td)
1963{
1964 mtx_assert(&sched_lock, MA_OWNED);
1965 td->td_kse->ke_flags &= ~KEF_BOUND;
1966}
1967
1968int
1969sched_is_bound(struct thread *td)
1970{
1971 mtx_assert(&sched_lock, MA_OWNED);
1972 return (td->td_kse->ke_flags & KEF_BOUND);
1973}
1974
1975int
1955sched_load(void)
1956{
1957#ifdef SMP
1958 int total;
1959 int i;
1960
1961 total = 0;
1962 for (i = 0; i <= ksg_maxid; i++)

--- 26 unchanged lines hidden ---
1976sched_load(void)
1977{
1978#ifdef SMP
1979 int total;
1980 int i;
1981
1982 total = 0;
1983 for (i = 0; i <= ksg_maxid; i++)

--- 26 unchanged lines hidden ---