All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Mueller <mimu@linux.vnet.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
	Gleb Natapov <gleb@kernel.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	"Jason J. Herne" <jjherne@linux.vnet.ibm.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Andreas Faerber <afaerber@suse.de>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [RFC PATCH v2 13/15] cpu-model/s390: Add processor property routines
Date: Fri, 20 Feb 2015 20:29:19 +0100	[thread overview]
Message-ID: <20150220202919.29cc7b32@bee> (raw)
In-Reply-To: <54E76823.9000106@suse.de>

On Fri, 20 Feb 2015 18:00:19 +0100
Alexander Graf <agraf@suse.de> wrote:

> > So above s390_set/get_processor_props() the code is accelerator independent.  
> 
> Any particular reason you can't do it like PPC?

That seems to be a short question... and when I started one year ago, I oriented myself on
the PPC version and I'm also willing to revisit it but I can't give you a quick answer different
from no currently to that.

There are no PVRs for s390x CPUs and thus I came up with "pseudo PVRs":

/*
 * bits 0-7   : CMOS generation
 * bits 8-9   : reserved
 * bits 10-11 : machine class 0=unknown 1=EC 2=BC
 * bits 12-15 : GA
 * bits 16-31 : machine type
 *
 * note: bits are named according to s390
 *       architecture specific endienness
 */
enum {
    CPU_S390_2064_GA1 = 0x07112064,
    CPU_S390_2064_GA2 = 0x07122064,
    CPU_S390_2064_GA3 = 0x07132064,
    CPU_S390_2066_GA1 = 0x07212066,
    CPU_S390_2084_GA1 = 0x08112084,
    CPU_S390_2084_GA2 = 0x08122084,
    CPU_S390_2084_GA3 = 0x08132084,
    CPU_S390_2084_GA4 = 0x08142084,
    CPU_S390_2084_GA5 = 0x08152084,
    CPU_S390_2086_GA1 = 0x08212086,
    CPU_S390_2086_GA2 = 0x08222086,
    CPU_S390_2086_GA3 = 0x08232086,
    CPU_S390_2094_GA1 = 0x09112094,
    CPU_S390_2094_GA2 = 0x09122094,
    CPU_S390_2094_GA3 = 0x09132094,
    CPU_S390_2096_GA1 = 0x09212096,
    CPU_S390_2096_GA2 = 0x09222096,
    CPU_S390_2097_GA1 = 0x0a112097,
    CPU_S390_2097_GA2 = 0x0a122097,
    CPU_S390_2097_GA3 = 0x0a132097,
    CPU_S390_2098_GA1 = 0x0a212098,
    CPU_S390_2098_GA2 = 0x0a222098,
    CPU_S390_2817_GA1 = 0x0b112817,
    CPU_S390_2817_GA2 = 0x0b122817,
    CPU_S390_2818_GA1 = 0x0b212818,
    CPU_S390_2827_GA1 = 0x0c112827,
    CPU_S390_2827_GA2 = 0x0c122827,
    CPU_S390_2828_GA1 = 0x0c212828,
    CPU_S390_2964_GA1 = 0x0d112964,
};

And initially I had a version that was limiting the accelerator to be able to implement just them
with all their properties encapsulated in the a accelerator as well. After identifying the real
processor related attributes defining the model, I changed the interface such that KVM or
other accelerators give hints what it is able to support in dependency of the current code
version and the hosting machine and let QEMU decide how to set these attributes
(cpuid,ibc,fac_list). Thus I think the implementation is now quite open and easily adoptable also
for TCG and possibly others as well. Eventually the integration and also some trigger points of
my code are to adjust. So coming back to your question, the answer is still no for the whole item
but eventually yes if you have limited it to the s390_set/get_processor_props() triggers. But I
have to look into it first again. I will do that when I'm back on Tuesday morning.

Thanks and have a nice WE
Michael


WARNING: multiple messages have this Message-ID (diff)
From: Michael Mueller <mimu@linux.vnet.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: linux-s390@vger.kernel.org, kvm@vger.kernel.org,
	Gleb Natapov <gleb@kernel.org>,
	qemu-devel@nongnu.org, linux-kernel@vger.kernel.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	"Jason J. Herne" <jjherne@linux.vnet.ibm.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Andreas Faerber <afaerber@suse.de>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [RFC PATCH v2 13/15] cpu-model/s390: Add processor property routines
Date: Fri, 20 Feb 2015 20:29:19 +0100	[thread overview]
Message-ID: <20150220202919.29cc7b32@bee> (raw)
In-Reply-To: <54E76823.9000106@suse.de>

On Fri, 20 Feb 2015 18:00:19 +0100
Alexander Graf <agraf@suse.de> wrote:

