Commit 90b5363
sched: Clean up scheduler_ipi()
The scheduler IPI has grown weird and wonderful over the years, time
for spring cleaning.
Move all the non-trivial stuff out of it and into a regular smp function
call IPI. This then reduces the schedule_ipi() to most of it's former NOP
glory and ensures to keep the interrupt vector lean and mean.
Aside of that avoiding the full irq_enter() in the x86 IPI implementation
is incorrect as scheduler_ipi() can be instrumented. To work around that
scheduler_ipi() had an irq_enter/exit() hack when heavy work was
pending. This is gone now.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Link: https://lkml.kernel.org/r/20200505134058.361859938@linutronix.de1 parent b1d1779 commit 90b5363
3 files changed
+36
-39
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
222 | 229 | | |
223 | 230 | | |
224 | 231 | | |
| |||
314 | 321 | | |
315 | 322 | | |
316 | 323 | | |
| 324 | + | |
317 | 325 | | |
318 | 326 | | |
319 | 327 | | |
320 | 328 | | |
321 | 329 | | |
322 | | - | |
323 | | - | |
324 | | - | |
| 330 | + | |
325 | 331 | | |
326 | | - | |
327 | 332 | | |
328 | 333 | | |
329 | 334 | | |
| |||
650 | 655 | | |
651 | 656 | | |
652 | 657 | | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
653 | 668 | | |
654 | 669 | | |
655 | 670 | | |
| |||
2292 | 2307 | | |
2293 | 2308 | | |
2294 | 2309 | | |
| 2310 | + | |
| 2311 | + | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
2295 | 2315 | | |
2296 | 2316 | | |
2297 | 2317 | | |
| |||
2300 | 2320 | | |
2301 | 2321 | | |
2302 | 2322 | | |
2303 | | - | |
2304 | | - | |
2305 | | - | |
2306 | | - | |
2307 | | - | |
2308 | | - | |
2309 | | - | |
2310 | | - | |
2311 | | - | |
2312 | | - | |
2313 | | - | |
2314 | | - | |
2315 | | - | |
2316 | | - | |
2317 | | - | |
2318 | | - | |
2319 | | - | |
2320 | | - | |
2321 | | - | |
2322 | | - | |
2323 | | - | |
2324 | | - | |
2325 | | - | |
2326 | | - | |
2327 | | - | |
2328 | | - | |
2329 | | - | |
2330 | | - | |
2331 | 2323 | | |
2332 | 2324 | | |
2333 | 2325 | | |
| |||
2336 | 2328 | | |
2337 | 2329 | | |
2338 | 2330 | | |
2339 | | - | |
| 2331 | + | |
2340 | 2332 | | |
2341 | | - | |
| 2333 | + | |
2342 | 2334 | | |
2343 | 2335 | | |
2344 | 2336 | | |
| |||
6693 | 6685 | | |
6694 | 6686 | | |
6695 | 6687 | | |
| 6688 | + | |
| 6689 | + | |
6696 | 6690 | | |
6697 | 6691 | | |
6698 | 6692 | | |
6699 | 6693 | | |
6700 | 6694 | | |
6701 | 6695 | | |
| 6696 | + | |
| 6697 | + | |
6702 | 6698 | | |
6703 | 6699 | | |
6704 | 6700 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10000 | 10000 | | |
10001 | 10001 | | |
10002 | 10002 | | |
10003 | | - | |
10004 | | - | |
| 10003 | + | |
10005 | 10004 | | |
10006 | 10005 | | |
10007 | 10006 | | |
10008 | | - | |
| 10007 | + | |
10009 | 10008 | | |
10010 | 10009 | | |
10011 | 10010 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
889 | 889 | | |
890 | 890 | | |
891 | 891 | | |
| 892 | + | |
892 | 893 | | |
893 | 894 | | |
894 | | - | |
| 895 | + | |
895 | 896 | | |
896 | 897 | | |
897 | 898 | | |
| |||
978 | 979 | | |
979 | 980 | | |
980 | 981 | | |
981 | | - | |
| 982 | + | |
982 | 983 | | |
983 | 984 | | |
984 | 985 | | |
| |||
1020 | 1021 | | |
1021 | 1022 | | |
1022 | 1023 | | |
| 1024 | + | |
1023 | 1025 | | |
1024 | 1026 | | |
1025 | 1027 | | |
| |||
0 commit comments