valgrind exits with an error when using mmap (mmap mdev device)

骤变成玄武 via Valgrind-users <[email protected]> Wed, 15 Mar 2023 09:22:38 +0800
Newsgroups gmane.comp.debugging.valgrind
Message-ID <[email protected]>
1&nbsp; version:
&nbsp; &nbsp; valgrind-3.20.0
&nbsp; &nbsp; 4.19.25-200.el7.bclinux.x86_64
&nbsp; &nbsp; gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) 
2&nbsp; Problem description:
-- source code:&nbsp; &nbsp;mmap a mdev device

static int test_mmap_bar(void)
{
&nbsp; &nbsp; const char *path="/sys/class/mdev_bus/0000:06:00.0/resource4";
&nbsp; &nbsp; ...
&nbsp; &nbsp; flags = O_RDWR;
&nbsp; &nbsp; prot = PROT_READ | PROT_WRITE;
&nbsp; &nbsp; unsigned long len = 4096;
&nbsp; &nbsp; unsigned long offset = 0x320000;
&nbsp; &nbsp; fd = open(path, flags | O_SYNC);
&nbsp; &nbsp; if (fd < 0) {
&nbsp; &nbsp; &nbsp; &nbsp; printf("[ERROR] open device err\n");
&nbsp; &nbsp; &nbsp; &nbsp; return -1;
&nbsp; &nbsp; }
&nbsp; &nbsp; addr = mmap(0, len, prot, MAP_SHARED, fd, offset);
&nbsp; &nbsp; if (addr == P_FAILED) {
&nbsp; &nbsp; &nbsp; &nbsp; printf("[ERROR] mmap faild\n");
&nbsp; &nbsp; }
...
}


--run with valgrind : 
&nbsp; &nbsp; &nbsp;valgrind --leak-check=full --show-leak-kinds=all -v --log-file=valgrind.log ./build/valgrind-test --base-virtaddr=0x4000000000
-- The valgrind log reported the following error with mmap:
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;valgrind: m_debuginfo/image.c:587 (set_CEnt): Assertion '! sr_isError(sr)' failed.
--strace valgrind:
&nbsp; &nbsp; 
&nbsp; &nbsp; open("/sys/class/mdev_bus/0000:06:00.0/resource4", O_RDWR|O_SYNC) = 94&nbsp; &nbsp; rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP SYS], NULL, 8) = 0
&nbsp; &nbsp; gettid()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 13758
&nbsp; &nbsp; read(1028, "Y", 1)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 1
&nbsp; &nbsp; mmap(0x4033000, 4096, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, 94, 0x320000) = 0x4033000
&nbsp; &nbsp; syscall_332(0x5e, 0x58246543, 0x1000, 0xfff, 0x1003633aa0, 0) = 0
&nbsp; &nbsp; readlink("/proc/self/fd/94", "/sys/devices/pci0000:00/0000:00:"..., 4096) = 59
&nbsp; &nbsp; syscall_332(0xffffffffffffff9c, 0x597789da, 0, 0xfff, 0x10036346d0, 0) = 0
&nbsp; &nbsp; syscall_332(0x5e, 0x58246543, 0x1000, 0xfff, 0x1003634560, 0) = 0
&nbsp; &nbsp; pread64(94, 0x100299acd0, 8192, 0)&nbsp; &nbsp; &nbsp; = -1 EIO (Input/output error)
&nbsp; 
valgrind will do pread64&nbsp; after mmap ??




4&nbsp; run directly:
-- There is no problem with mmap
-- use pread64(..)&nbsp; will cause io error


5&nbsp; Quesions:
&nbsp; &nbsp; &nbsp; &nbsp;How can I use valgrind in this case

