Runtime performance degradation for multi-threaded C FFI callback
Simon Marlow
marlowsd at gmail.com
Mon Jan 23 16:43:53 CET 2012
On 23/01/2012 14:54, John Lato wrote:
> I agree the OS scheduler is likely to contribute to our different
> observations. I'll try to test with ghc-7.4-rc1 tonight to see if I
> get similar results to 7.2.1.
>
> If you want to see some code I'll post it, although I doubt it's
> necessary. I would appreciate it if you (or someone else in the know)
> could answer a question for me: does the GHC runtime handle scheduling
> of code from Haskell threads (forkIO) and foreign callbacks (via
> FunPtr's) in the same way, or are there restrictions on which
> capability may handle one or the other (ignoring bound threads and the
> like)?
Callbacks always create bound threads. There are no restrictions on
which capabilities can handle either forkIO or bound threads.
Cheers,
Simon
> Thank you,
> John L.
>
> On Mon, Jan 23, 2012 at 1:26 PM, Simon Marlow<marlowsd at gmail.com> wrote:
>> I'll need to analyse the program to see what's going on. There was a small
>> change to the scheduler between 7.2.1 and 7.2.2 that could conceivably have
>> made a difference in this scenario, but it was aimed at fixing a bug rather
>> than improvement performance.
>>
>> Another possibility is a difference in OS scheduling behaviour between yours
>> and Daniel Fischer's setup. In microbenchmarks like this, it's easy for a
>> difference in OS scheduling behaviour to make a large difference in
>> performance if it happens consistently.
>>
>> Cheers,
>> Simon
More information about the Glasgow-haskell-users
mailing list