mirror of
https://github.com/xemu-project/xemu.git
synced 2025-03-01 17:07:28 +00:00
scripts/kvm/kvm_stat: Cleanup of multiple imports
Removed multiple imports of the same module and moved all imports to the top. It is not necessary to import a module each time one of its functions/classes is used. For readability each import should get its own line. Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com> Message-Id: <1452525484-32309-2-git-send-email-frankja@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
27ef9cb0e7
commit
c81ab0ac90
@ -12,8 +12,16 @@
|
||||
# the COPYING file in the top-level directory.
|
||||
|
||||
import curses
|
||||
import sys, os, time, optparse, ctypes
|
||||
from ctypes import *
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
import optparse
|
||||
import ctypes
|
||||
import fcntl
|
||||
import resource
|
||||
import struct
|
||||
import re
|
||||
from collections import defaultdict
|
||||
|
||||
class DebugfsProvider(object):
|
||||
def __init__(self):
|
||||
@ -285,12 +293,10 @@ filters['kvm_userspace_exit'] = ('reason', invert(userspace_exit_reasons))
|
||||
if exit_reasons:
|
||||
filters['kvm_exit'] = ('exit_reason', invert(exit_reasons))
|
||||
|
||||
import struct, array
|
||||
|
||||
libc = ctypes.CDLL('libc.so.6')
|
||||
syscall = libc.syscall
|
||||
get_errno = libc.__errno_location
|
||||
get_errno.restype = POINTER(c_int)
|
||||
get_errno.restype = ctypes.POINTER(ctypes.c_int)
|
||||
|
||||
class perf_event_attr(ctypes.Structure):
|
||||
_fields_ = [('type', ctypes.c_uint32),
|
||||
@ -334,8 +340,6 @@ PERF_FORMAT_TOTAL_TIME_RUNNING = 1 << 1
|
||||
PERF_FORMAT_ID = 1 << 2
|
||||
PERF_FORMAT_GROUP = 1 << 3
|
||||
|
||||
import re
|
||||
|
||||
sys_tracing = '/sys/kernel/debug/tracing'
|
||||
|
||||
class Group(object):
|
||||
@ -378,17 +382,13 @@ class Event(object):
|
||||
err = get_errno()[0]
|
||||
raise Exception('perf_event_open failed, errno = ' + err.__str__())
|
||||
if filter:
|
||||
import fcntl
|
||||
fcntl.ioctl(fd, ioctl_numbers['SET_FILTER'], filter)
|
||||
self.fd = fd
|
||||
def enable(self):
|
||||
import fcntl
|
||||
fcntl.ioctl(self.fd, ioctl_numbers['ENABLE'], 0)
|
||||
def disable(self):
|
||||
import fcntl
|
||||
fcntl.ioctl(self.fd, ioctl_numbers['DISABLE'], 0)
|
||||
def reset(self):
|
||||
import fcntl
|
||||
fcntl.ioctl(self.fd, ioctl_numbers['RESET'], 0)
|
||||
|
||||
class TracepointProvider(object):
|
||||
@ -426,7 +426,6 @@ class TracepointProvider(object):
|
||||
def _setup(self, _fields):
|
||||
self._fields = _fields
|
||||
cpus = self._online_cpus()
|
||||
import resource
|
||||
nfiles = len(cpus) * 1000
|
||||
resource.setrlimit(resource.RLIMIT_NOFILE, (nfiles, nfiles))
|
||||
events = []
|
||||
@ -454,7 +453,6 @@ class TracepointProvider(object):
|
||||
else:
|
||||
event.disable()
|
||||
def read(self):
|
||||
from collections import defaultdict
|
||||
ret = defaultdict(int)
|
||||
for group in self.group_leaders:
|
||||
for name, val in group.read().iteritems():
|
||||
@ -468,7 +466,6 @@ class Stats:
|
||||
self._update()
|
||||
def _update(self):
|
||||
def wanted(key):
|
||||
import re
|
||||
if not self.fields_filter:
|
||||
return True
|
||||
return re.match(self.fields_filter, key) is not None
|
||||
@ -640,7 +637,6 @@ stats = Stats(providers, fields = options.fields)
|
||||
if options.log:
|
||||
log(stats)
|
||||
elif not options.once:
|
||||
import curses.wrapper
|
||||
curses.wrapper(tui, stats)
|
||||
else:
|
||||
batch(stats)
|
||||
|
Loading…
x
Reference in New Issue
Block a user