> > So above s390_set/get_processor_props() the code is accelerator independent.  
> 
> Any particular reason you can't do it like PPC?

That seems to be a short question... and when I started one year ago, I oriented myself on
the PPC version and I'm also willing to revisit it but I can't give you a quick answer different
from no currently to that.

There are no PVRs for s390x CPUs and thus I came up with "pseudo PVRs":

/*
 * bits 0-7   : CMOS generation
 * bits 8-9   : reserved
 * bits 10-11 : machine class 0=unknown 1=EC 2=BC
 * bits 12-15 : GA
 * bits 16-31 : machine type
 *
 * note: bits are named according to s390
 *       architecture specific endienness
 */
enum {
    CPU_S390_2064_GA1 = 0x07112064,
    CPU_S390_2064_GA2 = 0x07122064,
    CPU_S390_2064_GA3 = 0x07132064,
    CPU_S390_2066_GA1 = 0x07212066,
    CPU_S390_2084_GA1 = 0x08112084,
    CPU_S390_2084_GA2 = 0x08122084,
    CPU_S390_2084_GA3 = 0x08132084,
    CPU_S390_2084_GA4 = 0x08142084,
    CPU_S390_2084_GA5 = 0x08152084,
    CPU_S390_2086_GA1 = 0x08212086,
    CPU_S390_2086_GA2 = 0x08222086,
    CPU_S390_2086_GA3 = 0x08232086,
    CPU_S390_2094_GA1 = 0x09112094,
    CPU_S390_2094_GA2 = 0x09122094,
    CPU_S390_2094_GA3 = 0x09132094,
    CPU_S390_2096_GA1 = 0x09212096,
    CPU_S390_2096_GA2 = 0x09222096,
    CPU_S390_2097_GA1 = 0x0a112097,
    CPU_S390_2097_GA2 = 0x0a122097,
    CPU_S390_2097_GA3 = 0x0a132097,
    CPU_S390_2098_GA1 = 0x0a212098,
    CPU_S390_2098_GA2 = 0x0a222098,
    CPU_S390_2817_GA1 = 0x0b112817,
    CPU_S390_2817_GA2 = 0x0b122817,
    CPU_S390_2818_GA1 = 0x0b212818,
    CPU_S390_2827_GA1 = 0x0c112827,
    CPU_S390_2827_GA2 = 0x0c122827,
    CPU_S390_2828_GA1 = 0x0c212828,
    CPU_S390_2964_GA1 = 0x0d112964,
};

And initially I had a version that was limiting the accelerator to be able to implement just them
with all their properties encapsulated in the a accelerator as well. After identifying the real
processor related attributes defining the model, I changed the interface such that KVM or
other accelerators give hints what it is able to support in dependency of the current code
version and the hosting machine and let QEMU decide how to set these attributes
(cpuid,ibc,fac_list). Thus I think the implementation is now quite open and easily adoptable also
for TCG and possibly others as well. Eventually the integration and also some trigger points of
my code are to adjust. So coming back to your question, the answer is still no for the whole item
but eventually yes if you have limited it to the s390_set/get_processor_props() triggers. But I
have to look into it first again. I will do that when I'm back on Tuesday morning.

