On Mon, Oct 14, 2013 at 8:40 PM, Bennie Kloosteman <[email protected]>wrote:

> On Mon, Oct 14, 2013 at 11:56 PM, Jonathan S. Shapiro <[email protected]>wrote:
>
>> On Mon, Oct 14, 2013 at 3:47 AM, Bennie Kloosteman <[email protected]>wrote:
>>
>> Why does growing the heap cause a pause ?
>>>
>>
>> Because allocating a (sequence of) underlying pages from the operating
>> system is a surprisingly expensive operation.
>>
>
> But that wont stop the progam ,  just allocating threads which is not as
> important.
>

No no. We're talking about allocating a block during a TLA collection. The
allocation blocks the thread performing the allocation.

No allocation etc are all fine but i supose what we dont want is another
> thread / stop the world stopping a  non allocated thread.
>

We can get close, but not all the way there. We can make sure a
non-allocating thread doesn't stop, but during the phase when the collector
is coalescing we need to have read barriers on non-allocating threads as
well.


> Why use a ZCT ?   , I mean to find zero counts  you can just scan the
> Nursery when you need to evacuate it  presuming its sequentailly
> allocated...
>

It isn't, because the nursery isn't empty at start. And you also need to
scan the roots. The ZCT appears to be an alternative encoding for roots,
but one that is only effective if objects don't relocate.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to