From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Borntraeger Subject: Re: [PULL 1/4] KVM: s390: randomize sca address Date: Tue, 25 Mar 2014 15:04:22 +0100 Message-ID: <53318CE6.6040605@de.ibm.com> References: <1395754523-43697-1-git-send-email-borntraeger@de.ibm.com> <1395754523-43697-2-git-send-email-borntraeger@de.ibm.com> <53318A74.9010504@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: KVM , linux-s390 , Cornelia Huck To: Paolo Bonzini Return-path: Received: from e06smtp12.uk.ibm.com ([195.75.94.108]:32887 "EHLO e06smtp12.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753343AbaCYOE1 (ORCPT ); Tue, 25 Mar 2014 10:04:27 -0400 Received: from /spool/local by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 25 Mar 2014 14:04:26 -0000 In-Reply-To: <53318A74.9010504@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 25/03/14 14:53, Paolo Bonzini wrote: > Il 25/03/2014 14:35, Christian Borntraeger ha scritto: >> We allocate a page for the 2k sca, so lets use the space to improve >> hit rate of some internal cpu caches. No need to change the freeing >> of the page, as this will shift away the page offset bits anyway. >> >> Signed-off-by: Christian Borntraeger >> Reviewed-by: David Hildenbrand >> --- >> arch/s390/kvm/kvm-s390.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c >> index 7337c57..a02979f 100644 >> --- a/arch/s390/kvm/kvm-s390.c >> +++ b/arch/s390/kvm/kvm-s390.c >> @@ -215,6 +215,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) >> { >> int rc; >> char debug_name[16]; >> + static unsigned long sca_offset; >> >> rc = -EINVAL; >> #ifdef CONFIG_KVM_S390_UCONTROL >> @@ -236,6 +237,10 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) >> kvm->arch.sca = (struct sca_block *) get_zeroed_page(GFP_KERNEL); >> if (!kvm->arch.sca) >> goto out_err; >> + spin_lock(&kvm_lock); >> + sca_offset = (sca_offset + 16) & 0x7f0; >> + kvm->arch.sca = (struct sca_block *) ((char *) kvm->arch.sca + sca_offset); >> + spin_unlock(&kvm_lock); >> >> sprintf(debug_name, "kvm-%u", current->pid); >> >> > > Does this have to remain the same across migration? Nope, the sca address is just an internal _host_ detail and does not belong/influence the guest.