Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3756334pxk; Tue, 29 Sep 2020 05:37:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6e/V33ZW8GuWMXWgjXWCPkPhHjbHWqBbPGCsxSF7COPuCapf9rwrlkCiHAK6kB6S9rmxZ X-Received: by 2002:a17:906:d9d9:: with SMTP id qk25mr3548869ejb.51.1601383067914; Tue, 29 Sep 2020 05:37:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601383067; cv=none; d=google.com; s=arc-20160816; b=XEer1mFnJlHTcOVWLt1QUBQrW3lwohPJJoIxtL/IOw5uL+nIKS6PCAxtIMr3TZKH79 kBqaSNlsJmy5MhZiW/V4YbmnCR0fyAgOfQXtex1oUwcx6mlPN1GXzQAF5v62Y0kEh79b wSnjl2uywKNiwTLvbAq7aZJRo7Gzrq9t7EGq75M9kQFLlH4HF6lhOrn77fVvQJNWHARD YZinBAQXoufJbBrO/urx9KXPYNR4JmoiEaNBclavgkIpYs8loPuX6BL5CT5vXlxpA9GZ oJk5oGOqGe5gDEJXDxk9aW9nwe3YKrYtNeTzA85PCwxaZy0BKH+SQyBjfMX3V12WX+MH +vtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GaobF8oD9ytZ+AlVUx908wtCse7PbKcfd6EZTtf+GVo=; b=tavyQzlBolLEcYYmvYJTpArG3NNdR0qAzgyQcifx/WGtDzYAJu0k6uFW8VUFUv47Nb RBFecINFMQoxNLdryExO/9grVvFgOWKnMdzJBiEL7gu/0xqoE5xni2Wuop5WsdCPh1CI bRXDCeQv78wTgAf5LudITQUpn23ujqQijJLubl97Z5i3Lorr2d27sE6bNd8pGAZfoaiX 9E2Y3c5nlHk+gR6n80VFpboom9878d9FWujUpooBDnGJqFBE0J81oPmxc0xQ9ZO7fiV2 fJaJ5fCSRfNaKrNfjCR+tPLD5cI4mRbqED25vF8RD8DyvXVynVzuCsjZer16XteA7MGu osDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HW1PQP8O; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a12si2433259ejx.584.2020.09.29.05.37.24; Tue, 29 Sep 2020 05:37:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HW1PQP8O; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732740AbgI2Mga (ORCPT + 99 others); Tue, 29 Sep 2020 08:36:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:37022 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729063AbgI2LU6 (ORCPT ); Tue, 29 Sep 2020 07:20:58 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 30C5F221EF; Tue, 29 Sep 2020 11:18:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1601378291; bh=+hiScWzlYdU5Vu6lWpmYKEZSFBIA+xOYgmz1poSBJBo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HW1PQP8OhzduxNpPUBBKpUXz7TwYfe5rKcHKOVJMu/WR5pJS+NSfZaV6bXnSHyltg XXfXmXvG5tTzjJeVmww5Iuzk5MZ8Aqe7iuAZlSLWlpKSgm0GYGIkk48zZN8EnzdGFS riRLOElVQf7uc+MF9tCwdNuhsLTKgdbFkDe6ghNc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Adrian Hunter , Alexander Shishkin , Borislav Petkov , "H. Peter Anvin" , Jiri Olsa , Leo Yan , Mark Rutland , Masami Hiramatsu , Mathieu Poirier , Peter Zijlstra , "Steven Rostedt (VMware)" , x86@kernel.org, Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 4.14 129/166] perf kcore_copy: Fix module map when there are no modules loaded Date: Tue, 29 Sep 2020 13:00:41 +0200 Message-Id: <20200929105941.639664403@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200929105935.184737111@linuxfoundation.org> References: <20200929105935.184737111@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Adrian Hunter [ Upstream commit 61f82e3fb697a8e85f22fdec786528af73dc36d1 ] In the absence of any modules, no "modules" map is created, but there are other executable pages to map, due to eBPF JIT, kprobe or ftrace. Map them by recognizing that the first "module" symbol is not necessarily from a module, and adjust the map accordingly. Signed-off-by: Adrian Hunter Cc: Alexander Shishkin Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jiri Olsa Cc: Leo Yan Cc: Mark Rutland Cc: Masami Hiramatsu Cc: Mathieu Poirier Cc: Peter Zijlstra Cc: Steven Rostedt (VMware) Cc: x86@kernel.org Link: http://lore.kernel.org/lkml/20200512121922.8997-10-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin --- tools/perf/util/symbol-elf.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 3d39332b3a06a..a0a4afa7e6781 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1420,6 +1420,7 @@ struct kcore_copy_info { u64 first_symbol; u64 last_symbol; u64 first_module; + u64 first_module_symbol; u64 last_module_symbol; struct phdr_data kernel_map; struct phdr_data modules_map; @@ -1434,6 +1435,8 @@ static int kcore_copy__process_kallsyms(void *arg, const char *name, char type, return 0; if (strchr(name, '[')) { + if (!kci->first_module_symbol || start < kci->first_module_symbol) + kci->first_module_symbol = start; if (start > kci->last_module_symbol) kci->last_module_symbol = start; return 0; @@ -1558,6 +1561,10 @@ static int kcore_copy__calc_maps(struct kcore_copy_info *kci, const char *dir, kci->etext += page_size; } + if (kci->first_module_symbol && + (!kci->first_module || kci->first_module_symbol < kci->first_module)) + kci->first_module = kci->first_module_symbol; + kci->first_module = round_down(kci->first_module, page_size); if (kci->last_module_symbol) { -- 2.25.1