<div dir="ltr"><div dir="ltr">Hi Valdis,<br><br>Thanks for getting back to me!<br>I should've looked into newer versions. (Was looking at 2.6.34 because the latest book I have on linux kernel, Linux<br>Kernel Development, 3rd Edition by Robert Love, is based on that version.)<br><br>I do have the same question for the latest version.<br>Here:<br><a href="https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5632">https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5632</a><br>the scheduler_tick() is calling curr->sched_class->task_tick(rq, curr, 0);<br><a href="https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5651">https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5651</a><br>This is calling entity_tick(),<br><a href="https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/fair.c#L5447">https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/fair.c#L5447</a><br>and then resched_curr(),<br><a href="https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L1040">https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L1040</a><br><br>As the comment says, resched_curr() is still just setting the need_resched flag on a uniprocessor.<br>It is not calling the schedule() function. <br>When/how is the schedule() function actually called?<div><br></div><div>Appreciate any explanation/guidance on this!</div><div>Thanks!</div></div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 9, 2023 at 1:45 AM Valdis Klētnieks <<a href="mailto:valdis.kletnieks@vt.edu">valdis.kletnieks@vt.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sat, 09 Dec 2023 00:16:32 +0800, Dawei Li said:<br>
> Greetings!<br>
<br>
> (Although I am using the 2.6.34 version, I believe the question is generally<br>
> applicable to any kernel version.)<br>
<br>
That is, in general, a bad assumption when you are looking at kernel versions<br>
old enough that they count as digital archaeology....<br>
<br>
[/usr/src/linux-next] git show v2.6.34<br>
tag v2.6.34<br>
Tagger: Linus Torvalds <<a href="mailto:torvalds@linux-foundation.org" target="_blank">torvalds@linux-foundation.org</a>><br>
Date:   Sun May 16 14:17:44 2010 -0700<br>
[/usr/src/linux-next] git diff --shortstat  v2.6.34..next-20231205<br>
 96965 files changed, 32056985 insertions(+), 7606202 deletions(-)<br>
<br>
Given that next-20231205 has just over 33 million lines of code, we're well<br>
into territory where there's a vanishing small percentage of code still<br>
remaining unchanged from 2010.<br>
<br>
And yes, that means that even basic functions schedule() and friends have been<br>
reworked in he past decade and a half....<br>
<br>
</blockquote></div></div><img src="https://email-signature-image.com/signature.gif?u=36542&e=467613527&v=16f6044f4d86db9ee0b85bd9f703340b4eda6425affca31c4bfd1f11066db98b" alt="" width="0" height="0" style="width:2px;max-height:0;overflow:hidden">