Thanks and have a nice WE
Michael

  reply	other threads:[~2015-02-20 19:29 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17 14:23 [RFC PATCH v2 00/15] QEMU: s390: cpu model implementation Michael Mueller
2015-02-17 14:23 ` [Qemu-devel] " Michael Mueller
2015-02-17 14:23 ` [RFC PATCH v2 01/15] cpu-model: Introduce probe mode for machine none Michael Mueller
2015-02-17 14:23   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 02/15] cpu-model: Introduce option --probe to switch into probe mode Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24   ` Michael Mueller
2015-02-17 19:16   ` [Qemu-devel] " Eric Blake
2015-02-17 19:16     ` Eric Blake
2015-02-18  9:08     ` [Qemu-devel] " Michael Mueller
2015-02-18  9:08       ` Michael Mueller
2015-02-18  9:08       ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 03/15] cpu-model: Introduce stub routine cpu_desc_avail Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24   ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 04/15] cpu-model/s390: Introduce S390 CPU models Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24   ` Michael Mueller
2015-02-20 13:54   ` Alexander Graf
2015-02-20 13:54     ` [Qemu-devel] " Alexander Graf
2015-02-20 15:00     ` Michael Mueller
2015-02-20 15:00       ` Michael Mueller
2015-02-20 15:22       ` Alexander Graf
2015-02-20 15:22         ` Alexander Graf
2015-02-20 15:49         ` Michael Mueller
2015-02-20 15:49           ` Michael Mueller
2015-02-20 16:57           ` Alexander Graf
2015-02-20 16:57             ` Alexander Graf
2015-02-20 17:37             ` Michael Mueller
2015-02-20 17:37               ` Michael Mueller
2015-02-20 17:50               ` Alexander Graf
2015-02-20 17:50                 ` Alexander Graf
2015-02-20 19:43                 ` Michael Mueller
2015-02-20 19:43                   ` Michael Mueller
2015-02-20 19:55                   ` Alexander Graf
2015-02-20 19:55                     ` Alexander Graf
2015-02-23 12:56         ` Christian Borntraeger
2015-02-23 12:56           ` Christian Borntraeger
2015-02-23 13:27           ` Christian Borntraeger
2015-02-23 13:27             ` Christian Borntraeger
2015-02-20 13:55   ` Alexander Graf
2015-02-20 13:55     ` [Qemu-devel] " Alexander Graf
2015-02-20 15:02     ` Michael Mueller
2015-02-20 15:02       ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 05/15] cpu-model/s390: Introduce S390 CPU facilities Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 06/15] cpu-model/s390: Define cpu model specific facility lists Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 07/15] cpu-model/s390: Add cpu model alias definition routines Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 08/15] cpu-model/s390: Update linux-headers/asm-s390/kvm.h Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 09/15] cpu-model/s390: Add KVM VM attribute interface routines Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-20 13:59   ` Alexander Graf
2015-02-20 13:59     ` [Qemu-devel] " Alexander Graf
2015-02-20 15:18     ` Michael Mueller
2015-02-20 15:18       ` Michael Mueller
2015-02-20 16:59       ` Alexander Graf
2015-02-20 16:59         ` Alexander Graf
2015-02-20 18:42         ` Michael Mueller
2015-02-20 18:42           ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 10/15] cpu-model/s390: Add cpu class initialization routines Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24   ` Michael Mueller
2015-02-20 16:02   ` Richard Henderson
2015-02-20 16:02     ` [Qemu-devel] " Richard Henderson
2015-02-20 16:12     ` Michael Mueller
2015-02-20 16:12       ` Michael Mueller
2015-02-20 16:12       ` Michael Mueller
2015-02-20 16:27       ` [Qemu-devel] " Michael Mueller
2015-02-20 16:27         ` Michael Mueller
2015-02-20 16:34       ` Andreas Färber
2015-02-20 16:34         ` Andreas Färber
2015-02-20 16:55         ` Michael Mueller
2015-02-20 18:11   ` Richard Henderson
2015-02-20 18:11     ` [Qemu-devel] " Richard Henderson
2015-02-20 18:59     ` Michael Mueller
2015-02-20 18:59       ` Michael Mueller
2015-02-20 19:21       ` Alexander Graf
2015-02-20 19:21         ` Alexander Graf
2015-02-20 19:35         ` Michael Mueller
2015-02-20 19:35           ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 11/15] cpu-model/s390: Add QMP command query-cpu-model Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24   ` Michael Mueller
2015-02-17 18:03   ` [Qemu-devel] " Eric Blake
2015-02-18  8:39     ` Michael Mueller
2015-02-18  8:39       ` Michael Mueller
2015-02-18  8:39       ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 12/15] cpu-model/s390: Extend QMP command query-cpu-definitions Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 18:09   ` Eric Blake
2015-02-18  9:29     ` Michael Mueller
2015-02-18  9:29       ` Michael Mueller
2015-02-18  9:29       ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 13/15] cpu-model/s390: Add processor property routines Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-20 14:03   ` Alexander Graf
2015-02-20 14:03     ` [Qemu-devel] " Alexander Graf
2015-02-20 15:32     ` Michael Mueller
2015-02-20 15:32       ` Michael Mueller
2015-02-20 15:41       ` Andreas Färber
2015-02-20 15:41         ` Andreas Färber
2015-02-20 16:04         ` Michael Mueller
2015-02-20 16:04           ` Michael Mueller
2015-02-20 16:28           ` Andreas Färber
2015-02-20 16:28             ` Andreas Färber
2015-02-20 16:53             ` Michael Mueller
2015-02-20 16:53               ` Michael Mueller
2015-02-20 16:05         ` Michael Mueller
2015-02-20 16:05           ` Michael Mueller
2015-02-20 17:00       ` Alexander Graf
2015-02-20 17:00         ` Alexander Graf
2015-02-20 19:29         ` Michael Mueller [this message]
2015-02-20 19:29           ` Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 14/15] cpu-model/s390: Add cpu model selection routine Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller
2015-02-17 14:24 ` [RFC PATCH v2 15/15] cpu-model/s390: Enable S390 cpu model Michael Mueller
2015-02-17 14:24   ` [Qemu-devel] " Michael Mueller

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=20150220202919.29cc7b32@bee \
    --to=mimu@linux.vnet.ibm.com \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=gleb@kernel.org \
    --cc=jjherne@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --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 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.