Re: [PATCH v6 1/1] MIPS: Fix idle VS timer enqueue
From: Marco Crivellari
Date: Fri Mar 21 2025 - 12:16:48 EST
Hi Maciej,
On Fri, Mar 21, 2025 at 12:53 PM Maciej W. Rozycki <macro@xxxxxxxxxxx> wrote:
> This instruction sequence still suffers from the coprocessor move delay
> hazard. How many times do I need to request to get it fixed (counting
> three so far)?
Can I have more details about this?
I can see it is the same code present also in local_irq_enable()
(arch_local_irq_enable()),
and from the manual I've seen:
"The Spacing column shown in Table 2.6 and Table 2.7 indicates the
number of unrelated instructions (such as NOPs or SSNOPs) that,
prior to the capabilities of Release 2, would need to be placed
between the producer and consumer of the hazard in order to ensure
that the effects of the first instruction are seen by the second instruction."
The "Spacing column" value is 3, indeed.
"With the hazard elimination instructions available in Release 2, the
preferred method to eliminate hazards is to place one of the
instructions listed in Table 2.8 between the producer and consumer of the
hazard. Execution hazards can be removed by using the EHB [...]"
What am I missing?
Thanks in advance
--
Marco Crivellari
L3 Support Engineer, Technology & Product
marco.crivellari@xxxxxxxx