[PATCH] malloc: Count tcache entries downwards

Cupertino Miranda cupertino.miranda@oracle.com
Wed May 7 12:31:29 GMT 2025



On 07-05-2025 13:27, Cupertino Miranda wrote:
> Hi DJ, Wilco, Florian,
> 
> I wonder if we do not have a race around mallopt already.
> First look at the do_set_... functions seem to change shared variables 
> not really taking any consideration for concurrent accesses.
Not entirely true, __libc_mallopt locks the main arena, still I think 
this might not be enough.
> 
> Cheers,
> Cupertino
> 
> 
> On 07-05-2025 12:15, Wilco Dijkstra wrote:
>> Hi DJ,
>>
>>> It is far easier for threads to just compare *actual* counts with a
>>> changing policy limit.
>>
>> It seems easier, but that doesn't mean it works well. Changing global 
>> variables
>> used concurrently by many threads without atomics causes many issues...
>>
>> Even if you don't get concurrency issues, chunks would be locked into 
>> tcache
>> until the thread terminates if you lower tcache_bins or decrease 
>> tcache_count.
>> The same issue exists for the fast bins.
>>
>> And the question is, who is interested in changing tcache dynamically?
>> Is there any application that changes mxfast dynamically? I can see it 
>> might
>> be useful for debugging and testing malloc, but we don't need to add 
>> public
>> interfaces to do that.
>>
>>> Also, if "counts" is now counts of *empty* tcache slots, it needs a more
>>> obvious name.
>>
>> Like "num_slots" or "free_entries"?
>>
>>>> If we do this periodically then we may not even need to place 
>>>> restrictive limits
>>>> on the number of tcache entries
>>>
>>> Given what I've seen of fastbins and fragmentation, some way to limit
>>> growth should always be considered for new malloc features.
>>
>> It would still be a limit on growth if it is done regularly. Even 
>> today it would be
>> good to flush tcache every now and again.
>>
>> Overall an allocation budget seems better, ie. set a maximum amount of 
>> memory
>> cached in tcache. I'll do some experiments, but if we want to remove 
>> fastbins in
>> the future, we need to improve tcache effectiveness.
>>
>> Cheers,
>> Wilco
> 



More information about the Libc-alpha mailing list