Wednesday, August 16, 2017

VRQ 0.97 released

VRQ 0.97 is released with the following changes

1. Fix UP compilation issue, reported by jwh7.
2. rtmutex deadline adaption for VRQ.
3. Overhead reduction in take_other_rq_task() and SMT code path in task_preemptible_rq().
4. Preparation for Normal policy level expansion feature.

Version bump up to 0.97 because smt sensitive scheduling, the main feature in 0.96 has finally been accomplished. In 0.97, normal policy level expansion and task deadline adjustment are the main features. In this release, just the preparation code of normal policy level expansion is included, the prototype code still under testing.

And, there will be no more release before 4.13 kernel come out.

Enjoy VRQ 0.97 for v4.12 kernel, :)

code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.12.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.12.y-vrq

All-in-one patch is available too.

Monday, August 14, 2017

Get ready in "Multi-Core War"

The "Multi-Core War", which was expected to happen soon when first dual core cpu came to pc world decade ago, does not happen due to a lot of reason, unlike the cpu in mobile world, cpu number grows up rapidly in 2~3 years, your mobile phone may has more cpus than what your working pc has. But thanks to AMD, Intel is finally moving his step to the war zone. Likely, customer in mobile platform or desktop platform would get 4cores/8threads and even more core/thread cpu in reasonable price at the end of this year or next year.

Meanwhile, the task scheduler in OS, should be prepared to take advantage of new hardware in this "Multi-Core War". VRQ, in particular, was applied with a lot of cpumask based algorithm, which is scalable with the growing cpus, but there are still some bottlenecks which has to loop over each cpu. In the incoming release of VRQ, I will try to address these bottlenecks and hopefully play a better position in the "War".

PS, as you may noticed that the name of VRQ(/BFS) is now not longer suit for the design of this scheduler code, and it should deserve a proper name, but it is the last thing in my list(feature >> naming), :)

Wednesday, August 2, 2017

VRQ 0.96f release

VRQ 0.96f is released with the following changes

1. Improvement for smt sensitive scheduling.
2. No dequeue/enqueue for task on cpu.
3. Code clean up.


#2 is the major change in this release, unlike the previous version, now when task is going to be run on a cpu, there is no need to dequeue the task from the run queue skip list, enqueue/dequeue will only happen when task become runnable/unrunnable. With this change, the overhead of enqueue/dequeue is significantly reduced, and the logic of scheduler is more simple.

And please also be noticed, to adapt to this new enqueu/dequeue strategy, some important code path has been rewriten. You may experience unstable issues with this release. (So far, none for me at least)

Enjoy VRQ 0.96f for v4.12 kernel, :)

code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.12.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.12.y-vrq

All-in-one patch is available too.