Page MenuHomeFreeBSD

D22624.id.diff
No OneTemporary

D22624.id.diff

Index: head/sys/kern/sched_ule.c
===================================================================
--- head/sys/kern/sched_ule.c
+++ head/sys/kern/sched_ule.c
@@ -1463,7 +1463,7 @@
/* Add thread0's load since it's running. */
TDQ_LOCK(tdq);
- thread0.td_lock = TDQ_LOCKPTR(TDQ_SELF());
+ thread0.td_lock = TDQ_LOCKPTR(tdq);
tdq_load_add(tdq, &thread0);
tdq->tdq_lowpri = thread0.td_priority;
TDQ_UNLOCK(tdq);
@@ -2913,6 +2913,7 @@
spinlock_exit();
PCPU_SET(switchtime, cpu_ticks());
PCPU_SET(switchticks, ticks);
+ PCPU_GET(idlethread)->td_lock = TDQ_LOCKPTR(tdq);
} else {
tdq = TDQ_SELF();
MPASS(td->td_lock == TDQ_LOCKPTR(tdq));
@@ -2943,8 +2944,6 @@
*/
cpuid = PCPU_GET(cpuid);
tdq = TDQ_SELF();
- if (TD_IS_IDLETHREAD(td))
- td->td_lock = TDQ_LOCKPTR(tdq);
MPASS(td->td_lock == TDQ_LOCKPTR(tdq));
td->td_oncpu = cpuid;
TDQ_LOCK_ASSERT(tdq, MA_OWNED | MA_NOTRECURSED);

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 6, 5:51 AM (12 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30941649
Default Alt Text
D22624.id.diff (919 B)

Event Timeline