All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, ehabkost@redhat.com
Subject: Re: [Qemu-devel] [PATCH qom-cpu 00/17] x86 CPU cleanup, part 3
Date: Tue, 15 Jan 2013 05:16:52 +0100	[thread overview]
Message-ID: <50F4D834.30905@suse.de> (raw)
In-Reply-To: <1357870231-26762-1-git-send-email-imammedo@redhat.com>

Am 11.01.2013 03:10, schrieb Igor Mammedov:
> Igor Mammedov (17):
>   target-i386: move setting defaults out of cpu_x86_parse_featurestr()
>   target-i386: cpu_x86_register() consolidate freeing resources
>   target-i386: move kvm_check_features_against_host() check to realize
>     time

Thanks, I've applied 1-3 to qom-cpu:
https://github.com/afaerber/qemu-cpu/commits/qom-cpu

I really like patch 3, which moves more logic into our realizefn! When
the QOM realize series gets applied, I have a queue prepared already to
change today's signatures and to hook up to the infrastructure and to
make this uniform across targets.

>   target-i386: add x86_cpu_vendor_words2str()

Patch 4 v3 looks okay too, but it mentions "next patch" and doesn't
provide any value on its own:

>   target-i386: replace uint32_t vendor fields by vendor string in
>     x86_def_t

I raised some (non-)issues on patch 5 that I would like to give others a
chance to review rather than taking the lonely decision of putting this
in a PULL tonight; a new idea there would be a union { uint32_t
words[3]; char str[12]; } to keep both options open while avoiding the
string -> 3x uint32_t -> string mess that patch 5 rightfully attempts to
clean up. Once consensus is reached and it is still needed, I would
prefer to squash patch 4 as justification, being a rather trivial code
movement.

>   target-i386: remove vendor_override field from CPUX86State
>   target-i386: prepare cpu_x86_parse_featurestr() to return a set of
>     key,value property pairs

Didn't get around to fully reviewing the remainder of the series yet.

However I am still unclear and skeptic towards this patch using a QDict
to set properties on the CPU. I was told this was for -feat and +feat
backwards compatibility but the properties it is being used for are not
features but regular properties that I would like to always set to get
errors from each property rather than papering over, e.g.,
"...,tsc_freq=invalid,tsc_freq=1G,..." (IIUC). By operating on the
X86CPU, the intermediate x86_def_t can be spared too, as shown in my
subclasses patch. Maybe I'm overlooking something, needs calm review
from my side and some trial-and-error.

As a reminder, I have been pushing for converting to subclasses early
because that is a prerequisite for doing some CPUClass-level changes
across targets to clean up the way CPUs get created wrt cpu_init() and
cpu_copy(). Feature properties are, as far as I have seen and heard, an
x86-only project that could thus well be done on top of that common
infrastructure IMO.

Regards,
Andreas

>   target-i386: set custom 'vendor' without intermediate x86_def_t
>   target-i386: print deprecated warning if xlevel < 0x80000000
>   target-i386: set custom 'xlevel' without intermediate x86_def_t
>   target-i386: set custom 'level' without intermediate x86_def_t
>   target-i386: set custom 'model-id' without intermediate x86_def_t
>   target-i386: set custom 'stepping' without intermediate x86_def_t
>   target-i386: set custom 'model' without intermediate x86_def_t
>   target-i386: set custom 'family' without intermediate x86_def_t
>   target-i386: set custom 'tsc-frequency' without intermediate
>     x86_def_t
>   target-i386: remove setting tsc-frequency from x86_def_t
> 
>  target-i386/cpu.c |  314 ++++++++++++++++++++++-------------------------------
>  target-i386/cpu.h |    7 +-
>  2 files changed, 131 insertions(+), 190 deletions(-)

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

  parent reply	other threads:[~2013-01-15  4:17 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-11  2:10 [Qemu-devel] [PATCH qom-cpu 00/17] x86 CPU cleanup, part 3 Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 01/17] target-i386: move setting defaults out of cpu_x86_parse_featurestr() Igor Mammedov
2013-01-11  2:20   ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 02/17] target-i386: cpu_x86_register() consolidate freeing resources Igor Mammedov
2013-01-11  2:21   ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 03/17] target-i386: move kvm_check_features_against_host() check to realize time Igor Mammedov
2013-01-11  2:25   ` Eduardo Habkost
2013-04-02 20:30     ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 04/17] target-i386: add x86_cpu_vendor_words2str() Igor Mammedov
2013-01-11  2:28   ` Eduardo Habkost
2013-01-14 17:14     ` Andreas Färber
2013-01-14 18:24       ` Igor Mammedov
2013-01-14 18:33       ` [Qemu-devel] [PATCH 04/17 v3] " Igor Mammedov
2013-01-16  2:26         ` li guang
2013-01-11  2:46   ` [Qemu-devel] [PATCH 04/17 v2] " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 05/17] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t Igor Mammedov
2013-01-11  2:30   ` Eduardo Habkost
2013-01-14 19:32   ` Andreas Färber
2013-01-14 21:44     ` Eduardo Habkost
2013-01-15 12:06       ` [Qemu-devel] [PATCH] target-i386: make x86_def_t.vendor[1, 2, 3] a string and use cpuid_vendor union in CPUX86State Igor Mammedov
2013-01-15 17:51         ` Eduardo Habkost
2013-01-15 19:55           ` Igor Mammedov
2013-01-16  7:07         ` li guang
2013-01-16  7:31           ` Igor Mammedov
2013-01-14 21:52     ` [Qemu-devel] [PATCH 05/17] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t Igor Mammedov
2013-01-15 10:53       ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 06/17] target-i386: remove vendor_override field from CPUX86State Igor Mammedov
2013-01-11  2:42   ` Eduardo Habkost
2013-01-11  3:09     ` Igor Mammedov
2013-01-11 12:04       ` Eduardo Habkost
2013-01-11 12:06   ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 07/17] target-i386: prepare cpu_x86_parse_featurestr() to return a set of key, value property pairs Igor Mammedov
2013-01-14 15:14   ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 08/17] target-i386: set custom 'vendor' without intermediate x86_def_t Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 09/17] target-i386: print deprecated warning if xlevel < 0x80000000 Igor Mammedov
2013-01-14 15:16   ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 10/17] target-i386: set custom 'xlevel' without intermediate x86_def_t Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 11/17] target-i386: set custom 'level' " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 12/17] target-i386: set custom 'model-id' " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 13/17] target-i386: set custom 'stepping' " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 14/17] target-i386: set custom 'model' " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 15/17] target-i386: set custom 'family' " Igor Mammedov
2013-01-11  2:10 ` [Qemu-devel] [PATCH 16/17] target-i386: set custom 'tsc-frequency' " Igor Mammedov
2013-01-14 15:20   ` Eduardo Habkost
2013-01-14 15:49     ` Igor Mammedov
2013-01-14 16:10       ` Eduardo Habkost
2013-01-11  2:10 ` [Qemu-devel] [PATCH 17/17] target-i386: remove setting tsc-frequency from x86_def_t Igor Mammedov
2013-01-14 15:21   ` Eduardo Habkost
2013-01-15  4:16 ` Andreas Färber [this message]
2013-01-15  9:03   ` [Qemu-devel] [PATCH qom-cpu 00/17] x86 CPU cleanup, part 3 Igor Mammedov

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=50F4D834.30905@suse.de \
    --to=afaerber@suse.de \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@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 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.