On 08/22/2011 11:55 PM, Alexander Graf wrote:
> When I bumped into Jason on
Linuxcon, we tried out to run the e500 target
> on his Windriver build that used SPE and immediately ran into
emulation
> issues. Fortunately there weren't too many, so here are the
patches to get
> a guest using SPE instructions working just fine.
>
The patch set looks good to me. I tried it out this morning.
I have a patch that implements enough of the the dbcr0, dbsr, and
msr DE bit in order to single step, but I am seeing random fatal mmu
faults. Before we go down the route of implementing more pieces, I
am interested to know if you see the same behavior, or if you had
any ideas around how to further debug it.
Using just your patch series + the QEMU HEAD + the SPE enabled
rootfs + qemu NFS mounting the rootfs, here is the "litmus test" to
see if you experience the fatal mmu faults to user space.
ulimit -c unlimited
while [ 1 ] ; do
echo 3 > /proc/sys/vm/drop_caches
(echo quit ; sleep 2) | gdb /bin/ls || break
done
I find that this runs between 1-15 times and crashes with a core
file. Looking at the core file it is usually in a malloc or free
operation in the user space, and always in the page fault handler in
the kernel. This really amounts to running a medium sized app
through the startup, which does a whole bunch of malloc and free
because it maps in the elf debug info for /bin/ls , and gdb is not
really getting used for anything to ptrace.
Jason.