qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] a69dc5: ppc: Remove deprecated ppcemb target


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] a69dc5: ppc: Remove deprecated ppcemb target
Date: Mon, 24 Sep 2018 10:12:21 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: a69dc537cc1a6d3c3cb35d30197ed45914a150c3
      
https://github.com/qemu/qemu/commit/a69dc537cc1a6d3c3cb35d30197ed45914a150c3
  Author: Thomas Huth <address@hidden>
  Date:   2018-08-28 (Tue, 28 Aug 2018)

  Changed paths:
    M configure
    M cpus.c
    R default-configs/ppcemb-softmmu.mak
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/sam460ex.c
    M hw/ppc/virtex_ml507.c
    M include/exec/poison.h
    M qapi/common.json
    M qemu-deprecated.texi
    M target/ppc/cpu-qom.h
    M target/ppc/cpu.h
    M target/ppc/kvm.c
    M target/ppc/mmu_helper.c
    M target/ppc/translate_init.inc.c
    M tests/machine-none-test.c

  Log Message:
  -----------
  ppc: Remove deprecated ppcemb target

There is no known available OS for ppc around anymore that uses page
sizes below 4k, so it does not make much sense that we keep wasting
our time on building and testing the ppcemb-softmmu target. It has
been deprecated since two releases, and nobody complained, so let's
remove this now.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: eceba3477e7fa9b2c0a711a60edbdb7bfa8e4dcd
      
https://github.com/qemu/qemu/commit/eceba3477e7fa9b2c0a711a60edbdb7bfa8e4dcd
  Author: Emilio G. Cota <address@hidden>
  Date:   2018-08-28 (Tue, 28 Aug 2018)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: fix leak of rev array

Introduced in 04d595b300 ("spapr: do not use CPU_FOREACH_REVERSE",
2018-08-23)

Fixes: CID1395181
Reported-by: Peter Maydell <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bc9b1f10f29dd7e717e6b5a050cbe5fbe8537200
      
https://github.com/qemu/qemu/commit/bc9b1f10f29dd7e717e6b5a050cbe5fbe8537200
  Author: Greg Kurz <address@hidden>
  Date:   2018-08-28 (Tue, 28 Aug 2018)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: fix potential NULL pointer dereference

Commit 2c88b098e76fd added a call to SPAPR_MACHINE_GET_CLASS(spapr) in
spapr_phb_realize() before we check spapr isn't NULL. This causes QEMU
to crash when starting a non-pseries machine with a sPAPR PHB.

This could be fixed by setting the smc variable after the null check,
but it seems more explicit to use a ternary operator to skip the call
to SPAPR_MACHINE_GET_CLASS() if spapr is NULL, since spapr_phb_realize()
will return immediately in this case.

This was reported by Coverity (CID 1395170 and 1395183).

Fixes: 2c88b098e76fde0c7fcc0476dd3f80ce58409505
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 9b164a466767ccc3bd9ac2c6f16e4f0bb39e258a
      
https://github.com/qemu/qemu/commit/9b164a466767ccc3bd9ac2c6f16e4f0bb39e258a
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/ide/macio.c
    M hw/ppc/mac.h
    M include/hw/misc/macio/macio.h

  Log Message:
  -----------
  macio: move MACIOIDEState type declarations to macio.h

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bf31c56f096ae11367c6ba19a47387d008791996
      
https://github.com/qemu/qemu/commit/bf31c56f096ae11367c6ba19a47387d008791996
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/misc/macio/macio.c
    M include/hw/misc/macio/macio.h

  Log Message:
  -----------
  macio: add macio bus to help with fw path generation

As the in-built IDE controller is attached to the macio bus then we should also
model this the same in QEMU to aid fw path generation.

Note that all existing macio devices are moved onto the new macio bus so that
the qdev tree accurately reflects the real hardware.

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 5c8e3d17eda655ee7644a41cc0df646c7280ab2f
      
https://github.com/qemu/qemu/commit/5c8e3d17eda655ee7644a41cc0df646c7280ab2f
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/ide/macio.c
    M hw/misc/macio/macio.c
    M include/hw/misc/macio/macio.h

  Log Message:
  -----------
  macio: add addr property to macio IDE object

This contains the offset of the IDE controller within the macio address space
and is required to allow the address to be included within the fw path.

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: ac43eb2e1397e897660384fef24f633fcdb3255d
      
https://github.com/qemu/qemu/commit/ac43eb2e1397e897660384fef24f633fcdb3255d
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/pci-host/grackle.c
    M hw/ppc/mac_oldworld.c

  Log Message:
  -----------
  grackle: set device fw_name and address for correct fw path generation

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: bbcc635fcdf3050b08ec67726e2f5e9d206e876d
      
https://github.com/qemu/qemu/commit/bbcc635fcdf3050b08ec67726e2f5e9d206e876d
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/ppc/mac_oldworld.c

  Log Message:
  -----------
  mac_oldworld: implement custom FWPathProvider

