Deleted Added
full compact
kern_idle.c (172836) kern_idle.c (173004)
1/*-
2 * Copyright (C) 2000-2004 The FreeBSD Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

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

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
1/*-
2 * Copyright (C) 2000-2004 The FreeBSD Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

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

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
27__FBSDID("$FreeBSD: head/sys/kern/kern_idle.c 172836 2007-10-20 23:23:23Z julian $");
27__FBSDID("$FreeBSD: head/sys/kern/kern_idle.c 173004 2007-10-26 08:00:41Z julian $");
28
29#include <sys/param.h>
30#include <sys/systm.h>
31#include <sys/kernel.h>
32#include <sys/kthread.h>
33#include <sys/lock.h>
34#include <sys/mutex.h>
35#include <sys/proc.h>

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

55 struct pcpu *pc;
56#endif
57 struct proc *p;
58 struct thread *td;
59 int error;
60
61#ifdef SMP
62 SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
28
29#include <sys/param.h>
30#include <sys/systm.h>
31#include <sys/kernel.h>
32#include <sys/kthread.h>
33#include <sys/lock.h>
34#include <sys/mutex.h>
35#include <sys/proc.h>

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

55 struct pcpu *pc;
56#endif
57 struct proc *p;
58 struct thread *td;
59 int error;
60
61#ifdef SMP
62 SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
63 error = kproc_create(sched_idletd, NULL, &p,
64 RFSTOPPED | RFHIGHPID, 0, "idle: cpu%d", pc->pc_cpuid);
65 pc->pc_idlethread = FIRST_THREAD_IN_PROC(p);
63#endif
64 error = kproc_kthread_add(sched_idletd, NULL, &p, &td,
65 RFSTOPPED | RFHIGHPID, 0, "idled", "idle: cpu%d", pc->pc_cpuid);
66#ifdef SMP
67 pc->pc_idlethread = td;
66#else
68#else
67 error = kproc_create(sched_idletd, NULL, &p,
68 RFSTOPPED | RFHIGHPID, 0, "idle");
69 PCPU_SET(idlethread, FIRST_THREAD_IN_PROC(p));
69 PCPU_SET(idlethread, td);
70#endif
70#endif
71 p = td->td_proc;
71 if (error)
72 panic("idle_setup: kproc_create error %d\n", error);
73
72 if (error)
73 panic("idle_setup: kproc_create error %d\n", error);
74
74 PROC_LOCK(p);
75 p->p_flag |= P_NOLOAD;
75 p->p_flag |= P_NOLOAD;
76 td = FIRST_THREAD_IN_PROC(p);
77 thread_lock(td);
78 TD_SET_CAN_RUN(td);
79 td->td_flags |= TDF_IDLETD;
80 sched_class(td, PRI_IDLE);
81 sched_prio(td, PRI_MAX_IDLE);
82 thread_unlock(td);
76 thread_lock(td);
77 TD_SET_CAN_RUN(td);
78 td->td_flags |= TDF_IDLETD;
79 sched_class(td, PRI_IDLE);
80 sched_prio(td, PRI_MAX_IDLE);
81 thread_unlock(td);
83 PROC_UNLOCK(p);
84#ifdef SMP
85 }
86#endif
87}
82#ifdef SMP
83 }
84#endif
85}