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.
I get various compile errors with schedutil enabled:
ReplyDeletehttps://pastebin.com/Y9muGL4P
Sorry, pushed an old local branch. Pls "git pull"/get the all-in-one patch file if you have done before this reply.
DeleteBuilds and boots fine on my test VM here, thanks, although I was confused about the initial push as well…
ReplyDeleteHi Alfred,
ReplyDeletehere 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
Interesting finding. Normally, just NORMAL/BATCH/IDLE tasks have deadline. I'd need some time to consider this.
DeleteHi Alfred,
Deletethanks 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
I'll consider 0.99p release this weekend.
DeleteAlfred,
ReplyDeletewith 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]
===
@pf
DeletePls checkout the fix at https://gitlab.com/alfredchen/linux-pds/commit/91c2ffd8fe4d73d38581bbd988dfec9703d74c5e
Builds fine now, thanks.
DeleteBTW, this was triggered by the stock Arch kernel config.
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...
ReplyDeleteIs that better than MuQSS?
ReplyDeletePrevious user provided benchmark is at https://docs.google.com/spreadsheets/d/163U3H-gnVeGopMrHiJLeEY1b7XlvND2yoceKbOvQRm4/edit#gid=1458203995
DeleteFor new scheduler, officially it will only compare against PDS and CFS.