From: Zhao Liu <zhao1.liu@intel.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Eduardo Habkost" <eduardo@habkost.net>,
"Xiaojuan Yang" <yangxiaojuan@loongson.cn>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-ppc@nongnu.org,
"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
"David Hildenbrand" <david@redhat.com>,
qemu-s390x@nongnu.org,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Song Gao" <gaosong@loongson.cn>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Stafford Horne" <shorne@gmail.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Max Filippov" <jcmvbkbc@gmail.com>,
"Artyom Tarasenko" <atar4qemu@gmail.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Cédric Le Goater" <clg@kaod.org>,
"Laurent Vivier" <lvivier@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
qemu-riscv@nongnu.org, "Palmer Dabbelt" <palmer@dabbelt.com>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Bastian Koppelmann" <kbastian@mail.uni-paderborn.de>,
"Bin Meng" <bin.meng@windriver.com>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Weiwei Li" <liweiwei@iscas.ac.cn>,
"Daniel Henrique Barboza" <dbarboza@ventanamicro.com>,
"Nicholas Piggin" <npiggin@gmail.com>,
qemu-arm@nongnu.org, "Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"Marek Vasut" <marex@denx.de>,
"Laurent Vivier" <laurent@vivier.eu>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Brian Cain" <bcain@quicinc.com>,
"Thomas Huth" <thuth@redhat.com>,
"Chris Wulff" <crwulff@gmail.com>,
"Sergio Lopez" <slp@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Michael Rolnik" <mrolnik@gmail.com>
Subject: Re: [PATCH v2 00/16] target: Make 'cpu-qom.h' really target agnostic
Date: Fri, 20 Oct 2023 13:50:57 +0800 [thread overview]
Message-ID: <ZTIVQfTmkK05fln9@intel.com> (raw)
In-Reply-To: <20231013140116.255-1-philmd@linaro.org>
Hi Philippe,
On Fri, Oct 13, 2023 at 04:00:59PM +0200, Philippe Mathieu-Daudé wrote:
> Date: Fri, 13 Oct 2023 16:00:59 +0200
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 00/16] target: Make 'cpu-qom.h' really target agnostic
> X-Mailer: git-send-email 2.41.0
>
> Since v1:
> - Added R-b tags
> - Addressed Richard comments
> - Postponed OBJECT_DECLARE_CPU_TYPE() changes
>
> A heterogeneous machine must be able to instantiate CPUs
> from different architectures.
Does this mean the different ISA cores in heterogeneous machine?
And is this case for TCG?
> In order to do that, the
> common hw/ code has to access to the QOM CPU definitions
> from various architecture.
About this kind of heterogeneous machine with multiple CPUs, is there
any initial configuration command line example?
I'm not sure how to configure this case...The main unsure thing is
whether the configuration is based on the granularity of the CPU
(by "-cpu") or the granularity of the core device (by "-device
xxx-core").
-Zhao
>
> Those QOM definitions are published in "target/foo/cpu-qom.h".
> All 'cpu-qom.h' must be target agnostic, so hw/ can include
> multiple of them in order to create a heterogeneous machine.
>
> This series strengthen all (except PPC...) target 'cpu-qom.h',
> making them target agnostic.
>
> For various targets it is just a matter of moving definitions
> where they belong (either 'cpu.h' or 'cpu-qom.h').
>
> For few (mips/riscv/sparc/x86) we have to remove the target
> specific definitions (which 'taint' the header as target specific).
>
> For mips/sparc/x86 this implies splitting the base target
> definition by making it explicit to the build type (32 or 64-bit).
>
> PPC is missing because CPU types are currently registered
> indistinctly, and whether a CPU is 32/64 bit can not be detected
> at build time (it is done in each cpu_class_init() handler,
> *after* the type is registered).
>
> Based-on: <20231010074952.79165-1-philmd@linaro.org>
> Introduce qtest_get_base_arch() / qtest_get_arch_bits()
>
> Philippe Mathieu-Daudé (16):
> target: Unify QOM style
> target: Mention 'cpu-qom.h' is target agnostic
> target/arm: Move internal declarations from 'cpu-qom.h' to 'cpu.h'
> target/ppc: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h'
> target/riscv: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h'
> target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h'
> target/hexagon: Declare QOM definitions in 'cpu-qom.h'
> target/loongarch: Declare QOM definitions in 'cpu-qom.h'
> target/nios2: Declare QOM definitions in 'cpu-qom.h'
> target/openrisc: Declare QOM definitions in 'cpu-qom.h'
> target/riscv: Move TYPE_RISCV_CPU_BASE definition to 'cpu.h'
> target: Move ArchCPUClass definition to 'cpu.h'
> target/i386: Declare CPU QOM types using DEFINE_TYPES() macro
> target/mips: Declare CPU QOM types using DEFINE_TYPES() macro
> target/ppc: Declare CPU QOM types using DEFINE_TYPES() macro
> target/sparc: Declare CPU QOM types using DEFINE_TYPES() macro
>
> target/alpha/cpu-qom.h | 21 ++-----------
> target/alpha/cpu.h | 17 ++++++++---
> target/arm/cpu-qom.h | 61 +------------------------------------
> target/arm/cpu.h | 55 +++++++++++++++++++++++++++++++--
> target/avr/cpu-qom.h | 20 ++----------
> target/avr/cpu.h | 18 ++++++++---
> target/cris/cpu-qom.h | 24 ++-------------
> target/cris/cpu.h | 20 +++++++++---
> target/hexagon/cpu-qom.h | 27 ++++++++++++++++
> target/hexagon/cpu.h | 20 ++----------
> target/hppa/cpu-qom.h | 20 +-----------
> target/hppa/cpu.h | 16 ++++++++--
> target/i386/cpu-qom.h | 42 ++-----------------------
> target/i386/cpu.h | 39 +++++++++++++++++++++---
> target/loongarch/cpu-qom.h | 23 ++++++++++++++
> target/loongarch/cpu.h | 14 +--------
> target/m68k/cpu-qom.h | 21 ++-----------
> target/m68k/cpu.h | 17 ++++++++---
> target/microblaze/cpu-qom.h | 20 +-----------
> target/microblaze/cpu.h | 15 +++++++--
> target/mips/cpu-qom.h | 23 ++------------
> target/mips/cpu.h | 21 ++++++++++---
> target/nios2/cpu-qom.h | 18 +++++++++++
> target/nios2/cpu.h | 11 +------
> target/openrisc/cpu-qom.h | 21 +++++++++++++
> target/openrisc/cpu.h | 14 +--------
> target/ppc/cpu-qom.h | 3 +-
> target/ppc/cpu.h | 4 +--
> target/riscv/cpu-qom.h | 26 ++--------------
> target/riscv/cpu.h | 24 +++++++++++++--
> target/rx/cpu-qom.h | 20 ++----------
> target/rx/cpu.h | 18 ++++++++---
> target/s390x/cpu-qom.h | 41 +++----------------------
> target/s390x/cpu.h | 34 ++++++++++++++++++---
> target/s390x/cpu_models.h | 8 ++---
> target/sh4/cpu-qom.h | 28 ++---------------
> target/sh4/cpu.h | 24 ++++++++++++---
> target/sparc/cpu-qom.h | 23 ++------------
> target/sparc/cpu.h | 22 +++++++++----
> target/tricore/cpu-qom.h | 15 +++------
> target/tricore/cpu.h | 10 +++---
> target/xtensa/cpu-qom.h | 26 ++--------------
> target/xtensa/cpu.h | 24 +++++++++++----
> target/i386/cpu.c | 50 ++++++++++++++----------------
> target/mips/cpu.c | 23 ++++++++------
> target/ppc/cpu_init.c | 52 ++++++++++++++-----------------
> target/sparc/cpu.c | 23 ++++++++------
> 47 files changed, 528 insertions(+), 588 deletions(-)
> create mode 100644 target/hexagon/cpu-qom.h
> create mode 100644 target/loongarch/cpu-qom.h
> create mode 100644 target/nios2/cpu-qom.h
> create mode 100644 target/openrisc/cpu-qom.h
>
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-10-20 5:40 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 14:00 [PATCH v2 00/16] target: Make 'cpu-qom.h' really target agnostic Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 01/16] target: Unify QOM style Philippe Mathieu-Daudé
2023-10-13 14:24 ` Richard Henderson
2023-10-20 5:56 ` Zhao Liu
2023-10-13 14:01 ` [PATCH v2 02/16] target: Mention 'cpu-qom.h' is target agnostic Philippe Mathieu-Daudé
2023-10-20 7:14 ` Zhao Liu
2023-11-06 7:17 ` Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 03/16] target/arm: Move internal declarations from 'cpu-qom.h' to 'cpu.h' Philippe Mathieu-Daudé
2023-10-13 14:27 ` Richard Henderson
2023-10-16 9:39 ` Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 04/16] target/ppc: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h' Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 05/16] target/riscv: " Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 06/16] target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h' Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 07/16] target/hexagon: Declare QOM definitions " Philippe Mathieu-Daudé
2023-10-13 14:28 ` Richard Henderson
2023-10-26 19:11 ` Brian Cain
2023-10-13 14:01 ` [PATCH v2 08/16] target/loongarch: " Philippe Mathieu-Daudé
2023-10-13 14:30 ` Richard Henderson
2023-10-13 14:01 ` [PATCH v2 09/16] target/nios2: " Philippe Mathieu-Daudé
2023-10-13 14:30 ` Richard Henderson
2023-10-13 14:01 ` [PATCH v2 10/16] target/openrisc: " Philippe Mathieu-Daudé
2023-10-13 14:31 ` Richard Henderson
2023-10-13 14:01 ` [PATCH v2 11/16] target/riscv: Move TYPE_RISCV_CPU_BASE definition to 'cpu.h' Philippe Mathieu-Daudé
2023-10-13 14:32 ` Richard Henderson
2023-10-13 14:01 ` [PATCH v2 12/16] target: Move ArchCPUClass " Philippe Mathieu-Daudé
2023-10-13 14:36 ` Richard Henderson
2023-10-20 8:03 ` Zhao Liu
2023-11-06 14:58 ` Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 13/16] target/i386: Declare CPU QOM types using DEFINE_TYPES() macro Philippe Mathieu-Daudé
2023-10-20 5:54 ` Zhao Liu
2023-10-13 14:01 ` [PATCH v2 14/16] target/mips: " Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 15/16] target/ppc: " Philippe Mathieu-Daudé
2023-10-13 14:01 ` [PATCH v2 16/16] target/sparc: " Philippe Mathieu-Daudé
2023-10-20 5:50 ` Zhao Liu [this message]
2023-10-20 11:30 ` [PATCH v2 00/16] target: Make 'cpu-qom.h' really target agnostic Philippe Mathieu-Daudé
2023-10-20 16:08 ` Zhao Liu
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=ZTIVQfTmkK05fln9@intel.com \
--to=zhao1.liu@intel.com \
--cc=aleksandar.rikalo@syrmia.com \
--cc=alistair.francis@wdc.com \
--cc=atar4qemu@gmail.com \
--cc=aurelien@aurel32.net \
--cc=bcain@quicinc.com \
--cc=bin.meng@windriver.com \
--cc=clg@kaod.org \
--cc=crwulff@gmail.com \
--cc=danielhb413@gmail.com \
--cc=david@redhat.com \
--cc=dbarboza@ventanamicro.com \
--cc=edgar.iglesias@gmail.com \
--cc=eduardo@habkost.net \
--cc=gaosong@loongson.cn \
--cc=iii@linux.ibm.com \
--cc=jcmvbkbc@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=kbastian@mail.uni-paderborn.de \
--cc=laurent@vivier.eu \
--cc=liweiwei@iscas.ac.cn \
--cc=lvivier@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=marex@denx.de \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mrolnik@gmail.com \
--cc=mst@redhat.com \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shorne@gmail.com \
--cc=slp@redhat.com \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=yangxiaojuan@loongson.cn \
--cc=ysato@users.sourceforge.jp \
--cc=zhiwei_liu@linux.alibaba.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).