LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: "tip-bot2 for Kim Phillips" <tip-bot2@linutronix.de> To: linux-tip-commits@vger.kernel.org Cc: Kim Phillips <kim.phillips@amd.com>, "Peter Zijlstra (Intel)" <peterz@infradead.org>, x86@kernel.org, linux-kernel@vger.kernel.org Subject: [tip: perf/core] perf/amd/uncore: Allow the driver to be built as a module Date: Mon, 23 Aug 2021 09:32:44 -0000 [thread overview] Message-ID: <162971116413.25758.1318593988723804136.tip-bot2@tip-bot2> (raw) In-Reply-To: <20210817221048.88063-8-kim.phillips@amd.com> The following commit has been merged into the perf/core branch of tip: Commit-ID: 50b46ab90f7c43a1adcc9099211b7447818d446e Gitweb: https://git.kernel.org/tip/50b46ab90f7c43a1adcc9099211b7447818d446e Author: Kim Phillips <kim.phillips@amd.com> AuthorDate: Tue, 17 Aug 2021 17:10:47 -05:00 Committer: Peter Zijlstra <peterz@infradead.org> CommitterDate: Fri, 20 Aug 2021 12:33:13 +02:00 perf/amd/uncore: Allow the driver to be built as a module Add support to build the AMD uncore driver as a module. This is in order to facilitate development. Signed-off-by: Kim Phillips <kim.phillips@amd.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20210817221048.88063-8-kim.phillips@amd.com --- arch/x86/events/Kconfig | 10 ++++++++++ arch/x86/events/amd/Makefile | 5 +++-- arch/x86/events/amd/uncore.c | 28 +++++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/arch/x86/events/Kconfig b/arch/x86/events/Kconfig index 39d9ded..d6cdfe6 100644 --- a/arch/x86/events/Kconfig +++ b/arch/x86/events/Kconfig @@ -34,4 +34,14 @@ config PERF_EVENTS_AMD_POWER (CPUID Fn8000_0007_EDX[12]) interface to calculate the average power consumption on Family 15h processors. +config PERF_EVENTS_AMD_UNCORE + tristate "AMD Uncore performance events" + depends on PERF_EVENTS && CPU_SUP_AMD + default y + help + Include support for AMD uncore performance events for use with + e.g., perf stat -e amd_l3/.../,amd_df/.../. + + To compile this driver as a module, choose M here: the + module will be called 'amd-uncore'. endmenu diff --git a/arch/x86/events/amd/Makefile b/arch/x86/events/amd/Makefile index fe8795a..6cbe38d 100644 --- a/arch/x86/events/amd/Makefile +++ b/arch/x86/events/amd/Makefile @@ -1,8 +1,9 @@ # SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_CPU_SUP_AMD) += core.o uncore.o +obj-$(CONFIG_CPU_SUP_AMD) += core.o obj-$(CONFIG_PERF_EVENTS_AMD_POWER) += power.o obj-$(CONFIG_X86_LOCAL_APIC) += ibs.o +obj-$(CONFIG_PERF_EVENTS_AMD_UNCORE) += amd-uncore.o +amd-uncore-objs := uncore.o ifdef CONFIG_AMD_IOMMU obj-$(CONFIG_CPU_SUP_AMD) += iommu.o endif - diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c index a01f9f1..0d04414 100644 --- a/arch/x86/events/amd/uncore.c +++ b/arch/x86/events/amd/uncore.c @@ -347,6 +347,7 @@ static struct pmu amd_nb_pmu = { .stop = amd_uncore_stop, .read = amd_uncore_read, .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .module = THIS_MODULE, }; static struct pmu amd_llc_pmu = { @@ -360,6 +361,7 @@ static struct pmu amd_llc_pmu = { .stop = amd_uncore_stop, .read = amd_uncore_read, .capabilities = PERF_PMU_CAP_NO_EXCLUDE | PERF_PMU_CAP_NO_INTERRUPT, + .module = THIS_MODULE, }; static struct amd_uncore *amd_uncore_alloc(unsigned int cpu) @@ -665,4 +667,28 @@ fail_nb: return ret; } -device_initcall(amd_uncore_init); + +static void __exit amd_uncore_exit(void) +{ + cpuhp_remove_state(CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE); + cpuhp_remove_state(CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING); + cpuhp_remove_state(CPUHP_PERF_X86_AMD_UNCORE_PREP); + + if (boot_cpu_has(X86_FEATURE_PERFCTR_LLC)) { + perf_pmu_unregister(&amd_llc_pmu); + free_percpu(amd_uncore_llc); + amd_uncore_llc = NULL; + } + + if (boot_cpu_has(X86_FEATURE_PERFCTR_NB)) { + perf_pmu_unregister(&amd_nb_pmu); + free_percpu(amd_uncore_nb); + amd_uncore_nb = NULL; + } +} + +module_init(amd_uncore_init); +module_exit(amd_uncore_exit); + +MODULE_DESCRIPTION("AMD Uncore Driver"); +MODULE_LICENSE("GPL v2");
next prev parent reply other threads:[~2021-08-23 9:32 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-17 22:10 [PATCH 0/8] perf/amd: Fixes, uncore as a module, new IBS header Kim Phillips 2021-08-17 22:10 ` [PATCH 1/8] perf/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op Kim Phillips 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 7:45 ` [tip: perf/urgent] perf/x86/amd/ibs: " tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 2/8] perf/x86/amd/ibs: Add workaround for erratum #1,197 Kim Phillips 2021-08-19 22:29 ` Namhyung Kim 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 7:45 ` [tip: perf/urgent] perf/x86/amd/ibs: Work around erratum #1197 tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 3/8] perf/x86/amd/power: Assign pmu.module Kim Phillips 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 7:45 ` [tip: perf/urgent] " tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 4/8] perf/amd/uncore: Use free_percpu's built-in check for null Kim Phillips 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 8:09 ` [tip: perf/core] perf/amd/uncore: Simplify code, use free_percpu()'s built-in check for NULL tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 5/8] perf/amd/uncore: Use linux/ include paths instead of asm/ Kim Phillips 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 8:09 ` [tip: perf/core] perf/amd/uncore: Clean up header use, use <linux/ include paths instead of <asm/ tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 6/8] x86/cpu: Add helper function get_llc_id Kim Phillips 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 8:09 ` [tip: perf/core] x86/cpu: Add get_llc_id() helper function tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 7/8] perf/amd/uncore: Allow the driver to be built as a module Kim Phillips 2021-08-23 9:32 ` tip-bot2 for Kim Phillips [this message] 2021-08-26 8:09 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-17 22:10 ` [PATCH 8/8] perf/x86/amd/ibs: Add bitfield definitions in new header Kim Phillips 2021-08-19 22:56 ` Namhyung Kim 2021-08-23 9:32 ` [tip: perf/core] " tip-bot2 for Kim Phillips 2021-08-26 8:09 ` [tip: perf/core] perf/x86/amd/ibs: Add bitfield definitions in new <asm/amd-ibs.h> header tip-bot2 for Kim Phillips
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=162971116413.25758.1318593988723804136.tip-bot2@tip-bot2 \ --to=tip-bot2@linutronix.de \ --cc=kim.phillips@amd.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-tip-commits@vger.kernel.org \ --cc=peterz@infradead.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).