From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752005AbdFHHby (ORCPT ); Thu, 8 Jun 2017 03:31:54 -0400 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:47092 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751875AbdFHHbn (ORCPT ); Thu, 8 Jun 2017 03:31:43 -0400 X-Original-SENDERIP: 156.147.1.151 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , Peter Zijlstra , Jiri Olsa , LKML , kernel-team@lge.com, David Ahern , Adrian Hunter , Wang Nan Subject: [PATCH v4 5/9] perf tools: Decompress kernel module when reading DSO data Date: Thu, 8 Jun 2017 16:31:05 +0900 Message-Id: <20170608073109.30699-6-namhyung@kernel.org> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170608073109.30699-1-namhyung@kernel.org> References: <20170608073109.30699-1-namhyung@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently perf decompresses kernel modules when loading symbol table but it missed to do it when reading raw data. Signed-off-by: Namhyung Kim --- tools/perf/util/dso.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c index b346b8eba65c..c63525d845c5 100644 --- a/tools/perf/util/dso.c +++ b/tools/perf/util/dso.c @@ -475,7 +475,23 @@ static int __open_dso(struct dso *dso, struct machine *machine) return -EINVAL; } + if (dso__needs_decompress(dso)) { + char newpath[KMOD_DECOMP_LEN]; + size_t len = sizeof(newpath); + + if (dso__decompress_kmodule_path(dso, name, newpath, len) < 0) { + free(name); + return -dso->load_errno; + } + + strcpy(name, newpath); + } + fd = do_open(name); + + if (dso__needs_decompress(dso)) + unlink(name); + free(name); return fd; } -- 2.13.1