Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: Sudeep Holla <sudeep.holla@arm.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Hanjun Guo <guohanjun@huawei.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, James Morse <james.morse@arm.com>,
	Ben Horgan <ben.horgan@arm.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Fenghua Yu <fenghuay@nvidia.com>,
	Jonathan Cameron <jic23@kernel.org>,
	Srivathsa L Rao <srivathsa.rao@oss.qualcomm.com>,
	Ganapatrao Kulkarni <ganapatrao.kulkarni@oss.qualcomm.com>,
	Trilok Soni <tsoni@quicinc.com>,
	Srinivas Ramana <sramana@qti.qualcomm.com>,
	Niyas Sait <niyas.sait@arm.com>, Lee Trager <lee@trager.us>,
	linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 10/10] arm_mpam: detect and enable MPAM-Fb PCC support
Date: Mon, 27 Jul 2026 15:39:40 +0200	[thread overview]
Message-ID: <b1d346ad-2bee-4f0d-9ac2-08d4c1bde94e@arm.com> (raw)
In-Reply-To: <20260727-knowing-bittern-of-tempest-6deb54@sudeepholla>

Hi,

On 7/27/26 15:20, Sudeep Holla wrote:
> On Mon, Jul 27, 2026 at 02:48:47PM +0200, Lorenzo Pieralisi wrote:
>> On Fri, Jul 24, 2026 at 11:18:32AM +0100, Sudeep Holla wrote:
>>> On Thu, Jul 23, 2026 at 05:54:54PM +0200, Andre Przywara wrote:
>>>> The Arm MPAM-Fb specification [1] describes a protocol to access MSC
>>>> registers through a firmware interface. This requires a shared memory
>>>> region to hold the message, and a mailbox to trigger the access.
>>>> For ACPI this is wrapped as a PCC channel, described using existing
>>>> ACPI abstractions.
>>>>
>>>> Add code to parse those PCC table descriptions associated with an MSC,
>>>> and store the parsed information in the MSC struct.
>>>> There can be multiple PCC channels, and each channel can serve multiple
>>>> MSCs, so we need to keep track of the channel usage, using a list and
>>>> a refcount.
>>>> This will be used by the MPAM-Fb access wrapper code.
>>>>
>>>> [1] https://developer.arm.com/documentation/den0144/latest
>>>>
>>>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>>>> ---
>>>>   drivers/acpi/arm64/mpam.c      |   6 +-
>>>>   drivers/resctrl/mpam_devices.c | 127 ++++++++++++++++++++++++++++++++-
>>>>   2 files changed, 129 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/acpi/arm64/mpam.c b/drivers/acpi/arm64/mpam.c
>>>> index 84963a20c3e7..ca9b8754ae5f 100644
>>>> --- a/drivers/acpi/arm64/mpam.c
>>>> +++ b/drivers/acpi/arm64/mpam.c
>>>> @@ -220,8 +220,8 @@ static struct platform_device * __init acpi_mpam_parse_msc(struct acpi_mpam_msc_
>>>>   	struct platform_device *pdev __free(platform_device_put) =
>>>>   		platform_device_alloc("mpam_msc", tbl_msc->identifier);
>>>
>>> Looks like tbl_msc->identifier is getting stashed as pdev->id...
>>>
>>>
>>>>   	int next_res = 0, next_prop = 0, err;
>>>> -	/* pcc, nrdy, affinity and a sentinel */
>>>> -	struct property_entry props[4] = { 0 };
>>>> +	/* pcc, msc-id, nrdy, affinity and a sentinel */
>>>> +	struct property_entry props[5] = { 0 };
>>>>   	/* mmio, 2xirq, no sentinel. */
>>>>   	struct resource res[3] = { 0 };
>>>>   	struct acpi_device *companion;
>>>> @@ -256,6 +256,8 @@ static struct platform_device * __init acpi_mpam_parse_msc(struct acpi_mpam_msc_
>>>>   	} else if (iface == MPAM_IFACE_PCC) {
>>>>   		props[next_prop++] = PROPERTY_ENTRY_U32("pcc-channel",
>>>>   							tbl_msc->base_address);
>>>> +		props[next_prop++] = PROPERTY_ENTRY_U32("msc-id",
>>>> +							tbl_msc->identifier);
>>>
>>> Why is this needed then as you can fetch it as pdev->id ?
>>
>> I suppose it is to have properties parity between OF and ACPI without
>> having to change the driver property parsing path.

I could claim: "what he said ^^^^", but in truth I simply missed that 
the identifier is also the platform device ID.

> Yes, that was my initial thought as well. However, after looking into it
> further, I could not find any device tree bindings in the upstream tree.
> I am therefore unsure whether MPAM is supported on DT platforms.

No, at the moment MPAM is ACPI only. As you mention, DT bindings have 
been proposed at some point, but apparently there was no real user, so 
this effort was shelved until someone complains, IIUC.

> The use of these device properties appears to have been based on DT bindings
> that may never have been upstreamed. As [1] suggests, the bindings were
> dropped before the initial merge.

Yes, indeed these names already cater for the proposed DT bindings, 
short of inventing some new names, I guess.  But I was wondering how 
much of a problem it is to rename them, for ACPI those names are 
internal only, right? So any potentially deviating DT property name 
would just be a patch to rename the property name here and in the MPAM 
driver, right?

> Although we could rename these properties later to align with any DT bindings
> that are introduced, I think it would be preferable to avoid adding new
> properties unless they are strictly necessary.

I don't really mind, so can do either way, but the MSC identifier is 
clearly defined in the MPAM-Fb protocol, and connected to the number 
used in the ACPI table, so kind of assuming that the platform device ID 
(a more Linux internal thing?) is the same, is a bit fragile.

But as mentioned: whatever you prefer, it looks like we can change it 
anytime.

Thanks,
Andre.



  parent reply	other threads:[~2026-07-27 13:40 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-23 15:54 [PATCH v4 00/10] arm_mpam: Add MPAM-Fb firmware support Andre Przywara
2026-07-23 15:54 ` [PATCH v4 01/10] arm_mpam: let low level MSC accessors return an error Andre Przywara
2026-07-23 15:54 ` [PATCH v4 02/10] arm_mpam: propagate MSC access errors for hw_probe functions Andre Przywara
2026-07-23 15:54 ` [PATCH v4 03/10] arm_mpam: propagate MSC access errors for MBWU counters Andre Przywara
2026-07-23 15:54 ` [PATCH v4 04/10] arm_mpam: propagate MSC access errors for msmon helpers Andre Przywara
2026-07-23 15:54 ` [PATCH v4 05/10] arm_mpam: propagate MSC access errors for __ris_msmon_read() Andre Przywara
2026-07-24 10:02   ` Sudeep Holla
2026-07-24 11:17     ` Andre Przywara
2026-07-24 12:19       ` Sudeep Holla
2026-07-23 15:54 ` [PATCH v4 06/10] arm_mpam: propagate MSC access errors for state saving function Andre Przywara
2026-07-24 10:07   ` Sudeep Holla
2026-07-24 11:19     ` Andre Przywara
2026-07-24 12:27       ` Sudeep Holla
2026-07-24 16:43         ` Ben Horgan
2026-07-23 15:54 ` [PATCH v4 07/10] arm_mpam: prepare mon_sel locking for MPAM-Fb Andre Przywara
2026-07-24 16:56   ` Ben Horgan
2026-07-23 15:54 ` [PATCH v4 08/10] arm_mpam: add MPAM-Fb MSC firmware access support Andre Przywara
2026-07-24  9:55   ` Sudeep Holla
2026-07-24 11:17     ` Andre Przywara
2026-07-24 12:22       ` Sudeep Holla
2026-07-24 17:08   ` Ben Horgan
2026-07-24 18:03     ` Sudeep Holla
2026-07-23 15:54 ` [PATCH v4 09/10] arm_mpam: prevent MPAM-Fb accesses inside IRQ handler Andre Przywara
2026-07-24 16:52   ` Ben Horgan
2026-07-23 15:54 ` [PATCH v4 10/10] arm_mpam: detect and enable MPAM-Fb PCC support Andre Przywara
2026-07-24 10:18   ` Sudeep Holla
2026-07-27 12:48     ` Lorenzo Pieralisi
2026-07-27 13:20       ` Sudeep Holla
2026-07-27 13:33         ` Lorenzo Pieralisi
2026-07-27 13:39           ` Sudeep Holla
2026-07-27 13:39         ` Andre Przywara [this message]
2026-07-27 16:27   ` Srivathsa L Rao

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=b1d346ad-2bee-4f0d-9ac2-08d4c1bde94e@arm.com \
    --to=andre.przywara@arm.com \
    --cc=ben.horgan@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=fenghuay@nvidia.com \
    --cc=ganapatrao.kulkarni@oss.qualcomm.com \
    --cc=guohanjun@huawei.com \
    --cc=james.morse@arm.com \
    --cc=jic23@kernel.org \
    --cc=lee@trager.us \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=niyas.sait@arm.com \
    --cc=rafael@kernel.org \
    --cc=reinette.chatre@intel.com \
    --cc=sramana@qti.qualcomm.com \
    --cc=srivathsa.rao@oss.qualcomm.com \
    --cc=sudeep.holla@arm.com \
    --cc=tsoni@quicinc.com \
    --cc=will@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: link
Be 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