[libvirt PATCH 00/29] Refactor scripts in tests/cputestdata

Tim Wiederhake posted 29 patches 3 years, 4 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20201215162515.53742-1-twiederh@redhat.com
tests/cputestdata/cpu-cpuid.py    |   5 +-
tests/cputestdata/cpu-gather.py   | 365 ++++++++++++++++++++++++++++++
tests/cputestdata/cpu-gather.sh   | 103 ---------
tests/cputestdata/cpu-parse.sh    |  65 ------
tests/cputestdata/cpu-reformat.py |   9 -
5 files changed, 368 insertions(+), 179 deletions(-)
create mode 100755 tests/cputestdata/cpu-gather.py
delete mode 100755 tests/cputestdata/cpu-gather.sh
delete mode 100755 tests/cputestdata/cpu-parse.sh
delete mode 100755 tests/cputestdata/cpu-reformat.py
[libvirt PATCH 00/29] Refactor scripts in tests/cputestdata
Posted by Tim Wiederhake 3 years, 4 months ago
This series refactors the various scripts found in tests/cputestdata and
adds support for CORE_CAPABILITY MSR, as found on e.g. SnowRidge.

Acquiring test data on a new system is a two step process. "cpu-gather.sh"
gathers information on the target machine and has as few dependencies as
possible. "cpu-parse.sh" processes this information but requires access to
a libvirt source tree and has more dependencies, e.g. "xmltodict".

This series merges three of the four involved scripts (cpu-gather.sh,
cpu-parse.sh and cpu-reformat.py) into a single python3 script. python3
already was a dependency for cpu-gather.sh and care has been taken to not
depend on modules that are not installed by default [1]. Merging the fourth
script, cpu-cpuid.py, will come in a seperate series.

Patches 1 to 14 transform cpu-gather into a python script, preserving the
format of the output (except for consistent "\n" line endings; previously
the tool would output a mix of "\n" and "\r\n").

Patches 15 to 23 merge cpu-parse into the script. In this process, the
format of the intermediary data is changed to json.

Patches 24 to 29 add support for "all in one" operation and extracting
IA32_CORE_CAPABILITY_MSR, which can be found on e.g. SnowRidge CPUs.

Old usage:
  ./cpu-gather.sh | ./cpu-parse.sh
New:
  ./cpu-gather.py [--gather] | ./cpu-gather.py --parse
Alternative on single machine:
  ./cpu-gather.py --gather --parse

[1] https://docs.python.org/3/py-modindex.html

Tim Wiederhake (29):
  cpu-cpuid: Shorten overly long line
  cpu-gather: Create python wrapper for shell script
  cpu-gather: Move model_name to new script
  cpu-gather: Allow overwriting model name
  cpu-gather: Move cpuid call to new script
  cpu-gather: Allow overwriting cpuid binary location
  cpu-gather: Move msr decoding to new script
  cpu-gather: Move qemu detection to new script
  cpu-gather: Move static model expansion to new script
  cpu-gather: Move static model extraction to new script
  cpu-gather: Move simple model extraction to new script
  cpu-gather: Move full model extraction to new script
  cpu-gather: Merge model gathering logic
  cpu-gather: Delete old script
  cpu-gather: Separate data input and output
  cpu-parse: Wrap with python script
  cpu-gather: Transport data as json
  cpu-parse: Move model name detection to new script
  cpu-parse: Move file name generation to new script
  cpu-parse: Move xml output to new script
  cpu-parse: Move json output to new script
  cpu-parse: Move call to cpu-cpuid.py to new script
  cpu-parse: Delete old script
  cpu-gather: Ignore empty responses from qemu
  cpu-gather: Ignore shutdown messages from qemu
  cpu-gather: Parse cpuid leaves early
  cpu-gather: Allow gathering and parsing data in one step.
  cpu-gather: Prepare gather_msr for reading multiple msr
  cpu-gather: Add IA32_CORE_CAPABILITY_MSR

 tests/cputestdata/cpu-cpuid.py    |   5 +-
 tests/cputestdata/cpu-gather.py   | 365 ++++++++++++++++++++++++++++++
 tests/cputestdata/cpu-gather.sh   | 103 ---------
 tests/cputestdata/cpu-parse.sh    |  65 ------
 tests/cputestdata/cpu-reformat.py |   9 -
 5 files changed, 368 insertions(+), 179 deletions(-)
 create mode 100755 tests/cputestdata/cpu-gather.py
 delete mode 100755 tests/cputestdata/cpu-gather.sh
 delete mode 100755 tests/cputestdata/cpu-parse.sh
 delete mode 100755 tests/cputestdata/cpu-reformat.py

