Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Why must types be always defined at the top level?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-06-28 (20:26)
From: Christophe Raffalli <christophe.raffalli@u...>
Subject: Re: [Caml-list] Thread and kernel 2.6 pb still there in CVS
Xavier Leroy wrote:
>>I tried to submit a change in vouillon's entry in the bug tracking 
>>system (classed as not a bug because can not reproduce), but as I am not 
>>sure it worked, So I also post this here
> You should be grateful to Olivier Andrieu, who actually cared to
> submit a bug report along with useful info on 2.6 kernels.

Sorry, but I thought continuing an entry in the bug tracking was better 
than adding one (but I was unable tu actually make a comment in that 
entry !)

> The question I'm currently investigating is whether the call to
> sched_yield() can be omitted, as it's just a scheduling hint.  Initial
> experiments suggested that this would hurt fairness (in Caml thread
> scheduling) quite a lot on all platforms other than Linux 2.6.
> More careful experiments that I'm currently conducting suggest that it
> might not be so bad.  One can also play games where sched_yield()
> isn't called if there are no other Caml threads waiting for the global
> Caml mutex.

Someone (I do not remember who) suggested a call to select in place of 

My thought about semantics in that
- a system call saying schedule just now or later (like the semantics of 
sched_yield in 2.4) only lower the percentage of CPU a thread get, 
except if you manage to have your thread "in phase" (I do not know if 
this is proper english) with the scheduler.

Then to lower your % of CPU you should use renice (but I do not know if 
the semantics of renice is per thread or per processus).

However a system call saying "I do not not need CPU for a while" could 
be usefull ... but it should have another name not to break existing 
program ... and should have an (optional ?) argument saying how long is 
this while.

So I think the 2.6 developper are right, but should have created a new 
system call. and let sched yield unchanged.

Any one can feel free to forward my post to a kernel developpers list :-)

> In summary, a solution will eventually be found, but please be
> patient, and submit a bug report next time.
> - Xavier Leroy

Christophe Raffalli
Université de Savoie
Batiment Le Chablais, bureau 21
73376 Le Bourget-du-Lac Cedex

tél: (33) 4 79 75 81 03
fax: (33) 4 79 75 87 42
IMPORTANT: this mail is signed using PGP/MIME
At least Enigmail/Mozilla, mutt or evolution
can check this signature

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: