VRQ 0.93 is released with the following changes
1. remove unused rq->running and refine set_rq_task(), remove unused finish_arch_switch, these two changes are continuous code clean up.
2. Fix 32bit compilation issue in cputime.c(reported by jwh7)
3. task policy fairness
Task policy fairness is the major code change in this release, which address the issue that NORMAL policy(and supper) tasks fail to suppress the background IDLE policy tasks. There are used to be two design options for this issue, but turns out that one of them is better than another with less overhead. So the code changes are in this VRQ release and no more debug patch is needed.
In next release, mainline kernel 4.10 sync-up and code clean-up are in the planning list. And I am investigating new created task issue, hopefully be fixed in next release.
Enjoy VRQ 0.93, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Friday, February 10, 2017
Tuesday, January 17, 2017
VRQ 0.92 release
VRQ 0.92 is released with the following changes
1. remove printk in migrate_tasks()
2. vrq: refine normalize_rt_tasks()
3. vrq: Optimist ffb usage in skiplist_random_level()
4. vrq: introduce cputime.c
5. vrq: remove unused sched_domain_level
6. vrq: remove rq->timekeep_clock
Most are code clean up and little optimist. The major one is introducing mainline cputime.c, which help to reduce vrq scheduler main code size under 7k LOC and reduce the effect syncing up with mainline kernel scheduler code from release to release.
Enjoy VRQ 0.92, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
1. remove printk in migrate_tasks()
2. vrq: refine normalize_rt_tasks()
3. vrq: Optimist ffb usage in skiplist_random_level()
4. vrq: introduce cputime.c
5. vrq: remove unused sched_domain_level
6. vrq: remove rq->timekeep_clock
Most are code clean up and little optimist. The major one is introducing mainline cputime.c, which help to reduce vrq scheduler main code size under 7k LOC and reduce the effect syncing up with mainline kernel scheduler code from release to release.
Enjoy VRQ 0.92, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Monday, January 9, 2017
VRQ 0.91 release
VRQ 0.91 is released with the following changes
1. rework yield_to(), make it to be suit in VRQ scheduler.
2. Remove rq_deadline which is only used locally.
3. remove unused sched_interactive, there is policy based interactivity setting in VRQ, so remove this BFS scheduler system parameter.
4. Do irq_enter on scheduler_ipi called when idle to update xtime. Pick up from MuQSS.
5. Remove dup'd vtime_task_switch. Pick up from MuQSS.
6. remove unused double_rq_lock/double_rq_unlock
7. rework take_other_rq_task(). This rework provided more interactivity for RT/ISO/NORMAL tasks.
#7 is considered as a fix for D3 wine playing issue under ondemand cpufreq governor. Is it works, there would be other commits for further tuning.
Enjoy the first release of VRQ in 2017, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
1. rework yield_to(), make it to be suit in VRQ scheduler.
2. Remove rq_deadline which is only used locally.
3. remove unused sched_interactive, there is policy based interactivity setting in VRQ, so remove this BFS scheduler system parameter.
4. Do irq_enter on scheduler_ipi called when idle to update xtime. Pick up from MuQSS.
5. Remove dup'd vtime_task_switch. Pick up from MuQSS.
6. remove unused double_rq_lock/double_rq_unlock
7. rework take_other_rq_task(). This rework provided more interactivity for RT/ISO/NORMAL tasks.
#7 is considered as a fix for D3 wine playing issue under ondemand cpufreq governor. Is it works, there would be other commits for further tuning.
Enjoy the first release of VRQ in 2017, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Thursday, December 29, 2016
VRQ 0.90 release
VRQ 0.90 is released with the following changes
1. Introduce sched_yield_type from MuQSS
2. Remove temp valuables in run queue for current task
3. Refine dither.
As there is no more previous vrq feature code need to be ported, I'd like to announce VRQ 0.90 release just before the new year. All known issues will be traced in 0.90+ releases.
In the 0.90+ release, I am planning to focus on fixing known issues, porting useful code changes from BFS/MuQSS and develop new features in VRQ.
Enjoy 0.90 release of VRQ in 2017, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
1. Introduce sched_yield_type from MuQSS
2. Remove temp valuables in run queue for current task
3. Refine dither.
As there is no more previous vrq feature code need to be ported, I'd like to announce VRQ 0.90 release just before the new year. All known issues will be traced in 0.90+ releases.
In the 0.90+ release, I am planning to focus on fixing known issues, porting useful code changes from BFS/MuQSS and develop new features in VRQ.
Enjoy 0.90 release of VRQ in 2017, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Friday, December 23, 2016
VRQ 0.89h release
VRQ 0.89h is released with the following changes
1. Fix UP compile issue.
2. Refine take_other_rq_task(), which create a code path for cpu running scaling frequency.
3. Code clean up and remove un-used code.
I'd spend the rest week of this year to double check if there are still helpful feature in previous VRQ not yet been ported to 0.89, if no, there will be 0.9 release at the end of 2016.
Enjoy this X'mas release of VRQ, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
1. Fix UP compile issue.
2. Refine take_other_rq_task(), which create a code path for cpu running scaling frequency.
3. Code clean up and remove un-used code.
I'd spend the rest week of this year to double check if there are still helpful feature in previous VRQ not yet been ported to 0.89, if no, there will be 0.9 release at the end of 2016.
Enjoy this X'mas release of VRQ, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Thursday, December 15, 2016
VRQ 0.89g release
VRQ 0.89g is released with the following changes
1. Sync-up with kernel 4.9
2. Fix a bug that scheduler may out of sync with acpi governors when switch from non-acpi drivers.
3. Minor compile warning fix.
As 4.9 is a release with huge changes, two of my machines are still have issues caused by mainline code changes. It may required one or two minor release to settle down.
Meanwhile, I am planning to continue deploy missing changes from previous VRQ to 0.89. And consider that BFS is no longer development, vrq doesn't need to rebase to any BFS code base, I will squash some commits that would help to reduce the over head when porting to new kernel release next time.
Enjoy kernel 4.9 with VRQ scheduler, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
1. Sync-up with kernel 4.9
2. Fix a bug that scheduler may out of sync with acpi governors when switch from non-acpi drivers.
3. Minor compile warning fix.
As 4.9 is a release with huge changes, two of my machines are still have issues caused by mainline code changes. It may required one or two minor release to settle down.
Meanwhile, I am planning to continue deploy missing changes from previous VRQ to 0.89. And consider that BFS is no longer development, vrq doesn't need to rebase to any BFS code base, I will squash some commits that would help to reduce the over head when porting to new kernel release next time.
Enjoy kernel 4.9 with VRQ scheduler, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.9.y-vrq
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.9.y-vrq
All-in-one patch is available too.
BR Alfred
Tuesday, December 6, 2016
VRQ 0.89f release
VRQ 0.89f release
Normally I won't do two release in a day, but there are always exception. Here is the VRQ 0.89f relase with just one single commit
Rewrite the best_mask_cpu(). Which now use sched_cpu_affinity_chk_masks, to provide better performance improvement and to avoid addtional checking in non smt abilty cpu but has SMT kernel config enabled.
In short, in my sanity test, it shows improvement in all kinds of workload, here comes the sanity result of VRQ 0.89f before the next kernel release.
vrq0.89f
>>>>>50% workload
>>>>>round 1
real 5m27.812s
user 10m13.565s
sys 0m39.533s
>>>>>round 2
real 5m27.771s
user 10m13.407s
sys 0m39.521s
>>>>>round 3
real 5m27.834s
user 10m13.448s
sys 0m39.579s
>>>>>100% workload
>>>>>round 1
real 2m54.660s
user 10m30.269s
sys 0m41.142s
>>>>>round 2
real 2m54.602s
user 10m30.652s
sys 0m41.021s
>>>>>300% workload
>>>>>round 1
real 2m57.899s
user 10m40.231s
sys 0m41.864s
>>>>>round 2
real 2m57.682s
user 10m40.238s
sys 0m41.928s
>>>>>round 3
real 2m57.480s
user 10m40.219s
sys 0m41.282s
Enjoy this final vrq release before next kernel, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.8.y-test
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.8.y-test
All-in-one patch is available too.
BR Alfred
Normally I won't do two release in a day, but there are always exception. Here is the VRQ 0.89f relase with just one single commit
Rewrite the best_mask_cpu(). Which now use sched_cpu_affinity_chk_masks, to provide better performance improvement and to avoid addtional checking in non smt abilty cpu but has SMT kernel config enabled.
In short, in my sanity test, it shows improvement in all kinds of workload, here comes the sanity result of VRQ 0.89f before the next kernel release.
vrq0.89f
>>>>>50% workload
>>>>>round 1
real 5m27.812s
user 10m13.565s
sys 0m39.533s
>>>>>round 2
real 5m27.771s
user 10m13.407s
sys 0m39.521s
>>>>>round 3
real 5m27.834s
user 10m13.448s
sys 0m39.579s
>>>>>100% workload
>>>>>round 1
real 2m54.660s
user 10m30.269s
sys 0m41.142s
>>>>>round 2
real 2m54.602s
user 10m30.652s
sys 0m41.021s
>>>>>300% workload
>>>>>round 1
real 2m57.899s
user 10m40.231s
sys 0m41.864s
>>>>>round 2
real 2m57.682s
user 10m40.238s
sys 0m41.928s
>>>>>round 3
real 2m57.480s
user 10m40.219s
sys 0m41.282s
Enjoy this final vrq release before next kernel, :)
code are available at
https://bitbucket.org/alfredchen/linux-gc/commits/branch/linux-4.8.y-test
and also
https://github.com/cchalpha/linux-gc/commits/linux-4.8.y-test
All-in-one patch is available too.
BR Alfred
Subscribe to:
Posts (Atom)