On Sat, 17 Mar 2018, Peter Maydell wrote:
On 17 March 2018 at 04:02, David Gibson <da...@gibson.dropbear.id.au> wrote:
On Fri, Mar 16, 2018 at 05:25:04PM +0000, Peter Maydell wrote:
Hi -- this looks like it provokes new runtime error warnings from the
clang sanitizer:
Hrm. What options do you need to trip these warnings? Just using
--cc=clang doesn't give them to me, and using --enable-sanitizers
gives my piles of unrelated warnings.
https://wiki.qemu.org/Testing#clang_UBSan documents the necessary
cflags.
TEST: tests/boot-serial-test... (pid=926)
/ppc/boot-serial/ppce500: OK
/ppc/boot-serial/prep: OK
/ppc/boot-serial/40p: OK
/ppc/boot-serial/g3beige: OK
/ppc/boot-serial/mac99: OK
/ppc/boot-serial/sam460ex:
/home/petmay01/linaro/qemu-for-merges/target/ppc/translate.c:2979:15:
runtime error: load of value 142, which is not a valid value for type
'bool'
OK
TEST: tests/boot-serial-test... (pid=1016)
/ppc64/boot-serial/ppce500: OK
/ppc64/boot-serial/prep: OK
/ppc64/boot-serial/40p: OK
/ppc64/boot-serial/mac99: OK
/ppc64/boot-serial/pseries: OK
/ppc64/boot-serial/powernv: OK
/ppc64/boot-serial/sam460ex:
/home/petmay01/linaro/qemu-for-merges/target/ppc/translate.c:2979:15:
runtime error: load of value 85, which is not a valid value for type
'bool'
OK
Looks like you're not initializing ctx->lazy_tlb_flush for all configs:
if (env->mmu_model == POWERPC_MMU_32B ||
env->mmu_model == POWERPC_MMU_601 ||
(env->mmu_model & POWERPC_MMU_64B))
ctx->lazy_tlb_flush = true;
should perhaps be
ctx->lazy_tlb_flush =
env->mmu_model == POWERPC_MMU_32B ||
env->mmu_model == POWERPC_MMU_601 ||
(env->mmu_model & POWERPC_MMU_64B);
?
Uh.. maybe.. except I don't see anything in the series that would be
likely to change that behaviour.
I imagine it's "tests/boot-serial: Test the sam460ex board" --
this code was previously not being exercised in 'make check',
and now it is.
I'm not sure what could cause this in case of sam460ex. It has PPC440
which has POWERPC_MMU_BOOKE but the ppce500 should also have that and a
similar u-boot and that does not produce this error. Is there maybe some
initialisation of some structure I've missed somewhere? But these
DisasContext structs seem to be internal to TCG so I'm not sure what could
be missing outside of TCG to avoid this. Could be that the different
u-boot version does something that triggers this while the one for ppce500
does not execute code that causes this warning during the test?
Regards,
BALATON Zoltan