qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] ppc64: disable gen_pause() for linux-user mode


From: David Gibson
Subject: Re: [Qemu-devel] [PATCH] ppc64: disable gen_pause() for linux-user mode
Date: Mon, 20 Jun 2016 10:22:46 +1000
User-agent: Mutt/1.6.1 (2016-04-27)

On Sun, Jun 19, 2016 at 09:19:24PM +0200, Laurent Vivier wrote:
> While trying to install a fedora container with
> "lxc-create -t fedora -- -I qemu-ppc64" the installation abort with
> the following error:
> 
> qemu: fatal: Unknown exception 0x65537. Aborting
> 
> NIP 0000004000927924   LR 00000040009e325c CTR 0000004000927480 XER 
> 0000000000000000 CPU#0
> MSR 9000000102806000 HID0 0000000000000000  HF 9000000002806000 iidx 3 didx 3
> TB 00248932 1069155773327487
> GPR00 00000040009e325c 00000040007ff800 0000004000aba098 0000000000000000
> GPR04 00000040007ff878 0000004000dcb588 0000004000dcb830 0000004000a7a098
> GPR08 0000000000000000 0000000000000000 00000040007ff878 0000004000927960
> GPR12 0000000022022448 0000004000e2aef0 0000000000000000 0000000000000000
> GPR16 0000000000000000 0000000000000000 0000000000000002 0000000000000001
> GPR20 0000000000000000 0000000000000000 0000000000000000 0000004000800699
> GPR24 0000004000e13320 0000000000000000 0000004000ac9ad8 0000004000ac9ae0
> GPR28 0000000000000001 00000000100210a0 0000000000000000 0000000000000038
> CR 22022442  [ E  E  -  E  E  G  G  E  ]             RES ffffffffffffffff
> FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPSCR 0000000000000000
> /usr/share/lxc/templates/lxc-fedora: line 487: 26661 Aborted                 
> (core dumped) chroot . yum -y --nogpgcheck --installroot /run/install install 
> python rpm yum
> 
> I've bisected until the commit:
> 
>     commit b68e60e6f0d2865e961a800fb8db96a7fc6494c4
>     Author: Benjamin Herrenschmidt <address@hidden>
>     Date:   Tue May 3 18:03:33 2016 +0200
> 
>         ppc: Get out of emulation on SMT "OR" ops
> 
>         Otherwise tight loops at smt_low for example, which OPAL does,
>         eat so much CPU that we can't boot a kernel anymore. With that,
>         I can boot 8 CPUs just fine with powernv.
> 
>         Signed-off-by: Benjamin Herrenschmidt <address@hidden>
>         Reviewed-by: David Gibson <address@hidden>
>         Signed-off-by: David Gibson <address@hidden>
> 
> We can fix that by preventing to send EXCP_HLT in the case of linux-user mode,
> as the main loop doesn't know how to manage it.

Applied to ppc-for-2.7

> 
> Signed-off-by: Laurent Vivier <address@hidden>
> ---
>  target-ppc/translate.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/target-ppc/translate.c b/target-ppc/translate.c
> index 30dc76a..07b7e64 100644
> --- a/target-ppc/translate.c
> +++ b/target-ppc/translate.c
> @@ -1393,7 +1393,7 @@ GEN_LOGICAL2(nand, tcg_gen_nand_tl, 0x0E, PPC_INTEGER);
>  /* nor & nor. */
>  GEN_LOGICAL2(nor, tcg_gen_nor_tl, 0x03, PPC_INTEGER);
>  
> -#if defined(TARGET_PPC64)
> +#if defined(TARGET_PPC64) && !defined(CONFIG_USER_ONLY)
>  static void gen_pause(DisasContext *ctx)
>  {
>      TCGv_i32 t0 = tcg_const_i32(0);
> @@ -1481,7 +1481,9 @@ static void gen_or(DisasContext *ctx)
>              /* Pause us out of TCG otherwise spin loops with smt_low
>               * eat too much CPU and the kernel hangs
>               */
> +#if !defined(CONFIG_USER_ONLY)
>              gen_pause(ctx);
> +#endif
>          }
>  #endif
>      }

-- 
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]