mbox series

[v2,0/8] ppc: cpu_model handling cleanups

Message ID 1504099475-241036-1-git-send-email-imammedo@redhat.com
Headers show
Series ppc: cpu_model handling cleanups | expand

Message

Igor Mammedov Aug. 30, 2017, 1:24 p.m. UTC
Changelog since v1:
  - normalize all cpu model names to lower-case
  - check that all cpu model string is consumed
    before going to PVR lookup path
  - add a new optional patch to remove unused junk
     '[PATCH v2 8/8] ppc: remove non implemented cpu models'
  - pull in dependency patch from
      https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg03364.html
      'ppc: replace cpu_ppc_init() with cpu_generic_init()'
    so this series won't depend unnecessarily on another series

While removing cpu_init() tree-wide, I've stumbled uppon
PPC way of parsing cpu_model which looked way too complex
compared to other targets.

So here goes cleanups that instead of current inconsistent
way of dealing with cpu models
 - mix of case-(in)sensetive lookups and cpu model names
 - aliases pointing to another aliases
normalize cpu model names to upper-case and make aliases
point to cpu moldel names. These changes allow to simplify
cpu model handling quite a bit and make it look/behave
a bit more in line with other targets.
 
Patches are not must have for cpu_init() removal but make
it a little bit easier without need to deal with way of
conversion of cpu model to cpu type, so pls consider
merging it early once 2.11 merge window is open if
patches make any sense.


repo for testing:
  https://github.com/imammedo/qemu.git ppc_cpu_model_cleanups_V2

CC: David Gibson <david@gibson.dropbear.id.au>
CC: Alexander Graf <agraf@suse.de>
CC: qemu-ppc@nongnu.org

Igor Mammedov (8):
  ppc: replace cpu_ppc_init() with cpu_generic_init()
  ppc: use macros to make cpu type name from string literal
  ppc: make cpu_model translation to type consistent
  ppc: make cpu alias point only to real cpu models
  ppc: replace inter-function cyclic dependency/recurssion with 2 simple
    lookups
  ppc: simplify cpu model lookup by PVR
  ppc: drop caching ObjectClass from PowerPCCPUAlias
  ppc: remove non implemented cpu models

 target/ppc/cpu-models.h     |    3 +-
 target/ppc/cpu.h            |    6 +-
 target/ppc/kvm_ppc.h        |    2 +-
 hw/ppc/e500.c               |    3 +-
 hw/ppc/mac_newworld.c       |    3 +-
 hw/ppc/mac_oldworld.c       |    3 +-
 hw/ppc/ppc440_bamboo.c      |    2 +-
 hw/ppc/ppc4xx_devs.c        |    2 +-
 hw/ppc/prep.c               |    5 +-
 hw/ppc/spapr_cpu_core.c     |   24 +-
 hw/ppc/virtex_ml507.c       |    2 +-
 target/ppc/cpu-models.c     | 1023 ++++++++++++-------------------------------
 target/ppc/kvm.c            |    5 +-
 target/ppc/translate_init.c |  105 ++---
 14 files changed, 344 insertions(+), 844 deletions(-)

Comments

David Gibson Sept. 4, 2017, 4:29 a.m. UTC | #1
On Wed, Aug 30, 2017 at 03:24:27PM +0200, Igor Mammedov wrote:
> 
> Changelog since v1:
>   - normalize all cpu model names to lower-case
>   - check that all cpu model string is consumed
>     before going to PVR lookup path
>   - add a new optional patch to remove unused junk
>      '[PATCH v2 8/8] ppc: remove non implemented cpu models'
>   - pull in dependency patch from
>       https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg03364.html
>       'ppc: replace cpu_ppc_init() with cpu_generic_init()'
>     so this series won't depend unnecessarily on another series
> 
> While removing cpu_init() tree-wide, I've stumbled uppon
> PPC way of parsing cpu_model which looked way too complex
> compared to other targets.
> 
> So here goes cleanups that instead of current inconsistent
> way of dealing with cpu models
>  - mix of case-(in)sensetive lookups and cpu model names
>  - aliases pointing to another aliases
> normalize cpu model names to upper-case and make aliases
> point to cpu moldel names. These changes allow to simplify
> cpu model handling quite a bit and make it look/behave
> a bit more in line with other targets.
>  
> Patches are not must have for cpu_init() removal but make
> it a little bit easier without need to deal with way of
> conversion of cpu model to cpu type, so pls consider
> merging it early once 2.11 merge window is open if
> patches make any sense.

Patches 1..7 applied to ppc-for-2.11.  Still reading the thread of
comments on patch 8.

> 
> 
> repo for testing:
>   https://github.com/imammedo/qemu.git ppc_cpu_model_cleanups_V2
> 
> CC: David Gibson <david@gibson.dropbear.id.au>
> CC: Alexander Graf <agraf@suse.de>
> CC: qemu-ppc@nongnu.org
> 
> Igor Mammedov (8):
>   ppc: replace cpu_ppc_init() with cpu_generic_init()
>   ppc: use macros to make cpu type name from string literal
>   ppc: make cpu_model translation to type consistent
>   ppc: make cpu alias point only to real cpu models
>   ppc: replace inter-function cyclic dependency/recurssion with 2 simple
>     lookups
>   ppc: simplify cpu model lookup by PVR
>   ppc: drop caching ObjectClass from PowerPCCPUAlias
>   ppc: remove non implemented cpu models
> 
>  target/ppc/cpu-models.h     |    3 +-
>  target/ppc/cpu.h            |    6 +-
>  target/ppc/kvm_ppc.h        |    2 +-
>  hw/ppc/e500.c               |    3 +-
>  hw/ppc/mac_newworld.c       |    3 +-
>  hw/ppc/mac_oldworld.c       |    3 +-
>  hw/ppc/ppc440_bamboo.c      |    2 +-
>  hw/ppc/ppc4xx_devs.c        |    2 +-
>  hw/ppc/prep.c               |    5 +-
>  hw/ppc/spapr_cpu_core.c     |   24 +-
>  hw/ppc/virtex_ml507.c       |    2 +-
>  target/ppc/cpu-models.c     | 1023 ++++++++++++-------------------------------
>  target/ppc/kvm.c            |    5 +-
>  target/ppc/translate_init.c |  105 ++---
>  14 files changed, 344 insertions(+), 844 deletions(-)
>