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
Severe loss of performance due to new signal handling
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2006-03-21 (01:33)
From: Robert Roessler <roessler@r...>
Subject: Re: [Caml-list] Severe loss of performance due to new signal handling
Xavier Leroy wrote:
>  > It seems that changes to signal handling between OCaml 3.08.4 and 3.09.1
>  > can lead to a very significant loss of performance (up to several orders
>  > of magnitude!) in code that uses threads and performs I/O (tested on 
> Linux).
>  > [...]
>  > Maybe some assembler guru can repeat this result and explain to us
>  > what's going on...
> Short explanation: atomic instructions are dog slow.

At the risk of being "irrelevant", I wanted to nail down exactly what 
assertion is being made here: are we talking about directly executing 
in assembly code the relevant x86[-64]/ppc/whatever instructions for 
"read-and-clear", or going through OS-dependent access routines like 
Windows' InterlockedExchange()?

Or: is the source of the dog slow behavior because of OS overhead, or 
is it a low-level issue like memory barriers/cache lines getting 
flushed/something else?

Robert Roessler