This enables the correct generation of bootdevice fw paths for in-built IDE
and virtio-pci-blk devices suitable for OpenBIOS.

Note we also set the MachineClass ignore_boot_device_suffixes property to true
since an additional disk node should not be added except for virtio devices.

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 03756c840e6e50f37c66a8c388f31cd59c5fdeb4
      
https://github.com/qemu/qemu/commit/03756c840e6e50f37c66a8c388f31cd59c5fdeb4
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/pci-host/uninorth.c
    M hw/ppc/mac_newworld.c
    M include/hw/pci-host/uninorth.h

  Log Message:
  -----------
  uninorth: add ofw-addr property to allow correct fw path generation

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 5d19be6c705ab827313dd76ec09fc6e1d6771bc8
      
https://github.com/qemu/qemu/commit/5d19be6c705ab827313dd76ec09fc6e1d6771bc8
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/ppc/mac_newworld.c

  Log Message:
  -----------
  mac_newworld: implement custom FWPathProvider

This enables the correct generation of bootdevice fw paths for in-built IDE
and virtio-pci-blk devices suitable for OpenBIOS.

Note we also set the MachineClass ignore_boot_device_suffixes property to true
since an additional disk node should not be added except for virtio devices.

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: ecda255ebab14adc35731fe67f8cfa70624010e2
      
https://github.com/qemu/qemu/commit/ecda255ebab14adc35731fe67f8cfa70624010e2
  Author: Sam Bobroff <address@hidden>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: Correct reference count on spapr-cpu-core

spapr_init_cpus() currently creates spapr-cpu-core objects via
object_new() and setting their realized property to true. This leaves
their reference count at two, because object_new() adds an initial
reference and the realization attaches them to a default parent object
which also increments the reference count.

This causes a problem if one of these cores is hot unplugged: no
delete event is generated for it because it's reference count doesn't
reach zero when it is detached from it's parent.

Correct this by adding a call to object_unref() in spapr_init_cpus().

Signed-off-by: Sam Bobroff <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: b12a4efb76e81644e290d962d2eb6dbb0a5f214f
      
https://github.com/qemu/qemu/commit/b12a4efb76e81644e290d962d2eb6dbb0a5f214f
  Author: Jose Ricardo Ziviani <address@hidden>
  Date:   2018-09-03 (Mon, 03 Sep 2018)

  Changed paths:
    M hw/ppc/spapr_cpu_core.c

  Log Message:
  -----------
  Fix a deadlock case in the CPU hotplug flow

We need to set cs->halted to 1 before calling ppc_set_compat. The reason
is that ppc_set_compat kicks up the new thread created to manage the
hotplugged KVM virtual CPU and the code drives directly to KVM_RUN
ioctl. When cs->halted is 1, the code:

int kvm_cpu_exec(CPUState *cpu)
...
     if (kvm_arch_process_async_events(cpu)) {
   atomic_set(&cpu->exit_request, 0);
   return EXCP_HLT;
     }
...

returns before it reaches KVM_RUN, giving time to the main thread to
finish its job. Otherwise we can fall in a deadlock because the KVM
thread will issue the KVM_RUN ioctl while the main thread is setting up
KVM registers. Depending on how these jobs are scheduled we'll end up
freezing QEMU.

The following output shows kvm_vcpu_ioctl sleeping because it cannot get
the mutex and never will.
PS: kvm_vcpu_ioctl was triggered kvm_set_one_reg - compat_pvr.

STATE: TASK_UNINTERRUPTIBLE|TASK_WAKEKILL

PID: 61564  TASK: c000003e981e0780  CPU: 48  COMMAND: "qemu-system-ppc"
 #0 [c000003e982679a0] __schedule at c000000000b10a44
 #1 [c000003e98267a60] schedule at c000000000b113a8
 #2 [c000003e98267a90] schedule_preempt_disabled at c000000000b11910
 #3 [c000003e98267ab0] __mutex_lock at c000000000b132ec
 #4 [c000003e98267bc0] kvm_vcpu_ioctl at c00800000ea03140 [kvm]
 #5 [c000003e98267d20] do_vfs_ioctl at c000000000407d30
 #6 [c000003e98267dc0] ksys_ioctl at c000000000408674
 #7 [c000003e98267e10] sys_ioctl at c0000000004086f8
 #8 [c000003e98267e30] system_call at c00000000000b488

crash> struct -x kvm.vcpus 0xc000003da0000000
vcpus = {0xc000003db4880000, 0xc000003d52b80000, 0xc0000039e9c80000, 
0xc000003d0e200000, 0xc000003d58280000, 0x0, 0x0, ...}

crash> struct -x kvm_vcpu.mutex.owner 0xc000003d58280000
  mutex.owner = {
    counter = 0xc000003a23a5c881 <- flag 1: waiters
  },

crash> bt 0xc000003a23a5c880
PID: 61579  TASK: c000003a23a5c880  CPU: 9   COMMAND: "CPU 4/KVM"
(active)

crash> struct -x kvm_vcpu.mutex.wait_list 0xc000003d58280000
  mutex.wait_list = {
    next = 0xc000003e98267b10,
    prev = 0xc000003e98267b10
  },

crash> struct -x mutex_waiter.task 0xc000003e98267b10
  task = 0xc000003e981e0780

The following command-line was used to reproduce the problem (note: gdb
and trace can change the results).

 $ qemu-ppc/build/ppc64-softmmu/qemu-system-ppc64 -cpu host \
     -enable-kvm -m 4096 \
     -smp 4,maxcpus=8,sockets=1,cores=2,threads=4 \
     -display none -nographic \
     -drive file=disk1.qcow2,format=qcow2
 ...
 (qemu) device_add host-spapr-cpu-core,core-id=4
[no interaction is possible after it, only SIGKILL to take the terminal
back]

Signed-off-by: Jose Ricardo Ziviani <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: a84f71793aab5d06b5798e78e1cee82cc3e4b3e2
      
https://github.com/qemu/qemu/commit/a84f71793aab5d06b5798e78e1cee82cc3e4b3e2
  Author: Nikunj A Dadhania <address@hidden>
  Date:   2018-09-05 (Wed, 05 Sep 2018)

  Changed paths:
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_rtas.c
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h

  Log Message:
  -----------
  target/ppc/kvm: set vcpu as online/offline

Set the newly added register(KVM_REG_PPC_ONLINE) to indicate if the vcpu is
online(1) or offline(0)

KVM will use this information to set the RWMR register, which controls the PURR
and SPURR accumulation.

CC: address@hidden
Signed-off-by: Nikunj A Dadhania <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf
      
https://github.com/qemu/qemu/commit/be0c46d464c7c6b601adcd21fe9d2dd054a6a2cf
  Author: Sandipan Das <address@hidden>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  target-ppc: Extend HWCAP2 bits for ISA 3.0

This adds the HWCAP2 bit to detect if a linux user process is
running on an ISA 3.0 compliant cpu like POWER9. This can be
verified using a simple test program that prints the value in
the auxiliary vector for AT_HWCAP2 as shown below.

Before:
  $ qemu-ppc64le -cpu power8 test
  0x8c000000

  $ qemu-ppc64le -cpu power9 test
  0x8c000000

After:
  $ qemu-ppc64le -cpu power8 test
  0x8c000000

  $ qemu-ppc64le -cpu power9 test
  0x8c800000

Signed-off-by: Sandipan Das <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 9c36281bc59071b286dfc2b90fd865bd876597c1
      
https://github.com/qemu/qemu/commit/9c36281bc59071b286dfc2b90fd865bd876597c1
  Author: Peter Maydell <address@hidden>
  Date:   2018-09-24 (Mon, 24 Sep 2018)

  Changed paths:
    M configure
    M cpus.c
    R default-configs/ppcemb-softmmu.mak
    M hw/ide/macio.c
    M hw/misc/macio/macio.c
    M hw/pci-host/grackle.c
    M hw/pci-host/uninorth.c
    M hw/ppc/mac.h
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/sam460ex.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_rtas.c
    M hw/ppc/virtex_ml507.c
    M include/exec/poison.h
    M include/hw/misc/macio/macio.h
    M include/hw/pci-host/uninorth.h
    M linux-user/elfload.c
    M qapi/common.json
    M qemu-deprecated.texi
    M target/ppc/cpu-qom.h
    M target/ppc/cpu.h
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h
    M target/ppc/mmu_helper.c
    M target/ppc/translate_init.inc.c
    M tests/machine-none-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.1-20180907' into 
staging

ppc patch queue 2018-09-07

Here's another pull request for qemu-3.1.  No real theme here, just an
assortment of various fixes.  Probably the most notable thing is the
removal of the ppcemb target which has been deprecated for some time
now.

# gpg: Signature made Fri 07 Sep 2018 08:30:02 BST
# gpg:                using RSA key 6C38CACA20D9B392
# gpg: Good signature from "David Gibson <address@hidden>"
# gpg:                 aka "David Gibson (Red Hat) <address@hidden>"
# gpg:                 aka "David Gibson (ozlabs.org) <address@hidden>"
# gpg:                 aka "David Gibson (kernel.org) <address@hidden>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-3.1-20180907:
  target-ppc: Extend HWCAP2 bits for ISA 3.0
  target/ppc/kvm: set vcpu as online/offline
  Fix a deadlock case in the CPU hotplug flow
  spapr: Correct reference count on spapr-cpu-core
  mac_newworld: implement custom FWPathProvider
  uninorth: add ofw-addr property to allow correct fw path generation
  mac_oldworld: implement custom FWPathProvider
  grackle: set device fw_name and address for correct fw path generation
  macio: add addr property to macio IDE object
  macio: add macio bus to help with fw path generation
  macio: move MACIOIDEState type declarations to macio.h
  spapr_pci: fix potential NULL pointer dereference
  spapr: fix leak of rev array
  ppc: Remove deprecated ppcemb target

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/ee4402eae1e2...9c36281bc590
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

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