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.

Wednesday, August 22, 2018

PDS 0.98w release

PDS 0.98w is released with the following changes

1. Rework rq->sl_header data structure. Now, it is a pointer to the idle->sl_node. This unify sl_node -> task conversion.
2. Policy based task_preemptible_rq(). IDLE/BATCH/NORMAL tasks now has their own strategy in the ttwu code path.
3. Rewrok take_other_rq_task() code path. This code change is prepare for the incoming SM_NICE feature.
4. Try to take tasks from other rq when prio downgrade. Now when rq is going to switch to a low priority task than previous, it will look up if there is higher priority tasks from other run queues.
5. Introduce sched_rq_pending_masks. This replace the sched_rq_nr_running_masks, and provide better filter mask for take_other_rq_task code path.
5. Change per cpu cpu_has_smt_sibling to sched_sibling_cpu. Another preparation for SMT_NICE.
6. Fix UP/non-SMT compilation warning.

#1 and #2 are the new code changes. I personally like the #1, which actually implement the idle task as the tail of the task link in the rq, just like the old school book said. Other changes are preparation for SMT_NICE in the next release.

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

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

Thursday, August 16, 2018

PDS 0.98v release

PDS 0.98v is released with the following changes

1. Some code refine.
2. Make Batch/Idle tasks less preemptible vs Normal tasks.

With #2, Normal policy tasks should be more responsible when run with Batch/Idle policy tasks. Slight regression has been found for Batch/Idle policy task sanity tests, but they are the design intention of #2.

SMT_NICE will get some love in this kernel release. There will be some SMT_NICE pre-required code changes in next PDS release next week.

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

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

Sunday, August 12, 2018

PDS 0.98u release

PDS 0.98u is released with the following changes

1. Sync up mainline scheduler changes in 4.18

This is the first PDS-mq release for kernel 4.18. As usual, it just a sync-up release, it all goes well. The next PDS-mq release will be arrived at the weekend, 10+ commits are pending.

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

Code are available at https://gitlab.com/alfredchen/linux-pds
(Say good-bye to github)

All-in-one patch is available too.

Edit: Fix all-in-one patch link.