Patchwork [QEMU] vmxcap: Open MSR file in unbuffered mode

login
register
mail settings
Submitter Jan Kiszka
Date Feb. 13, 2013, 11:43 a.m.
Message ID <511B7C4E.8070403@siemens.com>
Download mbox | patch
Permalink /patch/220123/
State New
Headers show

Comments

Jan Kiszka - Feb. 13, 2013, 11:43 a.m.
Python may otherwise decide to to read larger chunks, applying the seek
only on the software buffer. This will return results from the wrong
MSRs.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 scripts/kvm/vmxcap |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Gleb Natapov - Feb. 14, 2013, 7:55 a.m.
On Wed, Feb 13, 2013 at 12:43:10PM +0100, Jan Kiszka wrote:
> Python may otherwise decide to to read larger chunks, applying the seek
> only on the software buffer. This will return results from the wrong
> MSRs.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Applied, thanks.

> ---
>  scripts/kvm/vmxcap |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/kvm/vmxcap b/scripts/kvm/vmxcap
> index 0b23f77..6363e73 100755
> --- a/scripts/kvm/vmxcap
> +++ b/scripts/kvm/vmxcap
> @@ -27,9 +27,9 @@ MSR_IA32_VMX_VMFUNC = 0x491
>  class msr(object):
>      def __init__(self):
>          try:
> -            self.f = file('/dev/cpu/0/msr')
> +            self.f = open('/dev/cpu/0/msr', 'r', 0)
>          except:
> -            self.f = file('/dev/msr0')
> +            self.f = open('/dev/msr0', 'r', 0)
>      def read(self, index, default = None):
>          import struct
>          self.f.seek(index)
> -- 
> 1.7.3.4

--
			Gleb.
Andreas Färber - Feb. 14, 2013, 10:25 a.m.
Am 14.02.2013 08:55, schrieb Gleb Natapov:
> On Wed, Feb 13, 2013 at 12:43:10PM +0100, Jan Kiszka wrote:
>> Python may otherwise decide to to read larger chunks, applying the seek
>> only on the software buffer. This will return results from the wrong
>> MSRs.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> Applied, thanks.

Could you please fix the "to to"? :)

Andreas
Gleb Natapov - Feb. 14, 2013, 12:02 p.m.
On Thu, Feb 14, 2013 at 11:25:05AM +0100, Andreas Färber wrote:
> Am 14.02.2013 08:55, schrieb Gleb Natapov:
> > On Wed, Feb 13, 2013 at 12:43:10PM +0100, Jan Kiszka wrote:
> >> Python may otherwise decide to to read larger chunks, applying the seek
> >> only on the software buffer. This will return results from the wrong
> >> MSRs.
> >>
> >> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> > Applied, thanks.
> 
> Could you please fix the "to to"? :)
> 
Too too late :( Pushed already.

--
			Gleb.

Patch

diff --git a/scripts/kvm/vmxcap b/scripts/kvm/vmxcap
index 0b23f77..6363e73 100755
--- a/scripts/kvm/vmxcap
+++ b/scripts/kvm/vmxcap
@@ -27,9 +27,9 @@  MSR_IA32_VMX_VMFUNC = 0x491
 class msr(object):
     def __init__(self):
         try:
-            self.f = file('/dev/cpu/0/msr')
+            self.f = open('/dev/cpu/0/msr', 'r', 0)
         except:
-            self.f = file('/dev/msr0')
+            self.f = open('/dev/msr0', 'r', 0)
     def read(self, index, default = None):
         import struct
         self.f.seek(index)