All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Emilio G. Cota" <cota@braap.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [Qemu-devel] [PATCH v4 23/25] Use cpu_create(type) instead of cpu_init(cpu_model)
Date: Tue, 6 Feb 2018 20:25:38 -0200	[thread overview]
Message-ID: <20180206222538.GE13301@localhost.localdomain> (raw)
In-Reply-To: <1517850509-111036-1-git-send-email-imammedo@redhat.com>

On Mon, Feb 05, 2018 at 06:08:29PM +0100, Igor Mammedov wrote:
> With all targets defining CPU_RESOLVING_TYPE, refactor
> cpu_parse_cpu_model(type, cpu_model) to parse_cpu_model(cpu_model)
> so that callers won't have to know internal resolving cpu
> type. Place it in exec.c so it could be called from both
> target independed vl.c and *-user/main.c.
> 
> That allows us to stop abusing cpu type from
>   MachineClass::default_cpu_type
> as resolver class in vl.c which were confusing part of
> cpu_parse_cpu_model().
> 
> Also with new parse_cpu_model(), the last users of cpu_init()
> in null-machine.c and bsd/linux-user targets could be switched
> to cpu_create() API and cpu_init() API will be removed by
> follow up patch.
> 
> With no longer users left remove MachineState::cpu_model field,
> new code should use MachineState::cpu_type instead and
> leave cpu_model parsing to generic code in vl.c.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> v4:
>   - actually remove no longer used MachineState::cpu_model field
>     that I've lost somewhere during respins
> 
>   - squash in [PATCH v3 25/25] cpu: get rid of cpu_generic_init()
>     as after rework/rebase cpu_generic_init() is being removed by
>     this patch and only check removal was left in 25/25, which
>     should be removed together with cpu_generic_init() in this patch
> 
> CC: Richard Henderson <richard.henderson@linaro.org>
> CC: "Emilio G. Cota" <cota@braap.org>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Eduardo Habkost <ehabkost@redhat.com>
> CC: "Alex Bennée" <alex.bennee@linaro.org>
> CC: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
> 
> fixup: Use cpu_create(type) instead of  cpu_init(cpu_model)
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
>  include/hw/boards.h    |  1 -
>  include/qom/cpu.h      | 16 ++--------------
>  bsd-user/main.c        |  4 +++-
>  exec.c                 | 23 +++++++++++++++++++++++
>  hw/core/null-machine.c |  6 +++---
>  linux-user/main.c      |  8 ++++++--
>  qom/cpu.c              | 48 ++----------------------------------------------
>  vl.c                   | 10 +++-------
>  8 files changed, 42 insertions(+), 74 deletions(-)

Less 32 lines.  Nice.  :)


[...]
> @@ -335,22 +304,9 @@ static ObjectClass *cpu_common_class_by_name(const char *cpu_model)
>  static void cpu_common_parse_features(const char *typename, char *features,
>                                        Error **errp)
>  {
> -    char *featurestr; /* Single "key=value" string being parsed */
>      char *val;
> -    static bool cpu_globals_initialized;
> -
> -    /* TODO: all callers of ->parse_features() need to be changed to
> -     * call it only once, so we can remove this check (or change it
> -     * to assert(!cpu_globals_initialized).
> -     * Current callers of ->parse_features() are:
> -     * - cpu_generic_init()
> -     */
> -    if (cpu_globals_initialized) {
> -        return;

Suggestion: replace this with assert(!cpu_globals_initialized)
just to make sure there are no bugs that make us register CPU
globals twice.

This shouldn't block the patch, though:

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

> -    }
> -    cpu_globals_initialized = true;
> -
> -    featurestr = features ? strtok(features, ",") : NULL;
> +    /* Single "key=value" string being parsed */
> +    char *featurestr = features ? strtok(features, ",") : NULL;
>  
>      while (featurestr) {
>          val = strchr(featurestr, '=');
[...]

-- 
Eduardo

  reply	other threads:[~2018-02-06 22:25 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-23  8:07 [Qemu-arm] [PATCH v3 00/25] generalize parsing of cpu_model (part 4) Igor Mammedov
2018-01-23  8:07 ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 01/25] nios2: 10m50_devboard: replace cpu_model with cpu_type Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-02-06 22:09   ` [Qemu-arm] " Eduardo Habkost
2018-02-06 22:09     ` Eduardo Habkost
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 02/25] tests: add machine 'none' with -cpu test Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-02-06 22:13   ` [Qemu-arm] " Eduardo Habkost
2018-02-06 22:13     ` Eduardo Habkost
2018-02-06 22:21   ` [Qemu-arm] " Eduardo Habkost
2018-02-06 22:21     ` Eduardo Habkost
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 03/25] arm: cpu: add CPU_RESOLVING_TYPE macro Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  9:45   ` [Qemu-arm] " Andrew Jones
2018-01-23  9:45     ` Andrew Jones
2018-01-23  9:51   ` [Qemu-arm] [PATCH v4 " Igor Mammedov
2018-01-23  9:51     ` [Qemu-devel] " Igor Mammedov
2018-02-06 22:18   ` [Qemu-arm] [Qemu-devel] [PATCH v3 " Eduardo Habkost
2018-02-06 22:18     ` Eduardo Habkost
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 04/25] x86: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  9:52   ` [Qemu-devel] [PATCH v4 " Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 05/25] alpha: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 06/25] cris: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 07/25] lm32: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 08/25] m68k: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-24 12:58   ` [Qemu-arm] " Laurent Vivier
2018-01-24 12:58     ` Laurent Vivier
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 09/25] microblaze: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 10/25] mips: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 11/25] moxie: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 12/25] nios2: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 13/25] openrisc: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 14/25] ppc: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23 11:14   ` [Qemu-arm] " David Gibson
2018-01-23 11:14     ` [Qemu-devel] " David Gibson
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 15/25] s390x: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 16/25] sh4: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 17/25] sparc: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 18/25] tricore: " Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-01-23 14:05   ` [Qemu-arm] " Bastian Koppelmann
2018-01-23 14:05     ` Bastian Koppelmann
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 19/25] unicore32: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 20/25] xtensa: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 21/25] hppa: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 22/25] tilegx: " Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23  8:08 ` [Qemu-arm] [PATCH v3 23/25] Use cpu_create(type) instead of cpu_init(cpu_model) Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-02-05 17:08   ` [Qemu-devel] [PATCH v4 " Igor Mammedov
2018-02-06 22:25     ` Eduardo Habkost [this message]
2018-01-23  8:08 ` [Qemu-devel] [PATCH v3 24/25] cpu: get rid of unused cpu_init() defines Igor Mammedov
2018-01-23  8:08   ` Igor Mammedov
2018-01-23 11:15   ` [Qemu-arm] " David Gibson
2018-01-23 11:15     ` [Qemu-devel] " David Gibson
2018-02-06 22:26   ` [Qemu-arm] " Eduardo Habkost
2018-02-06 22:26     ` Eduardo Habkost
2018-01-23  8:08 ` [PATCH v3 25/25] cpu: get rid of cpu_generic_init() Igor Mammedov
2018-01-23  8:08   ` [Qemu-devel] " Igor Mammedov
2018-02-05 17:09   ` Igor Mammedov
2018-02-06 22:32 ` [Qemu-arm] [Qemu-devel] [PATCH v3 00/25] generalize parsing of cpu_model (part 4) Eduardo Habkost
2018-02-06 22:32   ` Eduardo Habkost
2018-02-07  8:52   ` [Qemu-arm] " Igor Mammedov
2018-02-07  8:52     ` Igor Mammedov
2018-02-07 12:00     ` Eduardo Habkost
2018-02-07 12:00       ` 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=20180206222538.GE13301@localhost.localdomain \
    --to=ehabkost@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --cc=f4bug@amsat.org \
    --cc=imammedo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.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 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.