sched_child_runs_first doesn't work

Rock Lee rockdotlee at gmail.com
Fri Dec 8 04:27:43 EST 2017


Hi,
I tried a test in that code without any gettimeofday, the result is
the same. BTW, I've tried on my raspberrpi 3 with kernel 4.13.
Moreover, I also tried several ubuntu 16.04. The result were always
father process ran first.

On Fri, Dec 8, 2017 at 1:53 PM, Mulyadi Santosa
<mulyadi.santosa at gmail.com> wrote:
>
>
> On Fri, Dec 8, 2017 at 10:07 AM, Rock Lee <rockdotlee at gmail.com> wrote:
>>
>> Hi,
>>
>> I ran my test code but always got the father process run first, even
>> after setting sched_child_runs_first. Could anyone give me a hint?
>> Here is my test code.
>>
>> #include <stdio.h>
>> #include <unistd.h>
>> #include <sys/time.h>
>>
>> int main(void)
>> {
>>     struct timeval tv;
>>     struct timezone tz;
>>     int err;
>>     pid_t ret = fork();
>>
>>     if (ret == 0) {
>>         err = gettimeofday(&tv, &tz);
>>         if (!err)
>>             printf("child time sec %d, usec %d\n", tv.tv_sec, tv.tv_usec);
>>
>>          printf("this child.\n");
>>     } else if (ret > 1) {
>>         err = gettimeofday(&tv, &tz);
>>
>>         if (!err)
>>             printf("father time sec %d, usec %d\n", tv.tv_sec,
>> tv.tv_usec);
>>         printf("this father.\n");
>>     } else
>>         printf("err!!\n");
>>     return 0;
>> }
>>
>>
>> --
>> Cheers,
>> Rock
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
>
> Hi...
>
> IIRC, gettimeofday() will eventually call system call (with the same name, I
> think). And I guess this is where the root cause come.
>
> Your child might actually ran first, but since it called system call,
> re-scheduling the kicked in, and parent got the chance to run.
>
> In order to prove this theory, try to execute printf("this is parent") or
> printf("this is child") first, then gettimeofday() later.
>
> Good luck and cmiiw
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com



-- 
Cheers,
Rock



More information about the Kernelnewbies mailing list