[UNVERIFIED SENDER] Re: RFC: AArch64: Implementing spin pauses with ISB

Astigeevich, Evgeny eastig at amazon.co.uk
Tue Aug 17 17:13:13 UTC 2021


Hi Andrew,

> I guess that any instruction which caused a significant stall would reduce contention,
> but it'd take some experiments to confirm that.

There are not many candidates for this: x-form of DIV up to 20 clocks, FSQRT up to 17 clocks. A sequence of them might work. ISB replaces such a sequence.
ISB has a nice feature of flushing the pipeline which in theory means a delay without using ALU.

> Evgeny, did anyone try waiting on the monitor location with a WFE?

I am not aware of anyone tried WFE. IMHO WFE might be too complicated. It needs wakeup events.
Armv8.7-A has WFE/WFI with timeouts. See https://static.linaro.org/connect/lvc20/presentations/LVC20-214-0.pdf  slide 10. They might be worth to try when WFET/WFIT appear in hardware.

Thanks,
Evgeny

On 17/08/2021, 09:25, "hotspot-dev on behalf of Andrew Haley" <hotspot-dev-retn at openjdk.java.net on behalf of aph-open at littlepinkcloud.com> wrote:

    CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



    On 8/16/21 11:39 PM, Stuart Monteith wrote:

    >       This is interesting, and thank you for bringing it up for discussion here. The ISB instruction wasn't intended to be
    > used for that purpose, so while you can measure a benefit for now, there is no guarantee that it would continue to be
    > beneficial in the future. I hate to suggest adding more flags, but we ought to consider adding one to disable the ISB
    > instruction in the spins. The counter argument is of course that we'd update the implementation as new cores come out.

    Indeed. It all sounds a bit like witchcraft to me. I guess that any instruction
    which caused a significant stall would reduce contention, but it'd take some
    experiments to confirm that.

    Evgeny, did anyone try waiting on the monitor location with a WFE? That'd at
    least be using an instruction as intended, and would certainly reduce contention,
    but WFE might be too drastic for a brief spin lock.

    --
    Andrew Haley  (he/him)
    Java Platform Lead Engineer
    Red Hat UK Ltd. <https://www.redhat.com>
    https://keybase.io/andrewhaley
    EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671




Amazon Development Centre (London) Ltd. Registered in England and Wales with registration number 04543232 with its registered office at 1 Principal Place, Worship Street, London EC2A 2FA, United Kingdom.




More information about the hotspot-dev mailing list