All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/8] ppc: compute cpu_dt_id in the machine code
@ 2016-06-29 20:50 Greg Kurz
  2016-06-29 20:50 ` [Qemu-devel] [PATCH 1/8] spapr: drop reference on child object during core realization Greg Kurz
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: Greg Kurz @ 2016-06-29 20:50 UTC (permalink / raw)
  To: David Gibson
  Cc: Peter Crosthwaite, Benjamin Herrenschmidt, Alexander Graf,
	qemu-devel, qemu-ppc, Cedric Le Goater, bharata, Scott Wood,
	Paolo Bonzini, Richard Henderson

This series is a sequel to the discussion on a patch from Ben's powernv
patchset:

        http://patchwork.ozlabs.org/patch/597153/

Indeed, since the DT is a machine abstraction, it should definitely sit
under hw/ppc and not in the target code:
- all machine types are forced to share the same numbering logic
- user mode does not need that => there are #ifdef everywhere

So this series moves all the current numbering logic to the machine
code. It also provides the ability for each machine type to provide
its own numbering logic instead of using the legacy one.

The current code computes cpu_dt_id out of cpu_index, both getting
their values during cpu realization.

The idea is to compute cpu_index at cpu initialization time, so
that the machine can compute cpu_dt_id before realizing the cpu.

I had to fix some issues and to do some more structural changes to have
this working, hence the RFC tag. The first 4 patches are bug fixes. The
next ones do what the subject says.

This patchset is based on David's ppc-for-2.7 branch. I could test it plays
nicely with Bharata's CPU hotplug code for sPAPR.

There are some more places where the cpu_dt_id logic is open coded in the
sPAPR code. It may be worth to consolidate that in follow-up patches. Also
maybe other machine types may provide their own numbering logic if the
current one is not appropriate.

Please comment.

---

Greg Kurz (8):
      spapr: drop reference on child object during core realization
      spapr: do proper error propagation in spapr_cpu_core_realize_child()
      spapr: drop duplicate variable in spapr_core_release()
      exec: add missing conditional compilation
      exec: move cpu_index init and exit to their own function
      ppc: move cpu index setup to instance_init/finalize
      cpu: add initialization helper without realize
      hw/ppc: move DT cpu id generation to machine code


 exec.c                      |   72 +++++++++++++++++++++++++++++++++----------
 hw/ppc/e500.c               |    2 +
 hw/ppc/mac_newworld.c       |    2 +
 hw/ppc/mac_oldworld.c       |    2 +
 hw/ppc/ppc.c                |   60 ++++++++++++++++++++++++++++++++++++
 hw/ppc/ppc440_bamboo.c      |    2 +
 hw/ppc/ppc4xx_devs.c        |    2 +
 hw/ppc/prep.c               |    2 +
 hw/ppc/spapr.c              |    2 +
 hw/ppc/spapr_cpu_core.c     |   23 ++++++++++----
 hw/ppc/virtex_ml507.c       |    2 +
 include/exec/exec-all.h     |    2 +
 include/hw/ppc/ppc.h        |    4 ++
 include/qom/cpu.h           |   14 ++++++++
 qom/cpu.c                   |   19 ++++++++++-
 target-ppc/translate_init.c |   42 ++++++-------------------
 16 files changed, 185 insertions(+), 67 deletions(-)

--
Greg

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-06-30  9:43 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-29 20:50 [Qemu-devel] [PATCH 0/8] ppc: compute cpu_dt_id in the machine code Greg Kurz
2016-06-29 20:50 ` [Qemu-devel] [PATCH 1/8] spapr: drop reference on child object during core realization Greg Kurz
2016-06-30  4:27   ` Bharata B Rao
2016-06-29 20:50 ` [Qemu-devel] [PATCH 2/8] spapr: do proper error propagation in spapr_cpu_core_realize_child() Greg Kurz
2016-06-30  4:28   ` Bharata B Rao
2016-06-29 20:50 ` [Qemu-devel] [PATCH 3/8] spapr: drop duplicate variable in spapr_core_release() Greg Kurz
2016-06-30  4:29   ` Bharata B Rao
2016-06-29 20:50 ` [Qemu-devel] [PATCH 4/8] exec: add missing conditional compilation Greg Kurz
2016-06-29 20:51 ` [Qemu-devel] [PATCH 5/8] exec: move cpu_index init and exit to their own function Greg Kurz
2016-06-29 20:51 ` [Qemu-devel] [PATCH 6/8] ppc: move cpu index setup to instance_init/finalize Greg Kurz
2016-06-29 20:51 ` [Qemu-devel] [PATCH 7/8] cpu: add initialization helper without realize Greg Kurz
2016-06-29 20:51 ` [Qemu-devel] [PATCH 8/8] hw/ppc: move DT cpu id generation to machine code Greg Kurz
2016-06-29 21:07 ` [Qemu-devel] [Qemu-ppc] [PATCH 0/8] ppc: compute cpu_dt_id in the " Greg Kurz
2016-06-30  5:07 ` [Qemu-devel] " David Gibson
2016-06-30  7:34 ` Igor Mammedov
2016-06-30  9:43   ` Greg Kurz

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.