On 2017-05-23 08:54, Richard Henderson wrote: > On 05/23/2017 03:48 AM, Aurelien Jarno wrote: > > On 2017-05-22 20:02, Richard Henderson wrote: > > > Previously, helper_ex would construct the insn and then implement > > > the insn via direct calls other helpers. This was sufficient to > > > boot Linux but that is all. > > > > > > It is easy enough to go the whole nine yards by stashing state for > > > EXECUTE within the cpu, and then relying on a new TB to be created > > > that properly and completely interprets the insn. > > > > > > Signed-off-by: Richard Henderson <r...@twiddle.net> > > > --- > > > target/s390x/cpu.h | 4 +- > > > target/s390x/helper.h | 2 +- > > > target/s390x/insn-data.def | 4 +- > > > target/s390x/machine.c | 19 +++++++ > > > target/s390x/mem_helper.c | 136 > > > +++++++++++---------------------------------- > > > target/s390x/translate.c | 124 > > > +++++++++++++++++++++++++---------------- > > > 6 files changed, 133 insertions(+), 156 deletions(-) > > > > This looks good on the principle, and finally removes a big hack. That > > said it prevent my test system to boot. I haven't investigated why yet. > > Hmm. I've not got a complete environment -- merely booting a kernel up to > the point it fails to find a rootfs. Which did find several problems with > my first attempts at this, but wouldn't have exercised paging. I'll try > again to get a full install working... > > I wonder if I needed to adjust s390_cpu_handle_mmu_fault (and its myriad > subroutines) to handle setting ILEN correctly. > > There might be a simpler fix though. Currently I advance the PC and > remember the ilen of the EX(RL). Maybe better to *not* advance the PC so as > to have the original EX(RL) right there for ILEN_LATER and ILEN_LATER_INC to > operate on. > > Something like this, as a delta patch.
Unfortunately it doesn't work. So far I have no real idea what could be the root cause of the issue. I have just determined that up to the crash, only a very limited set of instructions are being executed. They are the 4 bytes long versions of MVC, CLC, XC, TR. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net