CI: Add a tool for displaying CPU flags and QEMU version
As RHEL-10, and related OS projects (CentOS, RockyLinux, and AlmaLinux), need specific x86_84 machine levels, in this case x86_64-v3, It's helpful to see which CPUFlags are present in a given node and which version of QEMU is available. This adds a small tool to list the CPUFlags needed and those found. There are a few tools that will can do similar things but I didn't find one that covered what we need. Change-Id: Id8e4f679f6e781dce61d6ace151f3b639dc7edcc
This commit is contained in:
parent
bbfdfcecfc
commit
e47ad3aa85
@ -79,6 +79,7 @@
|
|||||||
Base job for DIB functional tests, which build and boot a node
|
Base job for DIB functional tests, which build and boot a node
|
||||||
under nodepool, using source versions of dependencies such as
|
under nodepool, using source versions of dependencies such as
|
||||||
nodepool, dib, openstacksdk and glean.
|
nodepool, dib, openstacksdk and glean.
|
||||||
|
pre-run: playbooks/dib-nodepool/node-information.yaml
|
||||||
parent: nodepool-functional-container-openstack-siblings-base
|
parent: nodepool-functional-container-openstack-siblings-base
|
||||||
post-run: playbooks/dib-nodepool/collect-openstack-logs.yaml
|
post-run: playbooks/dib-nodepool/collect-openstack-logs.yaml
|
||||||
vars:
|
vars:
|
||||||
|
34
playbooks/dib-nodepool/files/cpu-level.sh
Normal file
34
playbooks/dib-nodepool/files/cpu-level.sh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function report_cpu_flags() {
|
||||||
|
local flag
|
||||||
|
|
||||||
|
for flag; do
|
||||||
|
## Note, it's important to keep a trailing space
|
||||||
|
case " ${flags} " in
|
||||||
|
*" ${flag} "*)
|
||||||
|
echo " ${flag} Found"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo " ${flag} NOT Found"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
data=$(< /proc/cpuinfo)
|
||||||
|
flags=""
|
||||||
|
flags=$(grep "^flags[[:space:]]*:" <<< "${data}" | head -n 1)
|
||||||
|
flags="${flags#*:}"
|
||||||
|
flags="${flags## }"
|
||||||
|
|
||||||
|
echo "${flags}"
|
||||||
|
|
||||||
|
echo "x86_64-v1"
|
||||||
|
report_cpu_flags lm cmov cx8 fpu fxsr mmx syscall sse2
|
||||||
|
echo "x86_64-v2"
|
||||||
|
report_cpu_flags cx16 lahf_lm popcnt sse4_1 sse4_2 ssse3
|
||||||
|
echo "x86_64-v3"
|
||||||
|
report_cpu_flags avx avx2 bmi1 bmi2 f16c fma abm movbe xsave
|
||||||
|
echo "x86_64-v4"
|
||||||
|
report_cpu_flags avx512f avx512bw avx512cd avx512dq avx512vl
|
16
playbooks/dib-nodepool/node-information.yaml
Normal file
16
playbooks/dib-nodepool/node-information.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
- hosts: all
|
||||||
|
tasks:
|
||||||
|
- name: Copy the cpu-level script into place
|
||||||
|
copy:
|
||||||
|
src: cpu-level.sh
|
||||||
|
dest: /tmp/cpu-level.sh
|
||||||
|
mode:
|
||||||
|
- name: Collect CPU flags for node
|
||||||
|
command: bash /tmp/cpu-level.sh
|
||||||
|
# NOTE(tonyb): This is interesting as QEMU gains the ability to emuluate
|
||||||
|
# newer machine types for example 7.2 is needed for haswell.
|
||||||
|
- name: Collect QEMU version
|
||||||
|
ignore_errors: true
|
||||||
|
shell: |-
|
||||||
|
qemu-kvm --version
|
||||||
|
qemu-system-$(arch) --version
|
Loading…
x
Reference in New Issue
Block a user