All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	Peter Maydell <peter.maydell@linaro.org>,
	Thiago Jung Bauermann <bauerman@linux.ibm.com>
Cc: Greg Kurz <groug@kaod.org>,
	Daniel Henrique Barboza <danielhb413@gmail.com>,
	qemu-ppc <qemu-ppc@nongnu.org>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Cornelia Huck <cohuck@redhat.com>
Subject: Re: [PULL 00/30] ppc-for-5.2 queue 20200904
Date: Mon, 7 Sep 2020 16:05:20 +0200	[thread overview]
Message-ID: <7c287125-70b3-4330-fd5c-8e644e1c347d@redhat.com> (raw)
In-Reply-To: <675253df-b750-1a0a-5447-9dadef1accba@redhat.com>

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:
>>> On Fri, 4 Sep 2020 at 04:47, David Gibson <david@gibson.dropbear.id.au> wrote:
>>>>
>>>> The following changes since commit 67a7bfe560a1bba59efab085cb3430f45176d382:
>>>>
>>>>   Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2020-09-03' into staging (2020-09-03 16:58:25 +0100)
>>>>
>>>> are available in the Git repository at:
>>>>
>>>>   git://github.com/dgibson/qemu.git tags/ppc-for-5.2-20200904
>>>>
>>>> for you to fetch changes up to b172606ecf29a140073f7787251a9d70ecb53b6e:
>>>>
>>>>   spapr_numa: move NVLink2 associativity handling to spapr_numa.c (2020-09-04 13:40:09 +1000)
>>>>
>>>> ----------------------------------------------------------------
>>>> ppc patch queue 2020-09-04
>>>>
>>>> Next pull request for qemu-5.2.  The biggest thing here is the
>>>> generalization of ARM's start-powered-off machine property to all
>>>> targets.  This can fix a number of odd little edge cases where KVM
>>>> could run vcpus before they were properly initialized.  This does
>>>> include changes to a number of files that aren't normally in my
>>>> purview.  There are suitable Acked-by lines and Peter requested this
>>>> come in via my tree, since the most pressing requirement for it is in
>>>> pseries machines with the POWER secure virtual machine facility.
>>>>
>>>> In addition we have:
>>>>  * The start of Daniel Barboza's rework and clean up of pseries
>>>>    machine NUMA handling
>>>>  * Correction to behaviour of the nvdimm= generic machine property on
>>>>    pseries
>>>>  * An optimization to the allocation of XIVE interrupts on KVM
>>>>  * Some fixes for confused behaviour with kernel_irqchip when both
>>>>    XICS and XIVE are in play
>>>>  * Add HIOMAP comamnd to pnv flash
>>>>  * Properly advertise the fact that spapr_vscsi doesn't handle
>>>>    hotplugged disks
>>>>  * Some assorted minor enhancements
>>>
>>> Hi -- this fails to build for Windows:
>>>
>>> ../../hw/ppc/spapr_numa.c: In function 'spapr_numa_fixup_cpu_dt':
>>> ../../hw/ppc/spapr_numa.c:77:5: error: unknown type name 'uint'
>>>      uint vcpu_assoc_size = NUMA_ASSOC_SIZE + 1;
>>>      ^
>>
>> Huh, that's weird.  My testing run was less thorough than I'd usually
>> do, because so many tests were broken on the master branch, but I was
>> pretty sure I did do successful mingw builds.
>>
>>> That should probably be using one of the standard C types.
>>
>> Done.
>>
>>> 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?
> 
> Something like:
> 
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index 035427521cec..8a8628fcdcc6 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -771,16 +771,20 @@ int s390_assign_subch_ioeventfd(EventNotifier
> *notifier, uint32_t sch_id,
>                                  int vq, bool assign);
>  #ifndef CONFIG_USER_ONLY
>  unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu);
> +static inline uint8_t s390_cpu_get_state(S390CPU *cpu)
> +{
> +    return cpu->env.cpu_state;
> +}
>  #else
>  static inline unsigned int s390_cpu_set_state(uint8_t cpu_state,
> S390CPU *cpu)
>  {
>      return 0;
>  }
> -#endif /* CONFIG_USER_ONLY */
>  static inline uint8_t s390_cpu_get_state(S390CPU *cpu)
>  {
> -    return cpu->env.cpu_state;
> +    return S390_CPU_STATE_OPERATING;
>  }
> +#endif /* CONFIG_USER_ONLY */

Since this is the effect of your "target/s390x: Use start-powered-off
CPUState property" patch, can you have a look please?

> 
> Thanks,
> Laurent
> 
>>> PSW=mask 0000000180000000 addr 00000000010004f0 cc 00
>>> R00=0000000000000000 R01=0000000000000000 R02=0000000000000000
>>> R03=0000000000000000
>>> R04=0000000000000000 R05=0000000000000000 R06=0000000000000000
>>> R07=0000000000000000
>>> R08=0000000000000000 R09=0000000000000000 R10=0000000000000000
>>> R11=0000000000000000
>>> R12=0000000000000000 R13=0000000000000000 R14=0000000000000000
>>> R15=00000040008006c0
>>>
>>> ../Makefile.target:153: recipe for target 'run-threadcount' failed
>>> make[2]: *** [run-threadcount] Error 1
>>
>> Bother.  I did see that failure on Travis, but assumed it was a false
>> positive because there were so many failures on master there.
>>
> 
> 



  reply	other threads:[~2020-09-07 14:06 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é [this message]
2020-09-07 14:31         ` Laurent Vivier
2020-09-07 14:51           ` Cornelia Huck
2020-09-07 16:29             ` Laurent Vivier
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=7c287125-70b3-4330-fd5c-8e644e1c347d@redhat.com \
    --to=philmd@redhat.com \
    --cc=bauerman@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=danielhb413@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=groug@kaod.org \
    --cc=lvivier@redhat.com \
    --cc=peter.maydell@linaro.org \
    --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.