| Date | Thu, 09 Apr 2015 12:17:04 +0200 | From | Christian Borntraeger <> | Subject | Re: [PATCH 3.4 033/176] KVM: s390: flush CPU on load control |
| |
Am 09.04.2015 um 10:44 schrieb lizf@kernel.org: > From: Christian Borntraeger <borntraeger@de.ibm.com> > > 3.4.107-rc1 review patch. If anyone has any objections, please let me know. > > ------------------ > > > commit 2dca485f8740208604543c3960be31a5dd3ea603 upstream.
Hmmm, I just realized that this patch only makes a difference with
commit d3d692c82e4ed79ae7c85f8825ccfdb7d11819da ("KVM: s390: implement KVM_REQ_TLB_FLUSH and make use of it")
It should not hurt to have this patch as far as I can tell, but it makes no difference. This is also true for other stable versions < 3.18 - sorry for noticing it that late.
commit d3d692c82e4ed79ae7c85f8825ccfdb7d11819da on the other hand is not that easy to backport into Linux versions < 3.16.
So maybe just drop this patch?
Christian
> > some control register changes will flush some aspects of the CPU, e.g. > POP explicitely mentions that for CR9-CR11 "TLBs may be cleared". > Instead of trying to be clever and only flush on specific CRs, let > play safe and flush on all lctl(g) as future machines might define > new bits in CRs. Load control intercept should not happen that often. > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> > Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> > [lizf: Backported to 3.4: > - adjust filename > - adjust context] > Signed-off-by: Zefan Li <lizefan@huawei.com> > --- > arch/s390/kvm/intercept.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c > index 3614565..f10fef6 100644 > --- a/arch/s390/kvm/intercept.c > +++ b/arch/s390/kvm/intercept.c > @@ -58,6 +58,7 @@ static int handle_lctlg(struct kvm_vcpu *vcpu) > break; > reg = (reg + 1) % 16; > } while (1); > + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); > return 0; > } > > @@ -97,6 +98,7 @@ static int handle_lctl(struct kvm_vcpu *vcpu) > break; > reg = (reg + 1) % 16; > } while (1); > + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); > return 0; > } >
|