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.

Monday, September 17, 2018

PDS 0.98z release

PDS 0.98z is released with the following changes

1. Fix and improvement in the previous release.
2. Re-mapping SCHED_DEADLINE to SCHED_FIFO, which fix cpufreq_schedutil create kernel thread as SCHED_DEADLINE(thanks jwh7 for reporting)

This is a bug fix release. I'd like to let PDS stable for awhile in the incoming releases.

Enjoy PDS 0.98z for v4.18 kernel, :)

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

Tuesday, September 4, 2018

PDS 0.98y release

PDS 0.98y is released with the following changes

1. Enable SMT_NICE scheduling.  Below is the commit msg of this commit
"""
    Firstly, look at the kernel compilation test result without(-j4) and with SMT(-j8).
   
    Without SMT(-j4)        With SMT(-j8)
    4m30s                   3m40s
   
    In the scenario IDLE and NORMAL(BATCH,ISO,RT) policy tasks run together,
    IDLE tasks can be supressed to run on SMT sibling cpus and let the other
    policy tasks run without SMT. In this way, tasks with other policy will
    take high priority and completed sooner than run with IDLE tasks on SMT
    sibling cpus. This is called the SMT_NICE scheduling.
   
    Below is the test results of SMT_NICE disabled and SMT_NICE enabled.
   
                    SMT_NICE disabled       SMT_NICE enabled
    NORMAL(-j4)     6m56s                   5m3s
    IDLE(-j4)       7m10s                   8m30s

"""

Hopefully this commit can help with who has IDLE task running in the backgroup to improve the fontgroup task interactivity.

Enjoy PDS 0.98y for v4.18 kernel, :)

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

Saturday, September 1, 2018

PDS 0.98x release

PDS 0.98x is released with the following changes

1. Add cgroup stub. Thanks Oleksandr Natalenko for this porting, I don't have to test cgroup related stuff myselft, hopefully the stub make cgroup related application happy.
2. Revert "Rework rq->sl_header data structure". It turns out that the rq-sl_header data structure change makes some system unstable. So it is reverted, I'll try to bring it back after SMT_NICE feature code are published.

Hopefully this is the last release before SMT_NICE feature code submit.

Enjoy PDS 0.98x for v4.18 kernel, :)

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