mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	"David Hildenbrand" <david@redhat.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Radim Krčmář" <rkrcmar@redhat.com>
Subject: Re: [PATCH 4.4 12/50] KVM: s390: wire up bpb feature
Date: Mon, 30 Apr 2018 20:30:52 +0200	[thread overview]
Message-ID: <e391ae0a-e6fd-2384-f595-543710eee5f8@de.ibm.com> (raw)
In-Reply-To: <20180430181722.GB12118@kroah.com>



On 04/30/2018 08:17 PM, Greg Kroah-Hartman wrote:
> On Sun, Apr 29, 2018 at 09:51:27AM +0200, Martin Schwidefsky wrote:
>> On Fri, 27 Apr 2018 17:53:46 +0200
>> Christian Borntraeger <borntraeger@de.ibm.com> wrote:
>>
>>> On 04/27/2018 05:46 PM, Greg Kroah-Hartman wrote:
>>>> On Fri, Apr 27, 2018 at 05:17:15PM +0200, Greg Kroah-Hartman wrote:  
>>>>> On Fri, Apr 27, 2018 at 05:10:04PM +0200, Christian Borntraeger wrote:  
>>>>>>
>>>>>>
>>>>>> On 04/27/2018 03:58 PM, Greg Kroah-Hartman wrote:  
>>>>>>> 4.4-stable review patch.  If anyone has any objections, please let me know.
>>>>>>>
>>>>>>> ------------------
>>>>>>>
>>>>>>> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
>>>>>>>
>>>>>>>
>>>>>>> From: Christian Borntraeger <borntraeger@de.ibm.com>  
>>>>>
>>>>> Ick, that is wrong right there, my scripts messed up, this should not
>>>>> have 2 author lines :(
>>>>>
>>>>> I'll go look at all of these, odds are it made the same error
>>>>> everywhere...  
>>>>
>>>> Yes, I've now fixed that up in the queue.  
>>>
>>> As this patch backport was also functionally incorrect and Martin is already away
>>> do you want me to send an updated version?
>>
>> Checked my 4.4 backport git branch and indeed the hunk is misplaced.
>> Sometime I wonder about the patch tool and the hickups it can produce.
>>
>> My take on the replacement patch looks as follows:
>>
>> ---
>> >From 82f20b6237a8d04378c8f4a1614bf32a6c8d8a8b Mon Sep 17 00:00:00 2001
>> From: Christian Borntraeger <borntraeger@de.ibm.com>
>> Date: Wed, 17 Jan 2018 14:44:34 +0100
>> Subject: [PATCH 03/18] KVM: s390: wire up bpb feature
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> [ Upstream commit 35b3fde6203b932b2b1a5b53b3d8808abc9c4f60 ]
>>
>> The new firmware interfaces for branch prediction behaviour changes
>> are transparently available for the guest. Nevertheless, there is
>> new state attached that should be migrated and properly resetted.
>> Provide a mechanism for handling reset, migration and VSIE.
>>
>> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
>> Reviewed-by: David Hildenbrand <david@redhat.com>
>> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
>> [Changed capability number to 152. - Radim]
>> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
>> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
>> ---
>>  arch/s390/include/asm/kvm_host.h |  3 ++-
>>  arch/s390/include/uapi/asm/kvm.h |  3 +++
>>  arch/s390/kvm/kvm-s390.c         | 12 ++++++++++++
>>  include/uapi/linux/kvm.h         |  1 +
>>  4 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
>> index e9a983f40a24..7d9c5917da2b 100644
>> --- a/arch/s390/include/asm/kvm_host.h
>> +++ b/arch/s390/include/asm/kvm_host.h
>> @@ -136,7 +136,8 @@ struct kvm_s390_sie_block {
>>  	__u16	ipa;			/* 0x0056 */
>>  	__u32	ipb;			/* 0x0058 */
>>  	__u32	scaoh;			/* 0x005c */
>> -	__u8	reserved60;		/* 0x0060 */
>> +#define FPF_BPBC 	0x20
>> +	__u8	fpf;			/* 0x0060 */
>>  	__u8	ecb;			/* 0x0061 */
>>  	__u8    ecb2;                   /* 0x0062 */
>>  #define ECB3_AES 0x04
>> diff --git a/arch/s390/include/uapi/asm/kvm.h b/arch/s390/include/uapi/asm/kvm.h
>> index ef1a5fcc6c66..3aec52253c04 100644
>> --- a/arch/s390/include/uapi/asm/kvm.h
>> +++ b/arch/s390/include/uapi/asm/kvm.h
>> @@ -151,6 +151,7 @@ struct kvm_guest_debug_arch {
>>  #define KVM_SYNC_ARCH0  (1UL << 4)
>>  #define KVM_SYNC_PFAULT (1UL << 5)
>>  #define KVM_SYNC_VRS    (1UL << 6)
>> +#define KVM_SYNC_BPBC	(1UL << 10)
>>  /* definition of registers in kvm_run */
>>  struct kvm_sync_regs {
>>  	__u64 prefix;	/* prefix register */
>> @@ -168,6 +169,8 @@ struct kvm_sync_regs {
>>  	__u64 vrs[32][2];	/* vector registers */
>>  	__u8  reserved[512];	/* for future vector expansion */
>>  	__u32 fpc;	/* only valid with vector registers */
>> +	__u8 bpbc : 1;		/* bp mode */
>> +	__u8 reserved2 : 7;
>>  };
>>  
>>  #define KVM_REG_S390_TODPR	(KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1)
>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>> index 23e3f5d77a24..ca03c847127a 100644
>> --- a/arch/s390/kvm/kvm-s390.c
>> +++ b/arch/s390/kvm/kvm-s390.c
>> @@ -257,6 +257,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>>  	case KVM_CAP_S390_VECTOR_REGISTERS:
>>  		r = MACHINE_HAS_VX;
>>  		break;
>> +	case KVM_CAP_S390_BPB:
>> +		r = test_facility(82);
>> +		break;
>>  	default:
>>  		r = 0;
>>  	}
>> @@ -1262,6 +1265,8 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
>>  				    KVM_SYNC_CRS |
>>  				    KVM_SYNC_ARCH0 |
>>  				    KVM_SYNC_PFAULT;
>> +	if (test_kvm_facility(vcpu->kvm, 82))
>> +		vcpu->run->kvm_valid_regs |= KVM_SYNC_BPBC;
>>  	if (test_kvm_facility(vcpu->kvm, 129))
>>  		vcpu->run->kvm_valid_regs |= KVM_SYNC_VRS;
>>  
>> @@ -1327,6 +1332,7 @@ static void kvm_s390_vcpu_initial_reset(struct kvm_vcpu *vcpu)
>>  	current->thread.fpu.fpc = 0;
>>  	vcpu->arch.sie_block->gbea = 1;
>>  	vcpu->arch.sie_block->pp = 0;
>> +	vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
>>  	vcpu->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID;
>>  	kvm_clear_async_pf_completion_queue(vcpu);
>>  	if (!kvm_s390_user_cpu_state_ctrl(vcpu->kvm))
>> @@ -2145,6 +2151,11 @@ static void sync_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>>  		if (vcpu->arch.pfault_token == KVM_S390_PFAULT_TOKEN_INVALID)
>>  			kvm_clear_async_pf_completion_queue(vcpu);
>>  	}
>> +	if ((kvm_run->kvm_dirty_regs & KVM_SYNC_BPBC) &&
>> +	    test_kvm_facility(vcpu->kvm, 82)) {
>> +		vcpu->arch.sie_block->fpf &= ~FPF_BPBC;
>> +		vcpu->arch.sie_block->fpf |= kvm_run->s.regs.bpbc ? FPF_BPBC : 0;
>> +	}
>>  	kvm_run->kvm_dirty_regs = 0;
>>  }
>>  
>> @@ -2162,6 +2173,7 @@ static void store_regs(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>>  	kvm_run->s.regs.pft = vcpu->arch.pfault_token;
>>  	kvm_run->s.regs.pfs = vcpu->arch.pfault_select;
>>  	kvm_run->s.regs.pfc = vcpu->arch.pfault_compare;
>> +	kvm_run->s.regs.bpbc = (vcpu->arch.sie_block->fpf & FPF_BPBC) == FPF_BPBC;
>>  }
>>  
>>  int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>> index 03f3618612aa..376d0ab5b9f2 100644
>> --- a/include/uapi/linux/kvm.h
>> +++ b/include/uapi/linux/kvm.h
>> @@ -831,6 +831,7 @@ struct kvm_ppc_smmu_info {
>>  #define KVM_CAP_GUEST_DEBUG_HW_WPS 120
>>  #define KVM_CAP_SPLIT_IRQCHIP 121
>>  #define KVM_CAP_IOEVENTFD_ANY_LENGTH 122
>> +#define KVM_CAP_S390_BPB 152
>>  
>>  #ifdef KVM_CAP_IRQ_ROUTING
>>  
> 
> Did I include the correct version in the latest release, or do I need to
> do a revert and add this one in?

Martins backport and my backport looks almost identical, so you can keep mine.

  reply	other threads:[~2018-04-30 18:31 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-27 13:58 [PATCH 4.4 00/50] 4.4.130-stable review Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 01/50] cifs: do not allow creating sockets except with SMB1 posix exensions Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 02/50] x86/tsc: Prevent 32bit truncation in calc_hpet_ref() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 03/50] perf: Return proper values for user stack errors Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 04/50] staging: ion : Donnot wakeup kswapd in ion system alloc Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 05/50] r8152: add Linksys USB3GIGV1 id Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 06/50] Input: drv260x - fix initializing overdrive voltage Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 07/50] ath9k_hw: check if the chip failed to wake up Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 08/50] jbd2: fix use after free in kjournald2() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 09/50] Revert "ath10k: send (re)assoc peer command when NSS changed" Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 10/50] s390: introduce CPU alternatives Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 11/50] s390: enable CPU alternatives unconditionally Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 12/50] KVM: s390: wire up bpb feature Greg Kroah-Hartman
