On 8/27/20 12:17 PM, Edgar E. Iglesias wrote: > On Tue, Aug 25, 2020 at 01:59:35PM -0700, Richard Henderson wrote: >> If the last insn on a page is imm, or a branch with delay slot, >> then end a tb early if this has not begun the tb. If it has >> begun the tb, then we can allow the tb to span two pages as if >> the imm plus its consumer, or branch plus delay, or imm plus >> branch plus delay, are a single insn. >> >> If the insn in the delay slot faults, then the exception handler >> will have reset the PC to the beginning of this sequence anyway, >> via the stored D_FLAG and BIMM_FLAG bits. >> >> Disable all of this when single-stepping. > > > Hi Richard, > > We've got a Linux boot that fails after applying this patch. > It goes from always working to only working like 1 out of 3 times. > It fails deep in user-space so I don't have a good log for it.
I think I've found it: do_rti, do_rtb, do_rte are acting as normal jumps. They need to set DISAS_UPDATE so that they return to the main loop to re-evaluate interrupts. I'll come back to this after we deal with the other 76 patches. r~