From: Jeremy Linton <jeremy.linton@arm.com> To: linux-arm-kernel@lists.infradead.org Cc: mark.rutland@arm.com, lorenzo.pieralisi@arm.com, will.deacon@arm.com, sudeep.holla@arm.com, rjw@rjwysocki.net, linuxarm@huawei.com, Jeremy Linton <jeremy.linton@arm.com>, linux-acpi@vger.kernel.org, catalin.marinas@arm.com, john.garry@huawei.com, lenb@kernel.org Subject: [PATCH v3 0/5] arm64: SPE ACPI enablement Date: Fri, 3 May 2019 18:24:02 -0500 [thread overview] Message-ID: <20190503232407.37195-1-jeremy.linton@arm.com> (raw) This patch series enables the Arm Statistical Profiling Extension (SPE) on ACPI platforms. This is possible because ACPI 6.3 uses a previously reserved field in the MADT to store the SPE interrupt number, similarly to how the normal PMU is described. If a consistent valid interrupt exists across all the cores in the system, a platform device is registered. That then triggers the SPE module, which runs as normal. We also add the ability to parse the PPTT for IDENTICAL cores. We then use this to sanity check the single SPE device we create. This creates a bit of a problem with respect to the specification though. The specification says that its legal for multiple tree's to exist in the PPTT. We handle this fine, but what happens in the case of multiple tree's is that the lack of a common node with IDENTICAL set forces us to assume that there are multiple non-IDENTICAL cores in the machine. v2->v3: Previously a function pointer was being used to handle the more complex node checking required by the IDENTICAL flag. This version simply checks for the IDENTICAL flag and calls flag_identical() to preform the revision and next node checks. (I think after reading Raphael's comments for the Nth time, this is actually what he was suggesting, which I initially miss interpreted). Modify subject of first patch so that its clear a that its a capitalization change rather, than a logical C 'case' change. v1->v2: Wrap the code which creates the SPE device in a new CONFIG_ARM_SPE_ACPI ifdef. Move arm,spe-v1 device name into common header file Some comment/case sensitivity/function name changes. Jeremy Linton (5): ACPI/PPTT: Trivial, change the capitalization of CPU ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens ACPI/PPTT: Modify node flag detection to find last IDENTICAL arm_pmu: acpi: spe: Add initial MADT/SPE probing perf: arm_spe: Enable ACPI/Platform automatic module loading arch/arm64/include/asm/acpi.h | 3 + drivers/acpi/pptt.c | 102 +++++++++++++++++++++++++--------- drivers/perf/Kconfig | 5 ++ drivers/perf/arm_pmu_acpi.c | 76 +++++++++++++++++++++++++ drivers/perf/arm_spe_pmu.c | 12 +++- include/linux/acpi.h | 5 ++ include/linux/perf/arm_pmu.h | 2 + 7 files changed, 176 insertions(+), 29 deletions(-) -- 2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Jeremy Linton <jeremy.linton@arm.com> To: linux-arm-kernel@lists.infradead.org Cc: linux-acpi@vger.kernel.org, catalin.marinas@arm.com, will.deacon@arm.com, rjw@rjwysocki.net, lenb@kernel.org, mark.rutland@arm.com, lorenzo.pieralisi@arm.com, sudeep.holla@arm.com, linuxarm@huawei.com, john.garry@huawei.com, Jeremy Linton <jeremy.linton@arm.com> Subject: [PATCH v3 0/5] arm64: SPE ACPI enablement Date: Fri, 3 May 2019 18:24:02 -0500 [thread overview] Message-ID: <20190503232407.37195-1-jeremy.linton@arm.com> (raw) Message-ID: <20190503232402.fCuKl8u9S7cDrlcZHvAemTS0fYxHC4pvCnf5uz2ri7Q@z> (raw) This patch series enables the Arm Statistical Profiling Extension (SPE) on ACPI platforms. This is possible because ACPI 6.3 uses a previously reserved field in the MADT to store the SPE interrupt number, similarly to how the normal PMU is described. If a consistent valid interrupt exists across all the cores in the system, a platform device is registered. That then triggers the SPE module, which runs as normal. We also add the ability to parse the PPTT for IDENTICAL cores. We then use this to sanity check the single SPE device we create. This creates a bit of a problem with respect to the specification though. The specification says that its legal for multiple tree's to exist in the PPTT. We handle this fine, but what happens in the case of multiple tree's is that the lack of a common node with IDENTICAL set forces us to assume that there are multiple non-IDENTICAL cores in the machine. v2->v3: Previously a function pointer was being used to handle the more complex node checking required by the IDENTICAL flag. This version simply checks for the IDENTICAL flag and calls flag_identical() to preform the revision and next node checks. (I think after reading Raphael's comments for the Nth time, this is actually what he was suggesting, which I initially miss interpreted). Modify subject of first patch so that its clear a that its a capitalization change rather, than a logical C 'case' change. v1->v2: Wrap the code which creates the SPE device in a new CONFIG_ARM_SPE_ACPI ifdef. Move arm,spe-v1 device name into common header file Some comment/case sensitivity/function name changes. Jeremy Linton (5): ACPI/PPTT: Trivial, change the capitalization of CPU ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens ACPI/PPTT: Modify node flag detection to find last IDENTICAL arm_pmu: acpi: spe: Add initial MADT/SPE probing perf: arm_spe: Enable ACPI/Platform automatic module loading arch/arm64/include/asm/acpi.h | 3 + drivers/acpi/pptt.c | 102 +++++++++++++++++++++++++--------- drivers/perf/Kconfig | 5 ++ drivers/perf/arm_pmu_acpi.c | 76 +++++++++++++++++++++++++ drivers/perf/arm_spe_pmu.c | 12 +++- include/linux/acpi.h | 5 ++ include/linux/perf/arm_pmu.h | 2 + 7 files changed, 176 insertions(+), 29 deletions(-) -- 2.21.0
next reply other threads:[~2019-05-03 23:24 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-03 23:24 Jeremy Linton [this message] 2019-05-03 23:24 ` [PATCH v3 0/5] arm64: SPE ACPI enablement Jeremy Linton 2019-05-03 23:24 ` [PATCH v3 1/5] ACPI/PPTT: Trivial, change the capitalization of CPU Jeremy Linton 2019-05-03 23:24 ` Jeremy Linton 2019-05-07 18:12 ` Jeremy Linton 2019-05-07 18:12 ` Jeremy Linton 2019-05-03 23:24 ` [PATCH v3 2/5] ACPI/PPTT: Add function to return ACPI 6.3 Identical tokens Jeremy Linton 2019-05-03 23:24 ` Jeremy Linton 2019-05-05 7:09 ` Kefeng Wang 2019-05-05 7:09 ` Kefeng Wang 2019-05-07 18:26 ` Jeremy Linton 2019-05-07 18:26 ` Jeremy Linton 2019-06-07 9:49 ` Sudeep Holla 2019-05-03 23:24 ` [PATCH v3 3/5] ACPI/PPTT: Modify node flag detection to find last IDENTICAL Jeremy Linton 2019-05-03 23:24 ` Jeremy Linton 2019-06-07 9:53 ` Sudeep Holla 2019-06-07 13:15 ` Jeremy Linton 2019-06-07 13:47 ` Sudeep Holla 2019-05-03 23:24 ` [PATCH v3 4/5] arm_pmu: acpi: spe: Add initial MADT/SPE probing Jeremy Linton 2019-05-03 23:24 ` Jeremy Linton 2019-05-08 11:18 ` John Garry 2019-05-08 20:04 ` Jeremy Linton 2019-06-07 9:57 ` Sudeep Holla 2019-06-07 13:28 ` Jeremy Linton 2019-06-07 13:37 ` Sudeep Holla 2019-05-03 23:24 ` [PATCH v3 5/5] perf: arm_spe: Enable ACPI/Platform automatic module loading Jeremy Linton 2019-05-03 23:24 ` Jeremy Linton 2019-05-04 11:06 ` [PATCH v3 0/5] arm64: SPE ACPI enablement Hanjun Guo 2019-05-04 11:06 ` Hanjun Guo 2019-05-07 17:58 ` Jeremy Linton 2019-05-07 17:58 ` Jeremy Linton 2019-05-08 9:35 ` Hanjun Guo 2019-05-08 16:51 ` Sudeep Holla 2019-05-09 9:28 ` Will Deacon 2019-05-09 10:35 ` Sudeep Holla 2019-05-09 14:13 ` Sudeep Holla 2019-05-13 10:56 ` Will Deacon 2019-05-13 11:31 ` Sudeep Holla 2019-05-13 11:10 ` Hanjun Guo 2019-05-08 16:45 ` Sudeep Holla
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=20190503232407.37195-1-jeremy.linton@arm.com \ --to=jeremy.linton@arm.com \ --cc=catalin.marinas@arm.com \ --cc=john.garry@huawei.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linuxarm@huawei.com \ --cc=lorenzo.pieralisi@arm.com \ --cc=mark.rutland@arm.com \ --cc=rjw@rjwysocki.net \ --cc=sudeep.holla@arm.com \ --cc=will.deacon@arm.com \ /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).