Count allocs without side-effects

At the end of the benchmark program, heap stats are printed, and these
stats will be wrong if we reset counters in the middle.

Also remove the function to reset counters, in order to encourage other
programs to behave correctly as well.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
Manuel Pégourié-Gonnard 2022-01-05 10:05:54 +01:00
parent cd4ad0c67a
commit 6ced002a69
3 changed files with 4 additions and 14 deletions

View file

@ -98,11 +98,6 @@ void mbedtls_memory_buffer_alloc_status( void );
*/
void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_count );
/**
* \brief Reset alloc/free counters.
*/
void mbedtls_memory_buffer_alloc_count_reset( void );
/**
* \brief Get the peak heap usage so far
*

View file

@ -528,12 +528,6 @@ void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_co
*free_count = heap.free_count;
}
void mbedtls_memory_buffer_alloc_count_reset( void )
{
heap.alloc_count = 0;
heap.free_count = 0;
}
void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks )
{
*max_used = heap.maximum_used;

View file

@ -186,12 +186,12 @@ do { \
#define MEMORY_MEASURE_INIT \
size_t max_used, max_blocks, max_bytes; \
size_t prv_used, prv_blocks; \
size_t alloc_cnt, free_cnt; \
size_t alloc_cnt, free_cnt, prv_alloc, prv_free; \
mbedtls_memory_buffer_alloc_cur_get( &prv_used, &prv_blocks ); \
mbedtls_memory_buffer_alloc_max_reset( );
#define MEMORY_MEASURE_RESET \
mbedtls_memory_buffer_alloc_count_reset( );
mbedtls_memory_buffer_alloc_count_get( &prv_alloc, &prv_free );
#define MEMORY_MEASURE_PRINT( title_len ) \
mbedtls_memory_buffer_alloc_max_get( &max_used, &max_blocks ); \
@ -202,7 +202,8 @@ do { \
max_blocks -= prv_blocks; \
max_bytes = max_used + MEM_BLOCK_OVERHEAD * max_blocks; \
mbedtls_printf( "%6u heap bytes, %6u allocs", \
(unsigned) max_bytes, (unsigned) alloc_cnt );
(unsigned) max_bytes, \
(unsigned)( alloc_cnt - prv_alloc ) );
#else
#define MEMORY_MEASURE_INIT