RFR: 8187227: __m68k_cmpxchg() is not being used correctly (original) (raw)
David Holmes david.holmes at oracle.com
Sun Nov 19 12:25:02 UTC 2017
- Previous message: RFR: 8187227: __m68k_cmpxchg() is not being used correctly
- Next message: RFR: 8187227: __m68k_cmpxchg() is not being used correctly
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 18/11/2017 10:15 PM, John Paul Adrian Glaubitz wrote:
On 11/18/2017 12:46 PM, Andrew Haley wrote:
Without seeing how that wrapper actually works, it is hard to know whether what you are saying and your fix is correct. The description of the CAS at [1] doesn't help without knowing how it actually gets used.
I can't see the point of the loops. The loops are necessary because it's not guaranteed that the CAS instruction will succeed at first attempt. You basically have to keep trying until it succeeds. At least to my current knowledge.
But a CAS can fail. Only if it can fail spuriously (ie for a reason other than *dest!=expected) should a loop be needed.
The loops are already in the code, FWIW. I am just modifying the code because _the current code makes incorrect assumptions on how m68kcmpxchg() actually works.
True the loops do exist. But I for one can't make much sense out this code at present, so impossible to validate your changes. If the code is as broken as you suggest why don't you see massive failures during testing?
David
Adrian
- Previous message: RFR: 8187227: __m68k_cmpxchg() is not being used correctly
- Next message: RFR: 8187227: __m68k_cmpxchg() is not being used correctly
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]