qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, "Alexander Graf" <agraf@suse.de>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"open list:ppce500" <qemu-ppc@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 12/23] ppc: move '-cpu foo, compat=xxx' parsing into ppc_cpu_parse_featurestr()
Date: Fri, 6 Oct 2017 21:14:18 +1100	[thread overview]
Message-ID: <20171006101418.GL10961@umbus.fritz.box> (raw)
In-Reply-To: <20171006115244.725aabd9@nial.brq.redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3828 bytes --]

On Fri, Oct 06, 2017 at 11:52:44AM +0200, Igor Mammedov wrote:
> On Fri, 6 Oct 2017 20:17:41 +1100
> David Gibson <david@gibson.dropbear.id.au> wrote:
> 
> > On Fri, Oct 06, 2017 at 11:03:52AM +0200, Igor Mammedov wrote:
> > > On Fri, 6 Oct 2017 14:54:47 +1100
> > > David Gibson <david@gibson.dropbear.id.au> wrote:
> > >   
> > > > On Thu, Oct 05, 2017 at 06:24:39PM +0200, Igor Mammedov wrote:  
> > > > > there is a dedicated callback CPUClass::parse_features
> > > > > which purpose is to convert -cpu features into a set of
> > > > > global properties AND deal with compat/legacy features
> > > > > that couldn't be directly translated into CPU's properties.
> > > > > 
> > > > > Create ppc variant of it (ppc_cpu_parse_featurestr) and
> > > > > move 'compat=val' handling from spapr_cpu_core.c into it.
> > > > > That removes a dependency of board/core code on cpu_model
> > > > > parsing and would let to reuse common -cpu parsing
> > > > > introduced by 6063d4c0
> > > > > 
> > > > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>    
> > > > 
> > > > Hrm.  I'm a bit unsure about this.  The fact that the board code is
> > > > involved in the parsing here is deliberate.  Basically 'compat=' never
> > > > made sense as a cpu property, it always should have been a machine
> > > > property.
> > > > 
> > > > With this patch we'll still (correctly) fail on a non spapr machine at
> > > > the point where we do:
> > > > 
> > > > +            object_property_set_str(machine, v, "max-cpu-compat", &local_err);
> > > > 
> > > > Though probably with a rather cryptic error.  
> > > I's possible to guard it and apply to only SPAPR machine
> > > or trying to find property first before setting it.  
> > 
> > Yeah, I think we should do that.  Or possibly we could do something
> > with the vhyp interface.  If there was ever a vhyp machine other than
> > spapr (unlikely) then compat modes would also make sense for it (vhyp
> > being non-NULL basically means that our vcpu is never allowed to enter
> > hypervisor mode, so hypervisor privileged registers like LPCR need to
> > be handled by the machine instead).
> I'll use cast to spapr machine here for now, and leave it up to you
> to change it in future to something else if it make sense.

Makes sense.  As long as we get the behaviour right for now, we can
clean up the implementation later.

> btw: when pvn + power9 crushes it does so due to null vhyp
> if I recall correctly

Yeah, pnv is very much a work in progress, it barely works for POWER8
and is hardly tested for POWER9.  It's also entirely possible we're
misisng bits in the POWER9 code to handle the !vhyp case, since
pseries is the only machine that's really been tested with POWER9 at
all so far.

> > > > It still pollutes the cpu code with spapr's past mistake though.  I'm
> > > > not sure if this is a good tradeoff.  
> > > CPUClass::parse_features callback was introduced to deal with 
> > > legacy and compatibility nuances of "-cpu" CLI option, so I'm moving
> > > compat mistake back where it belongs so it will pollute code dealing
> > > with hacks.  
> > 
> > Hm, ok.  Still seems a bit odd to me, but I'll take your word for it.
> all targets that have special handling for -cpu options like
> parse '+-foo' format or 'foo' or fixup value of property or rename property
> to new name do provide target specific CPUClass::parse_features callback
> to deal with it, the rest of the targets use generic
> cpu_common_parse_features().

