qemu-devel
[Top][All Lists]
Advanced

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

Re: [RFC PATCH for 5.0] configure: disable MTTCG for MIPS guests


From: Philippe Mathieu-Daudé
Subject: Re: [RFC PATCH for 5.0] configure: disable MTTCG for MIPS guests
Date: Fri, 20 Mar 2020 14:59:44 +0100

On Fri, Mar 20, 2020 at 12:45 PM Alex Bennée <address@hidden> wrote:
>
> While debugging check-acceptance failures I found an instability in
> the mips64el test case. Briefly the test case:
>
>   retry.py -n 100 -c -- ./mips64el-softmmu/qemu-system-mips64el \
>     -display none -vga none -serial mon:stdio \
>     -machine malta -kernel ./vmlinux-4.7.0-rc1.I6400 \
>     -cpu I6400 -smp 8 -vga std \
>     -append "printk.time=0 clocksource=GIC console=tty0 console=ttyS0 
> panic=-1" \
>     --no-reboot
>
> Reports about a 9% failure rate:
>
>   Results summary:
>   0: 91 times (91.00%), avg time 5.547 (0.45 varience/0.67 deviation)
>   -6: 9 times (9.00%), avg time 3.394 (0.02 varience/0.13 deviation)
>   Ran command 100 times, 91 passes
>
> When re-run with "--accel tcg,thread=single" the instability goes
> away.

I confirm, in my notes I use this option with -smp with the following cpus:
- mips64dspr2
- I6400

>
>   Results summary:
>   0: 100 times (100.00%), avg time 17.318 (249.76 varience/15.80 deviation)
>   Ran command 100 times, 100 passes
>
> Which seems to indicate there is some aspect of the MIPS MTTCG fixes
> that has been missed. Ideally we would fix that but I'm afraid I don't
> have time to investigate and am not super familiar with the
> architecture anyway.
>
> I've disabled all the mips guests as I assume it's a fundamental
> synchronisation primitive that is broken but I haven't tested them all
> (there are a lot!).
>
> Signed-off-by: Alex Bennée <address@hidden>
> Cc: Aleksandar Markovic <address@hidden>
> Cc: Aurelien Jarno <address@hidden>
> Cc: Aleksandar Rikalo <address@hidden>
> Cc: Philippe Mathieu-Daudé <address@hidden>
> ---
>  configure | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/configure b/configure
> index 206d22c5153..002792d21dc 100755
> --- a/configure
> +++ b/configure
> @@ -7832,19 +7832,19 @@ case "$target_name" in
>      echo "TARGET_ABI32=y" >> $config_target_mak
>    ;;
>    mips|mipsel)
> -    mttcg="yes"
> +    mttcg="no"

I am not sure the 32-bit targets are affected.
Maybe we can keep it enabled here?

For code below for 5.0 (64-bit targets):
Acked-by: Philippe Mathieu-Daudé <address@hidden>

>      TARGET_ARCH=mips
>      echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
>    ;;
>    mipsn32|mipsn32el)
> -    mttcg="yes"
> +    mttcg="no"
>      TARGET_ARCH=mips64
>      TARGET_BASE_ARCH=mips
>      echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
>      echo "TARGET_ABI32=y" >> $config_target_mak
>    ;;
>    mips64|mips64el)
> -    mttcg="yes"
> +    mttcg="no"
>      TARGET_ARCH=mips64
>      TARGET_BASE_ARCH=mips
>      echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
> --
> 2.20.1
>



reply via email to

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