Sunday, March 3, 2019

PDS 0.99o release

PDS 0.99o is released with the following changes

1. Sync-up changes from mainline scheduler code.

This is the first PDS release for kernel 5.0.

Enjoy PDS 0.99o for v5.0 kernel, :)

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

13 comments:

  1. I get various compile errors with schedutil enabled:

    https://pastebin.com/Y9muGL4P

    ReplyDelete
    Replies
    1. Sorry, pushed an old local branch. Pls "git pull"/get the all-in-one patch file if you have done before this reply.

      Delete
  2. Builds and boots fine on my test VM here, thanks, although I was confused about the initial push as well…

    ReplyDelete
  3. Hi Alfred,

    here I'm again ;)
    Can you please check the following changes to your code:

    @@ -460,10 +460,10 @@ static inline void time_slice_expired(struct task_struct *p, struct rq *rq)
    {
    p->time_slice = timeslice();
    - if (p->prio >= NORMAL_PRIO) {
    + if (p->prio >= NORMAL_PRIO)
    p->deadline = rq->clock + task_deadline_diff(p);
    - update_task_priodl(p);
    - }
    +
    + update_task_priodl(p);
    }
    static inline struct task_struct *rq_first_queued_task(struct rq *rq)

    The difference to your code is only, that update_task_periodl(p) will always do be done for the function call, and not only for >=normal tasks.
    This was the functionality prior to your commit "Rework time_slice_expired()" (besides the reworked formula for normal tasks).
    So my last code changes was working, not because the reuse of the old formula or the old value of p->deadline, but because the update was done every time. So it was my fault, to think the formula was the case. Sorry for it.

    Tested the new code on Oleksandr's pf-kernel with your PDS 0.99o, even with all yields (0,1,2), could not trigger the error.

    Regards sysitos

    ReplyDelete
    Replies
    1. Interesting finding. Normally, just NORMAL/BATCH/IDLE tasks have deadline. I'd need some time to consider this.

      Delete
    2. Hi Alfred,

      thanks for your investigation.
      Running at the moment your newest git and still no hung for akonadi.
      Don't know. if there are other impacts, but stress tested my machine and haven't seen any.
      Thanks.
      Regards sysitos

      Delete
    3. I'll consider 0.99p release this weekend.

      Delete
  4. Alfred,

    with CONFIG_ENERGY_MODEL it still fails:

    ===
    [ 291s] kernel/sched/cpufreq_schedutil.c: In function 'rebuild_sd_workfn':
    [ 291s] kernel/sched/cpufreq_schedutil.c:926:2: error: implicit declaration of function 'rebuild_sched_domains'; did you mean 'free_sched_domains'? [-Werror=implicit-function-declaration]
    ===

    ReplyDelete
    Replies
    1. @pf
      Pls checkout the fix at https://gitlab.com/alfredchen/linux-pds/commit/91c2ffd8fe4d73d38581bbd988dfec9703d74c5e

      Delete
    2. Builds fine now, thanks.

      BTW, this was triggered by the stock Arch kernel config.

      Delete
  5. Built and booted x86-UP...it just won't die. :-P I need to get my new x64 install's config customized so I can start running PDS on it too...

    ReplyDelete
  6. Replies
    1. Previous user provided benchmark is at https://docs.google.com/spreadsheets/d/163U3H-gnVeGopMrHiJLeEY1b7XlvND2yoceKbOvQRm4/edit#gid=1458203995

      For new scheduler, officially it will only compare against PDS and CFS.

      Delete