[dpdk-dev] DPDK (and rte_*alloc family) friendly Valgrind

Matthew Hall mhall at mhcomputing.net
Sat Feb 13 07:47:47 CET 2016


2016-02-10 22:54, Luca Boccassi:
> I created a set of patches for Valgrind that add support for the rte_*alloc family of functions. We use it for memcheck

Hi Luca,

This is awesome stuff:

==18730== Source and destination overlap in memcpy(0x6851c00, 0x6851c00, 4144)
==18730==    at 0x4C30573: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18730==    by 0x787195: sort_by_physaddr (eal_memory.c:747)
==18730==    by 0x788314: rte_eal_hugepage_init (eal_memory.c:1198)
==18730==    by 0x8F1888: rte_eal_memory_init (eal_common_memory.c:145)
==18730==    by 0x751BB6: rte_eal_init (eal.c:793)
==18730==    by 0x4D9E8A: main (sdn_sensor.c:555)

==18730== Thread 3:
==18730== Syscall param epoll_ctl(event) points to uninitialised byte(s)
==18730==    at 0x60C249A: epoll_ctl (syscall-template.S:81)
==18730==    by 0x72F88E: eal_intr_thread_main (eal_interrupts.c:844)
==18730==    by 0x581A6A9: start_thread (pthread_create.c:333)
==18730==    by 0x60C1EEC: clone (clone.S:109)
==18730==  Address 0x8400b38 is on thread 3's stack
==18730==  in frame #1, created by eal_intr_thread_main (eal_interrupts.c:801)
==18730==

I'll be running my app with this special valgrind heavily and patching these from now on.

I was wondering, is there a way to get the patchset on its own branch versus the master valgrind in your repository? If so it will be easier for the rest of the community to assist you with rebasing it periodically to the upstream valgrind. This would be easy if you keep their upstream code in one branch and the patches applied in another branch. Then we can update the master one somehow and rebase the patched one to this new code...

Matthew.


More information about the dev mailing list