Wednesday, January 9, 2019

PDS 0.99k release

PDS 0.99k is released with the following changes

1. Use exported task_rq_lock/unlock(). These mainline API has been implemented and exported in PDS, so we can use them in other modules to minimized PDS code changes.
2. Optimize pds_skiplist_random_level().
3. Rework SCHED_ISO and non-root user can switch task among ISO/NORMAL/BATCH/IDLE.
 
The most important change in this release is the rework of ISO policy in PDS

"""
    SCHED_ISO tasks now have higher priority to be picked up and run than
    SCHED_NORMAL tasks. When their remaining time slice(default max 4ms in
    PDS) run out, they will degrade to SCHED_NORMAL(and nice level kicks
    in). The degradation will be continued when they still hungry for cpu.

    The above design makes SCHED_ISO good for interactivity but not cpu
    consumption tasks.
"""
And now, normal users can set task policy ISO/NORMAL/BATCH/IDLE freely without root permission. You are encouraged to test any interactive task in PDS new ISO policy(such as gaming, media playback, browsing web ...), and feedback will be welcome.

Enjoy PDS 0.99k for v4.20 kernel, :)

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

Sunday, December 30, 2018

PDS 0.99j release

PDS 0.99j is released with the following changes

1. Fix missing mainline scheduler API for psi.
2. Fix fail to build on ppc64 arch. This issue was reported to PDS-mq repository 3 months ago, and I have missed the notification, very sorry about that.
3. Several code implement level optimization.
 
This is the happy new year release of PDS, include bug fixes and optimization. Thanks for your supporting PDS in 2018. PDS achieved stability, feature and performance this year.

Looking forward in the incoming 2019, there is not much pending features in my list, and after those features, PDS may very close to 1.0 release(thus it just a release number). So, sometime next year, PDS development will slow down(it will still sync with mainline release and bug fixes), I will switch to another scheduler project, hopefully ideas can be inspired from each other projects and benefit from it.

Enjoy PDS 0.99j for v4.20 kernel, :)

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

Sunday, December 23, 2018

PDS 0.99i release

PDS 0.99i is released with the following changes

1. Sync-up with mainline 4.20 scheduler code changes.

Xmas gift comes as promised and here is the first PDS release for 4.20, just the sync-up code changes added. The code has been run since -rc7 for about a week. So there should be no surprise in it, :D
But if you are seeking for surprise, well, there will be optimization code changes for the next release before the new year!

Enjoy PDS 0.99i for v4.20 kernel, :)

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

Tuesday, December 18, 2018

PDS 0.99h release

PDS 0.99h is released with the following changes

1. Fix cpu hot-plug Oops. Thanks @pf's report(again).
2. Rework time_slice_expired().  Simplified and unified task deadline reflash

This should be the last PDS release for 4.19 kernel. Other code implement level optimization are pending for 4.20. Hopefully kernel 4.20 and PDS for 4.20 could be on time as Xmas gift.

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

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

EDIT: Pls also checkout the emergency fix at  https://gitlab.com/alfredchen/linux-pds/commit/fae1a3c0fbe60b7edf6d8aac6b838520da68f9e4

4.20 is coming out soon, so there is no plan to dump up version for 4.19 again.

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.