I have made a dummy program that seems to exhibit the same GC slowdown behavior, minus the segmentation faults. Compiling with -threaded and running with -N12 I get very bad performance (3x slower than -N1), running with -N12 -qg it runs approximately 3 times faster than -N1. I don't know if I should submit this as a bug or not? I'd certainly like to know why this is happening!
I'm trying to narrow it down so that I can submit a meaningful bug report, and it seems to be something to do with switching off parallel GC using -qg, whilst also passing -Nx.Are there any known issues with this that people are aware of? At the moment I am using the latest haskell platform release on arch.I'd like to give 7.2 a try in case that fixes it, but I'm using rather a lot of libraries (hmatrix, fclabels, random fu) and I don't know how to install them for multiple ghc versionsOn Wed, Oct 5, 2011 at 10:43 PM, Johan Tibell <johan.tibell@gmail.com> wrote:On Wed, Oct 5, 2011 at 2:37 PM, Tom Thorne <thomas.thorne21@gmail.com> wrote:The only problem is that now I am getting random occasional segmentation faults that I was not been getting before, and once got a message saying:Main: schedule: re-entered unsafelyPerhaps a 'foreign import unsafe' should be 'safe'?I think this may be something to do with creating a lot of sparks though, since this occurs whether I have the parallel GC on or not.
Unless you (or some library you're using) is doing what the error message says then you should file a GHC bug here:
http://hackage.haskell.org/trac/ghc/
-- Johan