From: Robin Murphy <robin.murphy@arm.com>
To: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Cc: Besar Wicaksono <bwicaksono@nvidia.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Raag Jadav <raag.jadav@intel.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf: arm_cspmu: Don't touch interrupt registers if no interrupt was assigned
Date: Tue, 9 Apr 2024 13:53:41 +0100 [thread overview]
Message-ID: <726d6946-6fc8-4c53-86ad-385ab24fa4c7@arm.com> (raw)
In-Reply-To: <8fdfceb2-90b3-a1a9-fa88-a45ece30c0bb@os.amperecomputing.com>
On 09/04/2024 2:05 am, Ilkka Koskinen wrote:
>
> On Mon, 8 Apr 2024, Robin Murphy wrote:
>> On 2024-04-05 11:33 pm, Ilkka Koskinen wrote:
>>>
>>> On Fri, 5 Apr 2024, Robin Murphy wrote:
>>>> On 2024-03-07 7:31 pm, Ilkka Koskinen wrote:
>>>>> The driver enabled and disabled interrupts even if no interrupt was
>>>>> assigned to the device.
>>>>
>>>> Why's that a concern - if the interrupt isn't routed anywhere,
>>>> surely it makes no difference what happens at the source end?
>>>
>>> The issue is that we have two PMUs attached to the same interrupt line.
>>> Unfortunately, I just don't seem to find time to add support for
>>> shared interrupts to the cspmu driver. Meanwhile, I assigned the
>>> interrupt to one of the PMUs while the other one has zero in the APMT
>>> table.
>>
>> I suspected something like that ;)
>>
>>> Without the patch, I can trigger "ghost interrupt" in the latter PMU.
>>
>> An occasional spurious interrupt should be no big deal. If it ends up
>> as a screaming spurious interrupt because we never handle the overflow
>> condition on the "other" PMU, then what matters most is that we never
>> handle the overflow, thus the "other" PMU is still useless since you
>> can't assume the user is going to read it frequently enough to avoid
>> losing information and getting nonsense counts back. So this hack
>> really isn't a viable solution for anything.
>
> IIRC, what happens is that kernel will disable the interrupt eventually
> due to unhandled spurious interrupts making the "working" PMU also useless.
Indeed, but if having one inaccurate PMU is fine, having more than one
is no big deal either, right? The moral of the story is that hacking the
firmware to lie about the hardware is just not a great idea.
TBH it's always seemed a bit broken that we allow probing without an IRQ
but then have no accommodation for overflow if so. Fixing that would be
a good thing in itself, and would at least have the side-effect of
allowing your hack to work, however much I may disapprove of that :)
FWIW it is still lingering some way down my to-do list to factor out the
fiddly IRQ-sharing/migration code into at least a helper library (if not
further into perf core itself) before it gets copy-pasted much more, and
it occurs to me that I could then easily factor the IRQ-substitute timer
approach from e.g. arm-ccn into that as well... The more I think about
it the more I might just convince myself that I want it for the driver
I'm currently working on and justify bumping it up the list, let's see...
Cheers,
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:[~2024-04-09 12:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-07 19:31 [PATCH] perf: arm_cspmu: Don't touch interrupt registers if no interrupt was assigned Ilkka Koskinen
2024-04-04 20:35 ` Ilkka Koskinen
2024-04-05 10:33 ` Robin Murphy
2024-04-05 22:33 ` Ilkka Koskinen
2024-04-08 12:05 ` Robin Murphy
2024-04-09 1:05 ` Ilkka Koskinen
2024-04-09 12:53 ` Robin Murphy [this message]
2024-04-11 7:35 ` Ilkka Koskinen
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=726d6946-6fc8-4c53-86ad-385ab24fa4c7@arm.com \
--to=robin.murphy@arm.com \
--cc=bwicaksono@nvidia.com \
--cc=ilkka@os.amperecomputing.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=raag.jadav@intel.com \
--cc=suzuki.poulose@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