From: Gabriel Kerneis <gabriel@kerneis.info>
To: Tom Ridge <tom.j.ridge+caml@googlemail.com>
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>, caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] Thread behaviour
Date: Mon, 30 Sep 2013 17:56:51 +0100 [thread overview]
Message-ID: <20130930165651.GA4207@kerneis.info> (raw)
In-Reply-To: <CABooLwOstn7yCXwGr_6n62tKN5ZPDoLbr-7=pSRMdmUQptuYYA@mail.gmail.com>
On Mon, Sep 30, 2013 at 04:12:23PM +0100, Tom Ridge wrote:
> > It all depends on the whim of the OS scheduler. OCaml has no control
> > over it. And you shoudn't expect any kind of fairness from the OS
> > scheduler, esp. Linux's, which gladly jettisons any pretense of
> > fairness in the hope of getting better throughput.
>
> Ah! You are saying that the problem (maybe) lies with the Linux scheduler.
> This had never occurred to me. Probably because I assumed the Linux
> phrase "completely fair scheduler" meant something (although
> admittedly, I never tried to find out what).
A bit of off-topic Linux history for those interested:
The behaviour of sched_yield() changed in Linux 2.6.23 (with the
introduction of the CFS), to adopt a semantics where it does not yield,
but only reduces the priority of the calling thread. This change has
been debated a lot, in particular because it broke many Java
applications. As a work-around, a kernel variable (sched_compat_yield)
was introduced to optionnally recover the original behaviour; the
rationale for the change was that sched_yield is arguably ill-specified
and programs should not rely on it but use (non-portable and tricky)
futexes, or (portable) mutexes instead.
The variable sched_compat_yield has been remove in Linux 2.6.39, with no
clear rationale, during one of the many refactoring of the CFS.
As a matter of fact, this change also broke OCaml scheduling. Nowadays,
sched_yield() is disabled in the ocaml runtime on Linux. Have a look at
http://caml.inria.fr/mantis/view.php?id=2663 for more details on the
caml-side of the story (in French).
--
Gabriel
next prev parent reply other threads:[~2013-09-30 16:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-27 10:10 Tom Ridge
2013-09-27 10:22 ` Simon Cruanes
2013-09-27 10:27 ` Romain Bardou
2013-09-27 10:51 ` Benedikt Grundmann
2013-09-28 19:09 ` Tom Ridge
2013-09-29 7:54 ` Tom Ridge
2013-09-29 12:37 ` Yaron Minsky
2013-09-29 16:25 ` Tom Ridge
2013-09-29 16:46 ` Chet Murthy
2013-09-29 17:18 ` Tom Ridge
2013-09-29 17:47 ` Chet Murthy
2013-09-30 8:24 ` Romain Bardou
2013-10-07 14:57 ` Goswin von Brederlow
2013-09-30 8:16 ` Romain Bardou
2013-10-01 3:32 ` Ivan Gotovchits
2013-10-07 14:49 ` Goswin von Brederlow
2013-09-30 9:18 ` Xavier Leroy
2013-09-30 15:12 ` Tom Ridge
2013-09-30 16:01 ` Török Edwin
2013-09-30 16:56 ` Gabriel Kerneis [this message]
2013-09-30 18:18 ` Alain Frisch
2013-10-01 5:01 ` Pierre Chambart
2013-10-01 7:21 ` Gabriel Kerneis
2013-10-02 10:37 ` Wojciech Meyer
2013-10-02 11:52 ` Francois Berenger
2013-10-02 11:58 ` Wojciech Meyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130930165651.GA4207@kerneis.info \
--to=gabriel@kerneis.info \
--cc=Xavier.Leroy@inria.fr \
--cc=caml-list@inria.fr \
--cc=tom.j.ridge+caml@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox