qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc] [PATCH v3 0/2] 40p: fix PCI interrupt routin


From: David Gibson
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH v3 0/2] 40p: fix PCI interrupt routing
Date: Thu, 20 Sep 2018 11:35:45 +1000
User-agent: Mutt/1.10.1 (2018-07-13)

On Wed, Sep 19, 2018 at 04:47:36PM +0200, Roman Kapl wrote:
> Hi,
> 
> On 09/19/2018 08:57 AM, Mark Cave-Ayland wrote:
> > On 18/09/2018 22:12, Mark Cave-Ayland wrote:
> > 
> > > Roman, can you reproduce this locally at all? My setup is nothing
> > > special, just Debian Stretch on amd64.
> 
> Ok, so I am able to reproduce it with your image and --enable-debug, but I
> was not able to find the root cause, just narrow it.
> 
> It seems that the `dcbz` instruction is not emulated correctly (which may
> lead to some garbage in inittab?). However, if I manualy inline the
> `helper_dcbz_common` code into `helper dcbz`, it starts to work. I just
> literally copy it and add `int mmu_idx = env->dmmu_idx;` at the beginning.
> That could be related to the `--disable-debug` flag, since the compiler will
> inline the code when optimizations are enabled.

Ouch.  That almost sounds like a compiler bug - have you tried with
some different compiler versions?

> If you have any debugging ideas, they would be welcome. Maybe there are some
> helper call limitations? Anyway, I will look at it again tomorrow.
> 
> Apart from that, I've found some problems in my EPID patch, I will send a
> fix shortly. Namely the instructions are enabled outside of Booke206, one
> unrelated instruction had its opcode chcnaged by mistake and the slow path
> for dbczep is wrong. However, these problems are not related to the problem
> with your image.
> 
> Thanks, Roman Kapl
> 
> > 
> > I've just realised that because this bug is still dependent upon queued 
> > patches, it
> > would make sense for me to push a slightly modified version of David's 
> > ppc-for-3.1
> > branch to github to help reproduce the issue. Below are the instructions on 
> > how to
> > reproduce the bug locally:
> > 
> > 
> > 1) Grab the 40p test image from 
> > http://www.juneau-lug.org/zImage.initrd.sandalfoot
> > 
> > 2) Fetch my slightly-modified ppc-for-3.1 branch from
> > https://github.com/mcayland/qemu/tree/ppc-for-3.1-regression
> > 
> > 3) Build QEMU with --enable-debug:
> > 
> > ./configure --target-list=ppc-softmmu --enable-debug
> > make
> > 
> > 4) Boot the 40p test image:
> > 
> > ./ppc-softmmu/qemu-system-ppc -cdrom zImage.initrd.sandalfoot -boot d -M 40p
> > 
> > You will see that the test image fails at the end of boot with messages 
> > like this:
> > 
> > Bad inittab entry:
> > Bad inittab entry:
> > No more tasks for init -- sleeping forever
> > 
> > 5) Now remove the "target/ppc: add external PID support" patch from the 
> > above branch:
> > 
> > git checkout HEAD~1
> > make
> > 
> > 6) Boot the 40p test image again:
> > 
> > ./ppc-softmmu/qemu-system-ppc -cdrom zImage.initrd.sandalfoot -boot d -M 40p
> > 
> > You will see that the test image now boots successfully to the "Please 
> > press Enter to
> > activate this console" message.
> > 
> > 
> > ATB,
> > 
> > Mark.
> > 
> 

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]