wkspace failed allocations with heap protection enabled

Matthew J Fletcher amimjf at gmail.com
Wed Apr 13 15:51:05 UTC 2022


Hi Joel,

Works fine without debug, its the deferred free doing _Heap_Allocate with
the negative size thats causing it.


On Wed, 13 Apr 2022 at 16:09, Joel Sherrill <joel at rtems.org> wrote:

> This appears to be a bad side-effect of the way the deferred free is
> implemented
> when the memory protection/fence is enabled. This is turned on by enabling
> rtems debug.
>
> I'd recommend filing a ticket and assigning it to Sebastian for a real fix.
>
> In the meantime, see if building RTEMS without debug enabled helps.
>
> --joel
>
> On Wed, Apr 13, 2022 at 4:30 AM Matthew J Fletcher <amimjf at gmail.com>
> wrote:
>
>> Hi,
>>
>> Investigating the "Total number of failed allocations:" from the
>> wkspace cmd i see that;
>>
>>     /* Statistics */
>>     ++stats->failed_allocs;
>>
>> Are incremented when _Heap_Allocate_aligned_with_boundary fails, however
>> it
>> seems this will routinely fail due to;
>>
>> _Heap_Protection_free_all_delayed_blocks seemingly on purpose creating an
>> impossibly large allocation.
>>
>>     uintptr_t large = 0
>>       - (uintptr_t) HEAP_BLOCK_HEADER_SIZE
>>       - (uintptr_t) HEAP_ALLOC_BONUS
>>       - (uintptr_t) 1;
>>
>>     void *p = _Heap_Allocate( heap, large );
>>
>> This makes it difficult to place a breakpoint on failed_allocs to
>> investigate true low memory situations with heap protection enabled.
>>
>>
>> regards
>> ---
>> Matthew J Fletcher
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
>>
>

-- 

regards
---
Matthew J Fletcher


More information about the users mailing list