Commit Graph

8 Commits (9d23b7c55b78beefc753aa723b6f4b16db955e51)

Author SHA1 Message Date
Mika Leppänen a9746a563a Added extended block list to dynamic memory tracker
If same allocator (alloc call) allocates multiple dynamic memory blocks,
the additional blocks are added to extended memory block list, and
the allocator list reference count and total sizes are increased.
When statistics are calculated, it is only needed to process the
allocator list, not the whole memory block list.

Added also optional hash function to calculate the (start) index where
memory block information is stored on extended memory block list. Hash
is calculated from memory block address.

It is expected that hash distributes the free index searches evenly
to whole memory area allocated for extended memory block list. So if
area is large enough, in most cases the index pointed by the hash, or
the index few indexes from that, should be empty and available for use.
Similarly, when memory block is freed, the search for the block on
the extended memory block list, starts from the index pointed by the
hash.

If hash is not used, extended memory block list searches start always
from index 0.
2020-11-18 17:31:41 +02:00
Mika Leppänen 5c24b26940 Added nanostack dynamic memory tracker and hooks to dynmem library
Nanostack dynamic memory tracker tracks memory allocations. It has following
interface:

ns_dyn_mem_tracker_lib_alloc: is called on alloc

ns_dyn_mem_tracker_lib_free: is called on free

ns_dyn_mem_tracker_lib_step: updates the lifetime of individual memory
blocks (is used to detected which blocks are permanent and which
have been allocated lately)

ns_dyn_mem_tracker_lib_allocator_lists_update: updates allocator lists,
there are lists for top allocators, permanent allocators and allocators
going to permanent allocators list

ns_dyn_mem_tracker_lib_max_snap_shot_update: can be used to update memory
maximum usage snap shot, this can be called on alloc if snap shot is
needed
2020-11-16 10:20:36 +02:00
Arto Kinnunen 51d37d5da4 Merge commit '8730005927c6e12a78957c2eda92dc5a9698cdea' into nanostack_libservice_update
* commit '8730005927c6e12a78957c2eda92dc5a9698cdea':
  Squashed 'features/frameworks/nanostack-libservice/' changes from dd98c37..9af7568
2019-07-05 10:44:37 +03:00
Arto Kinnunen 3b1ccfac0a Merge commit 'd53d1dffb7405776dd84fa24a2eec7c18f445fed'
* commit 'd53d1dffb7405776dd84fa24a2eec7c18f445fed':
  Squashed 'features/frameworks/nanostack-libservice/' changes from 1d4c358..dd98c37
2019-02-25 13:00:32 +02:00
Arto Kinnunen 923ce138f5 Merge commit '661681f65c3fb61aec2e4605bef0fc075cc8cb0d' into mbedos511
* commit '661681f65c3fb61aec2e4605bef0fc075cc8cb0d':
  Squashed 'features/frameworks/nanostack-libservice/' changes from bb56e37..1d4c358
2018-11-10 20:14:25 +02:00
Arto Kinnunen 1dac676833 Merge commit '7d2f0cab63a2223a426c44e13f771abe6a7d7eaf'
* commit '7d2f0cab63a2223a426c44e13f771abe6a7d7eaf':
  Squashed 'features/frameworks/nanostack-libservice/' changes from 2705b9b..5eb2f3f
2018-10-05 13:09:29 +03:00
Arto Kinnunen 3d5010de12 Merge commit 'a184ff592b547f153aa14c99329f65fd18515b0d'
* commit 'a184ff592b547f153aa14c99329f65fd18515b0d':
  Squashed 'features/frameworks/nanostack-libservice/' changes from ddd45db..2705b9b
2018-07-02 13:15:58 +03:00
Seppo Takalo d1c6bc0913 Get rid of FEATURE_COMMON_PAL
Nanostack related files moved under 'feature/nanostack'
Common libraries moved to 'features/frameworks'

Allow FEATURE_COMMON_PAL still to be defined in the build so
that we don't break any builds.
2018-04-27 14:38:43 +03:00