From patchwork Sat Mar 16 08:05:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057330 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mmvLdUy2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5F4bGZz9s3l for ; Sat, 16 Mar 2019 19:06:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726689AbfCPIG2 (ORCPT ); Sat, 16 Mar 2019 04:06:28 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:41652 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725940AbfCPIG2 (ORCPT ); Sat, 16 Mar 2019 04:06:28 -0400 Received: by mail-pf1-f194.google.com with SMTP id d25so7898001pfn.8; Sat, 16 Mar 2019 01:06:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rgJvab5dyDapGAETbOTEIoe8FesICc8Vhk23q4gefms=; b=mmvLdUy2qsqJ4XMo0WVmM1TOp8bw5EBunUpFacihGneJwN5mNhve4vMMiMFC2frYsQ HHD9zcK/3hBvnvLqCq61d4zLlYQVeL6o8XT8PzdP3+E30srN86g+3DSI5t7JGjtxq6PX AOuKOYcuWnQZ1UyBOnLcp5oeQZ/xEwj3zgaVA9RXZECe4Hs9wZ7Lvt9GCQI9s0s8/hr3 HsfLNDVQtCKXRgb1VvNIjq6CFTP8krRMghbIF9NhH5iiJjY1MRye+VEB88JUq4or/pag x0zfC23CHeHIbYu4Sh2N6j5c4HhMRG8ESsfF48yj4wJn9240uIiVL/OqLb3fsMml9gFv zoIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rgJvab5dyDapGAETbOTEIoe8FesICc8Vhk23q4gefms=; b=JUuRy2/k1K3+cUMdBgolyJPUM0FmmYTQou3PHmVqqwG7ykKY7jSlBp2CC3TAlKTF/9 +yOhoFamVIclg/ClSEkMNzWpWLMzinC/bpV6Z3/jbyevuRc57siI93l574+OMBMLGaJs FndyQ3n0FKc7KrnxNq3n36nrH7+OQzz3TDXfU76ASu0RdV688DFOZlqjROeLcgLVotCu fycxPx/aJattwn4Bi/zhuuAZtEJr1HJdXMDqgl24W3+VSl7KDQfHGkTjbCLxFJfXIZeA 3L0JYn3y6CFo2znXb8Vt+GR5SrcZUgf3tJ0zoWUm0dOUrgZKV9q37Aqsd23R7kAg7d0e fGSA== X-Gm-Message-State: APjAAAU8ZNVorKipWc6/ylc5yAW1F9x6IBo3uFcwidqz5xnww9svBq3l l6bYZA7KeVOOAT1Gp1xNS/o= X-Google-Smtp-Source: APXvYqxPhVgAhJFiXql8hCgtfIqgc5iViYw+aq96d8MJ1uVyRuWNuxfg8vzGc6hCA9ghb3B+UpX/vQ== X-Received: by 2002:a63:6a48:: with SMTP id f69mr7360261pgc.7.1552723587295; Sat, 16 Mar 2019 01:06:27 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:06:26 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 01/16] perf: add doc for how to build perf with Asan and UBSan Date: Sat, 16 Mar 2019 16:05:41 +0800 Message-Id: <20190316080556.3075-2-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org AddressSanitizer (or ASan) and UndefinedBehaviorSanitizer (or UBSan) are very useful tools to detect program bugs. o AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs such as buffer overflows or memory leaks. o UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector supprted by GCC. UBSan detect undefined behavior of programs at runtime. This patch adds doc for how to use them on perf. Later patches will fix some of the issues disclosed by them. Signed-off-by: Changbin Du --- tools/perf/Documentation/Build.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/perf/Documentation/Build.txt b/tools/perf/Documentation/Build.txt index f6fc6507ba55..cae6e1d9b901 100644 --- a/tools/perf/Documentation/Build.txt +++ b/tools/perf/Documentation/Build.txt @@ -47,3 +47,23 @@ Those objects are then used in final linking: NOTE this description is omitting other libraries involved, only focusing on build framework outcomes + +3) buld and install perf + $ cd tools/perf + $ make DESTDIR=/usr + $ make DESTDIR=/usr install + +4) build with ASan or UBSan +AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs +such as buffer overflows or memory leaks. + $ cd tools/perf + $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address' + $ ASAN_OPTIONS=log_path=asan.log ./perf record -a +ASan outputs all detected issues into log file 'asan.log.'. + +UndefinedBehaviorSanitizer (or UBSan) is a fast undefined behavior detector +supprted by GCC. UBSan detect undefined behavior of programs at runtime. + $ cd tools/perf + $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=undefined' + $ UBSAN_OPTIONS=print_stacktrace=1 ./perf record -a +If UBSan detects any problem at runtime, it outputs a “runtime error:” message. \ No newline at end of file From patchwork Sat Mar 16 08:05:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057331 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="C5zBP7eP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5J00SFz9s4V for ; Sat, 16 Mar 2019 19:06:43 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726801AbfCPIGg (ORCPT ); Sat, 16 Mar 2019 04:06:36 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:43920 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725940AbfCPIGf (ORCPT ); Sat, 16 Mar 2019 04:06:35 -0400 Received: by mail-pg1-f195.google.com with SMTP id l11so7997599pgq.10; Sat, 16 Mar 2019 01:06:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XgzEfOgCr8vqVuMIo/FFofdpmPOyzi7oCw3Jm8x3KtE=; b=C5zBP7ePwtlYPJqO1Jk5YeMrp4ENlY5Z6BUTygKhVD74gGV2valvOaJcUBGcU9AjM0 /oE7r79Kq8bZ3mo7BrmlHDwEr3gQflh3zhwexu51xOQNFJulJbEgp4KQ/Kp1Ep5LaGWw vht+JsOWRDXzKV190ypLU3pNaBW/zMGJfR3x5cDPxcdtr3sw081/uEc81Ntk1xs6Gjda vw3usQBhq/cbWaxRCU3BQ2IvEpLsrCLDo+dzN5bcr1vbggnrgeMroeOBU+FXdnI0jQf2 SrOyY0bzdKzNFuRkECN/WfxPny6B/dkKMpBcrHXMXNgZaFGVetwsWfH/yWjcildr2DOi +6iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XgzEfOgCr8vqVuMIo/FFofdpmPOyzi7oCw3Jm8x3KtE=; b=uRkUzyIAwb7f3XVBCdQz+fpsk150W81W1s29Gxyihg8s16ZWmq8mG06dVLCjbQmltU 2K+sAYF90vkE1qmNfvzgzTl9vHwk2jwoDJSZK4WdutnssxB8vb3zBAMYDPgDQ30VEU6F HEkFPtJU38wpRg/myf7aplSmiThEo/gd+MkTHwjwgxtqJbUVrskXJAdNIa915oSHolGf p2eMfI/hOX1DwyB6ZpWsTqh67IJW6jiArvBQget/rQ5Zd/NHqnqgdaMvNJWjoQJoIS/2 MkxLGCQH/RMucFUWcmmRsXBjoECyxUViWgP7u9P9eOPAd5nZN2VPQdPXfYpvBuqPVGtY xD6w== X-Gm-Message-State: APjAAAWlPtJQEzS8iely/0KKHvYefLlu+0+Ub68LvpU5Tn2u/6ZjBnsQ m1vA/8FlgwBUG/IViFvDvx4= X-Google-Smtp-Source: APXvYqy/CEmclWXHp+N1rdEw50IJ1fiLXRHH0nrAHL9D+2lKTWPi89qW73qG2DRmIaiWqXRbGrRR0Q== X-Received: by 2002:a63:35ce:: with SMTP id c197mr7430635pga.281.1552723594985; Sat, 16 Mar 2019 01:06:34 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:06:34 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 02/16] perf: list: fix memory leak in function is_event_supported Date: Sat, 16 Mar 2019 16:05:42 +0800 Message-Id: <20190316080556.3075-3-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Don't forget to put the allocated thread_map. Direct leak of 2048 byte(s) in 64 object(s) allocated from: 6 #0 0x7f606512e370 in __interceptor_realloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee370) 7 #1 0x556b0f1d7ddd in thread_map__realloc util/thread_map.c:43 8 #2 0x556b0f1d84c7 in thread_map__new_by_tid util/thread_map.c:85 9 #3 0x556b0f0e045e in is_event_supported util/parse-events.c:2250 10 #4 0x556b0f0e1aa1 in print_hwcache_events util/parse-events.c:2382 11 #5 0x556b0f0e3231 in print_events util/parse-events.c:2514 12 #6 0x556b0ee0a66e in cmd_list /home/changbin/work/linux/tools/perf/builtin-list.c:58 13 #7 0x556b0f01e0ae in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 14 #8 0x556b0f01e859 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 15 #9 0x556b0f01edc8 in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 16 #10 0x556b0f01f71f in main /home/changbin/work/linux/tools/perf/perf.c:520 17 #11 0x7f6062ccf09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/util/parse-events.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 4dcc01b2532c..2e9035c4c252 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -2271,6 +2271,7 @@ static bool is_event_supported(u8 type, unsigned config) perf_evsel__delete(evsel); } + thread_map__put(tmap); return ret; } From patchwork Sat Mar 16 08:05:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057332 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NiI80oTx"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5Q0t0Zz9s47 for ; Sat, 16 Mar 2019 19:06:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726884AbfCPIGo (ORCPT ); Sat, 16 Mar 2019 04:06:44 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:38501 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725940AbfCPIGn (ORCPT ); Sat, 16 Mar 2019 04:06:43 -0400 Received: by mail-pg1-f195.google.com with SMTP id v1so3300262pgi.5; Sat, 16 Mar 2019 01:06:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1BatEiN8TSrqKTiuAG+kfnJ6RuvMPntciT2BLT6L9U0=; b=NiI80oTxugyn8Gzkke8Q+wHZzqSsJFlBbzbF+s0tzWXPCfO4T1ePk9MKIIfeY7O+ax wnUB9iCKMMUC930SpeZIIsgTR9G8rflHnU3CWxt1KDFf1kvVIm4KOAHS2TO1BnLcXxSo uVS45utCizDVyAUlNnhSRcbL5yodwtgCERI86SZJBXv8cNSFCtMYpEemG31gbiNuXgtZ scypJaejQl7sGky+FEMLYcjfOC8mRIYEZXgYuorVoJlKgemSd6hns2uAr/PBeA7sePjK eora+7AEIsZ1Ou7FdPYITt288PPykM8pXLi8U+aGyCFxj3WoXPcbFk2gxGcvy1OC8cAZ O2Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1BatEiN8TSrqKTiuAG+kfnJ6RuvMPntciT2BLT6L9U0=; b=MzmNT76HfsFhtlarDWM2CJkmsX7T7H4apZJX2zhf5EsQ18qTqGkM3KQuiJePQ+EaZm nPVwQM7zntmnv6UMRJvbmd0Re9uElO3uACNT6yeDWWstv7XB9vlj6zovVGPQOn1dVFLp NuexZLbcZ0IL90lkSERpWURj73VSafKIYqjBdwsa9B36sz/vErAYiCRrURwKUDDo/mzC lKfZhL7/mRESVRl08s9CdaPNxvaHmWOnNgndG3q/U1aH3tX63PP7YYARi84gFajo//dd FzcIxsnGtgTfiyByqYuzJFbb2/jkDpZppwg0sueYu2eNznOL/ak98mMaVkTfxjUfwB3N ktNQ== X-Gm-Message-State: APjAAAVEhtM03zJHN3M1PFtiV8ahmIEofJ88OV4vuvNcfWGfa86zarlS OfUS9MoqazViJivKq8Xq04Y= X-Google-Smtp-Source: APXvYqxQWKTx+YhBBG6y+CifqGRzwRj4YRJXdeStDZ4LYNFw+a3tbhOB3MZ7DCfzmbKByL72bfY1UA== X-Received: by 2002:a63:e101:: with SMTP id z1mr7546298pgh.190.1552723602542; Sat, 16 Mar 2019 01:06:42 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:06:41 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 03/16] perf: fix errors under optimization level '-Og' Date: Sat, 16 Mar 2019 16:05:43 +0800 Message-Id: <20190316080556.3075-4-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Optimization level '-Og' offers a reasonable level of optimization while maintaining fast compilation and a good debugging experience. This patch tries to make it work. $ make DEBUG=1 EXTRA_CFLAGS='-Og' bench/epoll-ctl.c: In function ‘do_threads’: bench/epoll-ctl.c:274:9: error: ‘ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized] return ret; ^~~ ... Signed-off-by: Changbin Du --- tools/lib/bpf/libbpf.c | 2 +- tools/perf/bench/epoll-ctl.c | 2 +- tools/perf/bench/epoll-wait.c | 2 +- tools/perf/tests/backward-ring-buffer.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index d5b830d60601..a37dac0a016e 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -622,7 +622,7 @@ bpf_object__init_maps(struct bpf_object *obj, int flags) bool strict = !(flags & MAPS_RELAX_COMPAT); int i, map_idx, map_def_sz, nr_maps = 0; Elf_Scn *scn; - Elf_Data *data; + Elf_Data *data = NULL; Elf_Data *symbols = obj->efile.symbols; if (obj->efile.maps_shndx < 0) diff --git a/tools/perf/bench/epoll-ctl.c b/tools/perf/bench/epoll-ctl.c index 0c0a6e824934..2af067859966 100644 --- a/tools/perf/bench/epoll-ctl.c +++ b/tools/perf/bench/epoll-ctl.c @@ -224,7 +224,7 @@ static int do_threads(struct worker *worker, struct cpu_map *cpu) pthread_attr_t thread_attr, *attrp = NULL; cpu_set_t cpuset; unsigned int i, j; - int ret; + int ret = 0; if (!noaffinity) pthread_attr_init(&thread_attr); diff --git a/tools/perf/bench/epoll-wait.c b/tools/perf/bench/epoll-wait.c index 5a11534e96a0..fe85448abd45 100644 --- a/tools/perf/bench/epoll-wait.c +++ b/tools/perf/bench/epoll-wait.c @@ -293,7 +293,7 @@ static int do_threads(struct worker *worker, struct cpu_map *cpu) pthread_attr_t thread_attr, *attrp = NULL; cpu_set_t cpuset; unsigned int i, j; - int ret, events = EPOLLIN; + int ret = 0, events = EPOLLIN; if (oneshot) events |= EPOLLONESHOT; diff --git a/tools/perf/tests/backward-ring-buffer.c b/tools/perf/tests/backward-ring-buffer.c index 6d598cc071ae..1a9c3becf5ff 100644 --- a/tools/perf/tests/backward-ring-buffer.c +++ b/tools/perf/tests/backward-ring-buffer.c @@ -18,7 +18,7 @@ static void testcase(void) int i; for (i = 0; i < NR_ITERS; i++) { - char proc_name[10]; + char proc_name[15]; snprintf(proc_name, sizeof(proc_name), "p:%d\n", i); prctl(PR_SET_NAME, proc_name); From patchwork Sat Mar 16 08:05:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057333 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="U0S3l4/L"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5Z4vFrz9s4V for ; Sat, 16 Mar 2019 19:06:58 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726939AbfCPIGx (ORCPT ); Sat, 16 Mar 2019 04:06:53 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43556 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725940AbfCPIGw (ORCPT ); Sat, 16 Mar 2019 04:06:52 -0400 Received: by mail-pf1-f194.google.com with SMTP id c8so1250442pfd.10; Sat, 16 Mar 2019 01:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tO5iYu2G3NwF3tZcWUCVD75AHAkLZD7cs7AoLmgDFv4=; b=U0S3l4/LlrSbWR5/V2QeUfVg5LMRMwl5M+ug9OJQPwweo4Qj0bRGICOzjcN/HH8rFe EqEmb7I6deI1Sp4mtn4yy/a7XnynI+oj3AdLx64kj0FjUtUWHh8llq4G3n+RdWMgSE/1 6Mm8Yps416Zya0CIV2CKQ/pOnrcpr3E2R246ErdFf/m/IHC2KzGRrAuhAMxY8tnxC9NS +c7tVOze93ANV2NtnxHx3VQR9RwHhNFLkckTHf5WaxrdcnKoBzWp71N0U5dGxzHbGbNC utT6bwW4nxXDA/82tmNabstzvkSdEjOTA+Ik3S51c6F0xRBoRqbzNUNr5VErIJwD/Hwb NK4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tO5iYu2G3NwF3tZcWUCVD75AHAkLZD7cs7AoLmgDFv4=; b=YvCMPp8XFHtmHl8oqtagAJch3cvXxQ9iuN95PbNByhjiXikCyeOa7Vshc7NC0d/zd4 dqIndD1d9+IMHaPiy8PplyKfzgMRrnsiSmIrLRAGovOiAPf+5EaXoRitRNAFh2z2ulWF t/gHYcVjL2NBPM9qC0qmF/iHBenlWoh6wcLJS2ZuZmmNkxsk6URvrSyGNsIK8cb3gOrO dbGz18yqbsHTyrBursTMeAHy7LN5J45lbl7KVH6OvsyLPX5FW9sdh5DjST/iaHXMm/Zq ucHUzHNIykYKE2q6mw8IACiT/l+7VemB4cMnm+KRkOlUYV0FtHekwWROaGkeyxn6B0tX h/cw== X-Gm-Message-State: APjAAAVG7nZYRM8AQkjyIBSlcy9YdCAi1y2rRZ+iXD1miZ07k5pKADBP eXRjP8bDQ40Qkp0s0vi1vkU= X-Google-Smtp-Source: APXvYqxefhLDTxepdcmnj02r+MS0HSdlKMonHTBckde76EY34Ms+fYmmOehjrj1quk3VfTEbQICQ4w== X-Received: by 2002:a63:1060:: with SMTP id 32mr7524857pgq.126.1552723611656; Sat, 16 Mar 2019 01:06:51 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:06:50 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 04/16] perf: fix an error in config template Date: Sat, 16 Mar 2019 16:05:44 +0800 Message-Id: <20190316080556.3075-5-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The option 'sort-order' should be 'sort_order'. Signed-off-by: Changbin Du --- tools/perf/Documentation/perf-config.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 86f3dcc15f83..ba7485d86837 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -114,7 +114,7 @@ Given a $HOME/.perfconfig like this: [report] # Defaults - sort-order = comm,dso,symbol + sort_order = comm,dso,symbol percent-limit = 0 queue-size = 0 children = true From patchwork Sat Mar 16 08:05:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057334 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="BCzeE4u2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5c5G51z9s3l for ; Sat, 16 Mar 2019 19:07:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727004AbfCPIG7 (ORCPT ); Sat, 16 Mar 2019 04:06:59 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:35840 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725940AbfCPIG6 (ORCPT ); Sat, 16 Mar 2019 04:06:58 -0400 Received: by mail-pf1-f193.google.com with SMTP id p10so1095124pff.3; Sat, 16 Mar 2019 01:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yOaDX1hsZoPWJDl/vrGSk9KyxT5THHHiveid6Gt2K+Y=; b=BCzeE4u2kEYn7eVuMA39y7usPvWu4kNwKu9PT76dpLmr3n7wTXvOadapc24C+dmdFB xqwuqxskhWnji4/66ATuOP0n/Jp0zQlCqO+41LjMsRtC9JUa7ra6zBf7A5l1sp+9ydW3 VE/0TJK2y2rdqfz/eR+7lxg5sWMLgmFHFXu1kRHu6DSdDXjZyjvGfgSLDjzLB5rWe4zI TkG1Wjau+Tl8QmGDtqCFw9WjCK20FA88t4RlruwA93Hb5QN5D5V3AP2O5Av01TqaTKlz SOo9ZndQ+4pxRg6+KjDfIvCgVNLlwmk6qFFQ554DHldvFmL/zjUgEu7wccyYiIbjBmed ilKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yOaDX1hsZoPWJDl/vrGSk9KyxT5THHHiveid6Gt2K+Y=; b=ZVAPB2kqxGJMuywe8UgaZP7mEI7PJE3j35pA8ZHSFgNQB/8XEfGRwdDSi9HVhWBm6b GqYb6JsQxdNIzfNA82bj2VkkBTzOuxnQowvubbnbfCHgXqMnw2DiyeDnNbO/i5rIVNix m0B6coOo7rBZxAklUcurAtXZCnBgDwxYjnk+PuynB2pB/QYCD1JMyBwM2MuI5qNR+QF5 XewRWATrvJa7AzzzufByCajaTboVPnZtUC0F0oO4bBfO5xJloD23UIb7Tmr/izX4hxPw mGXknUmLn2qUaGIfSTm6u6f6NKbQ0nWz84/IFwWL79oiTjPrH0l3l8EF8OTB3Kt39Go4 A/yQ== X-Gm-Message-State: APjAAAUseY3wybSLk9qf+NLkoY17BSfRtNrYTGipVE1WwSgK7Scc9gbN lNP92Ntl3xrojE0/b/w+QpU= X-Google-Smtp-Source: APXvYqzJBwEOMugL3AYjHx3vwhPxhL94g11QVNAr0Eix94y5A/3exVs1gamF4/QFRp9ZJLtn98+rgQ== X-Received: by 2002:a63:6a48:: with SMTP id f69mr7361758pgc.7.1552723617553; Sat, 16 Mar 2019 01:06:57 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:06:56 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 05/16] perf: fix a memory leak in collect_config Date: Sat, 16 Mar 2019 16:05:45 +0800 Message-Id: <20190316080556.3075-6-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Direct leak of 66 byte(s) in 5 object(s) allocated from: #0 0x7ff3b1f32070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070) #1 0x560c8761034d in collect_config util/config.c:597 #2 0x560c8760d9cb in get_value util/config.c:169 #3 0x560c8760dfd7 in perf_parse_file util/config.c:285 #4 0x560c8760e0d2 in perf_config_from_file util/config.c:476 #5 0x560c876108fd in perf_config_set__init util/config.c:661 #6 0x560c87610c72 in perf_config_set__new util/config.c:709 #7 0x560c87610d2f in perf_config__init util/config.c:718 #8 0x560c87610e5d in perf_config util/config.c:730 #9 0x560c875ddea0 in main /home/changbin/work/linux/tools/perf/perf.c:442 #10 0x7ff3afb8609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/util/config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c index fa092511c52b..7e3c1b60120c 100644 --- a/tools/perf/util/config.c +++ b/tools/perf/util/config.c @@ -633,11 +633,10 @@ static int collect_config(const char *var, const char *value, } ret = set_value(item, value); - return ret; out_free: free(key); - return -1; + return ret; } int perf_config_set__collect(struct perf_config_set *set, const char *file_name, From patchwork Sat Mar 16 08:05:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057335 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="n8UfYnxh"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5n5957z9s5c for ; Sat, 16 Mar 2019 19:07:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727069AbfCPIHF (ORCPT ); Sat, 16 Mar 2019 04:07:05 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:38534 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfCPIHE (ORCPT ); Sat, 16 Mar 2019 04:07:04 -0400 Received: by mail-pg1-f193.google.com with SMTP id v1so3300604pgi.5; Sat, 16 Mar 2019 01:07:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fCZjpID9xjv4D6CAOc6jRaR7J2FLx5TBiszJf1ttI7o=; b=n8UfYnxhGWyxnpFCfuA5/m8i9H6q8eENB6Wv41l1U7by9W0trzwJI2sLomJRFre5um 1RmR05aJZF/s1MdlEv75TqJg8zKWZa1rmOcJHKeIQ5t6uN/KoEFscS3Z6FUB1+e7C4R7 M5hqUsynchcJfIRI7g9ndRR3iZ1jXIxP+l2HOjMJdIuU8HK/KJP0ZCOHNCYQ5fj42gQ9 q7anQABOe6Hwu8aPdmCfbGLJNgYdGpbFGLZF3haRK/mJQFKWqI4whsoDKzhnRUYynS5f RZNjZQgKohzpwzFRy1NHU1lDHaA33Hg7BsH8WT/BqkNRFuqd9tWIE3bSqVWoiqmgYAQ4 W1fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fCZjpID9xjv4D6CAOc6jRaR7J2FLx5TBiszJf1ttI7o=; b=hGEtMJmF6m4LhWTZYRKN7/Qf4PWN94AeEPPK9RTIeDgsOjMMdK+/6hh3WWXgd/A8oA srJET8zsc1Mf+6txM50qSLdpsWABFPuwX32C2XHG/yliKxehqOn6cghXO5WuWczqg50L GKJFWGggGZGRXqTnp3ndQWZsE0OaNCOK5zoxhjZOon/TH9rhJcg7OSGUKotZPcDb5gOp VbniugEc1ezCIPfVF58NLhJ3UWGI4H6quqOcH6CEIuNkKZru0G48YE2HZWYOOm1hH1wO 5AnD9F08XqxhOpOubzYhcWo3jrFxwNM76TCQJt8FV33cNWk6Ojs7Hr19SGn3TvsRpjlb hagw== X-Gm-Message-State: APjAAAXh4OeH9zuH6wRfNq+gxIXSkbgJ9/foDgjaBQpfOsDrOgoVTCA3 asp5JDldbGWN2Gr6Rb3sIx4= X-Google-Smtp-Source: APXvYqzMpE2maRWdi2dyA8KanZWvQJCvJt7yYqMYwYi8jafTZPgTBRn0HRIrSsjjZ4rGviNr9hMBwg== X-Received: by 2002:a63:2146:: with SMTP id s6mr6576153pgm.192.1552723623449; Sat, 16 Mar 2019 01:07:03 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.06.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:02 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 06/16] perf: fix memory leak in print_sdt_events() Date: Sat, 16 Mar 2019 16:05:46 +0800 Message-Id: <20190316080556.3075-7-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Direct leak of 4356 byte(s) in 120 object(s) allocated from: #0 0x7ff1a2b5a070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070) #1 0x55719aef4814 in build_id_cache__origname util/build-id.c:215 #2 0x55719af649b6 in print_sdt_events util/parse-events.c:2339 #3 0x55719af66272 in print_events util/parse-events.c:2542 #4 0x55719ad1ecaa in cmd_list /home/changbin/work/linux/tools/perf/builtin-list.c:58 #5 0x55719aec745d in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #6 0x55719aec7d1a in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #7 0x55719aec8184 in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #8 0x55719aeca41a in main /home/changbin/work/linux/tools/perf/perf.c:520 #9 0x7ff1a07ae09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/util/build-id.c | 1 + tools/perf/util/parse-events.c | 1 + 2 files changed, 2 insertions(+) diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index bff0d17920ed..0c5517a8d0b7 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -185,6 +185,7 @@ char *build_id_cache__linkname(const char *sbuild_id, char *bf, size_t size) return bf; } +/* The caller is responsible to free the returned buffer. */ char *build_id_cache__origname(const char *sbuild_id) { char *linkname; diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 2e9035c4c252..5ef4939408f2 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -2342,6 +2342,7 @@ void print_sdt_events(const char *subsys_glob, const char *event_glob, printf(" %-50s [%s]\n", buf, "SDT event"); free(buf); } + free(path); } else printf(" %-50s [%s]\n", nd->s, "SDT event"); if (nd2) { From patchwork Sat Mar 16 08:05:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057336 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="E+84NVUv"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw5w32shz9s3l for ; Sat, 16 Mar 2019 19:07:16 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727107AbfCPIHL (ORCPT ); Sat, 16 Mar 2019 04:07:11 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:40395 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfCPIHK (ORCPT ); Sat, 16 Mar 2019 04:07:10 -0400 Received: by mail-pf1-f195.google.com with SMTP id y124so7904089pfy.7; Sat, 16 Mar 2019 01:07:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=A6gvYp1N3jcgSFOabUpRlyP0f9TBpeTrmooFa8GaB1Q=; b=E+84NVUvbWdq2nP8esUw4ENPMHhdrPp1lDhRDDSVMuVG5QnMih4o9PSYKQe37ovQXp t96qouIoKpzti7QKx74lBQcJ6/RoLI4XPgFclxxQzC589/XgU+c8wwu/In6XDg1svZRb pGzZ8jAR64rxPKDy+Wips8GjFeNzhOpq9nR/q2J6N/ulR3BmAADAQbXFXrBsk8fqz5sQ 0WFXy/+pXV7X82nGq5lvKo4y0bNdaeNXCl9ezxeN8w9ADVANzyqjMotnyo9PQNPhBPWx rnFsJhl36KnEEt9d3K/uMML8vjRn8NqgV9VmM24RAeO1hifONn/p5wchWq40cZ9BomOx pfvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=A6gvYp1N3jcgSFOabUpRlyP0f9TBpeTrmooFa8GaB1Q=; b=i1mXsFjLQbpc8OdohtnLrR7d5wP1kbVTlocKINUZmRCWbPfMGzhjqCwIFPGYz4uc44 L0cb7NnULtC56AXfk3WCir7TpTSEsTAwThFDzbU7SfN9H+LVDl7QxkgCyc03QLdzff1k 9Q4cC3mv1O0iaUEpPot0QC98CxzheOgvmA1D1lfU8fQBSGzojD5FtA4Hikpw1agIhk/C Q43as6Apkpaj8wadk7XH1nGMkuNGC2iXYCIqFJb/wcgm8c/X+fWCAUgAgvc145QJI+jI JWOMH7/EOf7cf5/UhAELyarnEtw2N3DUf2r7wV8N9fjfPHMfINOnFnGgldDM4aZq7sFv oM5w== X-Gm-Message-State: APjAAAUYZsQpEo6lYL9QNZh6B688MOtxJ+Lb5u+JiFS9jss2h6PN/jlG 0dcXodjcIb5SpHQAdp5xWPM= X-Google-Smtp-Source: APXvYqzPmt9hNJUIJPE94+CuJfHtLj88lQApaWksY1VvyVfkWOKnMQfX0h8uqPIr5x8NHfeS9vMOvw== X-Received: by 2002:a17:902:7e0f:: with SMTP id b15mr8268857plm.124.1552723629321; Sat, 16 Mar 2019 01:07:09 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:08 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 07/16] perf: top: fix heap-use-after-free issue Date: Sat, 16 Mar 2019 16:05:47 +0800 Message-Id: <20190316080556.3075-8-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The evlist should be destroyed before the perf session. ================================================================= ==27350==ERROR: AddressSanitizer: heap-use-after-free on address 0x62b000002e38 at pc 0x5611da276999 bp 0x7ffce8f1d1a0 sp 0x7ffce8f1d190 WRITE of size 8 at 0x62b000002e38 thread T0 #0 0x5611da276998 in __list_del /home/work/linux/tools/include/linux/list.h:89 #1 0x5611da276d4a in __list_del_entry /home/work/linux/tools/include/linux/list.h:102 #2 0x5611da276e77 in list_del_init /home/work/linux/tools/include/linux/list.h:145 #3 0x5611da2781cd in thread__put util/thread.c:130 #4 0x5611da2cc0a8 in __thread__zput util/thread.h:68 #5 0x5611da2d2dcb in hist_entry__delete util/hist.c:1148 #6 0x5611da2cdf91 in hists__delete_entry util/hist.c:337 #7 0x5611da2ce19e in hists__delete_entries util/hist.c:365 #8 0x5611da2db2ab in hists__delete_all_entries util/hist.c:2639 #9 0x5611da2db325 in hists_evsel__exit util/hist.c:2651 #10 0x5611da1c5352 in perf_evsel__exit util/evsel.c:1304 #11 0x5611da1c5390 in perf_evsel__delete util/evsel.c:1309 #12 0x5611da1b35f0 in perf_evlist__purge util/evlist.c:124 #13 0x5611da1b38e2 in perf_evlist__delete util/evlist.c:148 #14 0x5611da069781 in cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1645 #15 0x5611da17d038 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #16 0x5611da17d577 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #17 0x5611da17d97b in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #18 0x5611da17e0e9 in main /home/changbin/work/linux/tools/perf/perf.c:520 #19 0x7fdcc970f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) #20 0x5611d9ff35c9 in _start (/home/work/linux/tools/perf/perf+0x3e95c9) 0x62b000002e38 is located 11320 bytes inside of 27448-byte region [0x62b000000200,0x62b000006d38) freed by thread T0 here: #0 0x7fdccb04ab70 in free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedb70) #1 0x5611da260df4 in perf_session__delete util/session.c:201 #2 0x5611da063de5 in __cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1300 #3 0x5611da06973c in cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1642 #4 0x5611da17d038 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #5 0x5611da17d577 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #6 0x5611da17d97b in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #7 0x5611da17e0e9 in main /home/changbin/work/linux/tools/perf/perf.c:520 #8 0x7fdcc970f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) previously allocated by thread T0 here: #0 0x7fdccb04b138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) #1 0x5611da26010c in zalloc util/util.h:23 #2 0x5611da260824 in perf_session__new util/session.c:118 #3 0x5611da0633a6 in __cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1192 #4 0x5611da06973c in cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1642 #5 0x5611da17d038 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #6 0x5611da17d577 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #7 0x5611da17d97b in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #8 0x5611da17e0e9 in main /home/changbin/work/linux/tools/perf/perf.c:520 #9 0x7fdcc970f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) SUMMARY: AddressSanitizer: heap-use-after-free /home/work/linux/tools/include/linux/list.h:89 in __list_del Shadow bytes around the buggy address: 0x0c567fff8570: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff8580: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff8590: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff85a0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff85b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd =>0x0c567fff85c0: fd fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd 0x0c567fff85d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff85e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff85f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff8600: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c567fff8610: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==27350==ABORTING Signed-off-by: Changbin Du --- tools/perf/builtin-top.c | 42 ++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 231a90daa958..614f278235fa 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1189,23 +1189,19 @@ static int __cmd_top(struct perf_top *top) pthread_t thread, thread_process; int ret; - top->session = perf_session__new(NULL, false, NULL); - if (top->session == NULL) - return -1; - if (!top->annotation_opts.objdump_path) { ret = perf_env__lookup_objdump(&top->session->header.env, &top->annotation_opts.objdump_path); if (ret) - goto out_delete; + return ret; } ret = callchain_param__setup_sample_type(&callchain_param); if (ret) - goto out_delete; + return ret; if (perf_session__register_idle_thread(top->session) < 0) - goto out_delete; + return ret; if (top->nr_threads_synthesize > 1) perf_set_multithreaded(); @@ -1227,13 +1223,18 @@ static int __cmd_top(struct perf_top *top) if (perf_hpp_list.socket) { ret = perf_env__read_cpu_topology_map(&perf_env); - if (ret < 0) - goto out_err_cpu_topo; + if (ret < 0) { + char errbuf[BUFSIZ]; + const char *err = str_error_r(-ret, errbuf, sizeof(errbuf)); + + ui__error("Could not read the CPU topology map: %s\n", err); + return ret; + } } ret = perf_top__start_counters(top); if (ret) - goto out_delete; + return ret; top->session->evlist = top->evlist; perf_session__set_id_hdr_size(top->session); @@ -1252,7 +1253,7 @@ static int __cmd_top(struct perf_top *top) ret = -1; if (pthread_create(&thread_process, NULL, process_thread, top)) { ui__error("Could not create process thread.\n"); - goto out_delete; + return ret; } if (pthread_create(&thread, NULL, (use_browser > 0 ? display_thread_tui : @@ -1296,19 +1297,7 @@ static int __cmd_top(struct perf_top *top) out_join_thread: pthread_cond_signal(&top->qe.cond); pthread_join(thread_process, NULL); -out_delete: - perf_session__delete(top->session); - top->session = NULL; - return ret; - -out_err_cpu_topo: { - char errbuf[BUFSIZ]; - const char *err = str_error_r(-ret, errbuf, sizeof(errbuf)); - - ui__error("Could not read the CPU topology map: %s\n", err); - goto out_delete; -} } static int @@ -1639,10 +1628,17 @@ int cmd_top(int argc, const char **argv) signal(SIGWINCH, winch_sig); } + top.session = perf_session__new(NULL, false, NULL); + if (top.session == NULL) { + status = -1; + goto out_delete_evlist; + } + status = __cmd_top(&top); out_delete_evlist: perf_evlist__delete(top.evlist); + perf_session__delete(top.session); return status; } From patchwork Sat Mar 16 08:05:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057337 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Bxc3p+hg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw613GbLz9s47 for ; Sat, 16 Mar 2019 19:07:21 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727138AbfCPIHP (ORCPT ); Sat, 16 Mar 2019 04:07:15 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:45871 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfCPIHP (ORCPT ); Sat, 16 Mar 2019 04:07:15 -0400 Received: by mail-pg1-f193.google.com with SMTP id 125so7987479pgc.12; Sat, 16 Mar 2019 01:07:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6UTevn3yjBhVEl4/8CsN86tu89thYUQB175QmtEgjt0=; b=Bxc3p+hgouYogv83cEonJo00HUidoQSYH4KX1tJ33OhXliWrbyCwFviPK9TTIiu/Hy ZwELZWb/xDfqxQqEgdZXtWvQcecbKtlsjqSGMPQRM7+BkjD4VY6PD8AoN63YWFEhu9kB VFkFkcai5bHm02W36NLD1178IeFNxUUFj0SjOJBk7CyyceqlXC3zJN+WJCfEqGHABxhP jlD0sXZ+VUTQfMp9KhMQF3wHah3cL7WZ8BPVILQQIJXhvs1d/HfReP+IULig7LIeb4SG zrZ5adWf1MgNr1uIG3i4Sz51upO7QaHI/s9PXCN1ZSpjfNzVnM0w6GwuNl2EpKR8ITG6 R8hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6UTevn3yjBhVEl4/8CsN86tu89thYUQB175QmtEgjt0=; b=BrKMTvKhaauTEeY1Iq+cJw1rj46VHDp6ygR3Iy0xl3aY2NtkEl+RrxTeuPq0kfVlch VhAYHbVFf5j2Hcc116+EKnUS2IKeeLLaNAxtOp8uOkKXLe0ds8W1sEq7VA4OM6NY9l7m GYyniwDlWfu7ovOAduBMesuYoLZkRtB1MZiF0RLA79TCZRSl0GDOofteszTEZ7e8R5uY 3HmUc1cK8fVRe2HjnyZiUM1JoKQMMh1b+n8tawINy3PHuWyNfrkHbDGpEZm9SJgh893p fgklVeOECRa//iFZ+b6OWa3t9O/vGbdk1BPIcGYz2TviVelgzLGB77Fj/a+El76j9Cto lG1w== X-Gm-Message-State: APjAAAWR8QCfh06hGxBY3TgoYJHEftEUU7q/g9cdhuFu+sF4/xyUJ6Kg xLBmQjXiAXvEl5sT3xkRef4= X-Google-Smtp-Source: APXvYqy0CrzUWrfqA/btLS1pm7x6hZNVRgO73TO/xxcHDOi5+rhos86Sj0Xm9UpWyBCeIckuvrx9yw== X-Received: by 2002:a63:f558:: with SMTP id e24mr7386477pgk.373.1552723634546; Sat, 16 Mar 2019 01:07:14 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:13 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 08/16] perf: top: fix error handing in cmd_top() Date: Sat, 16 Mar 2019 16:05:48 +0800 Message-Id: <20190316080556.3075-9-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We should go to the cleanup path. Signed-off-by: Changbin Du --- tools/perf/builtin-top.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 614f278235fa..2508a7a552fa 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1617,8 +1617,9 @@ int cmd_top(int argc, const char **argv) annotation_config__init(); symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL); - if (symbol__init(NULL) < 0) - return -1; + status = symbol__init(NULL); + if (status < 0) + goto out_delete_evlist; sort__setup_elide(stdout); From patchwork Sat Mar 16 08:05:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057338 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ph5bTJOK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw624FPGz9s5c for ; Sat, 16 Mar 2019 19:07:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727173AbfCPIHV (ORCPT ); Sat, 16 Mar 2019 04:07:21 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:41733 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfCPIHU (ORCPT ); Sat, 16 Mar 2019 04:07:20 -0400 Received: by mail-pf1-f196.google.com with SMTP id d25so7898858pfn.8; Sat, 16 Mar 2019 01:07:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=e8Qc7H/ruRKYZUprilgo4yb534SAWU+7CioX+kLQF9U=; b=ph5bTJOKtyJQdJtSV0k+jqi92ofoKKbWOfGAmeMiUbqN4m1JnAJRrnqEhlZRekrKSV awNCrmWhDHt5p4CE0JXav87BcrBtuy0rk9LAXjPFDSQ/JpeQUKbUV/4FNAp/mZ43BFoL Q75YvhBERJYpoOpjzyfNRAWPHhaEK6GUjwyuuPveKleDyfKGtbfdwE8sexzqKMd7Ej6M d90fG2sGy6kdPHXc4bfEK0sUU/OpaDK7Vu66aFwL41qjfeP+rKlBpSBF/OoJ5XdSsJT/ tHqua/CKn2FVN0zcR0O9IMLjautFilGB7vO4KZ8/xM18XeIXPaO0ZKP1dar007jib+8H WH6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=e8Qc7H/ruRKYZUprilgo4yb534SAWU+7CioX+kLQF9U=; b=TcAB7Ap7L6EU7WBQDp4/UzAc3GQd4wArarMwa4LHwu04joPK1yUbuFYDPy7MnmTO2n vmvT1D6XrWKazXF9YZyOW96TXtkux44u0Ie8dHWwbeB8ozPHmUqTzodMmoLaJWEoLgcI e5qPTFQJG3R1pBFUUtkb+mPCgsSFtZmKFN8EkP1n+kOm2qwKpdld7svftTxkbzJcbjmR rX13j4NiXqt/4F6W+KX9hT0GSJ+xqfjpC4albfvo6BzxXOEGdL2wRKGkdDIoaI225yNL NhmwJjKXsCQCy2G+t0wLjIAU1tw1i2y8w8gVD17G0aCWWIj9YWdVGM4UOkEYMdB7EnTq m76A== X-Gm-Message-State: APjAAAV2bhRO+eFaX5Wmt/RsVapF/88tSQ+EhfvkRXflan4dYzBuWztN ophhZVhtGKMDU0NvEr+XqMg= X-Google-Smtp-Source: APXvYqx8xMC+oSuOktxBIrzjkSM92gcDqRBBBZg8lU1KJxKcieRm4q4VWovVwQb/ffViQDLdlcYURw== X-Received: by 2002:a17:902:6942:: with SMTP id k2mr8571969plt.136.1552723639959; Sat, 16 Mar 2019 01:07:19 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:19 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 09/16] perf: missed a map__put() in error case Date: Sat, 16 Mar 2019 16:05:49 +0800 Message-Id: <20190316080556.3075-10-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We need to map__put() before returning from failure of sample__resolve_callchain(). Signed-off-by: Changbin Du --- tools/perf/util/hist.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index f9eb95bf3938..ae74b82f51ea 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -1062,8 +1062,10 @@ int hist_entry_iter__add(struct hist_entry_iter *iter, struct addr_location *al, err = sample__resolve_callchain(iter->sample, &callchain_cursor, &iter->parent, iter->evsel, al, max_stack_depth); - if (err) + if (err) { + map__put(alm); return err; + } err = iter->ops->prepare_entry(iter, al); if (err) From patchwork Sat Mar 16 08:05:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057339 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qjT2XMSH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6C5yR9z9s4V for ; Sat, 16 Mar 2019 19:07:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727197AbfCPIH0 (ORCPT ); Sat, 16 Mar 2019 04:07:26 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:38459 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726549AbfCPIHZ (ORCPT ); Sat, 16 Mar 2019 04:07:25 -0400 Received: by mail-pf1-f196.google.com with SMTP id n125so7908450pfn.5; Sat, 16 Mar 2019 01:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NdhJ3vOifZxoisUoWr/yeElyHsYBLZr9BMOSGuNz/Ks=; b=qjT2XMSH54j2+oY7xLa08Y035TH3+lCuu0SLUSIN7ZaHMm67m8MWZv/qQcJeZJ9MMF X7pW9H5LmF0NsnDjekJ+YqHKyKG6HvOWoj82vVKViT1oGOQGsKlZ7zEq95d9yJYZiGRZ H6JzwEvK3hvFC2cbAHYqSQ2uHgMnAKPGjuRQAuymqyp8b7pZ5fsT9XJUDrthxvn7OIBM GpvDu7iu9/ub46avC2sSFYP7W2OpeVWZoRSoMIQxAobYkIiatjq2yyNI0iuc14nyvkVM m3DcW7OPQSQetFJXAMzyS4rBNAhrbZKgOYrL/XzoZBWFAiiAR6/BP33u83WcPzp6XLBQ mQlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NdhJ3vOifZxoisUoWr/yeElyHsYBLZr9BMOSGuNz/Ks=; b=f9pVi+aFAn/t4CcvN27KHWSNnh/ZCUCGLebXkISIatW43r/7dKOwsdmN34mafsJ797 MFSKq5oSkdqFgIJKlszfJObj8cGBrk7z/hChQ7lAK5+70xYYDC2Ac1oolN6xv+mCCaWn daTe+kJSVNIK66+tD8ZGZWsfWlrmCb03UhSkuq1Zdgpn3ZdwhrrapdgPHb8pRqlhErKy k+BX4oJKM494a3ajhAOvgrx4HoEyoounLGpvwgguXEGK1LDgzOYMwcrrIUZW9lgnYnJC ivYECGt+FRG+EcUlqhzcKduJrlW2bOkjdJynN1P/UyKL5hpvgqNFQo4mlRW6Ih2Jg1FM 7jZw== X-Gm-Message-State: APjAAAU7rsK24BkeL5HchD8n/KbjWg0LWwB3fW2DeqfQsdqL8qkmPZLU vi3TkWbIcDAajAHsiCYf9IA= X-Google-Smtp-Source: APXvYqyyW5PwqWkHvaN3fym8TBn+nsdlDHYX4siCz5t7PWVt9CSlwc+r+1IMZuAdevEHBkBcINg0aQ== X-Received: by 2002:a17:902:7c0f:: with SMTP id x15mr692993pll.98.1552723645371; Sat, 16 Mar 2019 01:07:25 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:24 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 10/16] perf: remove map from names tree in __maps__remove Date: Sat, 16 Mar 2019 16:05:50 +0800 Message-Id: <20190316080556.3075-11-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There two trees for each map inserted by maps__insert(). Signed-off-by: Changbin Du --- tools/perf/util/map.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index fbeb0c6efaa6..64bea5eb8bf6 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -917,6 +917,9 @@ static void __maps__remove(struct maps *maps, struct map *map) { rb_erase_init(&map->rb_node, &maps->entries); map__put(map); + + rb_erase_init(&map->rb_node_name, &maps->names); + map__put(map); } void maps__remove(struct maps *maps, struct map *map) From patchwork Sat Mar 16 08:05:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057340 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Bod/pmqB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6L41rRz9s47 for ; Sat, 16 Mar 2019 19:07:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727234AbfCPIHd (ORCPT ); Sat, 16 Mar 2019 04:07:33 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:33264 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726151AbfCPIHb (ORCPT ); Sat, 16 Mar 2019 04:07:31 -0400 Received: by mail-pg1-f193.google.com with SMTP id i7so4803397pgq.0; Sat, 16 Mar 2019 01:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S4XMzDEhPnOe52ZtceC0afDHSWcXxrtxBKlRnVkyr0M=; b=Bod/pmqBVbduYNTjEzoULdxWma8iVXnw/RoLO8AlkvvsVxLsDkhNnoEPF/j9o0YIZ0 YAcT+NuPP9Blaihm3YcokJu+eyBKZxTdivp1Vkc4EfngyPFbt7oaWd7lcFMj+rsul1In Tv9dM2s5Tr1gG/1G9QsUm5NA6axdmRrk+FTYCcD9mJpMAHa5P+4Se7Pfj5gHp55n9XQM l+b8JjqY74E2bDrsVgF6kY/140xRhFF/u4YOp5OuX62Yclo8aLlfo52LFZFoHorUzJJc jw0GJM2myZw7wVQxK/r8jo1WnqrJX5P36dpV6nRUpZzGKYIImk541wP3LpyDYye0n1tP a7rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=S4XMzDEhPnOe52ZtceC0afDHSWcXxrtxBKlRnVkyr0M=; b=VHh9cSztmCIVoyEnZ2jNE+i5Sa7gLhzs13gAtCgj9h2piVBouqQj72m11qxM7H4tRh 20Ude/l2IJJsgRgygZBv/HoWvmGTHz02znp2jUE4+uo+U09BspuRWsTjXOR5Wt1z4SO7 eOv/2URSyrhZtjvAh2GVFu51OncjwSipT3wtJXCxO1WdlC1yvGepMTDylsZk3stsZWNe p7zXBYUWbybAZVLcDIQ2/lwivXV3Wp/GqaRyeLCMw+WNRsqqFpIe/xOd5eU43BXKWngT OGyOvGL+XIhWG+WGuVY8PM1vZC/XN+waOtPvu6ivNJH7G4GsS5/rtERN6DYtCLtodozK FO9g== X-Gm-Message-State: APjAAAUoLPn8ImRuq1rdW1IUkqs+CUrR7YiAtkcqMs+0Bio6TkMqWTOO SkgjdC7xse6lm5IqrzkXILo= X-Google-Smtp-Source: APXvYqw+G7mRpjwCy8H2DzwET3S2y4s+ieUrGYbOK8OnWQgiQEj1u3nyfd7nDF6dWPgBhEaSJpSaUA== X-Received: by 2002:a62:ae04:: with SMTP id q4mr8200018pff.213.1552723650883; Sat, 16 Mar 2019 01:07:30 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:29 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 11/16] perf: purge all maps from the names tree Date: Sat, 16 Mar 2019 16:05:51 +0800 Message-Id: <20190316080556.3075-12-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add function __maps__purge_names() to purge all maps from the names tree. We need to cleanup the names tree in maps__exit(). Signed-off-by: Changbin Du --- tools/perf/util/map.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 64bea5eb8bf6..e32628cd20a7 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -577,10 +577,25 @@ static void __maps__purge(struct maps *maps) } } +static void __maps__purge_names(struct maps *maps) +{ + struct rb_root *root = &maps->names; + struct rb_node *next = rb_first(root); + + while (next) { + struct map *pos = rb_entry(next, struct map, rb_node_name); + + next = rb_next(&pos->rb_node_name); + rb_erase_init(&pos->rb_node_name, root); + map__put(pos); + } +} + static void maps__exit(struct maps *maps) { down_write(&maps->lock); __maps__purge(maps); + __maps__purge_names(maps); up_write(&maps->lock); } From patchwork Sat Mar 16 08:05:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057341 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NP9OP6NB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6T0Lrcz9s3l for ; Sat, 16 Mar 2019 19:07:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727256AbfCPIHi (ORCPT ); Sat, 16 Mar 2019 04:07:38 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:40438 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726151AbfCPIHh (ORCPT ); Sat, 16 Mar 2019 04:07:37 -0400 Received: by mail-pf1-f194.google.com with SMTP id y124so7904552pfy.7; Sat, 16 Mar 2019 01:07:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wK83PHiRqCdqcYHCof/3II1cW6418RAPwXPx4G3aa0E=; b=NP9OP6NB15X+S2yCcvFsNB084l62ghJ2EUAiJ91C+BZ1+L64oB6LbBKGDuY4VemvA3 QKxz1jNbQ6XGrnb/uTOBrEaI5Chkuu3JkdrYVIwsV1GiosKfKX2K4v6PvRXGwvp3gBFg XmLw3suwZw++GOefeme2FVB255irphM7OXnh7kWta5MhMtCM0yXBQDN/WuTdZGjk6Oik Tvqa15fgsqHAMJ+XSTBRze7e8g3Hu82Ioa2uZMydzPQX8jcn8nEdr+iCSfwGONSHyGkA b3VnHo0Y/wqRw5asx+ZhSa+VRqwVUxwuU8C0JplgV1pJCVouLRq4UhYBLzHgxdgZGfIN yFxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wK83PHiRqCdqcYHCof/3II1cW6418RAPwXPx4G3aa0E=; b=UQajnsMGrvmqY7HqdW15K2lWJeh7V1fcWyKvCtSNzAAVtXdeOTx1902SpIp4J7az+0 NTZmP5nNo7tSbt3GaYfRIO4VsVWPIa7nvYpMWQcvLgBUdvsUANY8TYgHanD7+ecGOieJ 3Cu80EvbQrsZLFksW2bP/oCzg9DmKOM9ig2B0MuAsBSlJpOxiUmIs3Fj7eHNaYs/w9iU Tcb//fXLxRm344nAZOqyY3c0DX50whVzslQ6eAxXfBYOQ0PECt0klV5xgP5eNhxzCAPg lTf1tXMLo9/XvCOqdeq6FAjQll7TV5NSwDKEoQzgNqiqYwASY4fXrh29LIxmz5PqrkaT hHgg== X-Gm-Message-State: APjAAAXwyMWlGLvU1gkZysMGnhvkIEzGerM5mdrgZAIyaHUZWihcopce tqD1Cwa0geNtiVvzu68iW+s= X-Google-Smtp-Source: APXvYqxVtVPw40clUtk5SIrhsEksQty61yhFpTfNKDd6BBvCQcQcZG7J6BfVmRSccnaFU68uUg7boA== X-Received: by 2002:a17:902:7609:: with SMTP id k9mr8814725pll.305.1552723656589; Sat, 16 Mar 2019 01:07:36 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:35 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 12/16] perf: top: fix global-buffer-overflow issue Date: Sat, 16 Mar 2019 16:05:52 +0800 Message-Id: <20190316080556.3075-13-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The arrary str[] should have six elements. ================================================================= ==4322==ERROR: AddressSanitizer: global-buffer-overflow on address 0x56463844e300 at pc 0x564637e7ad0d bp 0x7f30c8c89d10 sp 0x7f30c8c89d00 READ of size 8 at 0x56463844e300 thread T9 #0 0x564637e7ad0c in __ordered_events__flush util/ordered-events.c:316 #1 0x564637e7b0e4 in ordered_events__flush util/ordered-events.c:338 #2 0x564637c6a57d in process_thread /home/changbin/work/linux/tools/perf/builtin-top.c:1073 #3 0x7f30d173a163 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8163) #4 0x7f30cfffbdee in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11adee) 0x56463844e300 is located 32 bytes to the left of global variable 'flags' defined in 'util/trace-event-parse.c:229:26' (0x56463844e320) of size 192 0x56463844e300 is located 0 bytes to the right of global variable 'str' defined in 'util/ordered-events.c:268:28' (0x56463844e2e0) of size 32 SUMMARY: AddressSanitizer: global-buffer-overflow util/ordered-events.c:316 in __ordered_events__flush Shadow bytes around the buggy address: 0x0ac947081c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c50: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00 =>0x0ac947081c60:[f9]f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c70: 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 0x0ac947081c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac947081cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Thread T9 created by T0 here: #0 0x7f30d179de5f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x4ae5f) #1 0x564637c6b954 in __cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1253 #2 0x564637c7173c in cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1642 #3 0x564637d85038 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #4 0x564637d85577 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #5 0x564637d8597b in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #6 0x564637d860e9 in main /home/changbin/work/linux/tools/perf/perf.c:520 #7 0x7f30cff0509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/util/ordered-events.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/perf/util/ordered-events.c b/tools/perf/util/ordered-events.c index ea523d3b248f..989fed6f43b5 100644 --- a/tools/perf/util/ordered-events.c +++ b/tools/perf/util/ordered-events.c @@ -270,6 +270,8 @@ static int __ordered_events__flush(struct ordered_events *oe, enum oe_flush how, "FINAL", "ROUND", "HALF ", + "TOP ", + "TIME ", }; int err; bool show_progress = false; From patchwork Sat Mar 16 08:05:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057345 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ltr3YEqu"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw765kblz9s47 for ; Sat, 16 Mar 2019 19:08:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727285AbfCPIHo (ORCPT ); Sat, 16 Mar 2019 04:07:44 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:41087 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726099AbfCPIHm (ORCPT ); Sat, 16 Mar 2019 04:07:42 -0400 Received: by mail-pg1-f195.google.com with SMTP id k11so8000134pgb.8; Sat, 16 Mar 2019 01:07:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5EzK4LKKwccTvOLxoyZof2NFG0BikWOy/V1kU66U++U=; b=Ltr3YEquGxDqrP1xQoTaF+iHmOWssG2wCscXaIMUzKMLg1H5qJkk6lKokTmJ3tPLkB Wj3QievKtS6s5m03kFR9B5bmOPSc/dIusskzxgiCB1t3QLCxfmpImSStdKnCsTF2us93 c3+8nObdOp8JwnU7QmEh0eNDK1b1eYK7PUZMPPqNqwb55z0C9aoM24Cln4D+UI1lmgiN dBl1+Hdsfo8QQXQqp8eXBZfTTSZ+yRUxiK1+8L9DFSJv42T9gt/oSzeRjvboWskl4ib4 p7c2X8hq4nfS2KSkiY0y3gwm5mcTHWtmrxMrTyxPT2vBV5TtsoUvrZ8L/IXtAoMmH0F2 XGOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5EzK4LKKwccTvOLxoyZof2NFG0BikWOy/V1kU66U++U=; b=uGCxZqGplUq1RExne0fkEmszzhUm29BK2itG62pQfm3na+NC1/Sdt5BzS6u/eavmzf Qb0xAZcIfWJAZVb2xHTtz3NDDOsCf4t+ayhFTwX8bnmNgqrPln8Cj5b4cK2+nAPFQMMC 0IDj8f/jJEAbjv+pyb+OC+007vRsobvANJ9yQfbwANCIvMgEVBrQjiafIZ9lo+ePmnsc 6wOLAc0HjJ61aPHJFEmNs1OdpuVrXZqtPjvQwtAPbuRDACkSzakmllFP9EpHWyLblNN5 wkiPTwt6V79H6fzuhc8hDoArKwn2sAhx6CET/16dM+0hvQVMGz/KPfh7/Gs3j0tss6/h pTFA== X-Gm-Message-State: APjAAAUoZYXF2BDmvf6oowK2i+dfw561cK9hoUPRnQ7lFx+Jr4y3TQ1h aPNasziyKrJ22QjsHQSHYmo= X-Google-Smtp-Source: APXvYqw7VdmGv3UFGOFrubL8X09kTi6kttLLt38YYZjzD0L2euiPfqqhyNLON2MuLGgsMsuvBZtShg== X-Received: by 2002:a65:48c1:: with SMTP id o1mr7269303pgs.94.1552723661940; Sat, 16 Mar 2019 01:07:41 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:41 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 13/16] perf: free all counts in perf_evsel__exit Date: Sat, 16 Mar 2019 16:05:53 +0800 Message-Id: <20190316080556.3075-14-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Ensure that we have freed all allocated counts for struct perf_evsel. ================================================================= ==7494==ERROR: LeakSanitizer: detected memory leaks Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) #1 0x5625e5330a5e in zalloc util/util.h:23 #2 0x5625e5330a9b in perf_counts__new util/counts.c:10 #3 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47 #4 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505 #5 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347 #6 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47 #7 0x5625e51528e6 in run_test tests/builtin-test.c:358 #8 0x5625e5152baf in test_and_print tests/builtin-test.c:388 #9 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 #10 0x5625e515572f in cmd_test tests/builtin-test.c:722 #11 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #12 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #13 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #14 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 #15 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Indirect leak of 72 byte(s) in 1 object(s) allocated from: #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) #1 0x5625e532560d in zalloc util/util.h:23 #2 0x5625e532566b in xyarray__new util/xyarray.c:10 #3 0x5625e5330aba in perf_counts__new util/counts.c:15 #4 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47 #5 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505 #6 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347 #7 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47 #8 0x5625e51528e6 in run_test tests/builtin-test.c:358 #9 0x5625e5152baf in test_and_print tests/builtin-test.c:388 #10 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 #11 0x5625e515572f in cmd_test tests/builtin-test.c:722 #12 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #13 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #14 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #15 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 #16 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/util/counts.c | 18 ++++++++++++++++++ tools/perf/util/counts.h | 4 ++++ tools/perf/util/evsel.c | 2 ++ tools/perf/util/stat.c | 18 ------------------ 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/tools/perf/util/counts.c b/tools/perf/util/counts.c index 03032b410c29..c5715d08b1f9 100644 --- a/tools/perf/util/counts.c +++ b/tools/perf/util/counts.c @@ -53,3 +53,21 @@ void perf_evsel__free_counts(struct perf_evsel *evsel) perf_counts__delete(evsel->counts); evsel->counts = NULL; } + +int perf_evsel__alloc_prev_raw_counts(struct perf_evsel *evsel, + int ncpus, int nthreads) +{ + struct perf_counts *counts; + + counts = perf_counts__new(ncpus, nthreads); + if (counts) + evsel->prev_raw_counts = counts; + + return counts ? 0 : -ENOMEM; +} + +void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel) +{ + perf_counts__delete(evsel->prev_raw_counts); + evsel->prev_raw_counts = NULL; +} diff --git a/tools/perf/util/counts.h b/tools/perf/util/counts.h index 0d1050ccc586..b8bdbff586bb 100644 --- a/tools/perf/util/counts.h +++ b/tools/perf/util/counts.h @@ -36,4 +36,8 @@ void perf_evsel__reset_counts(struct perf_evsel *evsel); int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads); void perf_evsel__free_counts(struct perf_evsel *evsel); +int perf_evsel__alloc_prev_raw_counts(struct perf_evsel *evsel, + int ncpus, int nthreads); +void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel); + #endif /* __PERF_COUNTS_H */ diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 3bbf73e979c0..8e0fbe34e5d9 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -1294,6 +1294,8 @@ void perf_evsel__exit(struct perf_evsel *evsel) assert(evsel->evlist == NULL); perf_evsel__free_fd(evsel); perf_evsel__free_id(evsel); + perf_evsel__free_counts(evsel); + perf_evsel__free_prev_raw_counts(evsel); perf_evsel__free_config_terms(evsel); cgroup__put(evsel->cgrp); cpu_map__put(evsel->cpus); diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c index 4d40515307b8..6a22842f76d2 100644 --- a/tools/perf/util/stat.c +++ b/tools/perf/util/stat.c @@ -136,24 +136,6 @@ static void perf_evsel__free_stat_priv(struct perf_evsel *evsel) zfree(&evsel->stats); } -static int perf_evsel__alloc_prev_raw_counts(struct perf_evsel *evsel, - int ncpus, int nthreads) -{ - struct perf_counts *counts; - - counts = perf_counts__new(ncpus, nthreads); - if (counts) - evsel->prev_raw_counts = counts; - - return counts ? 0 : -ENOMEM; -} - -static void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel) -{ - perf_counts__delete(evsel->prev_raw_counts); - evsel->prev_raw_counts = NULL; -} - static int perf_evsel__alloc_stats(struct perf_evsel *evsel, bool alloc_raw) { int ncpus = perf_evsel__nr_cpus(evsel); From patchwork Sat Mar 16 08:05:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057342 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="LOCRn9zr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6f1Yvyz9s3l for ; Sat, 16 Mar 2019 19:07:54 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727317AbfCPIHt (ORCPT ); Sat, 16 Mar 2019 04:07:49 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45506 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726571AbfCPIHs (ORCPT ); Sat, 16 Mar 2019 04:07:48 -0400 Received: by mail-pf1-f193.google.com with SMTP id v21so7896120pfm.12; Sat, 16 Mar 2019 01:07:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/6kM+Os+wJtP1DJ/zgE7532AFUvRcG1Y3Esg+ydUASo=; b=LOCRn9zrjNJRcS0KAoxAtB+WPNeCe+4CHTyT6vWhoKQDAwbgtWP/xMCwe5mIZ7NRs8 rlo74l+zt4Yx3EH1Kj5Iv9seK23IgOjIS6eoTINTHDks5OM1fQ8djDhfP7zKLDxfFK1M DTujwhYkXyh2K+BDDJGOQkfkyc03PtGEdRYEJEIExjEurm6mcD5AlmQB77r0YE5JwLw4 Kb2x01F4DpRAJ2vuMXdEWMxcKfQlV0e0li8/BXqHB6Eddfu/Ngz4aUcwKEPY3KqSCZ50 8oai9alUcIYMhrp5cJdmQDRgDAIgW7LR6qUH7MbWorzuxzWprZapV7XD+rJM7oE1R+u4 7oUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/6kM+Os+wJtP1DJ/zgE7532AFUvRcG1Y3Esg+ydUASo=; b=cKx6LP0j5xmcyLRMjdd+IXvNQtPyzEwHbH6+P6Rb3NYhQ7SWzIGoMPQFw3m3A3arK3 nrseGE8czsAD9lAIOXFwcMxabIJg86oHKpJTjm1tYGBVD3JGEcaddaXX3amG7yBIVn5m Gv/4ClPPll7fCG5mATcZ4pNl8eMH6DEZy7EcNePsiW705CW/uMe5g3s/WzGJOdgy3pno gWk1gTQuebEq2wQd1/Lc37reU3kbC6PIES7HV9sM+DhH3GZoH2K1hElb891yDX1h+Hsu V4xOinBOAeL99JIRSuszjUcUxEDqIP5Sm1i+yo8H+9USxaQxTH4vFvm7bI49XV8efK0v wlNA== X-Gm-Message-State: APjAAAUfWILYW3eU7J0Cxxm+fkatz42i073lPlxzBeR0NHjGIKy6s6MK FRMjugfbtcWsQ4h/yyee7p0= X-Google-Smtp-Source: APXvYqz4ofDhfvwOHwHwDpG5JK1/H2LO3jl9noDAtvER3jacQN4525MBaQCb3gpNEgzhIMFgr34/8A== X-Received: by 2002:a62:f201:: with SMTP id m1mr8292435pfh.97.1552723667095; Sat, 16 Mar 2019 01:07:47 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:46 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 14/16] perf: fix a memory leak of cpu_map object Date: Sat, 16 Mar 2019 16:05:54 +0800 Message-Id: <20190316080556.3075-15-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ================================================================= ==7497==ERROR: LeakSanitizer: detected memory leaks Direct leak of 40 byte(s) in 1 object(s) allocated from: #0 0x7f0333a88f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x5625e5326213 in cpu_map__trim_new util/cpumap.c:45 #2 0x5625e5326703 in cpu_map__read util/cpumap.c:103 #3 0x5625e53267ef in cpu_map__read_all_cpu_map util/cpumap.c:120 #4 0x5625e5326915 in cpu_map__new util/cpumap.c:135 #5 0x5625e517b355 in test__openat_syscall_event_on_all_cpus tests/openat-syscall-all-cpus.c:36 #6 0x5625e51528e6 in run_test tests/builtin-test.c:358 #7 0x5625e5152baf in test_and_print tests/builtin-test.c:388 #8 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 #9 0x5625e515572f in cmd_test tests/builtin-test.c:722 #10 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #11 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #12 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #13 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 #14 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/tests/openat-syscall-all-cpus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/perf/tests/openat-syscall-all-cpus.c b/tools/perf/tests/openat-syscall-all-cpus.c index c531e6deb104..493ecb611540 100644 --- a/tools/perf/tests/openat-syscall-all-cpus.c +++ b/tools/perf/tests/openat-syscall-all-cpus.c @@ -45,7 +45,7 @@ int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int if (IS_ERR(evsel)) { tracing_path__strerror_open_tp(errno, errbuf, sizeof(errbuf), "syscalls", "sys_enter_openat"); pr_debug("%s\n", errbuf); - goto out_thread_map_delete; + goto out_cpu_map_delete; } if (perf_evsel__open(evsel, cpus, threads) < 0) { @@ -119,6 +119,8 @@ int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int perf_evsel__close_fd(evsel); out_evsel_delete: perf_evsel__delete(evsel); +out_cpu_map_delete: + cpu_map__put(cpus); out_thread_map_delete: thread_map__put(threads); return err; From patchwork Sat Mar 16 08:05:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057343 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="iWAQwMC3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6l5S4tz9s47 for ; Sat, 16 Mar 2019 19:07:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727342AbfCPIHy (ORCPT ); Sat, 16 Mar 2019 04:07:54 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:41106 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726571AbfCPIHw (ORCPT ); Sat, 16 Mar 2019 04:07:52 -0400 Received: by mail-pg1-f196.google.com with SMTP id k11so8000302pgb.8; Sat, 16 Mar 2019 01:07:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Vtohn/46nQHw9sQoNVQFkQ9h5NPZSJ75DEIaxOp29FE=; b=iWAQwMC3Fqa2BrnrYORcgjdyr03m+WxVz5Qb18fDBN5E6PRNwjfUXMsRJH0FSZ2Qof WXxp3Yaht6ZCgUWa4zJhfutGxvcd4z77tntdUMemrnXIEPW/OvdW+cScPf2VQ3+qXF7r 6MIQtxI7tEmvYDn6UphmLehwacOjLbxhv3yLOXMUtTEZG5iR9HLkO1bzaneSz4sDweab tB3V+uP7GRHBb2lKXh7sKs+7EG2WG1Y7icpXfXtUd4R/5DO09EKnXD8bDO9+y/7FrFsc Z7K3rJ4L8yVAkRtaRDAo+XdJLfQoMbxXthDFrgCw4sLYKecIymzQEENdfY9zvfsefMJx Bm/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Vtohn/46nQHw9sQoNVQFkQ9h5NPZSJ75DEIaxOp29FE=; b=NbiuLWK15bZVTPJDMwCq6YXSX/7UCHAh5hPsjGLDJTXqpOnVW8KZKaK16+meG5JJly YtPXwr00OTZBMAyDRnmbsNX/bappQzzJUs+y/2cXtqtQpt41RrK5MNaon4QleO2T8isr nJ+8Jl2rffjILREgQfezsZZAzGELCFOXmvQxV9AQ0u+3/iXE7ME0/BpgwfwNdst4Ut5L PlTn2SQmP0DEmHx5AMXZfYkQ197VGh00rgwnKG6CnPJxGHNGlDz8CYJZFgnA6KsPGdgR dtmFEyRz9VzrvwDVumTHQpQYSoDcwb5zDsgZCma+XQv8FxIZZ7ZXnwA6jahjkYL61qNN vPrA== X-Gm-Message-State: APjAAAXmB7HGJMvv5bin5nzEiyfi3xuk45noJg6+M8nRwARzUfZLgPnO qF95l7Zd4YdAVdgc/woRsS4= X-Google-Smtp-Source: APXvYqzax8GEFrPC20FpUmxvCjN1HosZg5fxVKJVh6RGyABcrMO3QoGHKPNQosvZcOteTBFXR5xXKQ== X-Received: by 2002:a17:902:7e0f:: with SMTP id b15mr8271131plm.124.1552723672029; Sat, 16 Mar 2019 01:07:52 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:51 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 15/16] perf: fix memory leak by expr__find_other Date: Sat, 16 Mar 2019 16:05:55 +0800 Message-Id: <20190316080556.3075-16-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ================================================================= ==7506==ERROR: LeakSanitizer: detected memory leaks Direct leak of 13 byte(s) in 3 object(s) allocated from: #0 0x7f03339d6070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070) #1 0x5625e53aaef0 in expr__find_other util/expr.y:221 #2 0x5625e51bcd3f in test__expr tests/expr.c:52 #3 0x5625e51528e6 in run_test tests/builtin-test.c:358 #4 0x5625e5152baf in test_and_print tests/builtin-test.c:388 #5 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 #6 0x5625e515572f in cmd_test tests/builtin-test.c:722 #7 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #8 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #9 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #10 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 #11 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Signed-off-by: Changbin Du --- tools/perf/tests/expr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c index 01f0706995a9..9acc1e80b936 100644 --- a/tools/perf/tests/expr.c +++ b/tools/perf/tests/expr.c @@ -19,7 +19,7 @@ int test__expr(struct test *t __maybe_unused, int subtest __maybe_unused) const char *p; const char **other; double val; - int ret; + int i, ret; struct parse_ctx ctx; int num_other; @@ -56,6 +56,9 @@ int test__expr(struct test *t __maybe_unused, int subtest __maybe_unused) TEST_ASSERT_VAL("find other", !strcmp(other[1], "BAZ")); TEST_ASSERT_VAL("find other", !strcmp(other[2], "BOZO")); TEST_ASSERT_VAL("find other", other[3] == NULL); + + for (i = 0; i < num_other; i++) + free((void *)other[i]); free((void *)other); return 0; From patchwork Sat Mar 16 08:05:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 1057344 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bhMucaCc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Lw6n4Fswz9s47 for ; Sat, 16 Mar 2019 19:08:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727361AbfCPIIA (ORCPT ); Sat, 16 Mar 2019 04:08:00 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42994 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726571AbfCPIH6 (ORCPT ); Sat, 16 Mar 2019 04:07:58 -0400 Received: by mail-pf1-f194.google.com with SMTP id r15so5151647pfn.9; Sat, 16 Mar 2019 01:07:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+aIoGpXNXhUuHuJTYweNlKodTEQmo6PQ3ULkzpNA1B0=; b=bhMucaCck1o075yE4rPNS5sHik+KzYKcOOFmAo7MewyZfnn6bdxYCEhscIu+Gp4TOs FntvMZo4HWKbKtWXEYIajS6yTFeIYrNTz9V4c5hBoZfPz9LFNy1kpgEF9tO0QyBIi5A8 7S6JaZ2rtx0I+jEoCtQOi7wsGScyfq+iQyvye+pXM53Lecg1HnP/9S+WEBO8OFc64Hh3 Wkzk+bai6JMyo8Yjcr84WUWAEy9zYsrOAnOYgo1yDQX9bzhlS2a454exKixKYZuUdMkR sczY5mRaI/VyGWDrWX/Lllqsw85zUeSYliV8MdVHs/Lw2EK2PYKy3C1x1jmy4MEyJsS2 4ddA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+aIoGpXNXhUuHuJTYweNlKodTEQmo6PQ3ULkzpNA1B0=; b=k5t0dqWuyyJQdoWsNa6O4E72kPKTLxMr3f4pQcpKpE9hhxangaiHLbSww1cCpWMznn y6sRBC/DuS0g1zJIS3utbEbSjY3FpPnMystjkn2PslNQphLmL5RecS+XeQVwut+oxkPz T/PHxfN7/Nn/T3aUfpArbpKQe2iQnhCvHzU6mymo538jpg4P0pbkAi0hr8aBXON0Advz cWeSEi3PHtBAGSfus6q+4K1gMl7pLGJMHUdkZolIj7RYX47eSDIjZBlNvbC1tjXkTctt LFFlxXGmYG9YzcxPrHUmSuLwocrdDFAvjeIPmCPQB2I19vOnoxKolf27Vu8vo+++CcxL sd5w== X-Gm-Message-State: APjAAAVaaHnFkam/xxa+E7yYuQn7N/Ypk+/KacJgaoAA8t2g9GX3kgwT jazFElEo40j3DI64z+fL4wU= X-Google-Smtp-Source: APXvYqw7BK+t/C1cjbXIe9BDSQKOQxeoZKrUFlRPJrSFpLfgQqzr73WrK0klQCAMwLp9WhBnIgqjSg== X-Received: by 2002:a63:e416:: with SMTP id a22mr7375996pgi.338.1552723677851; Sat, 16 Mar 2019 01:07:57 -0700 (PDT) Received: from localhost.localdomain ([104.238.181.70]) by smtp.gmail.com with ESMTPSA id y14sm10690975pgs.47.2019.03.16.01.07.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Mar 2019 01:07:56 -0700 (PDT) From: Changbin Du To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: namhyung@kernel.org, Ingo Molnar , Peter Zijlstra , Alexei Starovoitov , rostedt@goodmis.org, Daniel Borkmann , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Changbin Du Subject: [PATCH 16/16] perf: fix a memory leak in test__perf_evsel__tp_sched_test Date: Sat, 16 Mar 2019 16:05:56 +0800 Message-Id: <20190316080556.3075-17-changbin.du@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190316080556.3075-1-changbin.du@gmail.com> References: <20190316080556.3075-1-changbin.du@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ================================================================= ==20875==ERROR: LeakSanitizer: detected memory leaks Direct leak of 1160 byte(s) in 1 object(s) allocated from: #0 0x7f1b6fc84138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) #1 0x55bd50005599 in zalloc util/util.h:23 #2 0x55bd500068f5 in perf_evsel__newtp_idx util/evsel.c:327 #3 0x55bd4ff810fc in perf_evsel__newtp /home/work/linux/tools/perf/util/evsel.h:216 #4 0x55bd4ff81608 in test__perf_evsel__tp_sched_test tests/evsel-tp-sched.c:69 #5 0x55bd4ff528e6 in run_test tests/builtin-test.c:358 #6 0x55bd4ff52baf in test_and_print tests/builtin-test.c:388 #7 0x55bd4ff543fe in __cmd_test tests/builtin-test.c:583 #8 0x55bd4ff5572f in cmd_test tests/builtin-test.c:722 #9 0x55bd4ffc4087 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 #10 0x55bd4ffc45c6 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 #11 0x55bd4ffc49ca in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 #12 0x55bd4ffc5138 in main /home/changbin/work/linux/tools/perf/perf.c:520 #13 0x7f1b6e34809a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Indirect leak of 19 byte(s) in 1 object(s) allocated from: #0 0x7f1b6fc83f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x7f1b6e3ac30f in vasprintf (/lib/x86_64-linux-gnu/libc.so.6+0x8830f) Signed-off-by: Changbin Du --- tools/perf/tests/evsel-tp-sched.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/tests/evsel-tp-sched.c b/tools/perf/tests/evsel-tp-sched.c index ea7acf403727..71f60c0f9faa 100644 --- a/tools/perf/tests/evsel-tp-sched.c +++ b/tools/perf/tests/evsel-tp-sched.c @@ -85,5 +85,6 @@ int test__perf_evsel__tp_sched_test(struct test *test __maybe_unused, int subtes if (perf_evsel__test_field(evsel, "target_cpu", 4, true)) ret = -1; + perf_evsel__delete(evsel); return ret; }