All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <lvivier@redhat.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Greg Kurz" <groug@kaod.org>, qemu-ppc <qemu-ppc@nongnu.org>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Thiago Jung Bauermann" <bauerman@linux.ibm.com>,
	"David Gibson" <david@gibson.dropbear.id.au>
Subject: Re: [PULL 00/30] ppc-for-5.2 queue 20200904
Date: Mon, 7 Sep 2020 18:29:07 +0200	[thread overview]
Message-ID: <f93673f9-3e83-ef5f-9628-819b25908e43@redhat.com> (raw)
In-Reply-To: <20200907165132.683d2880.cohuck@redhat.com>

On 07/09/2020 16:51, Cornelia Huck wrote:
> On Mon, 7 Sep 2020 16:31:24 +0200
> Laurent Vivier <lvivier@redhat.com> wrote:
> 
>> On 07/09/2020 16:05, Philippe Mathieu-Daudé wrote:
>>> Hi Thiago,
>>>
>>> On 9/7/20 3:29 PM, Laurent Vivier wrote:  
>>>> On 07/09/2020 04:38, David Gibson wrote:  
>>>>> On Sun, Sep 06, 2020 at 04:20:10PM +0100, Peter Maydell wrote:  
> 
>>>>>> The 'check-tcg' tests for the linux-user static build also
>>>>>> failed on an s390x test:
>>>>>>
>>>>>>   CHECK   debian-s390x-cross
>>>>>>   BUILD   s390x-linux-user guest-tests with docker qemu/debian-s390x-cross
>>>>>>   RUN     tests for s390x
>>>>>>   TEST    threadcount on s390x
>>>>>> Unhandled trap: 0x10003  
>>>>
>>>> This is EXCP_HALTED (include/exec/cpu-all.h)
>>>>
>>>> The message error comes from cpu_loop() in linux-user/s390x/cpu_loop.c.
>>>>
>>>> The trap can only come from accel/tcg/cpu-exec.c
>>>>
>>>>     679 int cpu_exec(CPUState *cpu)
>>>>     680 {
>>>> ...
>>>>     688     if (cpu_handle_halt(cpu)) {
>>>>     689         return EXCP_HALTED;
>>>>     690     }
>>>>
>>>> and
>>>>
>>>>     428 static inline bool cpu_handle_halt(CPUState *cpu)
>>>>     429 {
>>>>     430     if (cpu->halted) {
>>>> ...
>>>>     441         if (!cpu_has_work(cpu)) {
>>>>     442             return true;
>>>>     443         }
>>>>
>>>> and
>>>>
>>>>      58 static bool s390_cpu_has_work(CPUState *cs)
>>>>      59 {
>>>>      60     S390CPU *cpu = S390_CPU(cs);
>>>>      61
>>>>      62     /* STOPPED cpus can never wake up */
>>>>      63     if (s390_cpu_get_state(cpu) != S390_CPU_STATE_LOAD &&
>>>>      64         s390_cpu_get_state(cpu) != S390_CPU_STATE_OPERATING) {
>>>>      65         return false;
>>>>      66     }
>>>>      67
>>>>      68     if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) {
>>>>      69         return false;
>>>>      70     }
>>>>      71
>>>>      72     return s390_cpu_has_int(cpu);
>>>>      73 }
>>>>
>>>> and in target/s390x/cpu.h:
>>>>
>>>>     772 #ifndef CONFIG_USER_ONLY
>>>>     773 unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu);
>>>>     774 #else
>>>>     775 static inline unsigned int s390_cpu_set_state(uint8_t cpu_state,
>>>> S390CPU *cpu)
>>>>     776 {
>>>>     777     return 0;
>>>>     778 }
>>>>     779 #endif /* CONFIG_USER_ONLY */
>>>>     780 static inline uint8_t s390_cpu_get_state(S390CPU *cpu)
>>>>     781 {
>>>>     782     return cpu->env.cpu_state;
>>>>     783 }
>>>>
>>>> As cpu_state is never set, perhaps in case of linux-user it should
>>>> always return S390_CPU_STATE_OPERATING?
> 
> Possibly, we should not have any state handling for linux-user.
> 

I did that, but now 390_cpu_has_work() is false because
CPU_INTERRUPT_HARD is not set in cs->interrupt_request.

I think we should not enter in cpu_loop() with halted set to 1.

Before the patch of this series, s390_cpu_reset() is called twice, and
on the second call, halted is already 0.

With start_powered_off set to true in initfn, on the first reset
"halted" is 0 and on the second it is 1 (because it has been copied from
start_powered_off) and so cpu_loop() starts with halted set to 1 and fails.

Thanks,
Laurent







  reply	other threads:[~2020-09-07 16:30 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-04  3:46 [PULL 00/30] ppc-for-5.2 queue 20200904 David Gibson
2020-09-04  3:46 ` [PULL 01/30] adb: Correct class size on TYPE_ADB_DEVICE David Gibson
2020-09-04  3:46 ` [PULL 02/30] ppc/pnv: Fix TypeInfo of PnvLpcController abstract class David Gibson
2020-09-04  3:46 ` [PULL 03/30] spapr: Remove unnecessary DRC type-checker macros David Gibson
2020-09-04  3:46 ` [PULL 04/30] spapr/xive: Add a 'hv-prio' property to represent the KVM escalation priority David Gibson
2020-09-04  3:46 ` [PULL 05/30] ppc/pnv: Add a HIOMAP erase command David Gibson
2020-09-04  3:46 ` [PULL 06/30] spapr_vscsi: do not allow device hotplug David Gibson
2020-09-04  3:46 ` [PULL 07/30] spapr/xive: Use the xics flag to check for XIVE-only IRQ backends David Gibson
2020-09-04  3:46 ` [PULL 08/30] spapr/xive: Modify kvm_cpu_is_enabled() interface David Gibson
2020-09-04  3:46 ` [PULL 09/30] spapr/xive: Use kvmppc_xive_source_reset() in post_load David Gibson
2020-09-04  3:46 ` [PULL 10/30] spapr/xive: Allocate IPIs independently from the other sources David Gibson
2020-09-04  3:47 ` [PULL 11/30] spapr/xive: Allocate vCPU IPIs from the vCPU contexts David Gibson
2020-09-04  3:47 ` [PULL 12/30] ppc/spapr_nvdimm: use g_autofree in spapr_nvdimm_validate_opts() David Gibson
2020-09-04  3:47 ` [PULL 13/30] spapr, spapr_nvdimm: fold NVDIMM validation in the same place David Gibson
2020-09-04  3:47 ` [PULL 14/30] ppc/spapr_nvdimm: do not enable support with 'nvdimm=off' David Gibson
2020-09-04  3:47 ` [PULL 15/30] target/arm: Move start-powered-off property to generic CPUState David Gibson
2020-09-04  3:47 ` [PULL 16/30] target/arm: Move setting of CPU halted state to generic code David Gibson
2020-09-04  3:47 ` [PULL 17/30] ppc/spapr: Use start-powered-off CPUState property David Gibson
2020-09-04  3:47 ` [PULL 18/30] ppc/e500: " David Gibson
2020-09-04  3:47 ` [PULL 19/30] mips/cps: " David Gibson
2020-09-04  3:47 ` [PULL 20/30] sparc/sun4m: Don't set cs->halted = 0 in main_cpu_reset() David Gibson
2020-09-04  3:47 ` [PULL 21/30] sparc/sun4m: Use start-powered-off CPUState property David Gibson
2020-09-04  3:47 ` [PULL 22/30] target/s390x: " David Gibson
2020-09-04  3:47 ` [PULL 23/30] hw/ppc/ppc4xx_pci: Use ARRAY_SIZE() instead of magic value David Gibson
2020-09-04  3:47 ` [PULL 24/30] hw/ppc/ppc4xx_pci: Replace pointless warning by assert() David Gibson
2020-09-04  3:47 ` [PULL 25/30] ppc: introducing spapr_numa.c NUMA code helper David Gibson
2020-09-04  3:47 ` [PULL 26/30] ppc/spapr_nvdimm: turn spapr_dt_nvdimm() static David Gibson
2020-09-04  3:47 ` [PULL 27/30] spapr: introduce SpaprMachineState::numa_assoc_array David Gibson
2020-09-04  3:47 ` [PULL 28/30] spapr, spapr_numa: handle vcpu ibm,associativity David Gibson
2020-09-04  3:47 ` [PULL 29/30] spapr, spapr_numa: move lookup-arrays handling to spapr_numa.c David Gibson
2020-09-04  3:47 ` [PULL 30/30] spapr_numa: move NVLink2 associativity " David Gibson
2020-09-06 15:20 ` [PULL 00/30] ppc-for-5.2 queue 20200904 Peter Maydell
2020-09-07  2:38   ` David Gibson
2020-09-07 13:29     ` Laurent Vivier
2020-09-07 14:05       ` Philippe Mathieu-Daudé
2020-09-07 14:31         ` Laurent Vivier
2020-09-07 14:51           ` Cornelia Huck
2020-09-07 16:29             ` Laurent Vivier [this message]
2020-09-07 17:26               ` Laurent Vivier
2020-09-07 19:46                 ` Philippe Mathieu-Daudé
2020-09-07 23:50                   ` David Gibson
2020-09-08  6:11                   ` Cornelia Huck
2020-09-08 15:12                     ` Thiago Jung Bauermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f93673f9-3e83-ef5f-9628-819b25908e43@redhat.com \
    --to=lvivier@redhat.com \
    --cc=bauerman@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=groug@kaod.org \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.