refs:<div><br><div>* <a href="https://en.wikipedia.org/wiki/Load-link/store-conditional">https://en.wikipedia.org/wiki/Load-link/store-conditional</a></div><div>* v3.0B section 4.6.2 p868</div><div>* <a href="https://github.com/riscv/riscv-isa-manual/blob/master/src/a.tex#L320">https://github.com/riscv/riscv-isa-manual/blob/master/src/a.tex#L320</a></div><div><br></div><div>paul, hi,</div><div><br></div><div>the discussion on wednesday covered a lot of ground, i didn&#39;t manage to successfully communicate my point about LR AX.  i thought it best to follow up because after reviewing lwarx etc the specification ambiguity i expected might be there looks like it is.</div><div><br></div><div>what appears to be missing is how many instructions are permitted between a LR and an SC. without this information it imposes a significantly higher hardware implementation cost and complexity than might at first appear.</div><div><br></div><div>for example if we set a limit of only e.g. 2 cache lines worth of instructions where LR SC sequences will succeed without going into large repeats, but IBM&#39;s POWER9 permits far more than that, all code written for current GNU/Linux OSes (glibc6, linux kernel) will fail as the RESERVE=1 will expire.</div></div><div><br></div><div>that&#39;s if there is even a limit expected (there had better be one! :) )</div><div><br></div><div>point being, if there is a limit where RESERVE=1 will expire if an SC does not occur within a certain number of instructions, it needs to be part of the spec.</div><div><br></div><div>too high a number starts to create huge costs for TLBs etc. because you can&#39;t keep the reservation live without having to request multiple TLB lookups actually inside the LR SC loop.</div><div><br></div><div>and many other things i don&#39;t entirely know enough about, yet.</div><div><br></div><div>l.</div><div><br></div><br><br>-- <br>---<br>crowd-funded eco-conscious hardware: <a href="https://www.crowdsupply.com/eoma68" target="_blank">https://www.crowdsupply.com/eoma68</a><br><br>