mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-31 05:57:16 +00:00
cpu-gather: Move static model expansion to new script
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
028fc10cb3
commit
090259de55
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import fcntl
|
import fcntl
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import struct
|
import struct
|
||||||
import subprocess
|
import subprocess
|
||||||
@ -66,6 +67,47 @@ def gather_msr():
|
|||||||
return None, {}
|
return None, {}
|
||||||
|
|
||||||
|
|
||||||
|
def call_qemu(qemu, qmp_cmds):
|
||||||
|
cmd = [
|
||||||
|
qemu,
|
||||||
|
"-machine", "accel=kvm",
|
||||||
|
"-cpu", "host",
|
||||||
|
"-nodefaults",
|
||||||
|
"-nographic",
|
||||||
|
"-qmp", "stdio"]
|
||||||
|
|
||||||
|
stdin = list()
|
||||||
|
stdin.append("{\"execute\": \"qmp_capabilities\"}")
|
||||||
|
stdin.extend([json.dumps(o) for o in qmp_cmds])
|
||||||
|
stdin.append("{\"execute\": \"quit\"}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
output = subprocess.check_output(
|
||||||
|
cmd,
|
||||||
|
universal_newlines=True,
|
||||||
|
input="\n".join(stdin))
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
exit("Error: Non-zero exit code from '{}'.".format(qemu))
|
||||||
|
except FileNotFoundError:
|
||||||
|
exit("Error: File not found: '{}'.".format(qemu))
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
def gather_static_model(args):
|
||||||
|
output = call_qemu(args.path_to_qemu, [
|
||||||
|
{
|
||||||
|
"execute": "query-cpu-model-expansion",
|
||||||
|
"arguments":
|
||||||
|
{
|
||||||
|
"type": "static",
|
||||||
|
"model": {"name": "host"}
|
||||||
|
},
|
||||||
|
"id": "model-expansion"
|
||||||
|
}])
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="Gather cpu test data")
|
parser = argparse.ArgumentParser(description="Gather cpu test data")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@ -111,9 +153,12 @@ def main():
|
|||||||
for key, value in sorted(msr.items()):
|
for key, value in sorted(msr.items()):
|
||||||
print(" 0x{:x}: 0x{:016x}\n".format(int(key), value))
|
print(" 0x{:x}: 0x{:016x}\n".format(int(key), value))
|
||||||
|
|
||||||
|
static_model = gather_static_model(args)
|
||||||
|
|
||||||
print(end="", flush=True)
|
print(end="", flush=True)
|
||||||
os.environ["CPU_GATHER_PY"] = "true"
|
os.environ["CPU_GATHER_PY"] = "true"
|
||||||
os.environ["qemu"] = args.path_to_qemu
|
os.environ["qemu"] = args.path_to_qemu
|
||||||
|
os.environ["model"] = static_model
|
||||||
subprocess.check_call("./cpu-gather.sh")
|
subprocess.check_call("./cpu-gather.sh")
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,13 +21,6 @@ model_expansion()
|
|||||||
'{"type":"'"$mode"'","model":'"$model"'},"id":"model-expansion"}'
|
'{"type":"'"$mode"'","model":'"$model"'},"id":"model-expansion"}'
|
||||||
}
|
}
|
||||||
|
|
||||||
model=$(
|
|
||||||
$qemu -machine accel=kvm -cpu host -nodefaults -nographic -qmp stdio <<EOF
|
|
||||||
{"execute":"qmp_capabilities"}
|
|
||||||
$(model_expansion static '{"name":"host"}')
|
|
||||||
{"execute":"quit"}
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
model=$(
|
model=$(
|
||||||
echo "$model" | \
|
echo "$model" | \
|
||||||
sed -ne 's/^{"return": {"model": {\(.*{.*}\)}}, .*/{\1}/p'
|
sed -ne 's/^{"return": {"model": {\(.*{.*}\)}}, .*/{\1}/p'
|
||||||
|
Loading…
Reference in New Issue
Block a user