diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index d8a213ccdc3b..5cd607ec8405 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -2088,49 +2088,6 @@ migrate_task(struct task_struct *p, int dest_cpu, struct migration_req *req) | |||
2088 | } | 2088 | } |
2089 | 2089 | ||
2090 | /* | 2090 | /* |
2091 | * wait_task_context_switch - wait for a thread to complete at least one | ||
2092 | * context switch. | ||
2093 | * | ||
2094 | * @p must not be current. | ||
2095 | */ | ||
2096 | void wait_task_context_switch(struct task_struct *p) | ||
2097 | { | ||
2098 | unsigned long nvcsw, nivcsw, flags; | ||
2099 | int running; | ||
2100 | struct rq *rq; | ||
2101 | |||
2102 | nvcsw = p->nvcsw; | ||
2103 | nivcsw = p->nivcsw; | ||
2104 | for (;;) { | ||
2105 | /* | ||
2106 | * The runqueue is assigned before the actual context | ||
2107 | * switch. We need to take the runqueue lock. | ||
2108 | * | ||
2109 | * We could check initially without the lock but it is | ||
2110 | * very likely that we need to take the lock in every | ||
2111 | * iteration. | ||
2112 | */ | ||
2113 | rq = task_rq_lock(p, &flags); | ||
2114 | running = task_running(rq, p); | ||
2115 | task_rq_unlock(rq, &flags); | ||
2116 | |||
2117 | if (likely(!running)) | ||
2118 | break; | ||
2119 | /* | ||
2120 | * The switch count is incremented before the actual | ||
2121 | * context switch. We thus wait for two switches to be | ||
2122 | * sure at least one completed. | ||
2123 | */ | ||
2124 | if ((p->nvcsw - nvcsw) > 1) | ||
2125 | break; | ||
2126 | if ((p->nivcsw - nivcsw) > 1) | ||
2127 | break; | ||
2128 | |||
2129 | cpu_relax(); | ||
2130 | } | ||
2131 | } | ||
2132 | |||
2133 | /* | ||
2134 | * wait_task_inactive - wait for a thread to unschedule. | 2091 | * wait_task_inactive - wait for a thread to unschedule. |
2135 | * | 2092 | * |
2136 | * If @match_state is nonzero, it's the @p->state value just checked and | 2093 | * If @match_state is nonzero, it's the @p->state value just checked and |