From: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
qemu-devel@nongnu.org, "Gavin Shan" <gshan@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Brian Cain" <bcain@quicinc.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Cc: "David Hildenbrand" <david@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Song Gao" <gaosong@loongson.cn>,
"Cédric Le Goater" <clg@kaod.org>,
"Laurent Vivier" <lvivier@redhat.com>,
"Bastian Koppelmann" <kbastian@mail.uni-paderborn.de>,
qemu-arm@nongnu.org, "Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Weiwei Li" <liweiwei@iscas.ac.cn>,
"Nicholas Piggin" <npiggin@gmail.com>,
qemu-riscv@nongnu.org, "Bin Meng" <bin.meng@windriver.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Marek Vasut" <marex@denx.de>,
"Peter Maydell" <peter.maydell@linaro.org>,
qemu-ppc@nongnu.org, "Michael Rolnik" <mrolnik@gmail.com>,
"Max Filippov" <jcmvbkbc@gmail.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Laurent Vivier" <laurent@vivier.eu>,
"Stafford Horne" <shorne@gmail.com>,
"Chris Wulff" <crwulff@gmail.com>,
"Sergio Lopez" <slp@redhat.com>,
"Xiaojuan Yang" <yangxiaojuan@loongson.cn>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Artyom Tarasenko" <atar4qemu@gmail.com>,
"Daniel Henrique Barboza" <dbarboza@ventanamicro.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
qemu-s390x@nongnu.org
Subject: Re: [PATCH 04/18] target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h'
Date: Wed, 11 Oct 2023 14:12:41 +0800 [thread overview]
Message-ID: <c8bcb233-62a8-4ce3-a08d-1da49d896c86@linux.alibaba.com> (raw)
In-Reply-To: <f8b3cb2c-8e80-19e4-d59f-2ccacff0a413@linaro.org>
On 2023/10/11 11:21, Philippe Mathieu-Daudé wrote:
> Hi Zhiwei,
>
> On 11/10/23 04:51, LIU Zhiwei wrote:
>>
>> On 2023/10/10 17:28, Philippe Mathieu-Daudé wrote:
>>> Hegerogeneous code needs access to the FOO_CPU_TYPE_NAME()
>>> macro to resolve target CPU types.
>>
>> Hi Philippe,
>>
>> I don't understand why should we use FOO_CPU_TYPE_NAME macro to
>> resolve target CPU types? In my opinion, we should pass the
>> CPU typename from command line for heterogeneous case.
>>
>> Could you make it clearer how should we use FOO_CPU_TYPE_NAME macro
>> to resolve target CPU types in heterogeneous case?
>
> To be honest I start to feel a bit lost with the "cpu
> resolving type" design.
>
> We are not quite there yet to "create from command line"
> or "create from QMP", so I'm prototyping in plain C.
> One of my test is:
>
> #include "target/arm/cpu-qom.h"
> #include "target/hexagon/cpu-qom.h"
> ...
>
> static void
> my_machine3_init((MachineState *machine)
> {
> CPUState cpu[2];
> ...
>
> cpu[0] = CPU(object_new(ARM_CPU_TYPE_NAME("cortex-a72")));
> cpu[1] = CPU(object_new(HEXAGON_CPU_TYPE_NAME("v68")));
> ...
> }
>
> The machine code need access to the per-target
> FOO_CPU_TYPE_NAME() macros.
I see what you mean. It works if we will pass the cpu model instead of
cpu typename to the machine state(Not yet).
Acked-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
Zhiwei
> I'm not sure what each macro
> expands to is considered stable, so IIUC I can't inline and use:
>
> cpu[0] = CPU(object_new("cortex-a72-arm-cpu"));
> cpu[1] = CPU(object_new("v68"-hexagon-cpu));
>
> That said, maybe I'm mistaken.
>
> Kinda related discussion with Gavin/Igor:
> https://lore.kernel.org/qemu-devel/35653f53-a977-02ea-28f6-6fe85b1efd5a@redhat.com/
>
> (related to
> https://lore.kernel.org/qemu-devel/20230907003553.1636896-1-gshan@redhat.com/).
>
>>
>> Thanks,
>> Zhiwei
>>
>>> Move the declaration
>>> (along with the required FOO_CPU_TYPE_SUFFIX) to "cpu-qom.h".
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>> ---
>>> target/alpha/cpu-qom.h | 5 ++++-
>>> target/alpha/cpu.h | 2 --
>>> target/avr/cpu-qom.h | 5 ++++-
>>> target/avr/cpu.h | 2 --
>>> target/cris/cpu-qom.h | 5 ++++-
>>> target/cris/cpu.h | 2 --
>>> target/i386/cpu-qom.h | 3 +++
>>> target/i386/cpu.h | 2 --
>>> target/m68k/cpu-qom.h | 5 ++++-
>>> target/m68k/cpu.h | 2 --
>>> target/mips/cpu-qom.h | 3 +++
>>> target/mips/cpu.h | 2 --
>>> target/rx/cpu-qom.h | 5 ++++-
>>> target/rx/cpu.h | 2 --
>>> target/s390x/cpu-qom.h | 5 ++++-
>>> target/s390x/cpu.h | 2 --
>>> target/sh4/cpu-qom.h | 5 ++++-
>>> target/sh4/cpu.h | 2 --
>>> target/sparc/cpu-qom.h | 5 ++++-
>>> target/sparc/cpu.h | 2 --
>>> target/tricore/cpu-qom.h | 5 +++++
>>> target/tricore/cpu.h | 2 --
>>> target/xtensa/cpu-qom.h | 5 ++++-
>>> target/xtensa/cpu.h | 2 --
>>> 24 files changed, 47 insertions(+), 33 deletions(-)
>>>
>>> diff --git a/target/alpha/cpu-qom.h b/target/alpha/cpu-qom.h
>>> index 1f200724b6..d596d1b69f 100644
>>> --- a/target/alpha/cpu-qom.h
>>> +++ b/target/alpha/cpu-qom.h
>>> @@ -1,5 +1,5 @@
>>> /*
>>> - * QEMU Alpha CPU
>>> + * QEMU Alpha CPU QOM header (target agnostic)
>>> *
>>> * Copyright (c) 2012 SUSE LINUX Products GmbH
>>> *
>>> @@ -27,6 +27,9 @@
>>> OBJECT_DECLARE_CPU_TYPE(AlphaCPU, AlphaCPUClass, ALPHA_CPU)
>>> +#define ALPHA_CPU_TYPE_SUFFIX "-" TYPE_ALPHA_CPU
>>> +#define ALPHA_CPU_TYPE_NAME(model) model ALPHA_CPU_TYPE_SUFFIX
>>> +
>>> /**
>>> * AlphaCPUClass:
>>> * @parent_realize: The parent class' realize handler.
>>> diff --git a/target/alpha/cpu.h b/target/alpha/cpu.h
>>> index e2a467ec17..ba0d9e3468 100644
>>> --- a/target/alpha/cpu.h
>>> +++ b/target/alpha/cpu.h
>>> @@ -428,8 +428,6 @@ enum {
>>> void alpha_translate_init(void);
>>> -#define ALPHA_CPU_TYPE_SUFFIX "-" TYPE_ALPHA_CPU
>>> -#define ALPHA_CPU_TYPE_NAME(model) model ALPHA_CPU_TYPE_SUFFIX
>>> #define CPU_RESOLVING_TYPE TYPE_ALPHA_CPU
>>> void alpha_cpu_list(void);
> [...]
next prev parent reply other threads:[~2023-10-11 6:16 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-10 9:28 [PATCH 00/18] target: Make 'cpu-qom.h' really target agnostic Philippe Mathieu-Daudé
2023-10-10 9:28 ` [PATCH 01/18] target: Mention 'cpu-qom.h' is " Philippe Mathieu-Daudé
2023-10-13 3:55 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 02/18] target/ppc: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h' Philippe Mathieu-Daudé
2023-10-13 3:55 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 03/18] target/riscv: " Philippe Mathieu-Daudé
2023-10-10 11:36 ` LIU Zhiwei
2023-10-13 3:57 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 04/18] target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h' Philippe Mathieu-Daudé
2023-10-11 2:51 ` LIU Zhiwei
2023-10-11 3:21 ` Philippe Mathieu-Daudé
2023-10-11 6:12 ` LIU Zhiwei [this message]
2023-10-13 4:02 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 05/18] target/hexagon: Declare QOM definitions " Philippe Mathieu-Daudé
2023-10-13 4:06 ` Richard Henderson
2023-10-13 9:18 ` Philippe Mathieu-Daudé
2023-10-10 9:28 ` [PATCH 06/18] target/loongarch: " Philippe Mathieu-Daudé
2023-10-10 11:33 ` gaosong
2023-10-10 9:28 ` [PATCH 07/18] target/nios2: " Philippe Mathieu-Daudé
2023-10-10 9:28 ` [PATCH 08/18] target/openrisc: " Philippe Mathieu-Daudé
2023-10-10 9:28 ` [PATCH 09/18] target/i386: Inline target specific TARGET_DEFAULT_CPU_TYPE definition Philippe Mathieu-Daudé
2023-10-13 4:09 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 10/18] target/riscv: Inline target specific TYPE_RISCV_CPU_BASE definition Philippe Mathieu-Daudé
2023-10-10 11:33 ` LIU Zhiwei
2023-10-11 0:46 ` Alistair Francis
2023-10-13 4:13 ` Richard Henderson
2023-10-13 13:58 ` Philippe Mathieu-Daudé
2023-10-10 9:28 ` [PATCH 11/18] target/i386: Declare CPU QOM types using DEFINE_TYPES() macro Philippe Mathieu-Daudé
2023-10-13 4:17 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 12/18] target/mips: " Philippe Mathieu-Daudé
2023-10-13 4:18 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 13/18] target/ppc: " Philippe Mathieu-Daudé
2023-10-13 4:20 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 14/18] target/sparc: " Philippe Mathieu-Daudé
2023-10-13 4:21 ` Richard Henderson
2023-10-13 18:25 ` Mark Cave-Ayland
2023-10-10 9:28 ` [PATCH 15/18] cpus: Open code OBJECT_DECLARE_TYPE() in OBJECT_DECLARE_CPU_TYPE() Philippe Mathieu-Daudé
2023-10-13 4:27 ` Richard Henderson
2023-10-13 12:47 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 16/18] target/i386: Make X86_CPU common to new I386_CPU / X86_64_CPU types Philippe Mathieu-Daudé
2023-10-13 4:31 ` Richard Henderson
2023-10-10 9:28 ` [PATCH 17/18] target/mips: Make MIPS_CPU common to new MIPS32_CPU / MIPS64_CPU types Philippe Mathieu-Daudé
2023-10-13 4:34 ` Richard Henderson
2024-03-15 12:22 ` Philippe Mathieu-Daudé
2025-03-25 15:20 ` Philippe Mathieu-Daudé
2023-10-10 9:29 ` [PATCH 18/18] target/sparc: Make SPARC_CPU common to new SPARC32_CPU/SPARC64_CPU types Philippe Mathieu-Daudé
2023-10-13 18:28 ` Mark Cave-Ayland
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=c8bcb233-62a8-4ce3-a08d-1da49d896c86@linux.alibaba.com \
--to=zhiwei_liu@linux.alibaba.com \
--cc=aleksandar.rikalo@syrmia.com \
--cc=alex.bennee@linaro.org \
--cc=alistair.francis@wdc.com \
--cc=armbru@redhat.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=gshan@redhat.com \
--cc=iii@linux.ibm.com \
--cc=imammedo@redhat.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 \
/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).