All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
@ 2018-01-18  8:56 Christian Borntraeger
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 1/3] header sync Christian Borntraeger
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18  8:56 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic,
	Christian Borntraeger

We want to provide more hw features to guests, namely the new bpb
control as well as other transparent facilities that might be
introduced by firmware updates (e.g. the stfle facility 81).

See the kernel discussion for the KVM side
https://www.spinics.net/lists/kernel/msg2700551.html

v2->v3: - use bool for bpbc
	- sort cpu facilities
v1->v2: - style and comment fixes
	- drop transparent facility patch
	- add patch to introduce facility 81

Christian Borntraeger (3):
  header sync
  s390x/kvm: Handle bpb feature
  s390x/kvm: provide stfle.81

 linux-headers/asm-s390/kvm.h    |  9 ++++-----
 linux-headers/linux/kvm.h       |  5 +++--
 target/s390x/cpu.c              |  1 +
 target/s390x/cpu.h              |  1 +
 target/s390x/cpu_features.c     |  2 ++
 target/s390x/cpu_features_def.h |  2 ++
 target/s390x/gen-features.c     |  2 ++
 target/s390x/kvm.c              | 14 ++++++++++++++
 target/s390x/machine.c          | 17 +++++++++++++++++
 9 files changed, 46 insertions(+), 7 deletions(-)

-- 
2.9.4

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PATCH v3 1/3] header sync
  2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
@ 2018-01-18  8:56 ` Christian Borntraeger
  2018-01-18 11:42   ` David Hildenbrand
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18  8:56 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic,
	Christian Borntraeger

replace with proper header sync

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 linux-headers/asm-s390/kvm.h | 9 ++++-----
 linux-headers/linux/kvm.h    | 5 +++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
index 32d372e..11def14 100644
--- a/linux-headers/asm-s390/kvm.h
+++ b/linux-headers/asm-s390/kvm.h
@@ -6,10 +6,6 @@
  *
  * Copyright IBM Corp. 2008
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2 only)
- * as published by the Free Software Foundation.
- *
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *               Christian Borntraeger <borntraeger@de.ibm.com>
  */
