qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: peter.maydell@linaro.org, mark.cave-ayland@ilande.co.uk,
	qemu-devel@nongnu.org, blauwirbel@gmail.com, qemu-arm@nongnu.org,
	pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH RFC 1/8] target-i386: cpu: move features logic that requires CPUState to realize time
Date: Fri, 3 Jun 2016 12:13:18 +0200	[thread overview]
Message-ID: <20160603121318.7e4b625d@nial.brq.redhat.com> (raw)
In-Reply-To: <20160602173427.GI19055@thinpad.lan.raisama.net>

On Thu, 2 Jun 2016 14:34:27 -0300
Eduardo Habkost <ehabkost@redhat.com> wrote:

> On Thu, Jun 02, 2016 at 06:56:55PM +0200, Igor Mammedov wrote:
> > On Thu, 2 Jun 2016 11:38:26 -0300
> > Eduardo Habkost <ehabkost@redhat.com> wrote:
> >   
> > > On Thu, Jun 02, 2016 at 11:59:30AM +0200, Igor Mammedov wrote:  
> > > > On Wed, 1 Jun 2016 14:43:09 -0300
> > > > Eduardo Habkost <ehabkost@redhat.com> wrote:
> > > > [...]
> > > >     
> > > > > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> > > > > > index 3fbc6f3..6159a7f 100644
> > > > > > --- a/target-i386/cpu.c
> > > > > > +++ b/target-i386/cpu.c
> > > > > > @@ -1932,6 +1932,11 @@ static inline void feat2prop(char *s)
> > > > > >      }
> > > > > >  }
> > > > > >  
> > > > > > +/* Features to be added */    
> > > > > 
> > > > > Please add something like "Features to be added. Will be replaced
> > > > > by global variables in the future".
> > > > >     
> > > > > > +static FeatureWordArray plus_features = { 0 };
> > > > > > +/* Features to be removed */
> > > > > > +static FeatureWordArray minus_features = { 0 };
> > > > > > +    
> > > > > 
> > > > > I see that this hack is replaced by the following patches, but is
> > > > > there an easy way to remove the CPUState argument from
> > > > > x86_cpu_parse_featurestr() before we introduce these static
> > > > > variables? (No problem if there's no way to do that, as long as
> > > > > the static variables are explicitly documented as a temporary
> > > > > hack)    
> > > > It's hack to keep legacy +- semantic (i.e. it overrides feat1=x,feat2)
> > > > local to x86 that probably would stay here forever.
> > > > I should add comment that explains why +- can't be replaced
> > > > with normal properties.    
> > > 
> > > Oh, I assumed it would be temporary. In that case, I would like
> > > to avoid adding the static variables if possible.
> > >   
> > > > 
> > > > I don't plan to replace plus/minus_features with anything nor to
> > > > make this variables a global ones to spread +- x86/sparc legacy
> > > > format everywhere.    
> > > 
> > > Can't the +/- semantics be emulated by simply registering
> > > plus_features/minus_features after the other global properties
> > > are registered inside x86_cpu_parse_featurestr()?  
> > it could be done, at the first glance it will take 2 extra parsing passes
> > 
> > 1: copy featurestr, parse feat=x,feat
> > 2: copy featurestr, parse +feat
> > 3: copy featurestr, parse -feat  
> 
> Why? Can't we just replace plus_features and minus_features with
> two string lists (or a QDict), and make the corresponding
> object_property_parse()/qdev_prop_register_global() calls after
> the main parsing loop?
> 
> (Didn't you do that in your old "target-i386: set [+-]feature
> using static properties" patch?)
It doesn't look like it will work due to broken 4d1b279b0 as
plus_features/minus_features are applied after:

    if (cpu->host_features) {                                                    
        for (w = 0; w < FEATURE_WORDS; w++) {                                    
            env->features[w] =                                                   
                x86_cpu_get_supported_feature_word(w, cpu->migratable);          
        }                                                                        
    }

and with above moving to realize(), +-feats would be overwritten by it.
Lets temporary use static variables as in this patch so not to delay
series on not related fixes. And deal with it when 4d1b279b0 is fixed.

1 way to deal with it is to wait several releases till users fix their
+-feats CLIs and then just drop it.

  parent reply	other threads:[~2016-06-03 10:13 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-01 16:37 [Qemu-devel] [PATCH RFC 0/8] cpus: make "-cpu cpux, features" global properties Igor Mammedov
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 1/8] target-i386: cpu: move features logic that requires CPUState to realize time Igor Mammedov
2016-06-01 17:43   ` Eduardo Habkost
2016-06-02  9:59     ` Igor Mammedov
2016-06-02 14:38       ` Eduardo Habkost
2016-06-02 16:56         ` Igor Mammedov
2016-06-02 17:34           ` Eduardo Habkost
2016-06-02 18:23             ` Igor Mammedov
2016-06-02 18:43               ` Eduardo Habkost
2016-06-03 10:13             ` Igor Mammedov [this message]
2016-06-03 19:26               ` Eduardo Habkost
2016-06-04 16:44                 ` Igor Mammedov
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 2/8] target-i386: cpu: move xcc->kvm_required check to reaize time Igor Mammedov
2016-06-01 17:46   ` Eduardo Habkost
2016-06-02 10:02     ` Igor Mammedov
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 3/8] target-i386: cpu: use cpu_generic_init() in cpu_x86_init() Igor Mammedov
2016-06-01 18:08   ` Eduardo Habkost
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 4/8] target-i386: cpu: consolidate calls of object_property_parse() in x86_cpu_parse_featurestr Igor Mammedov
2016-06-01 18:46   ` Eduardo Habkost
2016-06-02 12:22     ` Igor Mammedov
2016-06-02 14:42       ` Eduardo Habkost
2016-06-02 14:53       ` Eduardo Habkost
2016-06-02 15:05         ` Peter Krempa
2016-06-02 16:31           ` Igor Mammedov
2016-06-03  7:30             ` Peter Krempa
2016-06-03  9:37               ` Igor Mammedov
2016-06-03 19:36                 ` Eduardo Habkost
2016-06-02 16:32         ` Igor Mammedov
2016-06-02 16:55           ` [Qemu-devel] [PATCH] target-i386: Remove xlevel & hv-spinlocks option fixups Eduardo Habkost
2016-06-02 21:07             ` [Qemu-devel] [libvirt] " Eric Blake
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 5/8] target-sparc: cpu: use sparc_cpu_parse_features() directly Igor Mammedov
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 6/8] cpu: use CPUClass->parse_features() as convertor to global properties Igor Mammedov
2016-06-01 18:54   ` Eduardo Habkost
2016-06-02 10:06     ` Igor Mammedov
2016-06-02 14:41       ` Eduardo Habkost
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 7/8] arm: virt: parse cpu_model only once Igor Mammedov
2016-06-01 16:37 ` [Qemu-devel] [PATCH RFC 8/8] pc: parse cpu features " Igor Mammedov
2016-06-01 18:21 ` [Qemu-devel] [PATCH RFC 0/8] cpus: make "-cpu cpux, features" global properties Peter Maydell
2016-06-01 18:51   ` Eduardo Habkost
2016-06-02 20:44 ` David Hildenbrand
2016-06-03 12:06   ` Jiri Denemark
2016-06-03 12:14     ` David Hildenbrand
     [not found] ` <201606022044.u52KaIkv017063@mx0a-001b2d01.pphosted.com>
2016-06-03  0:02   ` Eduardo Habkost
2016-06-03  6:36     ` David Hildenbrand
     [not found]     ` <20160603083621.6547bde4@thinkpad-w530>
2016-06-03  9:20       ` Igor Mammedov
2016-06-03 10:18         ` David Hildenbrand
2016-06-03 19:54       ` Eduardo Habkost
2016-06-06  9:59         ` David Hildenbrand

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=20160603121318.7e4b625d@nial.brq.redhat.com \
    --to=imammedo@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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).