Tuesday, September 4, 2018

PDS 0.98y release

PDS 0.98y is released with the following changes

1. Enable SMT_NICE scheduling.  Below is the commit msg of this commit
    Firstly, look at the kernel compilation test result without(-j4) and with SMT(-j8).
    Without SMT(-j4)        With SMT(-j8)
    4m30s                   3m40s
    In the scenario IDLE and NORMAL(BATCH,ISO,RT) policy tasks run together,
    IDLE tasks can be supressed to run on SMT sibling cpus and let the other
    policy tasks run without SMT. In this way, tasks with other policy will
    take high priority and completed sooner than run with IDLE tasks on SMT
    sibling cpus. This is called the SMT_NICE scheduling.
    Below is the test results of SMT_NICE disabled and SMT_NICE enabled.
                    SMT_NICE disabled       SMT_NICE enabled
    NORMAL(-j4)     6m56s                   5m3s
    IDLE(-j4)       7m10s                   8m30s


Hopefully this commit can help with who has IDLE task running in the backgroup to improve the fontgroup task interactivity.

Enjoy PDS 0.98y for v4.18 kernel, :)

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


  1. Compiles/boots OK here, thank you.

    I also did a brief smoke test with idle-prio'ed git gc/fsck, and nothing strange popped up.

  2. Compiled, booted, run usual tests for games, wine and native, whole day uptime and not a single hickup yet.

    Thanks Alfred.
    Br, Eduardo

  3. Works fine here within the pf-kernel.

    Regards sysitos

  4. Running 4.18.7-PDSy on the x64 desktop and x86 netbook now; no problems. I was getting cpufreq schedutil errors on the former for a while, don't recall exactly when they started, but they seem to be suddenly gone...

    1. Or not...still getting schedutil errors; vanilla kernel is fine. Messages are:
      [13.782548] cpufreq_schedutil: sugov_kthread_create: failed to set SCHED_DEADLINE
      [13.782549] cpufreq_schedutil: initialization failed (error -22)
      [13.782574] cpufreq: cpufreq_online: Failed to initialize policy for cpu: 0 (-22)
      Four in succession; anyone using schedutil with PDS? On AMD? An old k8 AMD? :-/

    2. It seems some kernel threads want to run as SCHED_DEADLINE, which is not supported in PDS. Thanks for reporting, I will look into this.

  5. Hi Alfred.
    I've uploaded throughput results with PDS 0.98y & SMT_NICE enabled.
    There is almost no differences between NORMAL, BATCH and IDLE policies.

    I guess it is to be expected because I ran my test on a idle system.
    Differences would show up if I ran the tests on a already loaded system.

    Do you think the runqlat tool from bcc can be used to show the benefit of SMT_NICE on interactivity ?
    It runs on PDS, but I don't know if it is working as intended, as it is tied to the scheduler.

    I'm thinking of loading my system with a make (NORMAL or IDLE) and then running another NORMAL task and collecting its runqueue times.