[m-rev.] for review: Enable thread-local allocation and parallel marking on more platforms.
Julien Fischer
jfischer at opturion.com
Tue Aug 12 17:20:45 AEST 2014
On Tue, Aug 12, 2014 at 3:52 PM, Paul Bone <paul at bone.id.au> wrote:
> On Tue, Aug 12, 2014 at 03:32:46PM +1000, Julien Fischer wrote:
> >
> > On Tue, 12 Aug 2014, Julien Fischer wrote:
> >
> >> On Tue, 12 Aug 2014, Peter Wang wrote:
> >>
> >>> On Tue, 12 Aug 2014 11:19:25 +1000 (EST), Julien Fischer
> >>> <jfischer at opturion.com> wrote:
> >>>>
> >>>> On Tue, 12 Aug 2014, Peter Wang wrote:
> >>>>
> >>>>> I intend to apply this on the 14.01 branch. I think it should be
> fine,
> >>>>> but if someone could test it on an SMP OS X machine (e.g. bootcheck
> in
> >>>>> hlc.par.gc) then that would be better.
> >>>>
> >>>> By "someone", do you mean me?
> >>>
> >>> Yes :)
> >>
> >> On OS X, I get the following failures when bootchecking in hlc.par.gc
> >>
> >> hard_coded/spawn_native
> >> hard_coded/thread_barrier_test
> >> hard_coded/tl_backjump_test
> >> par_conj/spawn_many
> >> par_conj/thread_barrier
> >>
> >> All are aborting due to segmentation faults. I'm not sure if this is
> >> a result of your patch or if it's happening anyway. (I'll try again
> >> without your patch.)
> >
> > The above also occur without your patch; I'll look into them separately.
> >
>
> Peter pointed out that there are a number of problems in the RTS in
> general.
> I havn't yet found the time to look into these, hopefully soon. I also
> want
> to check all the test cases too.
Was one such problem the following?
diff --git a/runtime/mercury_memory_zones.c b/runtime/mercury_memory_zones.c
index 91f9f89..df418b6 100644
--- a/runtime/mercury_memory_zones.c
+++ b/runtime/mercury_memory_zones.c
@@ -514,7 +514,7 @@ MR_next_offset(void)
old_counter = offset_counter;
new_counter = (old_counter + 1) % (CACHE_SLICES - 1);
-#if defined(MR_THREAD_SAFE)
+#if defined(MR_LL_PARALLEL_CONJ)
/*
** The critical section here is really small, a CAS will work well.
The macros protecting MR_compare_and_swap_int and friends do
not appear to be consistent. The declarations are protected by
MR_THREAD_SAFE
but the definitions by MR_LL_PARALLEL_CONJ. (And for reasons that mystify
me at the moment, the whole thing breaks when I attempt to build the runtime
in hlc.par.gc.ll_debug, but not in hlc.par.gc -- that's what the above
patch works
around.)
Cheers,
Julien.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20140812/0d25399e/attachment.html>
More information about the reviews
mailing list