[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 02/31] target/s390x: Implement EXECUTE via new T
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 02/31] target/s390x: Implement EXECUTE via new TranslationBlock |
Date: |
Tue, 23 May 2017 19:28:58 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
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 <address@hidden>
> > > ---
> > > 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
address@hidden http://www.aurel32.net
[Qemu-devel] [PATCH 04/31] target/s390x: Use unwind data for helper_xc, Richard Henderson, 2017/05/22
[Qemu-devel] [PATCH 05/31] target/s390x: Use unwind data for helper_oc, Richard Henderson, 2017/05/22