Showing posts with label -ck. Show all posts
Showing posts with label -ck. Show all posts

Wednesday, 28 April 2021

linux-5.12-ck1, MuQSS version 0.210 for linux-5.12

 Announcing a new -ck release, 5.12-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.210 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

This was a resync and build bugfix from 5.11-ck1. The only new change to the -ck patch is the ability to reselect ondemand and conservative governors with Intel Pstate, and to deselect schedutil.

 

 linux-5.12-ck1:

patch-5.12-ck1.xz

Git tree:

5.12-ck


MuQSS only:

0001-MultiQueue-Skiplist-Scheduler-v0.210.patch

Git tree:

5.12-muqss


Web: kernel.kolivas.org

Enjoy!
お楽しみ下さい
-ck

Thursday, 18 February 2021

linux-5.11-ck1, MuQSS version 0.208 for linux-5.11

Announcing a new -ck release, 5.11-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.208 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

This was a resync and bugfix from 5.10-ck1. 

 linux-5.11-ck1:

patch-5.11-ck1.xz

Git tree:

5.11-ck


MuQSS only:

0001-MultiQueue-Skiplist-Scheduler-v0.208.patch

Git tree:

5.11-muqss


Web: kernel.kolivas.org

Enjoy!
お楽しみ下さい
-ck

Thursday, 31 December 2020

linux-5.10-ck1, MuQSS version 0.205 for linux-5.10

Announcing a new -ck release, 5.10-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.205 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload. 
 
Probably the most interesting thing to happen as pointed out to me by Damentz was that the Intel i915 scheduler is based on the scheduling algorithm from MuQSS:
 [Intel-gfx] [PATCH 36/56] drm/i915: Fair low-latency scheduling  
 
It seems they understand the incredible simplicity of the underlying scheduling algorithm that guarantees both latency and fairness intrinsically.
 
This was a very minor resync from 5.9-ck1.

linux-5.10-ck1:
-ck1 patch:
 
Git tree:
 

MuQSS only:
Download:
 
Git tree:
 
 
Enjoy!
お楽しみ下さい
-ck

Monday, 19 October 2020

linux-5.9-ck1, MuQSS version 0.204 for linux-5.9

Unfortunately these past few months have been marred by lockdown and family issues, culminating in the ultimate death of my father just over a month ago (unrelated to covid19 but made that much worse because of its effects on everything in our city) so linux kernel was the furthest thing from my mind and a 5.8 resync never happened. He'll be sorely missed, and if this were something more substantial I'd dedicate it towards him but it doesn't do him justice.

Announcing a new -ck release, 5.9-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.204 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload. 
 
This was a massive resync being two versions deep and is only lightly tested so far so take the usual precautions.

linux-5.9-ck1:
-ck1 patch:
Git tree:
MuQSS only:
Download:
Git tree:
Web: http://kernel.kolivas.org

This release is a minor bugfix and resync from 5.7-ck1.
Enjoy!
お楽しみ下さい
-ck

Wednesday, 10 June 2020

linux-5.7-ck1, MuQSS version 0.202 for linux-5.7

Announcing a new -ck release, 5.7-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.202. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.7-ck1:
-ck1 patch:
Git tree:
MuQSS only:
Download:
Git tree:
Web: http://kernel.kolivas.org

This release is a minor bugfix and resync from 5.6-ck2.
Enjoy!
お楽しみ下さい
-ck

Tuesday, 5 May 2020

linux-5.6-ck2, MuQSS version 0.2 for linux-5.6

Announcing a new -ck release, 5.6-ck2  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.2. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload. This is a maintenance release to address a build failure on -ck1 when built with full dynticks, and fix some cosmetic CPU load accounting issues. Upgrading is not required unless you are affected by the aforementioned issues or are rebuilding for a new stable release. It's worth pointing out that changing the reported load might have repercussions with how CPU frequency scaling behaves.



linux-5.6-ck2:
-ck2 patch:

Git tree:

MuQSS only:
Download:
Git tree:
Web: http://kernel.kolivas.org