2018-04-27 15:10   ` Christian Borntraeger
2018-04-27 15:17     ` Greg Kroah-Hartman
2018-04-27 15:46       ` Greg Kroah-Hartman
2018-04-27 15:53         ` Christian Borntraeger
2018-04-29  7:51           ` Martin Schwidefsky
2018-04-30 18:17             ` Greg Kroah-Hartman
2018-04-30 18:30               ` Christian Borntraeger [this message]
2018-04-27 13:58 ` [PATCH 4.4 13/50] s390: scrub registers on kernel entry and KVM exit Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 14/50] s390: add optimized array_index_mask_nospec Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 15/50] s390/alternative: use a copy of the facility bit mask Greg Kroah-Hartman
2018-05-04  7:37   ` Jiri Slaby
2018-05-04  7:41     ` Jiri Slaby
2018-05-04 22:18     ` Greg Kroah-Hartman
2018-05-07  6:07       ` Martin Schwidefsky
2018-05-08  7:20         ` Greg Kroah-Hartman
2018-05-12 19:44           ` Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 16/50] s390: add options to change branch prediction behaviour for the kernel Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 17/50] s390: run user space and KVM guests with modified branch prediction Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 18/50] s390: introduce execute-trampolines for branches Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 19/50] s390: Replace IS_ENABLED(EXPOLINE_*) with IS_ENABLED(CONFIG_EXPOLINE_*) Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 20/50] s390: do not bypass BPENTER for interrupt system calls Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 21/50] s390/entry.S: fix spurious zeroing of r0 Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 22/50] s390: move nobp parameter functions to nospec-branch.c Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 23/50] s390: add automatic detection of the spectre defense Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 24/50] s390: report spectre mitigation via syslog Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 25/50] s390: add sysfs attributes for spectre Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 26/50] s390: correct nospec auto detection init order Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 27/50] s390: correct module section names for expoline code revert Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 28/50] bonding: do not set slave_dev npinfo before slave_enable_netpoll in bond_enslave Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 29/50] KEYS: DNS: limit the length of option strings Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 30/50] l2tp: check sockaddr length in pppol2tp_connect() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 31/50] net: validate attribute sizes in neigh_dump_table() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 32/50] llc: delete timers synchronously in llc_sk_free() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 33/50] tcp: dont read out-of-bounds opsize Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 34/50] team: avoid adding twice the same option to the event list Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 35/50] team: fix netconsole setup over team Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 36/50] packet: fix bitfield update race Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 37/50] pppoe: check sockaddr length in pppoe_connect() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 38/50] vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 39/50] sctp: do not check port in sctp_inet6_cmp_addr Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 40/50] llc: hold llc_sap before release_sock() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 41/50] llc: fix NULL pointer deref for SOCK_ZAPPED Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 42/50] tipc: add policy for TIPC_NLA_NET_ADDR Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 43/50] net: fix deadlock while clearing neighbor proxy table Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 44/50] tcp: md5: reject TCP_MD5SIG or TCP_MD5SIG_EXT on established sockets Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 45/50] net: af_packet: fix race in PACKET_{R|T}X_RING Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 46/50] ipv6: add RTA_TABLE and RTA_PREFSRC to rtm_ipv6_policy Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 47/50] scsi: mptsas: Disable WRITE SAME Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 48/50] cdrom: information leak in cdrom_ioctl_media_changed() Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 49/50] s390/cio: update chpid descriptor after resource accessibility event Greg Kroah-Hartman
2018-04-27 13:58 ` [PATCH 4.4 50/50] s390/uprobes: implement arch_uretprobe_is_alive() Greg Kroah-Hartman
2018-04-27 18:15 ` [PATCH 4.4 00/50] 4.4.130-stable review Shuah Khan
2018-04-27 18:57 ` Nathan Chancellor
2018-04-27 19:43 ` kernelci.org bot
2018-04-27 20:31 ` Dan Rue
2018-04-28 14:25 ` Guenter Roeck

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=e391ae0a-e6fd-2384-f595-543710eee5f8@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rkrcmar@redhat.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=stable@vger.kernel.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

all inboxes | Powered by JetHome®