scripts/kvm/kvm_stat: Cleanup of platform detection

s390 machines can also be detected via uname -m, i.e. python's
os.uname, no need for more complicated checks.

Calling uname once and saving its value for multiple checks is
perfectly sufficient. We don't expect the machine's architecture to
change when the script is running anyway.

On multi-cpu systems x86_init currently will get called multiple
times, returning makes sure we don't waste cicles on that.

Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com>
Message-Id: <1452525484-32309-16-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:45 +01:00 committed by Paolo Bonzini
parent 392a7fa3ca
commit 8d3b5ddc4e

View File

@ -254,24 +254,21 @@ def aarch64_init():
EXIT_REASONS = AARCH64_EXIT_REASONS EXIT_REASONS = AARCH64_EXIT_REASONS
def detect_platform(): def detect_platform():
if os.uname()[4].startswith('ppc'): machine = os.uname()[4]
ppc_init()
return
elif os.uname()[4].startswith('aarch64'):
aarch64_init()
return
if machine.startswith('ppc'):
ppc_init()
elif machine.startswith('aarch64'):
aarch64_init()
elif machine.startswith('s390'):
s390_init()
else:
for line in file('/proc/cpuinfo').readlines(): for line in file('/proc/cpuinfo').readlines():
if line.startswith('flags'): if line.startswith('flags'):
for flag in line.split(): for flag in line.split():
if flag in X86_EXIT_REASONS: if flag in X86_EXIT_REASONS:
x86_init(flag) x86_init(flag)
return return
elif line.startswith('vendor_id'):
for flag in line.split():
if flag == 'IBM/S390':
s390_init()
return
def walkdir(path): def walkdir(path):