[m-dev.] enabling stseg component by default
Julien Fischer
jfischer at opturion.com
Wed May 22 14:46:40 AEST 2013
On Wed, 22 May 2013, Paul Bone wrote:
> On Wed, May 22, 2013 at 02:34:22PM +1000, Julien Fischer wrote:
>>
>>
>> On Wed, 22 May 2013, Paul Bone wrote:
>>
>>> On Tue, May 21, 2013 at 05:14:22PM +1000, Julien Fischer wrote:
>>>>
>>>> Hi all,
>>>>
>>>> I propose that we enable the stseg (stack segments) grade component
>>>> by default for all low-level C grades in the post 13.05 versions
>>>> of the compiler.
>>>>
>>>> Any objections?
>>>
>>> I don't mind. Although the memory zones code probably needs further tuning,
>>
>> In which respect?
>
> There are three things I"m aware of:
>
> 1) You requested a way to get stats about memory zone usage, I never
> implemented this.
> 2) The caching and freeing of zones (how many do we cache, what policy
> is used to prevent the cache from growing too large) has never been
> benchmarked/tuned.
One thing we could do is add something to the stdlib's gc module that
clears the zone cache, or possibly just extend gc.garbage_collect/[02]
to do that.
So far as tuning the other parameters you mention goes, we probably need
to start using the stack segement grades more to do that ...
> 3) I planned, but never implemented, per-engine caching of stack zones
> in parallel grades (in addition to a global cache). My current
> thinking is that an engine should hang onto a small number of zones,
> 1 or perhaps 2 so that if a process keeps crossing a zone threshold
> it doesn't need to bother the global cache often. The local cache's
> data structure should also be very simple to make this operation as
> quick as possible.
That's not really an important issue for the non-parallel grades! ;-)
What I am aiming to do here is to make it less likely that users will
bump into stack exhaustion problems due to the stacks in the non-stseg
grades having a fixed size.
Cheers,
Julien.
More information about the developers
mailing list