qemu-ppc
[Top][All Lists]
Advanced

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

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


From: Roman Kapl
Subject: Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 0/2] 40p: fix PCI interrupt routing
Date: Wed, 19 Sep 2018 16:47:36 +0200

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.

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.




reply via email to

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