As an aside, it has been brought to my attention that the MESA code uses SCHED_IDLEPRIO for what it considers low priority threads. In the mainline kernel this only makes them lower priority than regular tasks, but on MuQSS which has true idle scheduling, it can potentially lead to stalls under conditions of load. Once a thread has stalled for an extended time, it is possible that it will not progress normally depending on how the code expects to run. This could lead to GUI stalls in applications that use MESA, of which there are quite a few now, such as firefox. I've been considering submitting a change to the MESA code in the hope they approach this differently, but I am a pragmatist and expect the turnaround time and acceptability of the changes may be drawn out and unsatisfactory. So I am considering alternatively softening the idle scheduling and making it configurable to behave more like mainline's by default and optionally be set to be true idle scheduling. In the meantime, I've prepared some hacked mesa packages for those on ubuntu 20.04 variants that disable this behaviour, but this is a cludge only for the time being:

mesa-ubuntu20.04 packages

Here is a much better patch for Mesa that converts threads to nice 19 SCHED_BATCH instead:

0001-Linux-Change-minimum-priority-threads-from-SCHED_IDL.patch


 Enjoy!
お楽しみ下さい
-ck

Tuesday, 28 April 2020

linux-5.6-ck1, MuQSS version 0.199 for linux-5.6

Announcing a new -ck release, 5.6-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.199. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload. Since MuQSS has reached version 0.199, I'm left wondering what I should make the next version. As it is likely to be just as trivial an update as this one was, version 0.200 will not actually be a significant update to some new fancy scheduler, it will just coincidentally bump the minor  version up. That said, MuQSS has been stable for a very long time so I should have bumped it to version 1.0 quite a while back.

linux-5.6-ck1:
-ck1 patch:
Git tree:
MuQSS only:
Download:
Git tree:
Web: http://kernel.kolivas.org

This is a resync from 5.5-ck1.

Enjoy!
お楽しみ下さい
-ck

Tuesday, 4 February 2020

linux-5.5-ck1, MuQSS version 0.198 for linux-5.5

Announcing a new -ck release, 5.5-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.198. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.5-ck1:
-ck1 patch:
Git tree:
MuQSS only:
Download:
Git tree:
Web: http://kernel.kolivas.org
This is a resync from 5.4-ck1, with some minor tidying and fixes.

Enjoy!
お楽しみ下さい
-ck

Wednesday, 27 November 2019

linux-5.4-ck1, MuQSS version 0.196 for linux-5.4

Announcing a new -ck release, 5.4-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.196. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.4-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is a resync from 5.3-ck1, done promptly to make up for the last release's delays.
Enjoy!
お楽しみ下さい
-ck

Friday, 25 October 2019

linux-5.3-ck1, MuQSS version 0.195 for linux-5.3

Announcing a new -ck release, 5.3-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.195. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.3-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is a resync from 5.2-ck1 plus the Ryzen/LLC fixes courtesy of Eduards Bezverhijs (thanks very much!) virtually unchanged. A reminder if you're new to using my patches, MuQSS performs best when in combination with the full -ck patchset as they're all complementary changes.
Sorry about the delay, I was in the thick of a project I had to complete first.

You will find that it may not completely apply to later 5.3.x kernels because of a very small change to a Makefile. It's trivial to fix, but please note my patches are always designed around 2 point releases, in this case 5.3, and I never try to resync with the many 3 point stable releases that follow.
Enjoy!
お楽しみ下さい
-ck

Monday, 22 July 2019

linux-5.2-ck1, MuQSS version 0.193 for linux-5.2

Announcing a new -ck release, 5.2-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.193. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.2-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is mostly a resync from 5.1-ck1. A reminder if you're new to using my patches, MuQSS performs best when in combination with the full -ck patchset as they're all complementary changes.

Enjoy!
お楽しみ下さい
-ck

Thursday, 16 May 2019

linux-5.1-ck1, MuQSS version 0.192 for linux-5.1

Announcing a new -ck release, 5.1-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.192. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.1-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is mostly a resync from 5.0-ck1 with some build and boot fixes courtesy of Serge Belyshev (thanks!)
Enjoy!
お楽しみ下さい
-ck

Tuesday, 12 March 2019

linux-5.0-ck1, MuQSS version 0.190 for linux-5.0

Announcing a new -ck release, 5.0-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.190. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-5.0-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is mostly a resync from 4.20-ck1 with a minor tweak to CPU ordering for slightly better throughput. Note that BFQ and I/O schedulers have nothing to do with MuQSS or any of the -ck code so the changes to I/O schedulers in mainline are of no consequence.

Enjoy!
お楽しみ下さい
-ck

Monday, 31 December 2018

linux-4.20-ck1, MuQSS version 0.185 for linux-4.20

Announcing a new -ck release, 4.20-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.185. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-4.20-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


