Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-10-31 Thread Paolo Bonzini
Thanks, applied the series at last.

Paolo

On 17/06/2014 09:54, Michael Ellerman wrote:
 Add support for powerpc platforms. We use uname -m, which allows us to
 detect ppc, ppc64 and ppc64le/el.
 
 Signed-off-by: Michael Ellerman m...@ellerman.id.au
 ---
  scripts/kvm/kvm_stat | 18 --
  1 file changed, 16 insertions(+), 2 deletions(-)
 
 diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
 index 2e0f5ed..db867fe 100755
 --- a/scripts/kvm/kvm_stat
 +++ b/scripts/kvm/kvm_stat
 @@ -12,7 +12,7 @@
  # the COPYING file in the top-level directory.
  
  import curses
 -import sys, os, time, optparse
 +import sys, os, time, optparse, ctypes
  
  class DebugfsProvider(object):
  def __init__(self):
 @@ -199,7 +199,21 @@ def s390_init():
  'sc_perf_evt_open' : 331,
  })
  
 +def ppc_init():
 +globals().update({
 +'sc_perf_evt_open' : 319,
 +'ioctl_numbers' : {
 +'SET_FILTER' : 0x80002406 | (ctypes.sizeof(ctypes.c_char_p)  
 16),
 +'ENABLE' : 0x20002400,
 +'DISABLE': 0x20002401,
 +}
 +})
 +
  def detect_platform():
 +if os.uname()[4].startswith('ppc'):
 +ppc_init()
 +return
 +
  for line in file('/proc/cpuinfo').readlines():
  if line.startswith('flags'):
  for flag in line.split():
 @@ -220,7 +234,7 @@ def invert(d):
  for f in filters:
  filters[f] = (filters[f][0], invert(filters[f][1]))
  
 -import ctypes, struct, array
 +import struct, array
  
  libc = ctypes.CDLL('libc.so.6')
  syscall = libc.syscall
 



Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Alexander Graf


On 17.06.14 09:54, Michael Ellerman wrote:

Add support for powerpc platforms. We use uname -m, which allows us to
detect ppc, ppc64 and ppc64le/el.

Signed-off-by: Michael Ellerman m...@ellerman.id.au


Could you please add support for PR KVM tracepoints along the way? There 
we do know the exit reason for every single guest - host transition. I 
would like to move to a similar model with HV in the future, so we can 
hopefully just reuse this by then.



Alex


---
  scripts/kvm/kvm_stat | 18 --
  1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
index 2e0f5ed..db867fe 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -12,7 +12,7 @@
  # the COPYING file in the top-level directory.
  
  import curses

-import sys, os, time, optparse
+import sys, os, time, optparse, ctypes
  
  class DebugfsProvider(object):

  def __init__(self):
@@ -199,7 +199,21 @@ def s390_init():
  'sc_perf_evt_open' : 331,
  })
  
+def ppc_init():

+globals().update({
+'sc_perf_evt_open' : 319,
+'ioctl_numbers' : {
+'SET_FILTER' : 0x80002406 | (ctypes.sizeof(ctypes.c_char_p)  16),
+'ENABLE' : 0x20002400,
+'DISABLE': 0x20002401,
+}
+})
+
  def detect_platform():
+if os.uname()[4].startswith('ppc'):
+ppc_init()
+return
+
  for line in file('/proc/cpuinfo').readlines():
  if line.startswith('flags'):
  for flag in line.split():
@@ -220,7 +234,7 @@ def invert(d):
  for f in filters:
  filters[f] = (filters[f][0], invert(filters[f][1]))
  
-import ctypes, struct, array

+import struct, array
  
  libc = ctypes.CDLL('libc.so.6')

  syscall = libc.syscall





[Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Michael Ellerman
Add support for powerpc platforms. We use uname -m, which allows us to
detect ppc, ppc64 and ppc64le/el.

Signed-off-by: Michael Ellerman m...@ellerman.id.au
---
 scripts/kvm/kvm_stat | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
index 2e0f5ed..db867fe 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -12,7 +12,7 @@
 # the COPYING file in the top-level directory.
 
 import curses
-import sys, os, time, optparse
+import sys, os, time, optparse, ctypes
 
 class DebugfsProvider(object):
 def __init__(self):
@@ -199,7 +199,21 @@ def s390_init():
 'sc_perf_evt_open' : 331,
 })
 
+def ppc_init():
+globals().update({
+'sc_perf_evt_open' : 319,
+'ioctl_numbers' : {
+'SET_FILTER' : 0x80002406 | (ctypes.sizeof(ctypes.c_char_p)  16),
+'ENABLE' : 0x20002400,
+'DISABLE': 0x20002401,
+}
+})
+
 def detect_platform():
+if os.uname()[4].startswith('ppc'):
+ppc_init()
+return
+
 for line in file('/proc/cpuinfo').readlines():
 if line.startswith('flags'):
 for flag in line.split():
@@ -220,7 +234,7 @@ def invert(d):
 for f in filters:
 filters[f] = (filters[f][0], invert(filters[f][1]))
 
-import ctypes, struct, array
+import struct, array
 
 libc = ctypes.CDLL('libc.so.6')
 syscall = libc.syscall
-- 
1.9.1




Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Michael Ellerman
On Tue, 2014-06-17 at 10:27 +0200, Alexander Graf wrote:
 On 17.06.14 09:54, Michael Ellerman wrote:
  Add support for powerpc platforms. We use uname -m, which allows us to
  detect ppc, ppc64 and ppc64le/el.
 
  Signed-off-by: Michael Ellerman m...@ellerman.id.au
 
 Could you please add support for PR KVM tracepoints along the way? There 
 we do know the exit reason for every single guest - host transition. I 
 would like to move to a similar model with HV in the future, so we can 
 hopefully just reuse this by then.

