Re: [PATCH 4/4] ARCv2: entry: Reduce perf intr return path

From: Vineet Gupta
Date: Tue Nov 21 2017 - 18:26:49 EST


On 11/17/2017 03:42 PM, Vineet Gupta wrote:

What do you (on ARC) do about irq_work ?


So the reason I'm asking is that some architectures that don't have NMIs
call irq_work_run() at the very end of their perf-interrupt handler (ARM
does this for instance).

But on ARC, we don't call irq_work_run() in perf intr return path and that seem to imply it is broken - as in latency to service a perf induced preemption.

[snip...]

Although I'm sure it is, can you please explain how irq_work is relevant in
the context of this patch.

Since the perf interrupt (in general) cannot call a whole lot of things
for it needs to assume running from NMI context, it needs to defer
things to a more regular context. It does this with irq_work.

So given my understanding of this topic, ARC (or any non NMI based perf intr system) is potentially broken without irq_work_run() ?

I can follow up with a patch for ARC, or does this need to addressed for others too - say irq_exit_perf() or some such ?