Commit 2253df3
committed
mitosis: dynamic cpus for affinitized tasks
Tasks that are affinitized (e.g. to a subset of their cell) are
presently simply bound to a single cpu out of their affinity mask. This
mostly works since most affinitized tasks are just affinitized to a
single cpu. We've observed instances where tasks are affinitized to
multiple cpus and the initialization-time binding can lead to
significant cpu imbalance.
This commit adds a new flag --dynamic-affinity-cpu-selection which will
dynamically re-assign such tasks (only affinitized tasks) to random cpus
within their affinity mask in order to reduce load imbalance. This
doesn't completely eliminate cpu load imbalance for these kinds of tasks
but avoids load-balancing or other complexities and ultimately prevents
long-term imbalance due to making random decisions at each scheduling
point.
Additionally I've added a test script to reproduce this behavior (may
take a few runs due to the random assignment).
Signed-off-by: Dan Schatzberg <schatzberg.dan@gmail.com>1 parent 3c8138b commit 2253df3
File tree
3 files changed
+426
-2
lines changed- scheds/rust/scx_mitosis
- src
- bpf
- test
3 files changed
+426
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| |||
616 | 617 | | |
617 | 618 | | |
618 | 619 | | |
619 | | - | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
620 | 664 | | |
621 | 665 | | |
622 | 666 | | |
| |||
665 | 709 | | |
666 | 710 | | |
667 | 711 | | |
668 | | - | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
669 | 742 | | |
670 | 743 | | |
671 | 744 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
121 | 128 | | |
122 | 129 | | |
123 | 130 | | |
| |||
222 | 229 | | |
223 | 230 | | |
224 | 231 | | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
225 | 237 | | |
226 | 238 | | |
227 | 239 | | |
| |||
0 commit comments