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:
Janosch Frank 2016-01-11 16:17:31 +01:00 committed by Paolo Bonzini
parent 27ef9cb0e7
commit c81ab0ac90
1 changed files with 11 additions and 15 deletions

View File

@ -12,8 +12,16 @@
# the COPYING file in the top-level directory. # the COPYING file in the top-level directory.
import curses import curses
import sys, os, time, optparse, ctypes import sys
from ctypes import * import os
import time
import optparse
import ctypes
import fcntl
import resource
import struct
import re
from collections import defaultdict
class DebugfsProvider(object): class DebugfsProvider(object):
def __init__(self): def __init__(self):
@ -285,12 +293,10 @@ filters['kvm_userspace_exit'] = ('reason', invert(userspace_exit_reasons))
if exit_reasons: if exit_reasons:
filters['kvm_exit'] = ('exit_reason', invert(exit_reasons)) filters['kvm_exit'] = ('exit_reason', invert(exit_reasons))
import struct, array
libc = ctypes.CDLL('libc.so.6') libc = ctypes.CDLL('libc.so.6')
syscall = libc.syscall syscall = libc.syscall
get_errno = libc.__errno_location 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): class perf_event_attr(ctypes.Structure):
_fields_ = [('type', ctypes.c_uint32), _fields_ = [('type', ctypes.c_uint32),
@ -334,8 +340,6 @@ PERF_FORMAT_TOTAL_TIME_RUNNING = 1 << 1
PERF_FORMAT_ID = 1 << 2 PERF_FORMAT_ID = 1 << 2
PERF_FORMAT_GROUP = 1 << 3 PERF_FORMAT_GROUP = 1 << 3
import re
sys_tracing = '/sys/kernel/debug/tracing' sys_tracing = '/sys/kernel/debug/tracing'
class Group(object): class Group(object):
@ -378,17 +382,13 @@ class Event(object):
err = get_errno()[0] err = get_errno()[0]
raise Exception('perf_event_open failed, errno = ' + err.__str__()) raise Exception('perf_event_open failed, errno = ' + err.__str__())
if filter: if filter:
import fcntl
fcntl.ioctl(fd, ioctl_numbers['SET_FILTER'], filter) fcntl.ioctl(fd, ioctl_numbers['SET_FILTER'], filter)
self.fd = fd self.fd = fd
def enable(self): def enable(self):
import fcntl
fcntl.ioctl(self.fd, ioctl_numbers['ENABLE'], 0) fcntl.ioctl(self.fd, ioctl_numbers['ENABLE'], 0)
def disable(self): def disable(self):
import fcntl
fcntl.ioctl(self.fd, ioctl_numbers['DISABLE'], 0) fcntl.ioctl(self.fd, ioctl_numbers['DISABLE'], 0)
def reset(self): def reset(self):
import fcntl
fcntl.ioctl(self.fd, ioctl_numbers['RESET'], 0) fcntl.ioctl(self.fd, ioctl_numbers['RESET'], 0)
class TracepointProvider(object): class TracepointProvider(object):
@ -426,7 +426,6 @@ class TracepointProvider(object):
def _setup(self, _fields): def _setup(self, _fields):
self._fields = _fields self._fields = _fields
cpus = self._online_cpus() cpus = self._online_cpus()
import resource
nfiles = len(cpus) * 1000 nfiles = len(cpus) * 1000
resource.setrlimit(resource.RLIMIT_NOFILE, (nfiles, nfiles)) resource.setrlimit(resource.RLIMIT_NOFILE, (nfiles, nfiles))
events = [] events = []
@ -454,7 +453,6 @@ class TracepointProvider(object):
else: else:
event.disable() event.disable()
def read(self): def read(self):
from collections import defaultdict
ret = defaultdict(int) ret = defaultdict(int)
for group in self.group_leaders: for group in self.group_leaders:
for name, val in group.read().iteritems(): for name, val in group.read().iteritems():
@ -468,7 +466,6 @@ class Stats:
self._update() self._update()
def _update(self): def _update(self):
def wanted(key): def wanted(key):
import re
if not self.fields_filter: if not self.fields_filter:
return True return True
return re.match(self.fields_filter, key) is not None return re.match(self.fields_filter, key) is not None
@ -640,7 +637,6 @@ stats = Stats(providers, fields = options.fields)
if options.log: if options.log:
log(stats) log(stats)
elif not options.once: elif not options.once:
import curses.wrapper
curses.wrapper(tui, stats) curses.wrapper(tui, stats)
else: else:
batch(stats) batch(stats)