Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3699735pxk; Tue, 29 Sep 2020 04:09:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9Lp62rcXaKjgv/rVp880UdWSkKFw3kE6AXlcw44FZ/BXY48SkO1WqU9E6IdNidsJBnpA7 X-Received: by 2002:a17:906:2655:: with SMTP id i21mr3121088ejc.511.1601377796173; Tue, 29 Sep 2020 04:09:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601377796; cv=none; d=google.com; s=arc-20160816; b=UhVhwCOPcZI2jXiEAF9GSuTDtCBV5sv1gemhS4upZFqNHmEXSU+Eg7FZY4v5OUV9qy MiU/v3lokH9oIBVFLyW4RlDQ8OCeCyPvvleK700j2JRRHM/yeuADMGLaTet0aGkjPFXl ZFEeJqs/0V5hiZtjQLKy3v2/roasmsk/KTYR0S21FlXx6LggiIEduWHytTR0MkZjjdvZ AA9z8Nf1yPONXaG70PiOouCn0iDQPE+hTgUppgXlaDcnwXDALNlVx5H/775i4WifhSuA ODV18kLPX0ArzpFEZ0swSicRCC4uN5705N7EdRnjNhuuvC+eRgd2tE9HTymnk1NT/cc9 I1BA== 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=Csaaw+UeY+rxkeUbOVNaTTR3V/P3gqDRPsO6+/t5BZY=; b=zhFERUtH7lLTJOJwYD+Pj2bw5XQu1dH3AcM6fX3wDW5ueYS07bWjp0NC0uvUALOm0p iAUMmBLj3IOWTt8hoLhTLgCuNqwqb06nUiV3UrlcJGK0vJy7yC6UPE+ma2VlMaPJvkhA gEPzyK2vcRcwZlCavHzDaiMyXD+FRx+Y85A0xPPUHxem+ST4k0R6nBMRKI5cEVfmfdVz 4BimJMOEQeGeyWYcYsF5aNS2MJZr37RC6nEn7MXTFz5tJCoDXeeBV+zqq050X0aGJub3 dOxGp95zpb71Tj+REOeSxdLZcp0Es+YdcPhqiLsKzxPTv+wRLq4BAfNZPD6HYrSLNKEC hlbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=r7Knwinz; 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 v5si2548914edx.502.2020.09.29.04.09.33; Tue, 29 Sep 2020 04:09:56 -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=r7Knwinz; 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 S1728857AbgI2LGv (ORCPT + 99 others); Tue, 29 Sep 2020 07:06:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:44074 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728706AbgI2LGi (ORCPT ); Tue, 29 Sep 2020 07:06:38 -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 DBDCE22204; Tue, 29 Sep 2020 11:06:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1601377596; bh=8HIRcnXdfiaktE+2rI70lY5J7W0g14untJq4q2lHd5k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r7KnwinzBK04WCbGrxCF+tgqdhsRwLRF7AV6JT8ylgyc5LdXZ+hWdsTgk/MpkZ2rZ JvIA9HNke2WCCkOGLHKrW/UoF6MQ8czVodJVA04X7mfm/wzTg+iiE+c2h2Qfr2+Mvi PR/WA1wq9O/tWUc+Ij9J7wD4B/AGbvbQ/nPJLeHQ= 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.4 66/85] perf kcore_copy: Fix module map when there are no modules loaded Date: Tue, 29 Sep 2020 13:00:33 +0200 Message-Id: <20200929105931.518052518@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200929105928.198942536@linuxfoundation.org> References: <20200929105928.198942536@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 2070c02de3af5..ea55cb6b614f4 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1390,6 +1390,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; @@ -1404,6 +1405,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; @@ -1528,6 +1531,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