_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
valgrind.log (application/octet-stream, 23.5 KB)
==24198== Memcheck, a memory error detector
==24198== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==24198== Using Valgrind-3.20.0-5147d671e4-20221024 and LibVEX; rerun with -h for copyright info
==24198== Command: ./build/valgrind-test --base-virtaddr=0x4000000000
==24198== Parent PID: 20514
==24198== 
--24198-- 
--24198-- Valgrind options:
--24198--    --leak-check=full
--24198--    --show-leak-kinds=all
--24198--    -v
--24198--    --log-file=valgrind.log
--24198--    --gen-suppressions=yes
--24198--    --trace-children=yes
--24198-- Contents of /proc/version:
--24198--   Linux version 4.19.25-200.el7.bclinux.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)) #1 SMP Wed May 29 00:02:44 CST 2019
--24198-- 
--24198-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand-rdseed
--24198-- Page sizes: currently 4096, max supported 4096
--24198-- Valgrind library directory: /home/zhouyiming/TEST/valgrind-build/libexec/valgrind
--24198-- Reading syms from /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test
--24198-- Reading syms from /usr/lib64/ld-2.17.so
--24198-- Reading syms from /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/memcheck-amd64-linux
--24198--    object doesn't have a dynamic symbol table
--24198-- Scheduler: using generic scheduler lock implementation.
--24198-- Reading suppressions file: /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/default.supp
==24198== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-24198-by-root-on-rock8-soc
==24198== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-24198-by-root-on-rock8-soc
==24198== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-24198-by-root-on-rock8-soc
==24198== 
==24198== TO CONTROL THIS PROCESS USING vgdb (which you probably
==24198== don't want to do, unless you know exactly what you're doing,
==24198== or are doing some strange experiment):
==24198==   /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/../../bin/vgdb --pid=24198 ...command...
==24198== 
==24198== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==24198==   /path/to/gdb ./build/valgrind-test
==24198== and then give GDB the following command
==24198==   target remote | /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/../../bin/vgdb --pid=24198
==24198== --pid is optional if only one valgrind process is running
==24198== 
--24198-- REDIR: 0x4019d60 (ld-linux-x86-64.so.2:strlen) redirected to 0x580cc9e5 (vgPlain_amd64_linux_REDIR_FOR_strlen)
--24198-- REDIR: 0x4019b30 (ld-linux-x86-64.so.2:index) redirected to 0x580cc9ff (vgPlain_amd64_linux_REDIR_FOR_index)
--24198-- Reading syms from /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/vgpreload_core-amd64-linux.so
--24198-- Reading syms from /home/zhouyiming/TEST/valgrind-build/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
==24198== WARNING: new redirection conflicts with existing -- ignoring it
--24198--     old: 0x04019d60 (strlen              ) R-> (0000.0) 0x580cc9e5 vgPlain_amd64_linux_REDIR_FOR_strlen
--24198--     new: 0x04019d60 (strlen              ) R-> (2007.0) 0x04c30ab0 strlen
--24198-- REDIR: 0x4019ce0 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c31ca0 (strcmp)
--24198-- REDIR: 0x401a9a0 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c35d30 (mempcpy)
--24198-- Reading syms from /usr/lib64/libfdt-1.4.6.so
--24198--    object doesn't have a symbol table
--24198-- Reading syms from /usr/lib64/librt-2.17.so
--24198-- Reading syms from /usr/lib64/libm-2.17.so
--24198-- Reading syms from /usr/lib64/libnuma.so.1
--24198--    object doesn't have a symbol table
--24198-- Reading syms from /usr/lib64/libdl-2.17.so
--24198-- Reading syms from /usr/lib64/libpthread-2.17.so
--24198-- Reading syms from /usr/lib64/libc-2.17.so
==24198== WARNING: new redirection conflicts with existing -- ignoring it
--24198--     old: 0x05bffc30 (memalign            ) R-> (1011.0) 0x04c2fd82 memalign
--24198--     new: 0x05bffc30 (memalign            ) R-> (1017.0) 0x04c2fd52 aligned_alloc
==24198== WARNING: new redirection conflicts with existing -- ignoring it
--24198--     old: 0x05bffc30 (memalign            ) R-> (1011.0) 0x04c2fd82 memalign
--24198--     new: 0x05bffc30 (memalign            ) R-> (1017.0) 0x04c2fd25 aligned_alloc
--24198-- Reading syms from /usr/lib64/libgcc_s-4.8.5-20150702.so.1
--24198--    object doesn't have a symbol table
--24198-- REDIR: 0x5c09910 (libc.so.6:strcasecmp) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5c06690 (libc.so.6:strnlen) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5c0bbe0 (libc.so.6:strncasecmp) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5c090f0 (libc.so.6:memset) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5c090a0 (libc.so.6:memcpy@GLIBC_2.2.5) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5c065b0 (libc.so.6:__GI_strlen) redirected to 0x4c30a10 (__GI_strlen)
--24198-- REDIR: 0x5c08080 (libc.so.6:__GI_strrchr) redirected to 0x4c30470 (__GI_strrchr)
--24198-- REDIR: 0x5bff370 (libc.so.6:malloc) redirected to 0x4c2b0a0 (malloc)
--24198-- REDIR: 0x5c1f100 (libc.so.6:__GI_strstr) redirected to 0x4c35fc0 (__strstr_sse2)
--24198-- REDIR: 0x5c08780 (libc.so.6:memchr) redirected to 0x4c31d40 (memchr)
--24198-- REDIR: 0x5c0e320 (libc.so.6:__GI_memcpy) redirected to 0x4c32950 (__GI_memcpy)
--24198-- REDIR: 0x5bff870 (libc.so.6:realloc) redirected to 0x4c2fa0b (realloc)
--24198-- REDIR: 0x5bff790 (libc.so.6:free) redirected to 0x4c2d626 (free)
--24198-- REDIR: 0x5bffd90 (libc.so.6:calloc) redirected to 0x4c2f7ee (calloc)
--24198-- REDIR: 0x5c08f10 (libc.so.6:__GI_memmove) redirected to 0x4c350c0 (__GI_memmove)
--24198-- REDIR: 0x5c0fba0 (libc.so.6:strchrnul) redirected to 0x4c35850 (strchrnul)
--24198-- REDIR: 0x5c092c0 (libc.so.6:__GI_mempcpy) redirected to 0x4c35a60 (__GI_mempcpy)
--24198-- REDIR: 0x5c201d0 (libc.so.6:strcasestr) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cbe330 (libc.so.6:__strcasestr_sse42) redirected to 0x4c36290 (strcasestr)
--24198-- REDIR: 0x5c1f6c0 (libc.so.6:strstr) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cba140 (libc.so.6:__strstr_sse42) redirected to 0x4c36050 (__strstr_sse42)
--24198-- REDIR: 0x5c08040 (libc.so.6:rindex) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cb9fa0 (libc.so.6:__strrchr_sse42) redirected to 0x4c30500 (__strrchr_sse42)
--24198-- REDIR: 0x5c06770 (libc.so.6:strncmp) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cb8fc0 (libc.so.6:__strncmp_sse42) redirected to 0x4c312e0 (__strncmp_sse42)
--24198-- REDIR: 0x5c04b10 (libc.so.6:strcmp) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cb8210 (libc.so.6:__strcmp_sse42) redirected to 0x4c31c50 (__strcmp_sse42)
--24198-- REDIR: 0x5c06560 (libc.so.6:strlen) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cc0190 (libc.so.6:__strlen_sse42) redirected to 0x4c30a70 (__strlen_sse42)
--24198-- REDIR: 0x5c067b0 (libc.so.6:__GI_strncmp) redirected to 0x4c31200 (__GI_strncmp)
--24198-- REDIR: 0x5c09150 (libc.so.6:__GI_memset) redirected to 0x4c34c80 (memset)
--24198-- REDIR: 0x5c0e2b0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cc5fa0 (libc.so.6:__memcpy_ssse3) redirected to 0x4c32150 (memcpy@@GLIBC_2.14)
--24198-- REDIR: 0x5c066c0 (libc.so.6:__GI_strnlen) redirected to 0x4c309c0 (__GI_strnlen)
==24198== Warning: noted but unhandled ioctl 0x3b64 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b65 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
--24198-- REDIR: 0x5c04a50 (libc.so.6:index) redirected to 0x4a2472f (_vgnU_ifunc_wrapper)
--24198-- REDIR: 0x5cb8160 (libc.so.6:__strchr_sse42) redirected to 0x4c30660 (index)
==24198== Warning: noted but unhandled ioctl 0x3b67 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b68 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b6a with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
--24198-- REDIR: 0x5c097b0 (libc.so.6:__GI_stpcpy) redirected to 0x4c345f0 (__GI_stpcpy)
--24198-- REDIR: 0x5c0f990 (libc.so.6:__GI___rawmemchr) redirected to 0x4c358b0 (__GI___rawmemchr)
==24198== Warning: set address range perms: large range [0x4040000000, 0x4880000000) (defined)
==24198== Warning: set address range perms: large range [0x4840000000, 0x4880000000) (noaccess)
==24198== Warning: set address range perms: large range [0x4880000000, 0x50c0000000) (defined)
==24198== Warning: set address range perms: large range [0x5080000000, 0x50c0000000) (noaccess)
==24198== Warning: set address range perms: large range [0x50c0000000, 0x5900000000) (defined)
==24198== Warning: set address range perms: large range [0x58c0000000, 0x5900000000) (noaccess)
==24198== Warning: set address range perms: large range [0x5900000000, 0x6140000000) (defined)
==24198== Warning: set address range perms: large range [0x6100000000, 0x6140000000) (noaccess)
--24198-- REDIR: 0x5ccb340 (libc.so.6:__memmove_ssse3) redirected to 0x4c31e00 (memcpy@GLIBC_2.2.5)
==24198== Warning: set address range perms: large range [0x4040000000, 0x4080000000) (defined)
--24198-- REDIR: 0xffffffffff600000 (???:???) redirected to 0x580cc9c7 (vgPlain_amd64_linux_REDIR_FOR_vgettimeofday)
--24198-- REDIR: 0xffffffffff600400 (???:???) redirected to 0x580cc9d1 (vgPlain_amd64_linux_REDIR_FOR_vtime)
--24198-- REDIR: 0x5c08b10 (libc.so.6:__GI_memcmp) redirected to 0x4c341f0 (__GI_memcmp)
==24198== Warning: noted but unhandled ioctl 0x3b66 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b71 with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b6b with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b6c with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: noted but unhandled ioctl 0x3b6d with no size/direction hints.
==24198==    This could cause spurious value errors to appear.
==24198==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==24198== Warning: invalid file descriptor -1 in syscall close()
==24198==    at 0x596C75D: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x68191A: pci_vfio_unmap_resource_primary (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA18469: vtpci_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA2F587: eth_virtio_dev_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA2F793: eth_virtio_pci_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x68464E: pci_probe_all_drivers (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x6847CB: rte_pci_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x6532EB: rte_bus_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x63FD5A: rte_eal_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x55A2E8: main (test.c:126)
==24198== Warning: invalid file descriptor -1 in syscall close()
==24198==    at 0x596C75D: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x68191A: pci_vfio_unmap_resource_primary (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA18469: vtpci_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA2F587: eth_virtio_dev_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0xA2F793: eth_virtio_pci_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x68464E: pci_probe_all_drivers (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x6847CB: rte_pci_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x6532EB: rte_bus_probe (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x63FD5A: rte_eal_init (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x55A2E8: main (test.c:126)

valgrind: m_debuginfo/image.c:587 (set_CEnt): Assertion '!sr_isError(sr)' failed.

host stacktrace:
==24198==    at 0x5804DC33: show_sched_status_wrk (m_libcassert.c:406)
==24198==    by 0x5804DD47: report_and_quit (m_libcassert.c:477)
==24198==    by 0x5804DEE1: vgPlain_assert_fail (m_libcassert.c:543)
==24198==    by 0x580D3A9A: set_CEnt (image.c:587)
==24198==    by 0x580D3E06: vgModuleLocal_img_from_fd (image.c:914)
==24198==    by 0x5809008B: vgModuleLocal_check_elf_and_get_rw_loads (readelf.c:3665)
==24198==    by 0x5807D1E7: vgPlain_di_notify_mmap (debuginfo.c:1353)
==24198==    by 0x580B02A8: vgModuleLocal_generic_PRE_sys_mmap (syswrap-generic.c:2467)
==24198==    by 0x580BBEAA: vgSysWrap_amd64_linux_sys_mmap_before (syswrap-amd64-linux.c:413)
==24198==    by 0x580AAF3C: vgPlain_client_syscall (syswrap-main.c:2239)
==24198==    by 0x580A6DFA: handle_syscall (scheduler.c:1211)
==24198==    by 0x580A92E6: vgPlain_scheduler (scheduler.c:1529)
==24198==    by 0x58101FC6: thread_wrapper (syswrap-linux.c:102)
==24198==    by 0x58101FC6: run_a_thread_NORETURN (syswrap-linux.c:155)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable syscall 9 (lwpid 24198)
==24198==    at 0x5C7257A: mmap (in /usr/lib64/libc-2.17.so)
==24198==    by 0x55A464: test_mmap_bar (test.c:107)
==24198==    by 0x55A464: main (test.c:161)
client stack range: [0x1FFEFF3000 0x1FFF000FFF] client SP: 0x1FFF0001E8
valgrind stack range: [0x1003535000 0x1003634FFF] top usage: 7456 of 1048576

Thread 2: status = VgTs_WaitSys syscall 232 (lwpid 24199)
==24198==    at 0x5C78693: ??? (in /usr/lib64/libc-2.17.so)
==24198==    by 0x64AD0B: eal_intr_thread_main (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x655E000 0x6D5BFFF] client SP: 0x6D5B690
valgrind stack range: [0x1003B05000 0x1003C04FFF] top usage: 3448 of 1048576

Thread 3: status = VgTs_WaitSys syscall 47 (lwpid 24200)
==24198==    at 0x596CB4D: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x658B7D: mp_handle (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x6D5F000 0x755CFFF] client SP: 0x755C350
valgrind stack range: [0x1005C63000 0x1005D62FFF] top usage: 3320 of 1048576

Thread 4: status = VgTs_WaitSys syscall 0 (lwpid 24202)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x7960000 0x815DFFF] client SP: 0x815D600
valgrind stack range: [0x1010567000 0x1010666FFF] top usage: 3296 of 1048576

Thread 5: status = VgTs_WaitSys syscall 0 (lwpid 24203)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x8161000 0x895EFFF] client SP: 0x895E600
valgrind stack range: [0x101066B000 0x101076AFFF] top usage: 3176 of 1048576

Thread 6: status = VgTs_WaitSys syscall 0 (lwpid 24204)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x8962000 0x915FFFF] client SP: 0x915F600
valgrind stack range: [0x101076F000 0x101086EFFF] top usage: 3176 of 1048576

Thread 7: status = VgTs_WaitSys syscall 0 (lwpid 24205)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x9163000 0x9960FFF] client SP: 0x9960600
valgrind stack range: [0x1010873000 0x1010972FFF] top usage: 3176 of 1048576

Thread 8: status = VgTs_WaitSys syscall 0 (lwpid 24206)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0x9964000 0xA161FFF] client SP: 0xA161600
valgrind stack range: [0x1010977000 0x1010A76FFF] top usage: 3368 of 1048576

Thread 9: status = VgTs_WaitSys syscall 0 (lwpid 24207)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xA165000 0xA962FFF] client SP: 0xA962600
valgrind stack range: [0x1010A7B000 0x1010B7AFFF] top usage: 3176 of 1048576

