aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/mem/mem.md
blob: 84ab820e5e5be51218566af2735457a50134388c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# VPP mem preload {#mempreload_doc}

Internal VPP memory allocations rely on VPP main-heap, however when using
external libraries, esp. in plugins (eg. OpenSSL library used by the IKEv2
plugin), those external libraries usually manages memory using the standard
libc `malloc()`/`free()`/... calls. This, in turn, makes use of the default
libc heap.

VPP has no knowledge of this heap and tools such as memory traces cannot be
used.

In order to enable the use of standard VPP debugging tools, this library
replaces standard libc memory management calls with version using VPP
main-heap.

To use it, you need to use the `LD_PRELOAD` mechanism, eg.
```
~# LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libvppmem_preload.so /usr/bin/vpp -c /etc/vpp/startup.conf
```

You can then use tools such as memory traces as usual.