Sunday, December 9, 2018

PDS 0.99g release

PDS 0.99g is released with the following changes

1. [Sync] c5511d03ec09 sched/smt: Make sched_smt_present track topology. A lot of changes from mainline in v4.19.7 and the incoming 4.20 kernel release.
2. Fix smt boot up crash. This fix a bug in 0.99f PDS release(not related to mainline code changes), thanks @pf's report and help for debugging.

This is a sync-up and bug-fix release.

Enjoy PDS 0.99g for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

Friday, November 30, 2018

PDS 0.99f release

PDS 0.99f is released with the following changes

1. Remove load balance code from scheduler_tick(). Based on recent code change and testing, looks like there is no need to check load balance in scheduler_tick() any more.
2. Default 4ms rr_interal. Trade off performance for interactivity improvement.
3. Rework sibling group balance. Reduce the overhead in sibling group balance by rework the code path.

This release includes balance code rework, and will be the biggest change in this kernel cycle. Please give it a try and feedback will be welcome.

Enjoy PDS 0.99f for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

Friday, November 23, 2018

PDS 0.99e release

PDS 0.99e is released with the following changes

1. Fix sched_fork() time slice fairness. Simplify the code and fairness first.
2. Refine take_other_rq_task() code path.
3. Remove cpumask_weight() in best_mask_cpu().

This release includes minor changes. It's good to have such small change release before the big one.

Enjoy PDS 0.99e for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

Sunday, November 11, 2018

PDS 0.99d release

PDS 0.99d is released with the following changes

1. Rework SCHED_ISO support. Based on the limitation of the user land tools, for example, schedtool only support ISO tasks with priority specified, there is not big change for ISO. But this rework remove the "iso_cpu" kernel parameter. The logic behind this is, if your ISO task breaks the system, this parameter doesn't help(much), and if your ISO task runs well, you don't need to adjust this parameter. So, to keep the code simple, it has been removed.
2. UP compilation fix. Thanks jwh7's reporting. For the incoming release, I will do at least one UP compilation per kernel release cycle to prevent UP compilation breaks again.

This release includes the rest part of task policy support review in PDS. Now I am working on overhead cutting by cleaning up/reworking some balance code path. The next PDS release will be about two weeks later.

Enjoy PDS 0.99d for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

Monday, October 29, 2018

PDS 0.99c release

PDS 0.99c is released with the following changes

1. Fix and sync-up reset on fork handling. In some cases, reset on fork will not work proper. This fixed the issue.
2. Unified time slice for FIFO tasks. Now every task(except for the idle) has the rr interval as time slice.
3. Handle SCHED_BATCH as SCHED_IDLE. Consider the fact that BATCH tasks is more like the IDLE policy task but compete cpu with NORMAL tasks. This commit handle BATCH tasks as IDLE policy and leave NORMAL policy tasks at NORMAL priority alone.
4. Enable SCHED_DEADLINE support. Mainline has SCHED_DEADLINE policy and PDS has to support it, no matter in kernel space or user space. PDS support it by squash it as priority 1 FIFO task.
5.  Optimize ISO branch in normal_prio(). An minor optimization in normal_prio().

This release includes the first part of task policy support review in PDS, and plus some minor optimization. The rest parts of the review, including the rework of ISO policy will be out in next release.

Enjoy PDS 0.99c for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

Monday, October 22, 2018

PDS 0.99b release

PDS 0.99b is released with the following changes

1. Sync with mainline 4.19 scheduler changes.

This is the first PDS release for 4.19, just sync-up changes.

Enjoy PDS 0.99b for v4.19 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.

PS, from now on, the linux-pds git will contains PDS only commits beside the mainline codes, while will help you to get the pure PDS commits a little easier.

Tuesday, September 25, 2018

PDS 0.99a release

PDS 0.99a is released with the following changes

1. Fix sugov_kthread_create fail to set policy.(Thanks jwh7's reporting and testing)
2. Fix task burst fairness issue. Thanks Holger reporting video playback issue, which remind me my mpv lost frame when running "git checkout", that burst creating a lot "git" tasks, I used to believe it is high io usage issue and ignored it. I'm not sure if this commit fix Holger's issue or not, but hopefully it will help.

This is another bug fix release. For #1, current fix is not perfect. I'll leave it to next kernel release cycle to decide how PDS handling mainline existed scheduler policies.

Enjoy PDS 0.99a for v4.18 kernel, :)

Code are available at https://gitlab.com/alfredchen/linux-pds
All-in-one patch is available too.