So I think what you're saying is you want it to somehow support using
'kvm_exit' for PR and 'kvm_userspace_exit' for HV?

Or actually use 'kvm_exit' if it exists and fall back to 'kvm_userspace_exit',
so that if HV starts providing 'kvm_exit' the script will pick that up without
further changes.

cheers





Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Alexander Graf


On 18.06.14 02:50, Michael Ellerman wrote:

On Tue, 2014-06-17 at 10:27 +0200, Alexander Graf wrote:

On 17.06.14 09:54, Michael Ellerman wrote:

Add support for powerpc platforms. We use uname -m, which allows us to
detect ppc, ppc64 and ppc64le/el.

Signed-off-by: Michael Ellerman m...@ellerman.id.au

Could you please add support for PR KVM tracepoints along the way? There
we do know the exit reason for every single guest - host transition. I
would like to move to a similar model with HV in the future, so we can
hopefully just reuse this by then.

So I think what you're saying is you want it to somehow support using
'kvm_exit' for PR and 'kvm_userspace_exit' for HV?


kvm_userspace_exit is implemented on both HV and PR. kvm_exit is PR 
only, but I'm hoping we can get it working in HV as well.



Or actually use 'kvm_exit' if it exists and fall back to 'kvm_userspace_exit',
so that if HV starts providing 'kvm_exit' the script will pick that up without
further changes.


They are completely different things. kvm_userspace_exit tells us 
which exits we take from KVM - QEMU. kvm_exit tells us which exits we 
take from guest - KVM.


In fact, IIRC x86 also implements kvm_userspace_exit - or at least 
something very similar to it. It's a completely separate category. Maybe 
it should be a command line switch to distinguish between the count types?


Paolo, do you have any strong opinion here?


Alex




Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Michael Ellerman
On Wed, 2014-06-18 at 02:59 +0200, Alexander Graf wrote:
 On 18.06.14 02:50, Michael Ellerman wrote:
  On Tue, 2014-06-17 at 10:27 +0200, Alexander Graf wrote:
  On 17.06.14 09:54, Michael Ellerman wrote:
  Add support for powerpc platforms. We use uname -m, which allows us to
  detect ppc, ppc64 and ppc64le/el.
 
  Signed-off-by: Michael Ellerman m...@ellerman.id.au
  Could you please add support for PR KVM tracepoints along the way? There
  we do know the exit reason for every single guest - host transition. I
  would like to move to a similar model with HV in the future, so we can
  hopefully just reuse this by then.
  So I think what you're saying is you want it to somehow support using
  'kvm_exit' for PR and 'kvm_userspace_exit' for HV?
 
 kvm_userspace_exit is implemented on both HV and PR. kvm_exit is PR 
 only, but I'm hoping we can get it working in HV as well.
 
  Or actually use 'kvm_exit' if it exists and fall back to 
  'kvm_userspace_exit',
  so that if HV starts providing 'kvm_exit' the script will pick that up 
  without
  further changes.
 
 They are completely different things. kvm_userspace_exit tells us 
 which exits we take from KVM - QEMU. kvm_exit tells us which exits we 
 take from guest - KVM.

 In fact, IIRC x86 also implements kvm_userspace_exit - or at least 
 something very similar to it. It's a completely separate category. 

Right. Everyone implements kvm_userspace_exit, it's in virt/kvm/kvm_main.c

 Maybe it should be a command line switch to distinguish between the count 
 types?

Or just we always read the kvm_userspace_exit counts, and if we find kvm_exit
we expose that as well - with an arch specific set of reasons.

cheers





Re: [Qemu-devel] [PATCH 6/6] kvm_stat: Add powerpc support

2014-06-17 Thread Alexander Graf


On 18.06.14 03:37, Michael Ellerman wrote:

On Wed, 2014-06-18 at 02:59 +0200, Alexander Graf wrote:

On 18.06.14 02:50, Michael Ellerman wrote:

On Tue, 2014-06-17 at 10:27 +0200, Alexander Graf wrote:

On 17.06.14 09:54, Michael Ellerman wrote:

Add support for powerpc platforms. We use uname -m, which allows us to
detect ppc, ppc64 and ppc64le/el.

Signed-off-by: Michael Ellerman m...@ellerman.id.au

Could you please add support for PR KVM tracepoints along the way? There
we do know the exit reason for every single guest - host transition. I
would like to move to a similar model with HV in the future, so we can
hopefully just reuse this by then.

So I think what you're saying is you want it to somehow support using
'kvm_exit' for PR and 'kvm_userspace_exit' for HV?

kvm_userspace_exit is implemented on both HV and PR. kvm_exit is PR
only, but I'm hoping we can get it working in HV as well.


Or actually use 'kvm_exit' if it exists and fall back to 'kvm_userspace_exit',
so that if HV starts providing 'kvm_exit' the script will pick that up without
further changes.

They are completely different things. kvm_userspace_exit tells us
which exits we take from KVM - QEMU. kvm_exit tells us which exits we
take from guest - KVM.

In fact, IIRC x86 also implements kvm_userspace_exit - or at least
something very similar to it. It's a completely separate category.

Right. Everyone implements kvm_userspace_exit, it's in virt/kvm/kvm_main.c


Maybe it should be a command line switch to distinguish between the count types?

Or just we always read the kvm_userspace_exit counts, and if we find kvm_exit
we expose that as well - with an arch specific set of reasons.


That would work too. I'm not sure how interesting the exit count of 
kvm_userspace_exit really is, but it certainly works for me to have it 
available as well.



Alex