Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Horgan <ben.horgan@arm.com>
To: Sudeep Holla <sudeep.holla@kernel.org>,
	Andre Przywara <andre.przywara@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>,
	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>,
	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 06/10] arm_mpam: propagate MSC access errors for state saving function
Date: Fri, 24 Jul 2026 17:43:12 +0100	[thread overview]
Message-ID: <83336f0e-85ac-4711-9594-5edcb27eecdd@arm.com> (raw)
In-Reply-To: <20260724-perfect-pygmy-chinchilla-447ce0@sudeepholla>

Hi Sudeep, Andre,

On 7/24/26 13:27, Sudeep Holla wrote:
> On Fri, Jul 24, 2026 at 01:19:14PM +0200, Andre Przywara wrote:
>> Hi,
>>
>> On 7/24/26 12:07, Sudeep Holla wrote:
>>> On Thu, Jul 23, 2026 at 05:54:50PM +0200, Andre Przywara wrote:
>>>> Allow the mpam_save_mbwu_state() function to return an error, and
>>>> propagate read and write errors from the lower level up.
>>>>
>>>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>>>> ---
>>>>   drivers/resctrl/mpam_devices.c | 29 ++++++++++++++++++++++-------
>>>>   1 file changed, 22 insertions(+), 7 deletions(-)
>>>>
>>>> diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
>>>> index bcff53477133..6329443c451f 100644
>>>> --- a/drivers/resctrl/mpam_devices.c
>>>> +++ b/drivers/resctrl/mpam_devices.c
>>>> @@ -1833,22 +1833,37 @@ static int mpam_save_mbwu_state(void *arg)
>>>>   		mon_sel = FIELD_PREP(MSMON_CFG_MON_SEL_MON_SEL, i) |
>>>>   			  FIELD_PREP(MSMON_CFG_MON_SEL_RIS, ris->ris_idx);
>>>> -		mpam_write_monsel_reg(msc, CFG_MON_SEL, mon_sel);
>>>> -		mpam_read_monsel_reg(msc, CFG_MBWU_FLT, &cur_flt);
>>>> -		mpam_read_monsel_reg(msc, CFG_MBWU_CTL, &cur_ctl);
>>>> -		mpam_write_monsel_reg(msc, CFG_MBWU_CTL, 0);
>>>> +		ret = mpam_write_monsel_reg(msc, CFG_MON_SEL, mon_sel);
>>>> +		if (ret)
>>>> +			return ret;
>>>> +		ret = mpam_read_monsel_reg(msc, CFG_MBWU_FLT, &cur_flt);
>>>> +		if (ret)
>>>> +			return ret;
>>>> +		ret = mpam_read_monsel_reg(msc, CFG_MBWU_CTL, &cur_ctl);
>>>> +		if (ret)
>>>> +			return ret;
>>>
>>> How does it work in general with PCC. Now that you can fail at any point,
>>> what happens to the write that occurs before a failed read like above one.
>>> Who will take care of erasing those new writes or it doesn't matter ?

At least in this particular case it doesn't matter. The MON_SEL just configures which instance of
the monitor we are reading or writing from and we'll just write MON_SEL again next time we want to
interact with a monitor.

>>> Just checking as I don't have much knowledge on MPAM intrinsics.
>>
>> TBH I don't know, but I think we consider MPAM botched at this point, and
>> just stop the driver, similar to an error IRQ? But I am not sure this is
>> properly implemented at this point. The focus of these first six patches was
>> merely to lay the dirty groundwork for *being able* to handle errors, and do
>> this now rather than in the future.
>>

I've just been discussing the error handling with James and trying to work out what we can do
without limiting our options going forward. Ideally, if there are transient errors we'd like to
retry in the kernel if it's not taking "too long" and otherwise report the error back to user space.
For catastrophic errors, such as when the scp doesn't reply at all or that no MPAM commands are
going to work again we should disable MPAM. As resctrl does not anticipate errors willy nilly from
arch code it ends up reporting the info/last_cmd_status as "ok" even in situations when the MSC
accesses have failed. I notice this in at least rdtgroup_schemata_write(). Before we can report
proper failure information from resctrl and update last_cmd_status based on the error status from
the architecture code it doesn't make sense to report the errors to user space. We would likely want
resctrl to understand -ETIMEDOUT as well. As such, this leaves us the option of just nuking MPAM on
any error reported from the MPAM firmware interface. For now, we needn't do any retries and just
error out on the first error. It should be possible to just schedule mpam_broken_work from mpam_fb.c
on error.

Sorry for prompting the writing of these error handling patches but they will likely come in useful
in the future.

Thanks,

Ben

> 
> Well, I agree to some extent, but PCC adds that failure case before which
> it wasn't there. So, it is hard to claim that it was botched up before so
> let it be. I will let James/Ben to decide if it was already botched up or
> PCC addition makes it fragile in terms of error handling.





  reply	other threads:[~2026-07-24 16:43 UTC|newest]

Thread overview: 26+ 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 [this message]
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

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=83336f0e-85ac-4711-9594-5edcb27eecdd@arm.com \
    --to=ben.horgan@arm.com \
    --cc=andre.przywara@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@kernel.org \
    --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