In addition to a resync from 4.19-ck1 I've extended the runqueue sharing options to all CPUs as well, meaning it can be used in NUMA hardware as a single runqueue if desired.

Merry Christmas, and have a happy new year everyone. May your new year be filled with good health, stable kernels, and more bitcoin adoption and value.

Enjoy!
お楽しみ下さい
-ck

Wednesday, 14 November 2018

linux-4.19-ck1, MuQSS version 0.180 for linux-4.19

Announcing a new -ck release, 4.19-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.180. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-4.19ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


In addition to a resync from 4.18-ck1, there are a number of minor accounting fixes, and I've since dropped BFQ being enabled by default. I've been less than impressed with its latency over the last two kernel releases, and recommend people use another I/O scheduler.

EDIT: Apparently patch 0008 has one hunk that is out of place. It still should work fine even if this fails to apply. I don't know why git was happy with that part of the patch...

Enjoy!
お楽しみ下さい
-ck

Monday, 27 August 2018

linux-4.18-ck1, MuQSS version 0.173 for linux-4.18

Announcing a new -ck release, 4.18-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.173. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-4.18-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is just a resync from 4.17 MuQSS and -ck patches.


Enjoy!
お楽しみ下さい
-ck

EDIT: It turns out it won't build with full dynticks enabled. I've committed a small change to the respective git trees for anyone who wants to configure it that way (I'd usually recommend against it.)

Wednesday, 27 June 2018

linux-4.17-ck1, MuQSS version 0.172 for linux-4.17

Announcing a new -ck release, 4.17-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.172. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.
linux-4.17-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is just a resync with 4.16 MuQSS and -ck patches.


Enjoy!
お楽しみ下さい
-ck

Tuesday, 1 May 2018

linux-4.16-ck1, MuQSS version 0.171 for linux-4.16

Announcing a new -ck release, 4.16-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.171. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.
linux-4.16-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


This is mostly just a resync with 4.15 MuQSS and -ck patches. The only significant difference is that the default config for threaded IRQs is now set to disabled as this seems to be associated with boot failures when used in concert with runqueue sharing. I still include the patch in -ck that stops build warnings from making the kernel build fail, and I've added a single patch to aid building an evil out-of-kernel driver that many of us use.


Enjoy!
お楽しみ下さい
-ck

Sunday, 18 February 2018

linux-4.15-ck1, MuQSS version 0.170 for linux-4.15

Announcing a new -ck release, 4.15-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.170. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-4.15-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:


Web: http://kernel.kolivas.org


The major change in this release is the addition of a much more mature version of the experimental runqueue sharing code I posted on this blog earlier. After further experimenting and with lots of feedback from users, I decided to make multicore based sharing default instead of multithread. The numbers support better throughput and it should definitely provide more consistent low latency compared to previous versions of MuQSS. For those that found that interactivity on MuQSS never quite matched that of BFS before it, you should find this version now equals it.

In addition, the runqueue sharing code in this release also allows you to share runqueues for SMP as well so you can share runqueues with all physical CPUs if latency is your primary concern, even though it will likely lead to worse throughput. I have not made it possible to share between NUMA nodes because the cost of shifting tasks across nodes is usually substantial and it may even have worse latency, and will definitely have worse throughput.

I've also made the runqueue sharing possible to be configured at boot time with the boot parameter rqshare. Setting it to one of none, smt, mc, smp is done by appending the following to your kernel command line:
 rqshare=mc

Documentation has been added for the runqueue sharing code above to the MuQSS patch.

A number of minor bugs were discovered and have been fixed, which has also made booting more robust.

The -ck tree is mostly just a resync of previous patches, but with the addition of a patch to disable a -Werror CFLAG setting in the build tools which has suddenly made it impossible to build the kernel with newer GCCs on some distros.


Enjoy!
お楽しみ下さい
-ck

Monday, 20 November 2017

linux-4.14-ck1, MuQSS version 0.162 for linux-4.14

Announcing a new -ck release, 4.14-ck1  with the latest version of the Multiple Queue Skiplist Scheduler, version 0.162. These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

linux-4.14-ck1:
-ck1 patches:
Git tree:
MuQSS only:
Download:
Git tree:
Apart from minor cleanups and syncing with the current kernel, I have removed the default BFQ patch from -ck1 which did not reliably work, though I have changed its default config setting to on along with blk mq scsi default to on which is required to make it work. It will not default to BFQ at boot time.
Enjoy!
お楽しみ下さい
-ck