Re: when/how is the schedule() function actually called?

Dawei Li <[email protected]>
Newsgroups org.kernelnewbies.kernelnewbies
Message-ID <CAG5MgCpnXMH_ThbNL=icCiYgehhex=Mzs1BgvLnaREYa6DtQFQ@mail.gmail.com>
Hi Valdis,

Thanks for getting back to me!
I should've looked into newer versions. (Was looking at 2.6.34 because the
latest book I have on linux kernel, Linux
Kernel Development, 3rd Edition by Robert Love, is based on that version.)

I do have the same question for the latest version.
Here:
https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5632
the scheduler_tick() is calling curr->sched_class->task_tick(rq, curr, 0);
https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L5651
This is calling entity_tick(),
https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/fair.c#L5447
and then resched_curr(),
https://github.com/torvalds/linux/blob/4df7c5fde316820286dfa6d203a1005d7fbe007d/kernel/sched/core.c#L1040

As the comment says, resched_curr() is still just setting the need_resched
flag on a uniprocessor.
It is not calling the schedule() function.
When/how is the schedule() function actually called?

Appreciate any explanation/guidance on this!
Thanks!


On Sat, Dec 9, 2023 at 1:45 AM Valdis Klētnieks <[email protected]>
wrote:

> On Sat, 09 Dec 2023 00:16:32 +0800, Dawei Li said:
> > Greetings!
>
> > (Although I am using the 2.6.34 version, I believe the question is
> generally
> > applicable to any kernel version.)
>
> That is, in general, a bad assumption when you are looking at kernel
> versions
> old enough that they count as digital archaeology....
>
> [/usr/src/linux-next] git show v2.6.34
> tag v2.6.34
> Tagger: Linus Torvalds <[email protected]>
> Date:   Sun May 16 14:17:44 2010 -0700
> [/usr/src/linux-next] git diff --shortstat  v2.6.34..next-20231205
>  96965 files changed, 32056985 insertions(+), 7606202 deletions(-)
>
> Given that next-20231205 has just over 33 million lines of code, we're well
> into territory where there's a vanishing small percentage of code still
> remaining unchanged from 2010.
>
> And yes, that means that even basic functions schedule() and friends have
> been
> reworked in he past decade and a half....
>
>

_______________________________________________
Kernelnewbies mailing list
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.