Re: [RFC][PATCH 00/16] sched: Core scheduling

Pawan Gupta
2019-03-12T19:08:51Z

Hi,

With core scheduling LTP reports 2 new failures related to cgroups(memcg_stat_rss and memcg_move_charge_at_immigrate). I will try to debug it.

Also "perf sched map" indicates there might be a small window when 2 processes in different cgroups run together on one core.
In below case B0 and D0(stress-ng-cpu and sysbench) belong to 2 different cgroups with cpu.tag enabled.

$ perf sched map

*A0 382.266600 secs A0 => kworker/0:1-eve:51
*B0 382.266612 secs B0 => stress-ng-cpu:7956
*A0 382.394597 secs
*B0 382.394609 secs
B0 *C0 382.494459 secs C0 => i915/signal:0:450
B0 *D0 382.494468 secs D0 => sysbench:8088
*. D0 382.494472 secs . => swapper:0
. *C0 383.095787 secs
*B0 C0 383.095792 secs
B0 *D0 383.095820 secs
*A0 D0 383.096587 secs

In some cases I dont see an IPI getting sent to sibling cpu when 2 incompatible processes are picked. Like is below logs at timestamp 382.146250
"stress-ng-cpu" is picked when "sysbench" is running on the sibling cpu.

kworker/0:1-51 [000] d... 382.146246: __schedule: cpu(0): selected: stress-ng-cpu/7956 ffff9945bad29200
kworker/0:1-51 [000] d... 382.146246: __schedule: max: stress-ng-cpu/7956 ffff9945bad29200
kworker/0:1-51 [000] d... 382.146247: __prio_less: (swapper/4/0;140,0,0) ?< (sysbench/8088;140,34783671987,0)
kworker/0:1-51 [000] d... 382.146248: __prio_less: (stress-ng-cpu/7956;119,34817170203,0) ?< (sysbench/8088;119,34783671987,0)
kworker/0:1-51 [000] d... 382.146249: __schedule: cpu(4): selected: sysbench/8088 ffff9945a7405200
kworker/0:1-51 [000] d... 382.146249: __prio_less: (stress-ng-cpu/7956;119,34817170203,0) ?< (sysbench/8088;119,34783671987,0)
kworker/0:1-51 [000] d... 382.146250: __schedule: picked: stress-ng-cpu/7956 ffff9945bad29200
kworker/0:1-51 [000] d... 382.146251: __switch_to: Pawan: cpu(0) switching to stress-ng-cpu
kworker/0:1-51 [000] d... 382.146251: __switch_to: Pawan: cpu(4) running sysbench
stress-ng-cpu-7956 [000] dN.. 382.274234: __schedule: cpu(0): selected: kworker/0:1/51 0
stress-ng-cpu-7956 [000] dN.. 382.274235: __schedule: max: kworker/0:1/51 0
stress-ng-cpu-7956 [000] dN.. 382.274235: __schedule: cpu(4): selected: sysbench/8088 ffff9945a7405200
stress-ng-cpu-7956 [000] dN.. 382.274237: __prio_less: (kworker/0:1/51;119,50744489595,0) ?< (sysbench/8088;119,34911643157,0)
stress-ng-cpu-7956 [000] dN.. 382.274237: __schedule: picked: kworker/0:1/51 0
stress-ng-cpu-7956 [000] d... 382.274239: __switch_to: Pawan: cpu(0) switching to kworker/0:1
stress-ng-cpu-7956 [000] d... 382.274239: __switch_to: Pawan: cpu(4) running sysbench

-Pawan