eal/ppc: support ASan
Add support for Address Sanitizer (ASan) for PPC/POWER architecture. Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
parent
fc812a2140
commit
f2a66612ee
@ -433,7 +433,7 @@ if get_option('b_sanitize') == 'address' or get_option('b_sanitize') == 'address
|
|||||||
dpdk_extra_ldflags += '-lasan'
|
dpdk_extra_ldflags += '-lasan'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if is_linux and arch_subdir in ['x86', 'arm'] and dpdk_conf.get('RTE_ARCH_64')
|
if is_linux and dpdk_conf.get('RTE_ARCH_64')
|
||||||
dpdk_conf.set10('RTE_MALLOC_ASAN', true)
|
dpdk_conf.set10('RTE_MALLOC_ASAN', true)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -32,9 +32,9 @@ Example::
|
|||||||
- If the program is tested using cmdline, you may need to execute the
|
- If the program is tested using cmdline, you may need to execute the
|
||||||
"stty echo" command when an error occurs.
|
"stty echo" command when an error occurs.
|
||||||
|
|
||||||
ASan is aware of DPDK memory allocations, thanks to added instrumentation.
|
ASan is aware of DPDK memory allocations, thanks to added instrumentation, and
|
||||||
This is enabled on x86_64 and arm64 at the moment.
|
is enabled on all 64 bit architectures for Linux. Other architectures may have
|
||||||
Other architectures may have to define ASAN_SHADOW_OFFSET.
|
to define ASAN_SHADOW_OFFSET.
|
||||||
|
|
||||||
Example heap-buffer-overflow error
|
Example heap-buffer-overflow error
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
@ -112,6 +112,8 @@ malloc_elem_cookies_ok(const struct malloc_elem *elem)
|
|||||||
#define ASAN_SHADOW_OFFSET 0x00007fff8000
|
#define ASAN_SHADOW_OFFSET 0x00007fff8000
|
||||||
#elif defined(RTE_ARCH_ARM64)
|
#elif defined(RTE_ARCH_ARM64)
|
||||||
#define ASAN_SHADOW_OFFSET 0x001000000000
|
#define ASAN_SHADOW_OFFSET 0x001000000000
|
||||||
|
#elif defined(RTE_ARCH_PPC_64)
|
||||||
|
#define ASAN_SHADOW_OFFSET 0x020000000000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ASAN_SHADOW_GRAIN_SIZE 8
|
#define ASAN_SHADOW_GRAIN_SIZE 8
|
||||||
|
Loading…
Reference in New Issue
Block a user