On 30.09.19 18:15, Richard Henderson wrote: > On 9/30/19 8:42 AM, David Hildenbrand wrote: >>> Of course, but it's no different with this case than any other. If the >>> interrupt has already been handled, then we will simply restart the next TB >>> as >>> per normal. >> Yeah, I was mostly concerned that "the next TB" will be "the next >> instruction" and not "the original instruction again". > > Ah, well, that's easy. The next TB will start from psw.addr, and when we > cpu_loop_exit_restore(), psw.addr will be set to the current instruction. > > This is exactly the same as when we raise a PGM_ADDRESSING exception which > needs to be restarted after the kernel swaps in the page. >
Now that I think about it, this makes perfect sense :) So it's mostly checking if there is an exception (like you said) and then doing a cpu_loop_exit_restore() (if I'm not wrong, but I'll have to look at the details). -- Thanks, David / dhildenb