@@ -228,6 +224,7 @@ struct kvm_guest_debug_arch {
 #define KVM_SYNC_RICCB  (1UL << 7)
 #define KVM_SYNC_FPRS   (1UL << 8)
 #define KVM_SYNC_GSCB   (1UL << 9)
+#define KVM_SYNC_BPBC   (1UL << 10)
 /* length and alignment of the sdnx as a power of two */
 #define SDNXC 8
 #define SDNXL (1UL << SDNXC)
@@ -251,7 +248,9 @@ struct kvm_sync_regs {
 	};
 	__u8  reserved[512];	/* for future vector expansion */
 	__u32 fpc;		/* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */
-	__u8 padding1[52];	/* riccb needs to be 64byte aligned */
+	__u8 bpbc : 1;		/* bp mode */
+	__u8 reserved2 : 7;
+	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
 	__u8 riccb[64];		/* runtime instrumentation controls block */
 	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
 	union {
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index ce6c2f1..b4503d8 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -630,9 +630,9 @@ struct kvm_s390_irq {
 
 struct kvm_s390_irq_state {
 	__u64 buf;
-	__u32 flags;
+	__u32 flags;        /* will stay unused for compatibility reasons */
 	__u32 len;
-	__u32 reserved[4];
+	__u32 reserved[4];  /* will stay unused for compatibility reasons */
 };
 
 /* for KVM_SET_GUEST_DEBUG */
@@ -932,6 +932,7 @@ struct kvm_ppc_resize_hpt {
 #define KVM_CAP_HYPERV_SYNIC2 148
 #define KVM_CAP_HYPERV_VP_INDEX 149
 #define KVM_CAP_S390_AIS_MIGRATION 150
+#define KVM_CAP_S390_BPB 151
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature
  2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 1/3] header sync Christian Borntraeger
@ 2018-01-18  8:56 ` Christian Borntraeger
  2018-01-18 11:42   ` Thomas Huth
                     ` (2 more replies)
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
                   ` (2 subsequent siblings)
  4 siblings, 3 replies; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18  8:56 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic,
	Christian Borntraeger

We need to handle the bpb control on reset and migration. Normally
stfle.82 is transparent (and the normal guest part works without
hypervisor activity). To prevent any issues we require full
host kernel support for this feature.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 target/s390x/cpu.c              |  1 +
 target/s390x/cpu.h              |  1 +
 target/s390x/cpu_features.c     |  1 +
 target/s390x/cpu_features_def.h |  1 +
 target/s390x/gen-features.c     |  1 +
 target/s390x/kvm.c              | 14 ++++++++++++++
 target/s390x/machine.c          | 17 +++++++++++++++++
 7 files changed, 36 insertions(+)

diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index ae3cee9..d2e6b9f 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -89,6 +89,7 @@ static void s390_cpu_reset(CPUState *s)
     CPUS390XState *env = &cpu->env;
 
     env->pfault_token = -1UL;
+    env->bpbc = false;
     scc->parent_reset(s);
     cpu->env.sigp_order = 0;
     s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index 1a8b6b9..c0ef85d 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -93,6 +93,7 @@ struct CPUS390XState {
 
     uint32_t fpc;          /* floating-point control register */
     uint32_t cc_op;
+    bool bpbc;             /* branch prediction blocking */
 
     float_status fpu_status; /* passed to softfloat lib */
 
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
index 31a4676..5d1c210 100644
--- a/target/s390x/cpu_features.c
+++ b/target/s390x/cpu_features.c
@@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
     FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
     FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
     FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
+    FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
     FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
     FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
     FEAT_INIT("sea_esop2", S390_FEAT_TYPE_STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2"),
diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
index 4b6d4e9..4487cfd 100644
--- a/target/s390x/cpu_features_def.h
+++ b/target/s390x/cpu_features_def.h
@@ -80,6 +80,7 @@ typedef enum {
     S390_FEAT_MSA_EXT_4,
     S390_FEAT_EDAT_2,
     S390_FEAT_DFP_PACKED_CONVERSION,
+    S390_FEAT_BPB,
     S390_FEAT_VECTOR,
     S390_FEAT_INSTRUCTION_EXEC_PROT,
     S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index b24f6ad..563aced 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
  * support these features yet.
  */
 static uint16_t full_GEN7_GA1[] = {
+    S390_FEAT_BPB,
     S390_FEAT_SIE_F2,
     S390_FEAT_SIE_SKEY,
     S390_FEAT_SIE_GPERE,
diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
index 6a18a41..8736001 100644
--- a/target/s390x/kvm.c
+++ b/target/s390x/kvm.c
@@ -490,6 +490,11 @@ int kvm_arch_put_registers(CPUState *cs, int level)
         cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_GSCB;
     }
 
+    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
+        cs->kvm_run->s.regs.bpbc = env->bpbc;
+        cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_BPBC;
+    }
+
     /* Finally the prefix */
     if (can_sync_regs(cs, KVM_SYNC_PREFIX)) {
         cs->kvm_run->s.regs.prefix = env->psa;
@@ -600,6 +605,10 @@ int kvm_arch_get_registers(CPUState *cs)
         memcpy(env->gscb, cs->kvm_run->s.regs.gscb, 32);
     }
 
+    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
+        env->bpbc = cs->kvm_run->s.regs.bpbc;
+    }
+
     /* pfault parameters */
     if (can_sync_regs(cs, KVM_SYNC_PFAULT)) {
         env->pfault_token = cs->kvm_run->s.regs.pft;
@@ -2278,6 +2287,11 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp)
         clear_bit(S390_FEAT_CMM_NT, model->features);
     }
 
+    /* bpb needs kernel support for migration, VSIE and reset */
+    if (!kvm_check_extension(kvm_state, KVM_CAP_S390_BPB)) {
+        clear_bit(S390_FEAT_BPB, model->features);
+    }
+
     /* We emulate a zPCI bus and AEN, therefore we don't need HW support */
     if (pci_available) {
         set_bit(S390_FEAT_ZPCI, model->features);
diff --git a/target/s390x/machine.c b/target/s390x/machine.c
index b78f326..84b4928 100644
--- a/target/s390x/machine.c
+++ b/target/s390x/machine.c
@@ -194,6 +194,22 @@ const VMStateDescription vmstate_gscb = {
         }
 };
 
+static bool bpbc_needed(void *opaque)
+{
+    return s390_has_feat(S390_FEAT_BPB);
+}
+
+const VMStateDescription vmstate_bpbc = {
+    .name = "cpu/bpbc",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .needed = bpbc_needed,
+    .fields = (VMStateField[]) {
+        VMSTATE_BOOL(env.bpbc, S390CPU),
+        VMSTATE_END_OF_LIST()
+    }
+};
+
 const VMStateDescription vmstate_s390_cpu = {
     .name = "cpu",
     .post_load = cpu_post_load,
@@ -228,6 +244,7 @@ const VMStateDescription vmstate_s390_cpu = {
         &vmstate_riccb,
         &vmstate_exval,
         &vmstate_gscb,
+        &vmstate_bpbc,
         NULL
     },
 };
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81
  2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 1/3] header sync Christian Borntraeger
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
@ 2018-01-18  8:56 ` Christian Borntraeger
  2018-01-18 11:05   ` Halil Pasic
                     ` (2 more replies)
  2018-01-18 11:53 ` [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Cornelia Huck
  2018-01-22 10:20 ` Cornelia Huck
  4 siblings, 3 replies; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18  8:56 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic,
	Christian Borntraeger

stfle.81 (ppa15) is a transparent facility that can be passed to the
guest without the need to implement hypervisor support. As this feature
can be provided by firmware we add it to all full models.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 target/s390x/cpu_features.c     | 1 +
 target/s390x/cpu_features_def.h | 1 +
 target/s390x/gen-features.c     | 1 +
 3 files changed, 3 insertions(+)

diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
index 5d1c210..be72aec 100644
--- a/target/s390x/cpu_features.c
+++ b/target/s390x/cpu_features.c
@@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
     FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
     FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
     FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
+    FEAT_INIT("ppa15", S390_FEAT_TYPE_STFL, 81, "PPA15 is installed"),
     FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
     FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
     FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
index 4487cfd..4d93087 100644
--- a/target/s390x/cpu_features_def.h
+++ b/target/s390x/cpu_features_def.h
@@ -80,6 +80,7 @@ typedef enum {
     S390_FEAT_MSA_EXT_4,
     S390_FEAT_EDAT_2,
     S390_FEAT_DFP_PACKED_CONVERSION,
+    S390_FEAT_PPA15,
     S390_FEAT_BPB,
     S390_FEAT_VECTOR,
     S390_FEAT_INSTRUCTION_EXEC_PROT,
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index 563aced..0570f59 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
  * support these features yet.
  */
 static uint16_t full_GEN7_GA1[] = {
+    S390_FEAT_PPA15,
     S390_FEAT_BPB,
     S390_FEAT_SIE_F2,
     S390_FEAT_SIE_SKEY,
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
@ 2018-01-18 11:05   ` Halil Pasic
  2018-01-18 11:43   ` David Hildenbrand
  2018-01-18 11:43   ` Thomas Huth
  2 siblings, 0 replies; 20+ messages in thread
From: Halil Pasic @ 2018-01-18 11:05 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: Janosch Frank, Thomas Huth, David Hildenbrand, qemu-devel,
	Alexander Graf, qemu-s390x, Richard Henderson



On 01/18/2018 09:56 AM, Christian Borntraeger wrote:
> stfle.81 (ppa15) is a transparent facility that can be passed to the
> guest without the need to implement hypervisor support. As this feature
> can be provided by firmware we add it to all full models.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>

Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 1/3] header sync
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 1/3] header sync Christian Borntraeger
@ 2018-01-18 11:42   ` David Hildenbrand
  2018-01-22  8:31     ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
  0 siblings, 1 reply; 20+ messages in thread
From: David Hildenbrand @ 2018-01-18 11:42 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	Richard Henderson, Janosch Frank, Halil Pasic

On 18.01.2018 09:56, Christian Borntraeger wrote:
> replace with proper header sync
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  linux-headers/asm-s390/kvm.h | 9 ++++-----
>  linux-headers/linux/kvm.h    | 5 +++--
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
> index 32d372e..11def14 100644
> --- a/linux-headers/asm-s390/kvm.h
> +++ b/linux-headers/asm-s390/kvm.h
> @@ -6,10 +6,6 @@
>   *
>   * Copyright IBM Corp. 2008
>   *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License (version 2 only)
> - * as published by the Free Software Foundation.
> - *
>   *    Author(s): Carsten Otte <cotte@de.ibm.com>
>   *               Christian Borntraeger <borntraeger@de.ibm.com>
>   */
> @@ -228,6 +224,7 @@ struct kvm_guest_debug_arch {
>  #define KVM_SYNC_RICCB  (1UL << 7)
>  #define KVM_SYNC_FPRS   (1UL << 8)
>  #define KVM_SYNC_GSCB   (1UL << 9)
> +#define KVM_SYNC_BPBC   (1UL << 10)
>  /* length and alignment of the sdnx as a power of two */
>  #define SDNXC 8
>  #define SDNXL (1UL << SDNXC)
> @@ -251,7 +248,9 @@ struct kvm_sync_regs {
>  	};
>  	__u8  reserved[512];	/* for future vector expansion */
>  	__u32 fpc;		/* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */
> -	__u8 padding1[52];	/* riccb needs to be 64byte aligned */
> +	__u8 bpbc : 1;		/* bp mode */
> +	__u8 reserved2 : 7;
> +	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
>  	__u8 riccb[64];		/* runtime instrumentation controls block */
>  	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
>  	union {
> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> index ce6c2f1..b4503d8 100644
> --- a/linux-headers/linux/kvm.h
> +++ b/linux-headers/linux/kvm.h
> @@ -630,9 +630,9 @@ struct kvm_s390_irq {
>  
>  struct kvm_s390_irq_state {
>  	__u64 buf;
> -	__u32 flags;
> +	__u32 flags;        /* will stay unused for compatibility reasons */
>  	__u32 len;
> -	__u32 reserved[4];
> +	__u32 reserved[4];  /* will stay unused for compatibility reasons */
>  };
>  
>  /* for KVM_SET_GUEST_DEBUG */
> @@ -932,6 +932,7 @@ struct kvm_ppc_resize_hpt {
>  #define KVM_CAP_HYPERV_SYNIC2 148
>  #define KVM_CAP_HYPERV_VP_INDEX 149
>  #define KVM_CAP_S390_AIS_MIGRATION 150
> +#define KVM_CAP_S390_BPB 151
>  
>  #ifdef KVM_CAP_IRQ_ROUTING
>  
> 

Acked-by: David Hildenbrand <david@redhat.com>

-- 

Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
@ 2018-01-18 11:42   ` Thomas Huth
  2018-01-18 11:43   ` David Hildenbrand
  2018-01-18 12:01   ` Halil Pasic
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Huth @ 2018-01-18 11:42 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, David Hildenbrand,
	Richard Henderson, Janosch Frank, Halil Pasic

On 18.01.2018 09:56, Christian Borntraeger wrote:
> We need to handle the bpb control on reset and migration. Normally
> stfle.82 is transparent (and the normal guest part works without
> hypervisor activity). To prevent any issues we require full
> host kernel support for this feature.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  target/s390x/cpu.c              |  1 +
>  target/s390x/cpu.h              |  1 +
>  target/s390x/cpu_features.c     |  1 +
>  target/s390x/cpu_features_def.h |  1 +
>  target/s390x/gen-features.c     |  1 +
>  target/s390x/kvm.c              | 14 ++++++++++++++
>  target/s390x/machine.c          | 17 +++++++++++++++++
>  7 files changed, 36 insertions(+)
> 
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index ae3cee9..d2e6b9f 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -89,6 +89,7 @@ static void s390_cpu_reset(CPUState *s)
>      CPUS390XState *env = &cpu->env;
>  
>      env->pfault_token = -1UL;
> +    env->bpbc = false;
>      scc->parent_reset(s);
>      cpu->env.sigp_order = 0;
>      s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index 1a8b6b9..c0ef85d 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -93,6 +93,7 @@ struct CPUS390XState {
>  
>      uint32_t fpc;          /* floating-point control register */
>      uint32_t cc_op;
> +    bool bpbc;             /* branch prediction blocking */
>  
>      float_status fpu_status; /* passed to softfloat lib */
>  
> diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
> index 31a4676..5d1c210 100644
> --- a/target/s390x/cpu_features.c
> +++ b/target/s390x/cpu_features.c
> @@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
>      FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
>      FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
>      FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
> +    FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
>      FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
>      FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
>      FEAT_INIT("sea_esop2", S390_FEAT_TYPE_STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2"),

I'm not an expert with all this CPU model stuff, but at least for me,
the patch looks fine now.

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
  2018-01-18 11:42   ` Thomas Huth
@ 2018-01-18 11:43   ` David Hildenbrand
  2018-01-18 12:01   ` Halil Pasic
  2 siblings, 0 replies; 20+ messages in thread
From: David Hildenbrand @ 2018-01-18 11:43 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	Richard Henderson, Janosch Frank, Halil Pasic

On 18.01.2018 09:56, Christian Borntraeger wrote:
> We need to handle the bpb control on reset and migration. Normally
> stfle.82 is transparent (and the normal guest part works without
> hypervisor activity). To prevent any issues we require full
> host kernel support for this feature.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  target/s390x/cpu.c              |  1 +
>  target/s390x/cpu.h              |  1 +
>  target/s390x/cpu_features.c     |  1 +
>  target/s390x/cpu_features_def.h |  1 +
>  target/s390x/gen-features.c     |  1 +
>  target/s390x/kvm.c              | 14 ++++++++++++++
>  target/s390x/machine.c          | 17 +++++++++++++++++
>  7 files changed, 36 insertions(+)
> 
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index ae3cee9..d2e6b9f 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -89,6 +89,7 @@ static void s390_cpu_reset(CPUState *s)
>      CPUS390XState *env = &cpu->env;
>  
>      env->pfault_token = -1UL;
> +    env->bpbc = false;
>      scc->parent_reset(s);
>      cpu->env.sigp_order = 0;
>      s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index 1a8b6b9..c0ef85d 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -93,6 +93,7 @@ struct CPUS390XState {
>  
>      uint32_t fpc;          /* floating-point control register */
>      uint32_t cc_op;
> +    bool bpbc;             /* branch prediction blocking */
>  
>      float_status fpu_status; /* passed to softfloat lib */
>  
> diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
> index 31a4676..5d1c210 100644
> --- a/target/s390x/cpu_features.c
> +++ b/target/s390x/cpu_features.c
> @@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
>      FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
>      FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
>      FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
> +    FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
>      FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
>      FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
>      FEAT_INIT("sea_esop2", S390_FEAT_TYPE_STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2"),
> diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
> index 4b6d4e9..4487cfd 100644
> --- a/target/s390x/cpu_features_def.h
> +++ b/target/s390x/cpu_features_def.h
> @@ -80,6 +80,7 @@ typedef enum {
>      S390_FEAT_MSA_EXT_4,
>      S390_FEAT_EDAT_2,
>      S390_FEAT_DFP_PACKED_CONVERSION,
> +    S390_FEAT_BPB,
>      S390_FEAT_VECTOR,
>      S390_FEAT_INSTRUCTION_EXEC_PROT,
>      S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
> diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
> index b24f6ad..563aced 100644
> --- a/target/s390x/gen-features.c
> +++ b/target/s390x/gen-features.c
> @@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
>   * support these features yet.
>   */
>  static uint16_t full_GEN7_GA1[] = {
> +    S390_FEAT_BPB,
>      S390_FEAT_SIE_F2,
>      S390_FEAT_SIE_SKEY,
>      S390_FEAT_SIE_GPERE,
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index 6a18a41..8736001 100644
> --- a/target/s390x/kvm.c
> +++ b/target/s390x/kvm.c
> @@ -490,6 +490,11 @@ int kvm_arch_put_registers(CPUState *cs, int level)
>          cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_GSCB;
>      }
>  
> +    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
> +        cs->kvm_run->s.regs.bpbc = env->bpbc;
> +        cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_BPBC;
> +    }
> +
>      /* Finally the prefix */
>      if (can_sync_regs(cs, KVM_SYNC_PREFIX)) {
>          cs->kvm_run->s.regs.prefix = env->psa;
> @@ -600,6 +605,10 @@ int kvm_arch_get_registers(CPUState *cs)
>          memcpy(env->gscb, cs->kvm_run->s.regs.gscb, 32);
>      }
>  
> +    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
> +        env->bpbc = cs->kvm_run->s.regs.bpbc;
> +    }
> +
>      /* pfault parameters */
>      if (can_sync_regs(cs, KVM_SYNC_PFAULT)) {
>          env->pfault_token = cs->kvm_run->s.regs.pft;
> @@ -2278,6 +2287,11 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp)
>          clear_bit(S390_FEAT_CMM_NT, model->features);
>      }
>  
> +    /* bpb needs kernel support for migration, VSIE and reset */
> +    if (!kvm_check_extension(kvm_state, KVM_CAP_S390_BPB)) {
> +        clear_bit(S390_FEAT_BPB, model->features);
> +    }
> +
>      /* We emulate a zPCI bus and AEN, therefore we don't need HW support */
>      if (pci_available) {
>          set_bit(S390_FEAT_ZPCI, model->features);
> diff --git a/target/s390x/machine.c b/target/s390x/machine.c
> index b78f326..84b4928 100644
> --- a/target/s390x/machine.c
> +++ b/target/s390x/machine.c
> @@ -194,6 +194,22 @@ const VMStateDescription vmstate_gscb = {
>          }
>  };
>  
> +static bool bpbc_needed(void *opaque)
> +{
> +    return s390_has_feat(S390_FEAT_BPB);
> +}
> +
> +const VMStateDescription vmstate_bpbc = {
> +    .name = "cpu/bpbc",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .needed = bpbc_needed,
> +    .fields = (VMStateField[]) {
> +        VMSTATE_BOOL(env.bpbc, S390CPU),
> +        VMSTATE_END_OF_LIST()
> +    }
> +};
> +
>  const VMStateDescription vmstate_s390_cpu = {
>      .name = "cpu",
>      .post_load = cpu_post_load,
> @@ -228,6 +244,7 @@ const VMStateDescription vmstate_s390_cpu = {
>          &vmstate_riccb,
>          &vmstate_exval,
>          &vmstate_gscb,
> +        &vmstate_bpbc,
>          NULL
>      },
>  };
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 

Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
  2018-01-18 11:05   ` Halil Pasic
@ 2018-01-18 11:43   ` David Hildenbrand
  2018-01-18 11:43   ` Thomas Huth
  2 siblings, 0 replies; 20+ messages in thread
From: David Hildenbrand @ 2018-01-18 11:43 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	Richard Henderson, Janosch Frank, Halil Pasic

On 18.01.2018 09:56, Christian Borntraeger wrote:
> stfle.81 (ppa15) is a transparent facility that can be passed to the
> guest without the need to implement hypervisor support. As this feature
> can be provided by firmware we add it to all full models.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  target/s390x/cpu_features.c     | 1 +
>  target/s390x/cpu_features_def.h | 1 +
>  target/s390x/gen-features.c     | 1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
> index 5d1c210..be72aec 100644
> --- a/target/s390x/cpu_features.c
> +++ b/target/s390x/cpu_features.c
> @@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
>      FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
>      FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
>      FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
> +    FEAT_INIT("ppa15", S390_FEAT_TYPE_STFL, 81, "PPA15 is installed"),
>      FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
>      FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
>      FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
> diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
> index 4487cfd..4d93087 100644
> --- a/target/s390x/cpu_features_def.h
> +++ b/target/s390x/cpu_features_def.h
> @@ -80,6 +80,7 @@ typedef enum {
>      S390_FEAT_MSA_EXT_4,
>      S390_FEAT_EDAT_2,
>      S390_FEAT_DFP_PACKED_CONVERSION,
> +    S390_FEAT_PPA15,
>      S390_FEAT_BPB,
>      S390_FEAT_VECTOR,
>      S390_FEAT_INSTRUCTION_EXEC_PROT,
> diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
> index 563aced..0570f59 100644
> --- a/target/s390x/gen-features.c
> +++ b/target/s390x/gen-features.c
> @@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
>   * support these features yet.
>   */
>  static uint16_t full_GEN7_GA1[] = {
> +    S390_FEAT_PPA15,
>      S390_FEAT_BPB,
>      S390_FEAT_SIE_F2,
>      S390_FEAT_SIE_SKEY,
> 

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 

Thanks,

David / dhildenb

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
  2018-01-18 11:05   ` Halil Pasic
  2018-01-18 11:43   ` David Hildenbrand
@ 2018-01-18 11:43   ` Thomas Huth
  2 siblings, 0 replies; 20+ messages in thread
From: Thomas Huth @ 2018-01-18 11:43 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, David Hildenbrand,
	Richard Henderson, Janosch Frank, Halil Pasic

On 18.01.2018 09:56, Christian Borntraeger wrote:
> stfle.81 (ppa15) is a transparent facility that can be passed to the
> guest without the need to implement hypervisor support. As this feature
> can be provided by firmware we add it to all full models.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  target/s390x/cpu_features.c     | 1 +
>  target/s390x/cpu_features_def.h | 1 +
>  target/s390x/gen-features.c     | 1 +
>  3 files changed, 3 insertions(+)
>

Reviewed-by: Thomas Huth <thuth@redhat.com>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
                   ` (2 preceding siblings ...)
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
@ 2018-01-18 11:53 ` Cornelia Huck
  2018-01-18 12:47   ` Christian Borntraeger
  2018-01-22 10:20 ` Cornelia Huck
  4 siblings, 1 reply; 20+ messages in thread
From: Cornelia Huck @ 2018-01-18 11:53 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic

On Thu, 18 Jan 2018 09:56:25 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> We want to provide more hw features to guests, namely the new bpb
> control as well as other transparent facilities that might be
> introduced by firmware updates (e.g. the stfle facility 81).
> 
> See the kernel discussion for the KVM side
> https://www.spinics.net/lists/kernel/msg2700551.html
> 
> v2->v3: - use bool for bpbc
> 	- sort cpu facilities
> v1->v2: - style and comment fixes
> 	- drop transparent facility patch
> 	- add patch to introduce facility 81
> 
> Christian Borntraeger (3):
>   header sync
>   s390x/kvm: Handle bpb feature
>   s390x/kvm: provide stfle.81
> 
>  linux-headers/asm-s390/kvm.h    |  9 ++++-----
>  linux-headers/linux/kvm.h       |  5 +++--
>  target/s390x/cpu.c              |  1 +
>  target/s390x/cpu.h              |  1 +
>  target/s390x/cpu_features.c     |  2 ++
>  target/s390x/cpu_features_def.h |  2 ++
>  target/s390x/gen-features.c     |  2 ++
>  target/s390x/kvm.c              | 14 ++++++++++++++
>  target/s390x/machine.c          | 17 +++++++++++++++++
>  9 files changed, 46 insertions(+), 7 deletions(-)
> 

Thanks, I've queued this. Once the bpb code lands in Linux, I'll
replace patch 1 with a proper header sync and push to s390-next.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature
  2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
  2018-01-18 11:42   ` Thomas Huth
  2018-01-18 11:43   ` David Hildenbrand
@ 2018-01-18 12:01   ` Halil Pasic
  2018-01-18 12:09     ` Christian Borntraeger
  2 siblings, 1 reply; 20+ messages in thread
From: Halil Pasic @ 2018-01-18 12:01 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck
  Cc: Janosch Frank, Thomas Huth, David Hildenbrand, qemu-devel,
	Alexander Graf, qemu-s390x, Richard Henderson



On 01/18/2018 09:56 AM, Christian Borntraeger wrote:
> We need to handle the bpb control on reset and migration. Normally
> stfle.82 is transparent (and the normal guest part works without
> hypervisor activity). To prevent any issues we require full
> host kernel support for this feature.
> 
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  target/s390x/cpu.c              |  1 +
>  target/s390x/cpu.h              |  1 +
>  target/s390x/cpu_features.c     |  1 +
>  target/s390x/cpu_features_def.h |  1 +
>  target/s390x/gen-features.c     |  1 +
>  target/s390x/kvm.c              | 14 ++++++++++++++
>  target/s390x/machine.c          | 17 +++++++++++++++++
>  7 files changed, 36 insertions(+)
> 
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index ae3cee9..d2e6b9f 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -89,6 +89,7 @@ static void s390_cpu_reset(CPUState *s)
>      CPUS390XState *env = &cpu->env;
> 
>      env->pfault_token = -1UL;
> +    env->bpbc = false;
>      scc->parent_reset(s);
>      cpu->env.sigp_order = 0;
>      s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
> index 1a8b6b9..c0ef85d 100644
> --- a/target/s390x/cpu.h
> +++ b/target/s390x/cpu.h
> @@ -93,6 +93,7 @@ struct CPUS390XState {
> 
>      uint32_t fpc;          /* floating-point control register */
>      uint32_t cc_op;
> +    bool bpbc;             /* branch prediction blocking */
> 
>      float_status fpu_status; /* passed to softfloat lib */
> 
> diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
> index 31a4676..5d1c210 100644
> --- a/target/s390x/cpu_features.c
> +++ b/target/s390x/cpu_features.c
> @@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
>      FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
>      FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
>      FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
> +    FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
>      FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
>      FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
>      FEAT_INIT("sea_esop2", S390_FEAT_TYPE_STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2"),
> diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
> index 4b6d4e9..4487cfd 100644
> --- a/target/s390x/cpu_features_def.h
> +++ b/target/s390x/cpu_features_def.h
> @@ -80,6 +80,7 @@ typedef enum {
>      S390_FEAT_MSA_EXT_4,
>      S390_FEAT_EDAT_2,
>      S390_FEAT_DFP_PACKED_CONVERSION,
> +    S390_FEAT_BPB,
>      S390_FEAT_VECTOR,
>      S390_FEAT_INSTRUCTION_EXEC_PROT,
>      S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
> diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
> index b24f6ad..563aced 100644
> --- a/target/s390x/gen-features.c
> +++ b/target/s390x/gen-features.c
> @@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
>   * support these features yet.
>   */
>  static uint16_t full_GEN7_GA1[] = {
> +    S390_FEAT_BPB,
>      S390_FEAT_SIE_F2,
>      S390_FEAT_SIE_SKEY,
>      S390_FEAT_SIE_GPERE,
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index 6a18a41..8736001 100644
> --- a/target/s390x/kvm.c
> +++ b/target/s390x/kvm.c
> @@ -490,6 +490,11 @@ int kvm_arch_put_registers(CPUState *cs, int level)
>          cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_GSCB;
>      }
> 
> +    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {

This is for compat machines <= 2.7, or? Should the guest of these get the
STFLE bit 82 regardless of the outcome of kvm_check_extension(kvm_state, KVM_CAP_S390_BPB)
if we have STFLE bit 82 in the host?

> +        cs->kvm_run->s.regs.bpbc = env->bpbc;
> +        cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_BPBC;
> +    }
> +
>      /* Finally the prefix */
>      if (can_sync_regs(cs, KVM_SYNC_PREFIX)) {
>          cs->kvm_run->s.regs.prefix = env->psa;
> @@ -600,6 +605,10 @@ int kvm_arch_get_registers(CPUState *cs)
>          memcpy(env->gscb, cs->kvm_run->s.regs.gscb, 32);
>      }
> 
> +    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
> +        env->bpbc = cs->kvm_run->s.regs.bpbc;
> +    }
> +
>      /* pfault parameters */
>      if (can_sync_regs(cs, KVM_SYNC_PFAULT)) {
>          env->pfault_token = cs->kvm_run->s.regs.pft;
> @@ -2278,6 +2287,11 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp)
>          clear_bit(S390_FEAT_CMM_NT, model->features);
>      }
> 
> +    /* bpb needs kernel support for migration, VSIE and reset */

I would not mind being a little more verbose about the fact that
although this is a non-hyp bit it should have been a hyp manged bit,
and that is why we need the KVM_CAP_S390_BPB.

> +    if (!kvm_check_extension(kvm_state, KVM_CAP_S390_BPB)) {
> +        clear_bit(S390_FEAT_BPB, model->features);
> +    }
> +
>      /* We emulate a zPCI bus and AEN, therefore we don't need HW support */
>      if (pci_available) {
>          set_bit(S390_FEAT_ZPCI, model->features);
> diff --git a/target/s390x/machine.c b/target/s390x/machine.c
> index b78f326..84b4928 100644
> --- a/target/s390x/machine.c
> +++ b/target/s390x/machine.c
> @@ -194,6 +194,22 @@ const VMStateDescription vmstate_gscb = {
>          }
>  };
> 
> +static bool bpbc_needed(void *opaque)
> +{
> +    return s390_has_feat(S390_FEAT_BPB);
> +}
> +
> +const VMStateDescription vmstate_bpbc = {
> +    .name = "cpu/bpbc",
> +    .version_id = 1,
> +    .minimum_version_id = 1,
> +    .needed = bpbc_needed,
> +    .fields = (VMStateField[]) {
> +        VMSTATE_BOOL(env.bpbc, S390CPU),
> +        VMSTATE_END_OF_LIST()
> +    }
> +};
> +
>  const VMStateDescription vmstate_s390_cpu = {
>      .name = "cpu",
>      .post_load = cpu_post_load,
> @@ -228,6 +244,7 @@ const VMStateDescription vmstate_s390_cpu = {
>          &vmstate_riccb,
>          &vmstate_exval,
>          &vmstate_gscb,
> +        &vmstate_bpbc,
>          NULL
>      },
>  };
> 

My comments aren't anything major, so:

Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature
  2018-01-18 12:01   ` Halil Pasic
@ 2018-01-18 12:09     ` Christian Borntraeger
  0 siblings, 0 replies; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18 12:09 UTC (permalink / raw)
  To: Halil Pasic, Cornelia Huck
  Cc: Janosch Frank, Thomas Huth, David Hildenbrand, qemu-devel,
	Alexander Graf, qemu-s390x, Richard Henderson



On 01/18/2018 01:01 PM, Halil Pasic wrote:
> 
> 
> On 01/18/2018 09:56 AM, Christian Borntraeger wrote:
>> We need to handle the bpb control on reset and migration. Normally
>> stfle.82 is transparent (and the normal guest part works without
>> hypervisor activity). To prevent any issues we require full
>> host kernel support for this feature.
>>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> ---
>>  target/s390x/cpu.c              |  1 +
>>  target/s390x/cpu.h              |  1 +
>>  target/s390x/cpu_features.c     |  1 +
>>  target/s390x/cpu_features_def.h |  1 +
>>  target/s390x/gen-features.c     |  1 +
>>  target/s390x/kvm.c              | 14 ++++++++++++++
>>  target/s390x/machine.c          | 17 +++++++++++++++++
>>  7 files changed, 36 insertions(+)
>>
>> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
>> index ae3cee9..d2e6b9f 100644
>> --- a/target/s390x/cpu.c
>> +++ b/target/s390x/cpu.c
>> @@ -89,6 +89,7 @@ static void s390_cpu_reset(CPUState *s)
>>      CPUS390XState *env = &cpu->env;
>>
>>      env->pfault_token = -1UL;
>> +    env->bpbc = false;
>>      scc->parent_reset(s);
>>      cpu->env.sigp_order = 0;
>>      s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
>> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
>> index 1a8b6b9..c0ef85d 100644
>> --- a/target/s390x/cpu.h
>> +++ b/target/s390x/cpu.h
>> @@ -93,6 +93,7 @@ struct CPUS390XState {
>>
>>      uint32_t fpc;          /* floating-point control register */
>>      uint32_t cc_op;
>> +    bool bpbc;             /* branch prediction blocking */
>>
>>      float_status fpu_status; /* passed to softfloat lib */
>>
>> diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
>> index 31a4676..5d1c210 100644
>> --- a/target/s390x/cpu_features.c
>> +++ b/target/s390x/cpu_features.c
>> @@ -89,6 +89,7 @@ static const S390FeatDef s390_features[] = {
>>      FEAT_INIT("msa4-base", S390_FEAT_TYPE_STFL, 77, "Message-security-assist-extension-4 facility (excluding subfunctions)"),
>>      FEAT_INIT("edat2", S390_FEAT_TYPE_STFL, 78, "Enhanced-DAT facility 2"),
>>      FEAT_INIT("dfppc", S390_FEAT_TYPE_STFL, 80, "Decimal-floating-point packed-conversion facility"),
>> +    FEAT_INIT("bpb", S390_FEAT_TYPE_STFL, 82, "Branch Prediction Blocking"),
>>      FEAT_INIT("vx", S390_FEAT_TYPE_STFL, 129, "Vector facility"),
>>      FEAT_INIT("iep", S390_FEAT_TYPE_STFL, 130, "Instruction-execution-protection facility"),
>>      FEAT_INIT("sea_esop2", S390_FEAT_TYPE_STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2"),
>> diff --git a/target/s390x/cpu_features_def.h b/target/s390x/cpu_features_def.h
>> index 4b6d4e9..4487cfd 100644
>> --- a/target/s390x/cpu_features_def.h
>> +++ b/target/s390x/cpu_features_def.h
>> @@ -80,6 +80,7 @@ typedef enum {
>>      S390_FEAT_MSA_EXT_4,
>>      S390_FEAT_EDAT_2,
>>      S390_FEAT_DFP_PACKED_CONVERSION,
>> +    S390_FEAT_BPB,
>>      S390_FEAT_VECTOR,
>>      S390_FEAT_INSTRUCTION_EXEC_PROT,
>>      S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2,
>> diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
>> index b24f6ad..563aced 100644
>> --- a/target/s390x/gen-features.c
>> +++ b/target/s390x/gen-features.c
>> @@ -352,6 +352,7 @@ static uint16_t base_GEN14_GA1[] = {
>>   * support these features yet.
>>   */
>>  static uint16_t full_GEN7_GA1[] = {
>> +    S390_FEAT_BPB,
>>      S390_FEAT_SIE_F2,
>>      S390_FEAT_SIE_SKEY,
>>      S390_FEAT_SIE_GPERE,
>> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
>> index 6a18a41..8736001 100644
>> --- a/target/s390x/kvm.c
>> +++ b/target/s390x/kvm.c
>> @@ -490,6 +490,11 @@ int kvm_arch_put_registers(CPUState *cs, int level)
>>          cs->kvm_run->kvm_dirty_regs |= KVM_SYNC_GSCB;
>>      }
>>
>> +    if (can_sync_regs(cs, KVM_SYNC_BPBC)) {
> 
> This is for compat machines <= 2.7, or? Should the guest of these get the
> STFLE bit 82 regardless of the outcome of kvm_check_extension(kvm_state, KVM_CAP_S390_BPB)
> if we have STFLE bit 82 in the host?

I mirror the bpbc in the env of the CPU,  mostly to properly reset the bpbc value on reset. 
We need this here to have the up-to-date values in QEMU (on synchronize-state) and kernel
(on synchronize-back).
So whenever the kernel exposes this we will reset bpbc on reset.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18 11:53 ` [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Cornelia Huck
@ 2018-01-18 12:47   ` Christian Borntraeger
  2018-01-18 13:15     ` Cornelia Huck
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-18 12:47 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic



On 01/18/2018 12:53 PM, Cornelia Huck wrote:
> On Thu, 18 Jan 2018 09:56:25 +0100
> Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> 
>> We want to provide more hw features to guests, namely the new bpb
>> control as well as other transparent facilities that might be
>> introduced by firmware updates (e.g. the stfle facility 81).
>>
>> See the kernel discussion for the KVM side
>> https://www.spinics.net/lists/kernel/msg2700551.html
>>
>> v2->v3: - use bool for bpbc
>> 	- sort cpu facilities
>> v1->v2: - style and comment fixes
>> 	- drop transparent facility patch
>> 	- add patch to introduce facility 81
>>
>> Christian Borntraeger (3):
>>   header sync
>>   s390x/kvm: Handle bpb feature
>>   s390x/kvm: provide stfle.81
>>
>>  linux-headers/asm-s390/kvm.h    |  9 ++++-----
>>  linux-headers/linux/kvm.h       |  5 +++--
>>  target/s390x/cpu.c              |  1 +
>>  target/s390x/cpu.h              |  1 +
>>  target/s390x/cpu_features.c     |  2 ++
>>  target/s390x/cpu_features_def.h |  2 ++
>>  target/s390x/gen-features.c     |  2 ++
>>  target/s390x/kvm.c              | 14 ++++++++++++++
>>  target/s390x/machine.c          | 17 +++++++++++++++++
>>  9 files changed, 46 insertions(+), 7 deletions(-)
>>
> 
> Thanks, I've queued this. Once the bpb code lands in Linux, I'll
> replace patch 1 with a proper header sync and push to s390-next.

Have the x86 features been marked as stable? If the answer is yes,
shall we mark these patches for stable as well?

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18 12:47   ` Christian Borntraeger
@ 2018-01-18 13:15     ` Cornelia Huck
  2018-01-18 13:31       ` Christian Ehrhardt
  0 siblings, 1 reply; 20+ messages in thread
From: Cornelia Huck @ 2018-01-18 13:15 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic

On Thu, 18 Jan 2018 13:47:54 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> Have the x86 features been marked as stable? If the answer is yes,
> shall we mark these patches for stable as well?

Doesn't look like it.

TBH, I'm not quite sure whether this should go into stable as I'm a bit
unclear what our use case for stable is. It seems to be mostly "don't
let people run into known crashes" or something like that.

These patches are not very useful on their own unless you run on a z
with updated microcode and an updated host kernel. OTOH, the patches
should be low risk.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18 13:15     ` Cornelia Huck
@ 2018-01-18 13:31       ` Christian Ehrhardt
  2018-01-18 14:48         ` Cornelia Huck
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Ehrhardt @ 2018-01-18 13:31 UTC (permalink / raw)
  To: Cornelia Huck
  Cc: Christian Borntraeger, Janosch Frank, Thomas Huth,
	David Hildenbrand, qemu-devel, Alexander Graf, qemu-s390x,
	Halil Pasic, Richard Henderson

On Thu, Jan 18, 2018 at 2:15 PM, Cornelia Huck <cohuck@redhat.com> wrote:
> On Thu, 18 Jan 2018 13:47:54 +0100
> Christian Borntraeger <borntraeger@de.ibm.com> wrote:
>
>> Have the x86 features been marked as stable? If the answer is yes,
>> shall we mark these patches for stable as well?
>
> Doesn't look like it.
>
> TBH, I'm not quite sure whether this should go into stable as I'm a bit
> unclear what our use case for stable is. It seems to be mostly "don't
> let people run into known crashes" or something like that.

I read the public statement [1] as "... non-x86 processors ...
backported to recent stable releases." or did the changes in
discussion here end up structurally so different that this doesn't
apply anymore?

[1]: https://www.qemu.org/2018/01/04/spectre/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18 13:31       ` Christian Ehrhardt
@ 2018-01-18 14:48         ` Cornelia Huck
  0 siblings, 0 replies; 20+ messages in thread
From: Cornelia Huck @ 2018-01-18 14:48 UTC (permalink / raw)
  To: Christian Ehrhardt
  Cc: Christian Borntraeger, Janosch Frank, Thomas Huth,
	David Hildenbrand, qemu-devel, Alexander Graf, qemu-s390x,
	Halil Pasic, Richard Henderson

On Thu, 18 Jan 2018 14:31:50 +0100
Christian Ehrhardt <christian.ehrhardt@canonical.com> wrote:

> On Thu, Jan 18, 2018 at 2:15 PM, Cornelia Huck <cohuck@redhat.com> wrote:
> > On Thu, 18 Jan 2018 13:47:54 +0100
> > Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> >  
> >> Have the x86 features been marked as stable? If the answer is yes,
> >> shall we mark these patches for stable as well?  
> >
> > Doesn't look like it.
> >
> > TBH, I'm not quite sure whether this should go into stable as I'm a bit
> > unclear what our use case for stable is. It seems to be mostly "don't
> > let people run into known crashes" or something like that.  
> 
> I read the public statement [1] as "... non-x86 processors ...
> backported to recent stable releases." or did the changes in
> discussion here end up structurally so different that this doesn't
> apply anymore?
> 
> [1]: https://www.qemu.org/2018/01/04/spectre/

OK, that would read as "do backport". (The x86 patches I saw didn't
carry an explicit cc:stable.)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH v3 1/3] header sync
  2018-01-18 11:42   ` David Hildenbrand
@ 2018-01-22  8:31     ` Christian Borntraeger
  2018-01-22  8:47       ` Cornelia Huck
  0 siblings, 1 reply; 20+ messages in thread
From: Christian Borntraeger @ 2018-01-22  8:31 UTC (permalink / raw)
  To: David Hildenbrand, Cornelia Huck
  Cc: Janosch Frank, Thomas Huth, qemu-devel, Alexander Graf,
	qemu-s390x, Halil Pasic, Richard Henderson

kernel patch has now landed as 

commit 35b3fde6203b932b2b1a5b53b3d8808abc9c4f60
    KVM: s390: wire up bpb feature

in Linus tree.


The new number is
#define KVM_CAP_S390_BPB 152
(instead of 151)
    




On 01/18/2018 12:42 PM, David Hildenbrand wrote:
> On 18.01.2018 09:56, Christian Borntraeger wrote:
>> replace with proper header sync
>>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> ---
>>  linux-headers/asm-s390/kvm.h | 9 ++++-----
>>  linux-headers/linux/kvm.h    | 5 +++--
>>  2 files changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/linux-headers/asm-s390/kvm.h b/linux-headers/asm-s390/kvm.h
>> index 32d372e..11def14 100644
>> --- a/linux-headers/asm-s390/kvm.h
>> +++ b/linux-headers/asm-s390/kvm.h
>> @@ -6,10 +6,6 @@
>>   *
>>   * Copyright IBM Corp. 2008
>>   *
>> - * This program is free software; you can redistribute it and/or modify
>> - * it under the terms of the GNU General Public License (version 2 only)
>> - * as published by the Free Software Foundation.
>> - *
>>   *    Author(s): Carsten Otte <cotte@de.ibm.com>
>>   *               Christian Borntraeger <borntraeger@de.ibm.com>
>>   */
>> @@ -228,6 +224,7 @@ struct kvm_guest_debug_arch {
>>  #define KVM_SYNC_RICCB  (1UL << 7)
>>  #define KVM_SYNC_FPRS   (1UL << 8)
>>  #define KVM_SYNC_GSCB   (1UL << 9)
>> +#define KVM_SYNC_BPBC   (1UL << 10)
>>  /* length and alignment of the sdnx as a power of two */
>>  #define SDNXC 8
>>  #define SDNXL (1UL << SDNXC)
>> @@ -251,7 +248,9 @@ struct kvm_sync_regs {
>>  	};
>>  	__u8  reserved[512];	/* for future vector expansion */
>>  	__u32 fpc;		/* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */
>> -	__u8 padding1[52];	/* riccb needs to be 64byte aligned */
>> +	__u8 bpbc : 1;		/* bp mode */
>> +	__u8 reserved2 : 7;
>> +	__u8 padding1[51];	/* riccb needs to be 64byte aligned */
>>  	__u8 riccb[64];		/* runtime instrumentation controls block */
>>  	__u8 padding2[192];	/* sdnx needs to be 256byte aligned */
>>  	union {
>> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
>> index ce6c2f1..b4503d8 100644
>> --- a/linux-headers/linux/kvm.h
>> +++ b/linux-headers/linux/kvm.h
>> @@ -630,9 +630,9 @@ struct kvm_s390_irq {
>>  
>>  struct kvm_s390_irq_state {
>>  	__u64 buf;
>> -	__u32 flags;
>> +	__u32 flags;        /* will stay unused for compatibility reasons */
>>  	__u32 len;
>> -	__u32 reserved[4];
>> +	__u32 reserved[4];  /* will stay unused for compatibility reasons */
>>  };
>>  
>>  /* for KVM_SET_GUEST_DEBUG */
>> @@ -932,6 +932,7 @@ struct kvm_ppc_resize_hpt {
>>  #define KVM_CAP_HYPERV_SYNIC2 148
>>  #define KVM_CAP_HYPERV_VP_INDEX 149
>>  #define KVM_CAP_S390_AIS_MIGRATION 150
>> +#define KVM_CAP_S390_BPB 151
>>  
>>  #ifdef KVM_CAP_IRQ_ROUTING
>>  
>>
> 
> Acked-by: David Hildenbrand <david@redhat.com>
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [qemu-s390x] [PATCH v3 1/3] header sync
  2018-01-22  8:31     ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
@ 2018-01-22  8:47       ` Cornelia Huck
  0 siblings, 0 replies; 20+ messages in thread
From: Cornelia Huck @ 2018-01-22  8:47 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: David Hildenbrand, Janosch Frank, Thomas Huth, qemu-devel,
	Alexander Graf, qemu-s390x, Halil Pasic, Richard Henderson

On Mon, 22 Jan 2018 09:31:43 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> kernel patch has now landed as 
> 
> commit 35b3fde6203b932b2b1a5b53b3d8808abc9c4f60
>     KVM: s390: wire up bpb feature
> 
> in Linus tree.
> 
> 
> The new number is
> #define KVM_CAP_S390_BPB 152
> (instead of 151)

I'll replace this with a proper header sync and push out later today.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features
  2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
                   ` (3 preceding siblings ...)
  2018-01-18 11:53 ` [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Cornelia Huck
@ 2018-01-22 10:20 ` Cornelia Huck
  4 siblings, 0 replies; 20+ messages in thread
From: Cornelia Huck @ 2018-01-22 10:20 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: qemu-devel, qemu-s390x, Alexander Graf, Thomas Huth,
	David Hildenbrand, Richard Henderson, Janosch Frank, Halil Pasic

On Thu, 18 Jan 2018 09:56:25 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> We want to provide more hw features to guests, namely the new bpb
> control as well as other transparent facilities that might be
> introduced by firmware updates (e.g. the stfle facility 81).
> 
> See the kernel discussion for the KVM side
> https://www.spinics.net/lists/kernel/msg2700551.html
> 
> v2->v3: - use bool for bpbc
> 	- sort cpu facilities
> v1->v2: - style and comment fixes
> 	- drop transparent facility patch
> 	- add patch to introduce facility 81
> 
> Christian Borntraeger (3):
>   header sync
>   s390x/kvm: Handle bpb feature
>   s390x/kvm: provide stfle.81
> 
>  linux-headers/asm-s390/kvm.h    |  9 ++++-----
>  linux-headers/linux/kvm.h       |  5 +++--
>  target/s390x/cpu.c              |  1 +
>  target/s390x/cpu.h              |  1 +
>  target/s390x/cpu_features.c     |  2 ++
>  target/s390x/cpu_features_def.h |  2 ++
>  target/s390x/gen-features.c     |  2 ++
>  target/s390x/kvm.c              | 14 ++++++++++++++
>  target/s390x/machine.c          | 17 +++++++++++++++++
>  9 files changed, 46 insertions(+), 7 deletions(-)
> 

Thanks, queued to s390-next (with a proper headers update).

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2018-01-22 10:21 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-18  8:56 [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Christian Borntraeger
2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 1/3] header sync Christian Borntraeger
2018-01-18 11:42   ` David Hildenbrand
2018-01-22  8:31     ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2018-01-22  8:47       ` Cornelia Huck
2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 2/3] s390x/kvm: Handle bpb feature Christian Borntraeger
2018-01-18 11:42   ` Thomas Huth
2018-01-18 11:43   ` David Hildenbrand
2018-01-18 12:01   ` Halil Pasic
2018-01-18 12:09     ` Christian Borntraeger
2018-01-18  8:56 ` [Qemu-devel] [PATCH v3 3/3] s390x/kvm: provide stfle.81 Christian Borntraeger
2018-01-18 11:05   ` Halil Pasic
2018-01-18 11:43   ` David Hildenbrand
2018-01-18 11:43   ` Thomas Huth
2018-01-18 11:53 ` [Qemu-devel] [PATCH v3 0/3] s390x/kvm: implement new hardware/firmware features Cornelia Huck
2018-01-18 12:47   ` Christian Borntraeger
2018-01-18 13:15     ` Cornelia Huck
2018-01-18 13:31       ` Christian Ehrhardt
2018-01-18 14:48         ` Cornelia Huck
2018-01-22 10:20 ` Cornelia Huck

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.