diff mbox

kvm/mmu: small fix for reserved bits check

Message ID 1481266943-27827-1-git-send-email-liang.z.li@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Liang Li Dec. 9, 2016, 7:02 a.m. UTC
Use '||' is more efficient than '|' at this point.

Signed-off-by: Liang Li <liang.z.li@intel.com>
---
 arch/x86/kvm/mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Hildenbrand Dec. 9, 2016, 1:22 p.m. UTC | #1
Am 09.12.2016 um 08:02 schrieb Liang Li:
> Use '||' is more efficient than '|' at this point.
>
> Signed-off-by: Liang Li <liang.z.li@intel.com>
> ---
>  arch/x86/kvm/mmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index d9c7e98..16c0b00 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -3315,7 +3315,7 @@ static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gva_t vaddr,
>  {
>  	int bit7 = (pte >> 7) & 1, low6 = pte & 0x3f;
>
> -	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) |
> +	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) ||
>  		((rsvd_check->bad_mt_xwr & (1ull << low6)) != 0);
>  }
>
>

This isn't really a fix as given in the subject, is it?

The != 0 is also superfluous, but not sure if these two things are
really worth touching it.
Liang Li Dec. 9, 2016, 2:44 p.m. UTC | #2
> Am 09.12.2016 um 08:02 schrieb Liang Li:
> > Use '||' is more efficient than '|' at this point.
> >
> > Signed-off-by: Liang Li <liang.z.li@intel.com>
> > ---
> >  arch/x86/kvm/mmu.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index
> > d9c7e98..16c0b00 100644
> > --- a/arch/x86/kvm/mmu.c
> > +++ b/arch/x86/kvm/mmu.c
> > @@ -3315,7 +3315,7 @@ static gpa_t
> nonpaging_gva_to_gpa_nested(struct
> > kvm_vcpu *vcpu, gva_t vaddr,  {
> >  	int bit7 = (pte >> 7) & 1, low6 = pte & 0x3f;
> >
> > -	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) |
> > +	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) ||
> >  		((rsvd_check->bad_mt_xwr & (1ull << low6)) != 0);  }
> >
> >
> 
> This isn't really a fix as given in the subject, is it?
> 
> The != 0 is also superfluous, but not sure if these two things are
> really worth touching it.

Yes.  And it's not in the critical code patch.

> 
> --
> 
> David
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paolo Bonzini Dec. 12, 2016, 6:28 a.m. UTC | #3
On 09/12/2016 08:02, Liang Li wrote:
> Use '||' is more efficient than '|' at this point.

No, it's not, because the check is going to be always false in practice,
so the || is going to evaluate both branches anyway.  So, depending on
the compiler, either it's the same or it's worse (because a branch is
worse than an OR instruction).

If anything, as David said (and if the compiled code changes at all),
the "!= 0" is superfluous.

Paolo

> Signed-off-by: Liang Li <liang.z.li@intel.com>
> ---
>  arch/x86/kvm/mmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index d9c7e98..16c0b00 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -3315,7 +3315,7 @@ static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gva_t vaddr,
>  {
>  	int bit7 = (pte >> 7) & 1, low6 = pte & 0x3f;
>  
> -	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) |
> +	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) ||
>  		((rsvd_check->bad_mt_xwr & (1ull << low6)) != 0);
>  }

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Liang Li Dec. 12, 2016, 6:50 a.m. UTC | #4
PiANCj4gDQo+IE9uIDA5LzEyLzIwMTYgMDg6MDIsIExpYW5nIExpIHdyb3RlOg0KPiA+IFVzZSAn
fHwnIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gJ3wnIGF0IHRoaXMgcG9pbnQuDQo+IA0KPiBObywg
aXQncyBub3QsIGJlY2F1c2UgdGhlIGNoZWNrIGlzIGdvaW5nIHRvIGJlIGFsd2F5cyBmYWxzZSBp
biBwcmFjdGljZSwgc28gdGhlDQo+IHx8IGlzIGdvaW5nIHRvIGV2YWx1YXRlIGJvdGggYnJhbmNo
ZXMgYW55d2F5LiAgU28sIGRlcGVuZGluZyBvbiB0aGUNCj4gY29tcGlsZXIsIGVpdGhlciBpdCdz
IHRoZSBzYW1lIG9yIGl0J3Mgd29yc2UgKGJlY2F1c2UgYSBicmFuY2ggaXMgd29yc2UgdGhhbiBh
bg0KPiBPUiBpbnN0cnVjdGlvbikuDQo+IA0KDQpUaGFua3MgZm9yIGNsYXJpZmljYXRpb24uDQoN
Cj4gSWYgYW55dGhpbmcsIGFzIERhdmlkIHNhaWQgKGFuZCBpZiB0aGUgY29tcGlsZWQgY29kZSBj
aGFuZ2VzIGF0IGFsbCksIHRoZSAiIT0gMCINCj4gaXMgc3VwZXJmbHVvdXMuDQo+IA0KDQpZZXMs
IGl0IG1ha2VzIHRoZSBjb2RlIGxvb2tzIHN0cmFuZ2UuIA0KDQo+IFBhb2xvDQo+IA0KPiA+IFNp
Z25lZC1vZmYtYnk6IExpYW5nIExpIDxsaWFuZy56LmxpQGludGVsLmNvbT4NCj4gPiAtLS0NCj4g
PiAgYXJjaC94ODYva3ZtL21tdS5jIHwgMiArLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl
cnRpb24oKyksIDEgZGVsZXRpb24oLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9r
dm0vbW11LmMgYi9hcmNoL3g4Ni9rdm0vbW11LmMgaW5kZXgNCj4gPiBkOWM3ZTk4Li4xNmMwYjAw
IDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gveDg2L2t2bS9tbXUuYw0KPiA+ICsrKyBiL2FyY2gveDg2
L2t2bS9tbXUuYw0KPiA+IEBAIC0zMzE1LDcgKzMzMTUsNyBAQCBzdGF0aWMgZ3BhX3QNCj4gbm9u
cGFnaW5nX2d2YV90b19ncGFfbmVzdGVkKHN0cnVjdA0KPiA+IGt2bV92Y3B1ICp2Y3B1LCBndmFf
dCB2YWRkciwgIHsNCj4gPiAgCWludCBiaXQ3ID0gKHB0ZSA+PiA3KSAmIDEsIGxvdzYgPSBwdGUg
JiAweDNmOw0KPiA+DQo+ID4gLQlyZXR1cm4gKHB0ZSAmIHJzdmRfY2hlY2stPnJzdmRfYml0c19t
YXNrW2JpdDddW2xldmVsLTFdKSB8DQo+ID4gKwlyZXR1cm4gKHB0ZSAmIHJzdmRfY2hlY2stPnJz
dmRfYml0c19tYXNrW2JpdDddW2xldmVsLTFdKSB8fA0KPiA+ICAJCSgocnN2ZF9jaGVjay0+YmFk
X210X3h3ciAmICgxdWxsIDw8IGxvdzYpKSAhPSAwKTsgIH0NCg0K
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d9c7e98..16c0b00 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -3315,7 +3315,7 @@  static gpa_t nonpaging_gva_to_gpa_nested(struct kvm_vcpu *vcpu, gva_t vaddr,
 {
 	int bit7 = (pte >> 7) & 1, low6 = pte & 0x3f;
 
-	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) |
+	return (pte & rsvd_check->rsvd_bits_mask[bit7][level-1]) ||
 		((rsvd_check->bad_mt_xwr & (1ull << low6)) != 0);
 }