From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Hall Subject: Re: DPDK (and rte_*alloc family) friendly Valgrind Date: Fri, 12 Feb 2016 22:47:47 -0800 Message-ID: <33FC4BA3-61EA-4681-AF73-E5C38002B3D3@mhcomputing.net> References: <1455144896.2805.32.camel@brocade.com> <1719358.h1p3ccrXDn@xps13> Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Cc: "" To: Luca Boccassi Return-path: Received: from mail.mhcomputing.net (master.mhcomputing.net [74.208.228.170]) by dpdk.org (Postfix) with ESMTP id C94CA918F for ; Sat, 13 Feb 2016 07:47:49 +0100 (CET) In-Reply-To: <1719358.h1p3ccrXDn@xps13> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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: =3D=3D18730=3D=3D Source and destination overlap in memcpy(0x6851c00, = 0x6851c00, 4144) =3D=3D18730=3D=3D at 0x4C30573: memcpy@@GLIBC_2.14 (in = /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) =3D=3D18730=3D=3D by 0x787195: sort_by_physaddr (eal_memory.c:747) =3D=3D18730=3D=3D by 0x788314: rte_eal_hugepage_init = (eal_memory.c:1198) =3D=3D18730=3D=3D by 0x8F1888: rte_eal_memory_init = (eal_common_memory.c:145) =3D=3D18730=3D=3D by 0x751BB6: rte_eal_init (eal.c:793) =3D=3D18730=3D=3D by 0x4D9E8A: main (sdn_sensor.c:555) =3D=3D18730=3D=3D Thread 3: =3D=3D18730=3D=3D Syscall param epoll_ctl(event) points to uninitialised = byte(s) =3D=3D18730=3D=3D at 0x60C249A: epoll_ctl (syscall-template.S:81) =3D=3D18730=3D=3D by 0x72F88E: eal_intr_thread_main = (eal_interrupts.c:844) =3D=3D18730=3D=3D by 0x581A6A9: start_thread (pthread_create.c:333) =3D=3D18730=3D=3D by 0x60C1EEC: clone (clone.S:109) =3D=3D18730=3D=3D Address 0x8400b38 is on thread 3's stack =3D=3D18730=3D=3D in frame #1, created by eal_intr_thread_main = (eal_interrupts.c:801) =3D=3D18730=3D=3D 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.=