From: Robin Murphy <robin.murphy@arm.com>
To: Geoff Blake <blakgeof@amazon.com>
Cc: will@kernel.org, mark.rutland@arm.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] perf/arm-cmn: Cope with spurious IRQs better
Date: Wed, 30 Nov 2022 18:16:19 +0000 [thread overview]
Message-ID: <c34db006-4d5b-fb71-f998-63fcdcde6c0b@arm.com> (raw)
In-Reply-To: <f41af5cb-7fc7-4bd3-ec9e-53071b9a41f9@amazon.com>
On 2022-11-30 16:02, Geoff Blake wrote:
> Robin,
>
> From my perspective, this is a worse solution as now we're sweeping an
> issue under the rug and consuming CPU cycles handling IRQs we should not
> be getting in the first place. While an overflow IRQ from the cmn should
> not be high frequency, there is a non-zero chance in the future it could
> be and this could lead to a very hard to debug performance issue instead
> of the current problem, which is discovering we need to clean up better
> from a noisy kernel message.
Kexec is not the only possible source of spurious IRQs. If they cause a
problem for this driver, that cannot be robustly addressed by trying to
rely on whatever software might happen to run before this driver.
> The driver as best I can grok currently is optimized to limit the amount
> of register writes for the common use-case, which is setting and unsetting
> events, so all the wiring for the PMU to feed events to the DTC is done up
> front on load: DTC_CTL's DT_EN bit is set immediately during probe, as is
> OVFL_INTR_EN. All the DN states and DTM PMU_CONFIG_PMU_EN is deferred
> for when an event is actually set, and here we go through all of them
> anyways for each event unless its bynodeid, so the expense of setting
> events grows linearly with the mesh size anyways.
If arm_cmn_init_dtc() writing 0 to PMCR didn't stop the PMU then we've
got bigger problems, because that's how we expect to start and stop it
in normal operation. I'm not ruling out that some subtle bug in that
regard might exist, since I've still not yet had a chance to reproduce
and observe this behaviour on my board, but I've also not seen
sufficient evidence to suggest that that is the case either. (Now that
I'm looking closely, I think there *is* actually a small oversight for
the DTMs, but that would lead to different symptoms than you reported)
At least the writes to PMOVSR_CLR *did* clearly work, because you're
seeing the "nobody cared" message from the IRQ core rather than the
WARN_ON(!dtc->counters[i]) which would happen if a fresh overflow was
actually asserted. Currently I would expect to see up to 4 of those
messages since there can be up to 4 IRQs, but once those are all
requested, enabled, and "handled", all the spurious initially-latched
state should be cleared and any *new* overflows will be indicated in
PMOVSR. I don't see how a single IRQ could ever be unhandled more than
once anyway, if the first time disables it.
Thanks,
Robin.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-11-30 18:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-30 15:36 [PATCH 1/2] perf/arm-cmn: Cope with spurious IRQs better Robin Murphy
2022-11-30 15:36 ` [PATCH 2/2] perf/arm-cmn: Implement shutdown method Robin Murphy
2022-11-30 16:02 ` [PATCH 1/2] perf/arm-cmn: Cope with spurious IRQs better Geoff Blake
2022-11-30 18:16 ` Robin Murphy [this message]
2022-11-30 23:13 ` Geoff Blake
2022-12-01 18:28 ` Robin Murphy
2022-12-05 15:38 ` Geoff Blake
2022-12-15 18:00 ` [PATCH] perf/arm-cmn: Add shutdown routine Geoff Blake
2023-01-04 15:55 ` Geoff Blake
2023-01-19 15:30 ` Geoff Blake
2023-01-19 15:32 ` Robin Murphy
2023-01-19 17:10 ` Geoff Blake
2023-01-19 18:14 ` Will Deacon
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=c34db006-4d5b-fb71-f998-63fcdcde6c0b@arm.com \
--to=robin.murphy@arm.com \
--cc=blakgeof@amazon.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.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