-- 
2.26.2


Re: [libvirt PATCH 00/29] Refactor scripts in tests/cputestdata
Posted by Michal Prívozník 3 years, 4 months ago
On 12/15/20 5:24 PM, Tim Wiederhake wrote:
> This series refactors the various scripts found in tests/cputestdata and
> adds support for CORE_CAPABILITY MSR, as found on e.g. SnowRidge.
> 
> Acquiring test data on a new system is a two step process. "cpu-gather.sh"
> gathers information on the target machine and has as few dependencies as
> possible. "cpu-parse.sh" processes this information but requires access to
> a libvirt source tree and has more dependencies, e.g. "xmltodict".
> 
> This series merges three of the four involved scripts (cpu-gather.sh,
> cpu-parse.sh and cpu-reformat.py) into a single python3 script. python3
> already was a dependency for cpu-gather.sh and care has been taken to not
> depend on modules that are not installed by default [1]. Merging the fourth
> script, cpu-cpuid.py, will come in a seperate series.
> 
> Patches 1 to 14 transform cpu-gather into a python script, preserving the
> format of the output (except for consistent "\n" line endings; previously
> the tool would output a mix of "\n" and "\r\n").
> 
> Patches 15 to 23 merge cpu-parse into the script. In this process, the
> format of the intermediary data is changed to json.
> 
> Patches 24 to 29 add support for "all in one" operation and extracting
> IA32_CORE_CAPABILITY_MSR, which can be found on e.g. SnowRidge CPUs.
> 
> Old usage:
>    ./cpu-gather.sh | ./cpu-parse.sh
> New:
>    ./cpu-gather.py [--gather] | ./cpu-gather.py --parse
> Alternative on single machine:
>    ./cpu-gather.py --gather --parse
> 
> [1] https://docs.python.org/3/py-modindex.html
> 
> Tim Wiederhake (29):
>    cpu-cpuid: Shorten overly long line
>    cpu-gather: Create python wrapper for shell script
>    cpu-gather: Move model_name to new script
>    cpu-gather: Allow overwriting model name
>    cpu-gather: Move cpuid call to new script
>    cpu-gather: Allow overwriting cpuid binary location
>    cpu-gather: Move msr decoding to new script
>    cpu-gather: Move qemu detection to new script
>    cpu-gather: Move static model expansion to new script
>    cpu-gather: Move static model extraction to new script
>    cpu-gather: Move simple model extraction to new script
>    cpu-gather: Move full model extraction to new script
>    cpu-gather: Merge model gathering logic
>    cpu-gather: Delete old script
>    cpu-gather: Separate data input and output
>    cpu-parse: Wrap with python script
>    cpu-gather: Transport data as json
>    cpu-parse: Move model name detection to new script
>    cpu-parse: Move file name generation to new script
>    cpu-parse: Move xml output to new script
>    cpu-parse: Move json output to new script
>    cpu-parse: Move call to cpu-cpuid.py to new script
>    cpu-parse: Delete old script
>    cpu-gather: Ignore empty responses from qemu
>    cpu-gather: Ignore shutdown messages from qemu
>    cpu-gather: Parse cpuid leaves early
>    cpu-gather: Allow gathering and parsing data in one step.
>    cpu-gather: Prepare gather_msr for reading multiple msr
>    cpu-gather: Add IA32_CORE_CAPABILITY_MSR
> 
>   tests/cputestdata/cpu-cpuid.py    |   5 +-
>   tests/cputestdata/cpu-gather.py   | 365 ++++++++++++++++++++++++++++++
>   tests/cputestdata/cpu-gather.sh   | 103 ---------
>   tests/cputestdata/cpu-parse.sh    |  65 ------
>   tests/cputestdata/cpu-reformat.py |   9 -
>   5 files changed, 368 insertions(+), 179 deletions(-)
>   create mode 100755 tests/cputestdata/cpu-gather.py
>   delete mode 100755 tests/cputestdata/cpu-gather.sh
>   delete mode 100755 tests/cputestdata/cpu-parse.sh
>   delete mode 100755 tests/cputestdata/cpu-reformat.py
> 

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

and will push shortly.

Michal