Yeah, still smacks of the machine ~= target assumption that x86 people
tend to make.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2017-10-06 10:19 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-05 16:24 [Qemu-devel] [PATCH 00/23] generalize parsing of cpu_model (part 3/PPC) Igor Mammedov
2017-10-05 16:24 ` [Qemu-devel] [PATCH 01/23] qom: update doc comment for type_register[_static]() Igor Mammedov
2017-10-06  2:57   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 02/23] qom: introduce type_register_static_array() Igor Mammedov
2017-10-06  2:58   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 03/23] qom: add helper macro DEFINE_TYPES() Igor Mammedov
2017-10-06  3:06   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 04/23] ppc: mpc8544ds/e500plat: use generic cpu_model parsing Igor Mammedov
2017-10-06  3:02   ` David Gibson
2017-10-06  8:27     ` Igor Mammedov
2017-10-06  9:12       ` David Gibson
2017-10-06  9:37         ` Igor Mammedov
2017-10-05 16:24 ` [Qemu-devel] [PATCH 05/23] ppc: mac_newworld: " Igor Mammedov
2017-10-06  3:08   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 06/23] ppc: mac_oldworld: " Igor Mammedov
2017-10-06  3:09   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 07/23] ppc: bamboo: " Igor Mammedov
2017-10-06  3:11   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 08/23] ppc: replace cpu_model with cpu_type on ref405ep, taihu boards Igor Mammedov
2017-10-06  3:12   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 09/23] ppc: virtex-ml507: replace cpu_model with cpu_type Igor Mammedov
2017-10-06  3:13   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 10/23] ppc: 40p/prep: " Igor Mammedov
2017-10-06  3:14   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 11/23] ppc: spapr: replace ppc_cpu_parse_features() with cpu_parse_cpu_model() Igor Mammedov
2017-10-05 18:35   ` Greg Kurz
2017-10-06  3:16   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 12/23] ppc: move '-cpu foo, compat=xxx' parsing into ppc_cpu_parse_featurestr() Igor Mammedov
2017-10-05 19:05   ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2017-10-06  8:40     ` Igor Mammedov
2017-10-06  3:54   ` [Qemu-devel] " David Gibson
2017-10-06  9:03     ` Igor Mammedov
2017-10-06  9:17       ` David Gibson
2017-10-06  9:52         ` Igor Mammedov
2017-10-06 10:14           ` David Gibson [this message]
2017-10-05 16:24 ` [Qemu-devel] [PATCH 13/23] ppc: spapr: define core types statically Igor Mammedov
2017-10-05 20:31   ` Greg Kurz
2017-10-06  3:58   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 14/23] ppc: spapr: use cpu type name directly Igor Mammedov
2017-10-05 20:47   ` Greg Kurz
2017-10-06  4:01   ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 15/23] ppc: spapr: register 'host' core type along with the rest of core types Igor Mammedov
2017-10-05 21:55   ` Greg Kurz
2017-10-06  4:41   ` David Gibson
2017-10-06  9:07     ` Igor Mammedov
2017-10-06  9:13       ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 16/23] ppc: spapr: use cpu model names as tcg defaults instead of aliases Igor Mammedov
2017-10-06  4:43   ` David Gibson
2017-10-06  7:39   ` Greg Kurz
2017-10-06  9:27     ` Igor Mammedov
2017-10-06 10:12       ` Greg Kurz
2017-10-05 16:24 ` [Qemu-devel] [PATCH 17/23] ppc: spapr: use generic cpu_model parsing Igor Mammedov
2017-10-06  5:04   ` David Gibson
2017-10-06  9:20     ` Igor Mammedov
2017-10-06  9:35       ` David Gibson
2017-10-06  9:56         ` Igor Mammedov
2017-10-05 16:24 ` [Qemu-devel] [PATCH 18/23] ppc: pnv: " Igor Mammedov
2017-10-06  6:21   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:34   ` [Qemu-devel] " David Gibson
2017-10-06  9:30     ` Igor Mammedov
2017-10-06 11:25       ` David Gibson
2017-10-09  5:44         ` Igor Mammedov
2017-10-09  6:59           ` David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 19/23] ppc: pnv: normalize core/chip type names Igor Mammedov
2017-10-06  6:22   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:37   ` [Qemu-devel] " David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 20/23] ppc: pnv: drop PnvCoreClass::cpu_oc field Igor Mammedov
2017-10-06  6:27   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:41   ` [Qemu-devel] " David Gibson
2017-10-06  9:31     ` Igor Mammedov
2017-10-05 16:24 ` [Qemu-devel] [PATCH 21/23] ppc: pnv: define core types statically Igor Mammedov
2017-10-06  6:24   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:42   ` [Qemu-devel] " David Gibson
2017-10-05 16:24 ` [Qemu-devel] [PATCH 22/23] ppc: pnv: drop PnvChipClass::cpu_model field Igor Mammedov
2017-10-06  6:27   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:46   ` [Qemu-devel] " David Gibson
2017-10-06  9:32     ` Igor Mammedov
2017-10-05 16:24 ` [Qemu-devel] [PATCH 23/23] ppc: pnv: consolidate type definitions and batch register them Igor Mammedov
2017-10-06  6:27   ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2017-10-06  8:47   ` [Qemu-devel] " David Gibson
2017-10-05 17:31 ` [Qemu-devel] [PATCH 00/23] generalize parsing of cpu_model (part 3/PPC) no-reply

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=20171006101418.GL10961@umbus.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=agraf@suse.de \
    --cc=edgar.iglesias@gmail.com \
    --cc=hpoussin@reactos.org \
    --cc=imammedo@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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).