qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-s390x@nongnu.org, schwidefsky@de.ibm.com,
	heiko.carstens@de.ibm.com, borntraeger@de.ibm.com,
	cohuck@redhat.com, david@redhat.com, bjsdjshi@linux.vnet.ibm.com,
	pmorel@linux.vnet.ibm.com, alifm@linux.vnet.ibm.com,
	mjrosato@linux.vnet.ibm.com, jjherne@linux.vnet.ibm.com,
	pasic@linux.vnet.ibm.com, eskultet@redhat.com,
	berrange@redhat.com, alex.williamson@redhat.com,
	eric.auger@redhat.com, pbonzini@redhat.com,
	peter.maydell@linaro.org, agraf@suse.de, rth@twiddle.net,
	akrowiak@linux.vnet.ibm.com, fiuczy@linux.ibm.com,
	mimu@linux.ibm.com, Tony Krowiak <akrowiak@linux.ibm.com>
Subject: [Qemu-devel] [PATCH v10 2/6] s390x/cpumodel: Set up CPU model for AP device support
Date: Tue,  9 Oct 2018 13:52:22 -0400	[thread overview]
Message-ID: <20181009175226.22138-3-akrowiak@linux.vnet.ibm.com> (raw)
In-Reply-To: <20181009175226.22138-1-akrowiak@linux.vnet.ibm.com>

A new CPU model feature and two new CPU model facilities are
introduced to support AP devices for a KVM guest.

CPU model features:

1. The S390_FEAT_AP CPU model feature indicates whether AP
   instructions are available to the guest. This feature will
   be enabled only if the AP instructions are available on the
   linux host as determined by the availability of the
   KVM_S390_VM_CRYPTO_ENABLE_APIE VM attribute which is exposed
   by KVM only if the AP instructions are available on the
   host.

   This feature must be turned on from userspace to execute AP
   instructions on the KVM guest. The QEMU command line to turn
   this feature on looks something like this:

	qemu-system-s390x ... -cpu xxx,ap=on ...

   This feature will be supported for zEC12 and newer CPU models.
   The feature will not be supported for older models because
   there are few older systems on which to test and the older
   crypto cards will be going out of service in the relatively
   near future.

CPU model facilities:

1. The S390_FEAT_AP_QUERY_CONFIG_INFO feature indicates whether the
   AP Query Configuration Information (QCI) facility is available
   to the guest as determined by whether the facility is available
   on the host. This feature will be exposed by KVM only if the
   QCI facility is installed on the host.

2. The S390_FEAT_AP_FACILITY_TEST feature indicates whether the AP
   Facility Test (APFT) facility is available to the guest as
   determined by whether the facility is available on the host.
   This feature will be exposed by KVM only if APFT is installed
   on the host.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Tested-by: Pierre Morel<pmorel@linux.ibm.com>
---
 target/s390x/cpu_features.c     | 3 +++
 target/s390x/cpu_features_def.h | 3 +++
 target/s390x/cpu_models.c       | 2 ++
 target/s390x/gen-features.c     | 3 +++
 4 files changed, 11 insertions(+)

diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
index 172fb18df718..60cfeba48f4e 100644
--- a/target/s390x/cpu_features.c
+++ b/target/s390x/cpu_features.c
@@ -39,8 +39,10 @@ static const S390FeatDef s390_features[] = {
     FEAT_INIT("srs", S390_FEAT_TYPE_STFL, 9, "Sense-running-status facility"),
     FEAT_INIT("csske", S390_FEAT_TYPE_STFL, 10, "Conditional-SSKE facility"),
     FEAT_INIT("ctop", S390_FEAT_TYPE_STFL, 11, "Configuration-topology facility"),
+    FEAT_INIT("apqci", S390_FEAT_TYPE_STFL, 12, "Query AP Configuration Information facility"),
     FEAT_INIT("ipter", S390_FEAT_TYPE_STFL, 13, "IPTE-range facility"),
     FEAT_INIT("nonqks", S390_FEAT_TYPE_STFL, 14, "Nonquiescing key-setting facility"),
+    FEAT_INIT("apft", S390_FEAT_TYPE_STFL, 15, "AP Facilities Test facility"),
     FEAT_INIT("etf2", S390_FEAT_TYPE_STFL, 16, "Extended-translation facility 2"),
     FEAT_INIT("msa-base", S390_FEAT_TYPE_STFL, 17, "Message-security-assist facility (excluding subfunctions)"),
     FEAT_INIT("ldisp", S390_FEAT_TYPE_STFL, 18, "Long-displacement facility"),
@@ -129,6 +131,7 @@ static const S390FeatDef s390_features[] = {
 
     FEAT_INIT_MISC("dateh2", "DAT-enhancement facility 2"),
     FEAT_INIT_MISC("cmm", "Collaborative-memory-management facility"),
+    FEAT_INIT_MISC("ap", "AP instructions installed"),
 
     FEAT_INIT("plo-cl", S390_FEAT_TYPE_PLO, 0, "PLO Compare and load (32 bit in general registers)"),
     FEAT_INIT("plo-clg", S390_FEAT_TYPE_PLO, 1, "PLO Compare and load (64 bit in parameter list)"),
diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
index ac2c947f30a8..5fc7e7bf0116 100644
--- a/target/s390x/cpu_features_def.h
+++ b/target/s390x/cpu_features_def.h
@@ -27,8 +27,10 @@ typedef enum {
     S390_FEAT_SENSE_RUNNING_STATUS,
     S390_FEAT_CONDITIONAL_SSKE,
     S390_FEAT_CONFIGURATION_TOPOLOGY,
+    S390_FEAT_AP_QUERY_CONFIG_INFO,
     S390_FEAT_IPTE_RANGE,
     S390_FEAT_NONQ_KEY_SETTING,
+    S390_FEAT_AP_FACILITIES_TEST,
     S390_FEAT_EXTENDED_TRANSLATION_2,
     S390_FEAT_MSA,
     S390_FEAT_LONG_DISPLACEMENT,
@@ -119,6 +121,7 @@ typedef enum {
     /* Misc */
     S390_FEAT_DAT_ENH_2,
     S390_FEAT_CMM,
+    S390_FEAT_AP,
 
     /* PLO */
     S390_FEAT_PLO_CL,
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
index 265d25c937bb..7c253ff308c5 100644
--- a/target/s390x/cpu_models.c
+++ b/target/s390x/cpu_models.c
@@ -786,6 +786,8 @@ static void check_consistency(const S390CPUModel *model)
         { S390_FEAT_PRNO_TRNG_QRTCR, S390_FEAT_MSA_EXT_5 },
         { S390_FEAT_PRNO_TRNG, S390_FEAT_MSA_EXT_5 },
         { S390_FEAT_SIE_KSS, S390_FEAT_SIE_F2 },
+        { S390_FEAT_AP_QUERY_CONFIG_INFO, S390_FEAT_AP },
+        { S390_FEAT_AP_FACILITIES_TEST, S390_FEAT_AP },
     };
     int i;
 
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index 384b61cd67b9..70015eaaf5df 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -447,6 +447,9 @@ static uint16_t full_GEN12_GA1[] = {
     S390_FEAT_ADAPTER_INT_SUPPRESSION,
     S390_FEAT_EDAT_2,
     S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
+    S390_FEAT_AP_QUERY_CONFIG_INFO,
+    S390_FEAT_AP_FACILITIES_TEST,
+    S390_FEAT_AP,
 };
 
 static uint16_t full_GEN12_GA2[] = {
-- 
2.19.0.221.g150f307

  parent reply	other threads:[~2018-10-09 17:52 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-09 17:52 [Qemu-devel] [PATCH v10 0/6] s390x: vfio-ap: guest dedicated crypto adapters Tony Krowiak
2018-10-09 17:52 ` [Qemu-devel] [PATCH v10 1/6] linux-headers: linux header updates for AP support Tony Krowiak
2018-10-10  8:01   ` Cornelia Huck
2018-10-09 17:52 ` Tony Krowiak [this message]
2018-10-09 19:14   ` [Qemu-devel] [PATCH v10 2/6] s390x/cpumodel: Set up CPU model for AP device support Christian Borntraeger
2018-10-09 19:48     ` David Hildenbrand
2018-10-10 13:50       ` Tony Krowiak
2018-10-10  8:11   ` Cornelia Huck
2018-10-10  8:12     ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2018-10-10 11:31   ` [Qemu-devel] " Halil Pasic
2018-10-09 17:52 ` [Qemu-devel] [PATCH v10 3/6] s390x/kvm: enable AP instruction interpretation for guest Tony Krowiak
2018-10-09 19:48   ` David Hildenbrand
2018-10-10  7:19   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-10-10  8:12   ` Christian Borntraeger
2018-10-10 11:38   ` Halil Pasic
2018-10-10 11:53     ` Cornelia Huck
2018-10-09 17:52 ` [Qemu-devel] [PATCH v10 4/6] s390x/ap: base Adjunct Processor (AP) object model Tony Krowiak
2018-10-10  7:28   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-10-10  8:14   ` [Qemu-devel] " Cornelia Huck
2018-10-10 13:59     ` Tony Krowiak
2018-10-10 14:16       ` Cornelia Huck
2018-10-10 11:45   ` [Qemu-devel] [qemu-s390x] " Halil Pasic
2018-10-09 17:52 ` [Qemu-devel] [PATCH v10 5/6] s390x/vfio: ap: Introduce VFIO AP device Tony Krowiak
2018-10-09 19:51   ` David Hildenbrand
2018-10-10  7:29     ` Pierre Morel
2018-10-10  7:55       ` Cornelia Huck
2018-10-10 14:04     ` Tony Krowiak
2018-10-10  8:25   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-10-10  8:52     ` Cornelia Huck
2018-10-10 14:13       ` Tony Krowiak
2018-10-10 14:12     ` Tony Krowiak
2018-10-10  9:21   ` [Qemu-devel] " Cornelia Huck
2018-10-10 15:49     ` Tony Krowiak
2018-10-10 11:52   ` Halil Pasic
2018-10-10 12:33   ` Pierre Morel
2018-10-10 12:37   ` Pierre Morel
2018-10-10 12:49     ` Christian Borntraeger
2018-10-10 14:20       ` Tony Krowiak
2018-10-09 17:52 ` [Qemu-devel] [PATCH v10 6/6] s390: doc: detailed specifications for AP virtualization Tony Krowiak
2018-10-10  8:14   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-10-10 14:23     ` Tony Krowiak
2018-10-10  9:23   ` [Qemu-devel] " Cornelia Huck

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=20181009175226.22138-3-akrowiak@linux.vnet.ibm.com \
    --to=akrowiak@linux.vnet.ibm.com \
    --cc=agraf@suse.de \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=berrange@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=eskultet@redhat.com \
    --cc=fiuczy@linux.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jjherne@linux.vnet.ibm.com \
    --cc=mimu@linux.ibm.com \
    --cc=mjrosato@linux.vnet.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=schwidefsky@de.ibm.com \
    /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).