From: Eduardo Habkost <ehabkost@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: "Alistair Francis" <alistair.francis@xilinx.com>,
"Marcel Apfelbaum" <marcel@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v1 3/5] xlnx-zcu102: Specify the valid CPUs
Date: Wed, 4 Oct 2017 13:34:34 -0300 [thread overview]
Message-ID: <20171004163434.GN4760@localhost.localdomain> (raw)
In-Reply-To: <20171004150816.41ffc161@nial.brq.redhat.com>
On Wed, Oct 04, 2017 at 03:08:16PM +0200, Igor Mammedov wrote:
> On Wed, 4 Oct 2017 09:28:51 -0300
> Eduardo Habkost <ehabkost@redhat.com> wrote:
>
> > On Wed, Oct 04, 2017 at 01:12:32PM +0200, Igor Mammedov wrote:
> > > On Tue, 3 Oct 2017 14:41:17 -0700
> > > Alistair Francis <alistair.francis@xilinx.com> wrote:
> > >
> > > > On Tue, Oct 3, 2017 at 1:36 PM, Eduardo Habkost <ehabkost@redhat.com> wrote:
> > > > > On Tue, Oct 03, 2017 at 01:05:13PM -0700, Alistair Francis wrote:
> > > > >> List all possible valid CPU options.
> > > > >>
> > > > >> Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
> > > > >> ---
> > > > >>
> > > > >> hw/arm/xlnx-zcu102.c | 10 ++++++++++
> > > > >> hw/arm/xlnx-zynqmp.c | 16 +++++++++-------
> > > > >> include/hw/arm/xlnx-zynqmp.h | 1 +
> > > > >> 3 files changed, 20 insertions(+), 7 deletions(-)
> > > > >>
> > > > >> diff --git a/hw/arm/xlnx-zcu102.c b/hw/arm/xlnx-zcu102.c
> > > > >> index 519a16ed98..039649e522 100644
> > > > >> --- a/hw/arm/xlnx-zcu102.c
> > > > >> +++ b/hw/arm/xlnx-zcu102.c
> > > > >> @@ -98,6 +98,8 @@ static void xlnx_zynqmp_init(XlnxZCU102 *s, MachineState *machine)
> > > > >> object_property_add_child(OBJECT(machine), "soc", OBJECT(&s->soc),
> > > > >> &error_abort);
> > > > >>
> > > > >> + object_property_set_str(OBJECT(&s->soc), machine->cpu_type, "cpu-type",
> > > > >> + &error_fatal);
> > > > >
> > > > > Do you have plans to support other CPU types to xlnx_zynqmp in
> > > > > the future? If not, I wouldn't bother adding the cpu-type
> > > > > property and the extra boilerplate code if it's always going to
> > > > > be set to cortex-a53.
> > > >
> > > > No, it'll always be A53.
> > > >
> > > > I did think of that, but I also wanted to use the new option! I also
> > > > think there is an advantage in sanely handling users '-cpu' option,
> > > > before now we just ignored it, so I think it still does give a
> > > > benefit. That'll be especially important on the Xilinx tree (sometimes
> > > > people use our machines with a different CPU to 'benchmark' or test
> > > > other CPUs with our CoSimulation setup). So I think it does make sense
> > > > to keep in.
> > > if cpu isn't user settable, one could just outright die if cpu_type
> > > is not NULL and say that user's CLI is wrong.
> > > (i.e. don't give users illusion that they allowed to use '-cpu')
> >
> > Isn't it exactly what this patch does, by setting:
> > mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a53");
> > mc->valid_cpu_types = xlnx_zynqmp_valid_cpus;
> > ?
> >
> > Except that "-cpu cortex-a53" won't die, which is a good thing.
> allowing "-cpu cortex-a53" here, would allow to use feature parsing
> which weren't allowed or were ignored before if user supplied '-cpu'.
> so I'd more strict and refuse any -cpu and break CLI that tries to use it
> if board has non configurable cpu type. It would be easier to relax
> restriction later if necessary.
>
> using validate_cpus here just to have users for the new code,
> doesn't seem like valid justification and at that it makes board
> code more complex where it's not necessary and build in cpu type
> works just fine.
It's up to the board maintainer to decide what's the best option.
Both features are independent from each other and can be
implemented by machine core.
In either case, the valid_cpu_types feature will be still very
useful for boards like pxa270 and sa1110, which support -cpu but
only with specific families of CPU types (grep for
"strncmp(cpu_type").
>
> wrt centralized way to refuse -cpu if board doesn't support it,
> (which is not really related to this series) following could be done:
>
> when cpu_model removal is completely done I plan to replace
> vl.c
> cpu_parse_cpu_model(machine_class->default_cpu_type, cpu_model)
> with
> cpu_parse_cpu_model(DEFAULT_TARGET_CPU_TYPE, cpu_model)
>
> so that we could drop temporary guard
>
> if (machine_class->default_cpu_type) {
This sounds good to me, even if we don't reject -cpu on any
board.
>
> with that it would be possible to tell from machine_run_board_init()
> that board doesn't provide cpu but user provided '-cpu'
> so we would be able to:
> if ((machine_class->default_cpu_type == NULL) &&
> (machine->cpu_type != NULL))
> error_fatal("machine doesn't support -cpu option");
I won't complain too much if a board maintainer really wants to
make the board reject -cpu completely, but it's up to them.
Personally, I'd prefer to have all boards setting
default_cpu_type even if they support only one CPU model, so
clients don't need a special case for boards that don't support
-cpu.
--
Eduardo
next prev parent reply other threads:[~2017-10-04 16:34 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-03 20:05 [Qemu-devel] [PATCH v1 0/5] Add a valid_cpu_types property Alistair Francis
2017-10-03 20:05 ` [Qemu-devel] [PATCH v1 1/5] machine: " Alistair Francis
2017-10-03 20:23 ` Eduardo Habkost
2017-10-03 20:26 ` Alistair Francis
2017-10-03 20:33 ` Eduardo Habkost
2017-10-03 21:37 ` Alistair Francis
2017-10-03 20:05 ` [Qemu-devel] [PATCH v1 2/5] netduino2: Specify the valid CPUs Alistair Francis
2017-10-03 20:28 ` Eduardo Habkost
2017-10-03 22:05 ` Philippe Mathieu-Daudé
2017-10-04 11:02 ` Igor Mammedov
2017-10-04 21:43 ` Alistair Francis
2017-10-04 22:21 ` Philippe Mathieu-Daudé
2017-10-05 8:38 ` Igor Mammedov
2017-10-03 20:05 ` [Qemu-devel] [PATCH v1 4/5] xilinx_zynq: : " Alistair Francis
2017-10-03 22:07 ` Philippe Mathieu-Daudé
2017-10-03 20:05 ` [Qemu-devel] [PATCH v1 5/5] raspi: " Alistair Francis
2017-10-03 20:39 ` Eduardo Habkost
2017-10-03 21:36 ` Alistair Francis
2017-10-03 22:18 ` Philippe Mathieu-Daudé
2017-10-04 3:46 ` Eduardo Habkost
[not found] ` <2a93b997d0acd369f35d68981a23ba491443daf6.1507059418.git.alistair.francis@xilinx.com>
2017-10-03 20:36 ` [Qemu-devel] [PATCH v1 3/5] xlnx-zcu102: " Eduardo Habkost
2017-10-03 21:41 ` Alistair Francis
2017-10-04 3:33 ` Eduardo Habkost
2017-10-04 11:12 ` Igor Mammedov
2017-10-04 12:28 ` Eduardo Habkost
2017-10-04 13:08 ` Igor Mammedov
2017-10-04 16:34 ` Eduardo Habkost [this message]
2017-10-04 21:39 ` Alistair Francis
2017-10-05 9:04 ` Igor Mammedov
2017-10-05 17:09 ` Eduardo Habkost
2017-10-06 8:23 ` Igor Mammedov
2017-10-06 11:45 ` Eduardo Habkost
2017-10-06 22:06 ` Alistair Francis
2017-10-09 7:12 ` Igor Mammedov
2017-10-10 15:25 ` Eduardo Habkost
2017-10-12 23:59 ` Alistair Francis
2017-10-13 3:16 ` Eduardo Habkost
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=20171004163434.GN4760@localhost.localdomain \
--to=ehabkost@redhat.com \
--cc=alistair.francis@xilinx.com \
--cc=f4bug@amsat.org \
--cc=imammedo@redhat.com \
--cc=marcel@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).