Thread 10: status = VgTs_WaitSys syscall 0 (lwpid 24208)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xA966000 0xB163FFF] client SP: 0xB163600
valgrind stack range: [0x1010B7F000 0x1010C7EFFF] top usage: 3176 of 1048576

Thread 11: status = VgTs_WaitSys syscall 0 (lwpid 24209)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xB167000 0xB964FFF] client SP: 0xB964600
valgrind stack range: [0x1010C83000 0x1010D82FFF] top usage: 3176 of 1048576

Thread 12: status = VgTs_WaitSys syscall 0 (lwpid 24210)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xB968000 0xC165FFF] client SP: 0xC165600
valgrind stack range: [0x1010D87000 0x1010E86FFF] top usage: 3176 of 1048576

Thread 13: status = VgTs_WaitSys syscall 0 (lwpid 24211)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xC169000 0xC966FFF] client SP: 0xC966600
valgrind stack range: [0x1010E8B000 0x1010F8AFFF] top usage: 3176 of 1048576

Thread 14: status = VgTs_WaitSys syscall 0 (lwpid 24212)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xC96A000 0xD167FFF] client SP: 0xD167600
valgrind stack range: [0x1010F8F000 0x101108EFFF] top usage: 3176 of 1048576

Thread 15: status = VgTs_WaitSys syscall 0 (lwpid 24213)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xD16B000 0xD968FFF] client SP: 0xD968600
valgrind stack range: [0x1011093000 0x1011192FFF] top usage: 3176 of 1048576

Thread 16: status = VgTs_WaitSys syscall 0 (lwpid 24214)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xD96C000 0xE169FFF] client SP: 0xE169600
valgrind stack range: [0x1011197000 0x1011296FFF] top usage: 3176 of 1048576

Thread 17: status = VgTs_WaitSys syscall 0 (lwpid 24215)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xE16D000 0xE96AFFF] client SP: 0xE96A600
valgrind stack range: [0x101129B000 0x101139AFFF] top usage: 3176 of 1048576

Thread 18: status = VgTs_WaitSys syscall 0 (lwpid 24216)
==24198==    at 0x596C6FD: ??? (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x6446C9: eal_thread_loop (in /home/zhouyiming/TEST/DPDK_TEST/build/valgrind-test)
==24198==    by 0x5965DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==24198==    by 0x5C780BC: clone (in /usr/lib64/libc-2.17.so)
client stack range: [0xE96E000 0xF16BFFF] client SP: 0xF16B600
valgrind stack range: [0x101139F000 0x101149EFFF] top usage: 3176 of 1048576


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.