Friday, May 22, 2020

Project C announcement


BMQ scheduler has been development for more than one year. And it has accomplished the ambition when it was setup to be. As a simple scheduler, BMQ is now stable for several kernel release and less feature is added from release to release. It is now in maintenance mode.

When searching for idea about cpu scheduling, PDS, which has been exiled since BMQ, is still the most potential one, and the one most close to BMQ(in code level and performance level). Several very early improvement idea has been drafted after the reviewing of the latest PDS(kernel 5.0). So, PDS will be picked up again, and it is going to share same code base of BMQ. That comes Project C.

Project C ambitions
1. Based on BMQ code base, provide common alternative cpu scheduler code for linux kernel.
2. Provide single patch set for BMQ and PDS, switch at kernel configuration.
3. Maintenance BMQ
4. Continuous improvement on PDS till it enter maintenance mode.

Here is the recent Project C planing in the incoming kernel release cycle
5.7   Refactor BMQ into Project C infrastructure. 
5.8   Recreate PDS based on Project C code base.
5.9   PDS beta.
5.10 PDS official release.
5.11 PDS continuous improvement. 

Project C has no deadline defined, but may last for a year.

And the last thing, C for "Cross".

Saturday, May 9, 2020

BMQ v5.6-r4 release

BMQ v5.6-r4 is released with the following changes

1. Minor reworks in two core functions.
2. Set proper time slice for idle tasks.

This should be the last BMQ release in this kernel cycle. Sync-up work from next week. Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues

Monday, April 20, 2020

BMQ v5.6-r3 release

BMQ v5.6-r3 is released with the following changes

1. Rework codes in __schedule() and sched_fork(). These are minor changes, but will somehow help to reduce overhead.

Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues

Sunday, April 12, 2020

BMQ v5.6-r2 release

BMQ v5.6-r2 is released with the following changes

1. Fix sync-up error when BMQ applied but not enabled.
2. Fix cpu topology setup for BMQ in ryzen system.
3. Fix incorrect rq->sched_goidle statistics.

This is a bug fix release, thanks for who reports these. Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues

Sunday, April 5, 2020

BMQ v5.6-r1 release

BMQ v5.6-r1 is released with the following changes

1. Fix compile warning on 32bit system. Thanks jwh7 for reporting.
2. Reverted code changes which are not essential part of scheduler code. Eg cpufreq and INITIAL_JIFFIES.
3. Extend BMQ for RT tasks. This is the improvement which make bit-map queues(0-99) for RT tasks(FIFO/RR policy) instead of single double-linked queue in previous releases. Thanks whoever comment this in v5.5-r2 release.

Your feedback will be welcome and helpful for BMQ scheduler development. Next release will be come 2 weeks later.

Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues

Monday, March 30, 2020

BMQ v5.6-r0 release

BMQ v5.6-r0 is released with the following changes

1. Sync up with mainline kernel 5.6 scheduler code changes.

This is the first BMQ release for linux kernel 5.6, nothing new but sync-up, fix and enhancement will be come in next release.

Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues

Tuesday, March 10, 2020

BMQ v5.5-r3 release

BMQ v5.5-r3 is released with the following changes

1. Implement sched_exec(). Take this change to balance cpu loading as task has very load memory&llc footprint at this point of time.
2. Optimize sg_balance_check(). Cut off one of the two sg balance checking branch based on analysis.
3. Introduce per cpu sched_cpu_llc_mask. And also deploy bottom up topology cpumask setup, used more code but hopefully it is the final version suitable for all major CPUS.

These are major code changes for the found-out during spring code clean-up. I believe that all for 2020's Spring code clean-up and it will be the final release for 5.5 kernel release.

After more than one year of deployment(officially release today one year ago), the main features of BMQ are stable and in a good shape(IMO). So from next kernel release, I'd like to start picking up some previous low priority work items.

Enjoy BMQ for your linux kernel.

Full kernel tree repository can be found at https://gitlab.com/alfredchen/linux-bmq
And all-in-one patch can be found at gitlab.

Bug report at https://gitlab.com/alfredchen/bmq/issues