[libvirt] [PATCH] virsh: fix forget jump to clean up when set a big bandwidth
by Luyao Huang
We already have a check for this, just add a jump to cleanup and change to
use vshError instead of virReportError.
Signed-off-by: Luyao Huang <lhuang(a)redhat.com>
---
tools/virsh-domain.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 1d8225c..33fbf9c 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -2253,9 +2253,8 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
* ullong bytes/s; make sure we don't overflow */
unsigned long long limit = MIN(ULONG_MAX, ULLONG_MAX >> 20);
if (bandwidth > limit) {
- virReportError(VIR_ERR_OVERFLOW,
- _("bandwidth must be less than %llu"),
- ULLONG_MAX >> 20);
+ vshError(ctl, _("bandwidth must be less than %llu"), limit);
+ goto cleanup;
}
if (virTypedParameterAssign(¶ms[nparams++],
VIR_DOMAIN_BLOCK_COPY_BANDWIDTH,
--
1.8.3.1
9 years, 7 months
[libvirt] [PATCH 1/2] tests: nodeinfo: Test F21 aarch64 on APM mustang
by Cole Robinson
---
tests/nodeinfodata/linux-aarch64-f21-mustang.cpuinfo | 17 +++++++++++++++++
tests/nodeinfodata/linux-aarch64-f21-mustang.expected | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu0/power/async | 1 +
.../cpu/cpu0/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu0/power/control | 1 +
.../cpu/cpu0/power/runtime_active_kids | 1 +
.../cpu/cpu0/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu0/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu0/power/runtime_status | 1 +
.../cpu/cpu0/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu0/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu0/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu0/topology/core_siblings | 1 +
.../cpu/cpu0/topology/core_siblings_list | 1 +
.../cpu/cpu0/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu0/topology/thread_siblings | 1 +
.../cpu/cpu0/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu1/power/async | 1 +
.../cpu/cpu1/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu1/power/control | 1 +
.../cpu/cpu1/power/runtime_active_kids | 1 +
.../cpu/cpu1/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu1/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu1/power/runtime_status | 1 +
.../cpu/cpu1/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu1/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu1/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu1/topology/core_siblings | 1 +
.../cpu/cpu1/topology/core_siblings_list | 1 +
.../cpu/cpu1/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu1/topology/thread_siblings | 1 +
.../cpu/cpu1/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu2/power/async | 1 +
.../cpu/cpu2/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu2/power/control | 1 +
.../cpu/cpu2/power/runtime_active_kids | 1 +
.../cpu/cpu2/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu2/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu2/power/runtime_status | 1 +
.../cpu/cpu2/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu2/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu2/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu2/topology/core_siblings | 1 +
.../cpu/cpu2/topology/core_siblings_list | 1 +
.../cpu/cpu2/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu2/topology/thread_siblings | 1 +
.../cpu/cpu2/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu3/power/async | 1 +
.../cpu/cpu3/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu3/power/control | 1 +
.../cpu/cpu3/power/runtime_active_kids | 1 +
.../cpu/cpu3/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu3/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu3/power/runtime_status | 1 +
.../cpu/cpu3/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu3/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu3/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu3/topology/core_siblings | 1 +
.../cpu/cpu3/topology/core_siblings_list | 1 +
.../cpu/cpu3/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu3/topology/thread_siblings | 1 +
.../cpu/cpu3/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu4/power/async | 1 +
.../cpu/cpu4/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu4/power/control | 1 +
.../cpu/cpu4/power/runtime_active_kids | 1 +
.../cpu/cpu4/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu4/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu4/power/runtime_status | 1 +
.../cpu/cpu4/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu4/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu4/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu4/topology/core_siblings | 1 +
.../cpu/cpu4/topology/core_siblings_list | 1 +
.../cpu/cpu4/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu4/topology/thread_siblings | 1 +
.../cpu/cpu4/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu5/power/async | 1 +
.../cpu/cpu5/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu5/power/control | 1 +
.../cpu/cpu5/power/runtime_active_kids | 1 +
.../cpu/cpu5/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu5/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu5/power/runtime_status | 1 +
.../cpu/cpu5/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu5/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu5/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu5/topology/core_siblings | 1 +
.../cpu/cpu5/topology/core_siblings_list | 1 +
.../cpu/cpu5/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu5/topology/thread_siblings | 1 +
.../cpu/cpu5/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu6/power/async | 1 +
.../cpu/cpu6/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu6/power/control | 1 +
.../cpu/cpu6/power/runtime_active_kids | 1 +
.../cpu/cpu6/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu6/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu6/power/runtime_status | 1 +
.../cpu/cpu6/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu6/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu6/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu6/topology/core_siblings | 1 +
.../cpu/cpu6/topology/core_siblings_list | 1 +
.../cpu/cpu6/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu6/topology/thread_siblings | 1 +
.../cpu/cpu6/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/online | 1 +
.../nodeinfodata/linux-f21-mustang/cpu/cpu7/power/async | 1 +
.../cpu/cpu7/power/autosuspend_delay_ms | 0
.../linux-f21-mustang/cpu/cpu7/power/control | 1 +
.../cpu/cpu7/power/runtime_active_kids | 1 +
.../cpu/cpu7/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/cpu7/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/cpu7/power/runtime_status | 1 +
.../cpu/cpu7/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/cpu7/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/subsystem | 1 +
.../linux-f21-mustang/cpu/cpu7/topology/core_id | 1 +
.../linux-f21-mustang/cpu/cpu7/topology/core_siblings | 1 +
.../cpu/cpu7/topology/core_siblings_list | 1 +
.../cpu/cpu7/topology/physical_package_id | 1 +
.../linux-f21-mustang/cpu/cpu7/topology/thread_siblings | 1 +
.../cpu/cpu7/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/uevent | 8 ++++++++
tests/nodeinfodata/linux-f21-mustang/cpu/kernel_max | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/modalias | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/offline | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/online | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/possible | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/power/async | 1 +
.../linux-f21-mustang/cpu/power/autosuspend_delay_ms | 0
tests/nodeinfodata/linux-f21-mustang/cpu/power/control | 1 +
.../linux-f21-mustang/cpu/power/runtime_active_kids | 1 +
.../linux-f21-mustang/cpu/power/runtime_active_time | 1 +
.../linux-f21-mustang/cpu/power/runtime_enabled | 1 +
.../linux-f21-mustang/cpu/power/runtime_status | 1 +
.../linux-f21-mustang/cpu/power/runtime_suspended_time | 1 +
.../linux-f21-mustang/cpu/power/runtime_usage | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/present | 1 +
tests/nodeinfodata/linux-f21-mustang/cpu/uevent | 0
tests/nodeinfotest.c | 1 +
163 files changed, 225 insertions(+)
create mode 100644 tests/nodeinfodata/linux-aarch64-f21-mustang.cpuinfo
create mode 100644 tests/nodeinfodata/linux-aarch64-f21-mustang.expected
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_usage
create mode 120000 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/subsystem
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/uevent
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/kernel_max
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/modalias
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/offline
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/online
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/possible
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/async
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/autosuspend_delay_ms
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/control
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_kids
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_enabled
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_status
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_suspended_time
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_usage
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/present
create mode 100644 tests/nodeinfodata/linux-f21-mustang/cpu/uevent
diff --git a/tests/nodeinfodata/linux-aarch64-f21-mustang.cpuinfo b/tests/nodeinfodata/linux-aarch64-f21-mustang.cpuinfo
new file mode 100644
index 0000000..b969946
--- /dev/null
+++ b/tests/nodeinfodata/linux-aarch64-f21-mustang.cpuinfo
@@ -0,0 +1,17 @@
+Processor : AArch64 Processor rev 0 (aarch64)
+processor : 0
+processor : 1
+processor : 2
+processor : 3
+processor : 4
+processor : 5
+processor : 6
+processor : 7
+Features : fp asimd evtstrm
+CPU implementer : 0x50
+CPU architecture: AArch64
+CPU variant : 0x0
+CPU part : 0x000
+CPU revision : 0
+
+Hardware : APM X-Gene Mustang board
diff --git a/tests/nodeinfodata/linux-aarch64-f21-mustang.expected b/tests/nodeinfodata/linux-aarch64-f21-mustang.expected
new file mode 100644
index 0000000..ac950dc
--- /dev/null
+++ b/tests/nodeinfodata/linux-aarch64-f21-mustang.expected
@@ -0,0 +1 @@
+CPUs: 8/8, MHz: 0, Nodes: 1, Sockets: 4, Cores: 2, Threads: 1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings
new file mode 100644
index 0000000..75016ea
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings
@@ -0,0 +1 @@
+03
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings_list
new file mode 100644
index 0000000..8b0fab8
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/core_siblings_list
@@ -0,0 +1 @@
+0-1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings
new file mode 100644
index 0000000..8a0f05e
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings
@@ -0,0 +1 @@
+01
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings_list
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/topology/thread_siblings_list
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/uevent
new file mode 100644
index 0000000..ba52083
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu0/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@000
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings
new file mode 100644
index 0000000..75016ea
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings
@@ -0,0 +1 @@
+03
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings_list
new file mode 100644
index 0000000..8b0fab8
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/core_siblings_list
@@ -0,0 +1 @@
+0-1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/physical_package_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/physical_package_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings
new file mode 100644
index 0000000..9e22bcb
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings
@@ -0,0 +1 @@
+02
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings_list
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/topology/thread_siblings_list
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/uevent
new file mode 100644
index 0000000..170ad0b
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu1/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@001
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings
new file mode 100644
index 0000000..8ac4b4c
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings
@@ -0,0 +1 @@
+0c
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings_list
new file mode 100644
index 0000000..7a98575
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/core_siblings_list
@@ -0,0 +1 @@
+2-3
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings
new file mode 100644
index 0000000..6496923
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings
@@ -0,0 +1 @@
+04
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings_list
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/topology/thread_siblings_list
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/uevent
new file mode 100644
index 0000000..1f4dcb1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu2/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@100
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings
new file mode 100644
index 0000000..8ac4b4c
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings
@@ -0,0 +1 @@
+0c
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings_list
new file mode 100644
index 0000000..7a98575
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/core_siblings_list
@@ -0,0 +1 @@
+2-3
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/physical_package_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/physical_package_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings
new file mode 100644
index 0000000..adb9de8
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings
@@ -0,0 +1 @@
+08
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings_list
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/topology/thread_siblings_list
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/uevent
new file mode 100644
index 0000000..78869cc
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu3/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@101
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings
new file mode 100644
index 0000000..64bb6b7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings
@@ -0,0 +1 @@
+30
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings_list
new file mode 100644
index 0000000..e66d883
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/core_siblings_list
@@ -0,0 +1 @@
+4-5
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/physical_package_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/physical_package_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings
@@ -0,0 +1 @@
+10
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings_list
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/topology/thread_siblings_list
@@ -0,0 +1 @@
+4
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/uevent
new file mode 100644
index 0000000..5d3a708
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu4/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@200
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings
new file mode 100644
index 0000000..64bb6b7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings
@@ -0,0 +1 @@
+30
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings_list
new file mode 100644
index 0000000..e66d883
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/core_siblings_list
@@ -0,0 +1 @@
+4-5
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/physical_package_id
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/physical_package_id
@@ -0,0 +1 @@
+2
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings
new file mode 100644
index 0000000..209e3ef
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings
@@ -0,0 +1 @@
+20
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings_list
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/topology/thread_siblings_list
@@ -0,0 +1 @@
+5
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/uevent
new file mode 100644
index 0000000..00d94c3
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu5/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@201
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_id
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_id
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings
new file mode 100644
index 0000000..caecf05
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings
@@ -0,0 +1 @@
+c0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings_list
new file mode 100644
index 0000000..fdd9f37
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/core_siblings_list
@@ -0,0 +1 @@
+6-7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/physical_package_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/physical_package_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings
new file mode 100644
index 0000000..425151f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings
@@ -0,0 +1 @@
+40
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings_list
new file mode 100644
index 0000000..1e8b314
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/topology/thread_siblings_list
@@ -0,0 +1 @@
+6
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/uevent
new file mode 100644
index 0000000..d612e9c
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu6/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@300
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/online b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/online
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/online
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/subsystem b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/subsystem
new file mode 120000
index 0000000..758c291
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/subsystem
@@ -0,0 +1 @@
+../../../../bus/cpu
\ No newline at end of file
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_id
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_id
@@ -0,0 +1 @@
+1
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings
new file mode 100644
index 0000000..caecf05
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings
@@ -0,0 +1 @@
+c0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings_list
new file mode 100644
index 0000000..fdd9f37
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/core_siblings_list
@@ -0,0 +1 @@
+6-7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/physical_package_id b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/physical_package_id
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/physical_package_id
@@ -0,0 +1 @@
+3
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings
new file mode 100644
index 0000000..d15a2cc
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings
@@ -0,0 +1 @@
+80
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings_list b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings_list
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/topology/thread_siblings_list
@@ -0,0 +1 @@
+7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/uevent
new file mode 100644
index 0000000..c24e537
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/cpu7/uevent
@@ -0,0 +1,8 @@
+OF_NAME=cpu
+OF_FULLNAME=/cpus/cpu@301
+OF_TYPE=cpu
+OF_COMPATIBLE_0=apm,potenza
+OF_COMPATIBLE_1=arm,armv8
+OF_COMPATIBLE_N=2
+MODALIAS=cpu:type:aarch64:feature:,0000,0001,0002
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/kernel_max b/tests/nodeinfodata/linux-f21-mustang/cpu/kernel_max
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/kernel_max
@@ -0,0 +1 @@
+7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/modalias b/tests/nodeinfodata/linux-f21-mustang/cpu/modalias
new file mode 100644
index 0000000..18bb0b6
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/modalias
@@ -0,0 +1 @@
+cpu:type:aarch64:feature:,0000,0001,0002
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/offline b/tests/nodeinfodata/linux-f21-mustang/cpu/offline
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/offline
@@ -0,0 +1 @@
+
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/online b/tests/nodeinfodata/linux-f21-mustang/cpu/online
new file mode 100644
index 0000000..74fc2fb
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/online
@@ -0,0 +1 @@
+0-7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/possible b/tests/nodeinfodata/linux-f21-mustang/cpu/possible
new file mode 100644
index 0000000..74fc2fb
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/possible
@@ -0,0 +1 @@
+0-7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/async b/tests/nodeinfodata/linux-f21-mustang/cpu/power/async
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/async
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/autosuspend_delay_ms b/tests/nodeinfodata/linux-f21-mustang/cpu/power/autosuspend_delay_ms
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/control b/tests/nodeinfodata/linux-f21-mustang/cpu/power/control
new file mode 100644
index 0000000..865faf1
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/control
@@ -0,0 +1 @@
+auto
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_kids b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_kids
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_kids
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_time b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_active_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_enabled b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_enabled
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_enabled
@@ -0,0 +1 @@
+disabled
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_status b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_status
new file mode 100644
index 0000000..ad7ccf7
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_status
@@ -0,0 +1 @@
+unsupported
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_suspended_time b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_suspended_time
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_suspended_time
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_usage b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_usage
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/power/runtime_usage
@@ -0,0 +1 @@
+0
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/present b/tests/nodeinfodata/linux-f21-mustang/cpu/present
new file mode 100644
index 0000000..74fc2fb
--- /dev/null
+++ b/tests/nodeinfodata/linux-f21-mustang/cpu/present
@@ -0,0 +1 @@
+0-7
diff --git a/tests/nodeinfodata/linux-f21-mustang/cpu/uevent b/tests/nodeinfodata/linux-f21-mustang/cpu/uevent
new file mode 100644
index 0000000..e69de29
diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
index 3c76e5d..492cc92 100644
--- a/tests/nodeinfotest.c
+++ b/tests/nodeinfotest.c
@@ -246,6 +246,7 @@ mymain(void)
{"test7", VIR_ARCH_X86_64},
{"test8", VIR_ARCH_X86_64},
{"raspberrypi", VIR_ARCH_ARMV6L},
+ {"f21-mustang", VIR_ARCH_AARCH64},
};
if (virInitialize() < 0)
--
2.3.4
9 years, 7 months
[libvirt] [libvirt-perl PATCH] Add VIR_FROM_THREAD constant
by John Ferlan
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Changes | 1 +
Virt.xs | 1 +
lib/Sys/Virt/Error.pm | 4 ++++
3 files changed, 6 insertions(+)
diff --git a/Changes b/Changes
index 7a2bc51..1849668 100644
--- a/Changes
+++ b/Changes
@@ -11,6 +11,7 @@ Revision history for perl module Sys::Virt
- Add VIR_DOMAIN_PAUSED_STARTING_UP constant
- Adapt to rename of virDomainIOThreadsInfoFree to virDomainIOThreadInfoFree
- Adapt to rename of virDomainGetIOThreadsInfo to virDomainGetIOThreadInfo
+ - Add VIR_FROM_THREAD constant
1.2.13 2015-03-05
diff --git a/Virt.xs b/Virt.xs
index 2138530..d01cf05 100644
--- a/Virt.xs
+++ b/Virt.xs
@@ -8104,6 +8104,7 @@ BOOT:
REGISTER_CONSTANT(VIR_FROM_CRYPTO, FROM_CRYPTO);
REGISTER_CONSTANT(VIR_FROM_FIREWALL, FROM_FIREWALL);
REGISTER_CONSTANT(VIR_FROM_POLKIT, FROM_POLKIT);
+ REGISTER_CONSTANT(VIR_FROM_THREAD, FROM_THREAD);
REGISTER_CONSTANT(VIR_ERR_OK, ERR_OK);
diff --git a/lib/Sys/Virt/Error.pm b/lib/Sys/Virt/Error.pm
index 2171bf2..e2fdbe1 100644
--- a/lib/Sys/Virt/Error.pm
+++ b/lib/Sys/Virt/Error.pm
@@ -378,6 +378,10 @@ The firewall helper APIs.
The polkit authentication / authorization APIs
+=item Sys::Virt::Error::FROM_THREAD
+
+The thread helper utils
+
=back
=head2 ERROR CODE CONSTANTS
--
2.1.0
9 years, 7 months
[libvirt] [PATCH V2] libxl: fix dom0 balloon logic
by Jim Fehlig
Recent testing on large memory systems revealed a bug in the Xen xl
tool's freemem() function. When autoballooning is enabled, freemem()
is used to ensure enough memory is available to start a domain,
ballooning dom0 if necessary. When ballooning large amounts of memory
from dom0, freemem() would exceed its self-imposed wait time and
return an error. Meanwhile, dom0 continued to balloon. Starting the
domain later, after sufficient memory was ballooned from dom0, would
succeed. The libvirt implementation in libxlDomainFreeMem() suffers
the same bug since it is modeled after freemem().
In the end, the best place to fix the bug on the Xen side was to
slightly change the behavior of libxl_wait_for_memory_target().
Instead of failing after caller-provided wait_sec, the function now
blocks as long as dom0 memory ballooning is progressing. It will return
failure only when more memory is needed to reach the target and wait_sec
have expired with no progress being made. See xen.git commit fd3aa246.
There was a dicussion on how this would affect other libxl apps like
libvirt
http://lists.xen.org/archives/html/xen-devel/2015-03/msg00739.html
If libvirt containing this patch was build against a Xen containing
the old libxl_wait_for_memory_target() behavior, libxlDomainFreeMem()
will fail after 30 sec and domain creation will be terminated.
Without this patch and with old libxl_wait_for_memory_target() behavior,
libxlDomainFreeMem() does not succeed after 30 sec, but returns success
anyway. Domain creation continues resulting in all sorts of fun stuff
like cpu soft lockups in the guest OS. It was decided to properly fix
libxl_wait_for_memory_target(), and if anything improve the default
behavior of apps using the freemem reference impl in xl.
xl was patched to accommodate the change in libxl_wait_for_memory_target()
with xen.git commit 883b30a0. This patch does the same in the libxl
driver. While at it, I changed the logic to essentially match
freemem() in $xensrc/tools/libxl/xl_cmdimpl.c. It was a bit cleaner
IMO and will make it easier to spot future, potentially interesting
divergences.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
V2: Actually use libxl_wait_for_memory_target(), instead of
libxl_wait_for_free_memory()
src/libxl/libxl_domain.c | 55 +++++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 29 deletions(-)
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 407a9bd..a1739aa 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -1121,38 +1121,39 @@ libxlDomainFreeMem(libxlDomainObjPrivatePtr priv, libxl_domain_config *d_config)
{
uint32_t needed_mem;
uint32_t free_mem;
- size_t i;
- int ret = -1;
+ int ret;
int tries = 3;
int wait_secs = 10;
- if ((ret = libxl_domain_need_memory(priv->ctx, &d_config->b_info,
- &needed_mem)) >= 0) {
- for (i = 0; i < tries; ++i) {
- if ((ret = libxl_get_free_memory(priv->ctx, &free_mem)) < 0)
- break;
+ ret = libxl_domain_need_memory(priv->ctx, &d_config->b_info, &needed_mem);
+ if (ret < 0)
+ goto error;
- if (free_mem >= needed_mem) {
- ret = 0;
- break;
- }
+ do {
+ ret = libxl_get_free_memory(priv->ctx, &free_mem);
+ if (ret < 0)
+ goto error;
- if ((ret = libxl_set_memory_target(priv->ctx, 0,
- free_mem - needed_mem,
- /* relative */ 1, 0)) < 0)
- break;
+ if (free_mem >= needed_mem)
+ return 0;
- ret = libxl_wait_for_free_memory(priv->ctx, 0, needed_mem,
- wait_secs);
- if (ret == 0 || ret != ERROR_NOMEM)
- break;
+ ret = libxl_set_memory_target(priv->ctx, 0,
+ free_mem - needed_mem,
+ /* relative */ 1, 0);
+ if (ret < 0)
+ goto error;
- if ((ret = libxl_wait_for_memory_target(priv->ctx, 0, 1)) < 0)
- break;
- }
- }
+ ret = libxl_wait_for_memory_target(priv->ctx, 0, wait_secs);
+ if (ret < 0)
+ goto error;
- return ret;
+ tries--;
+ } while (tries > 0);
+
+ error:
+ virReportSystemError(ret, "%s",
+ _("Failed to balloon domain0 memory"));
+ return -1;
}
static void
@@ -1271,12 +1272,8 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
priv->ctx, &d_config) < 0)
goto endjob;
- if (cfg->autoballoon && libxlDomainFreeMem(priv, &d_config) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("libxenlight failed to get free memory for domain '%s'"),
- d_config.c_info.name);
+ if (cfg->autoballoon && libxlDomainFreeMem(priv, &d_config) < 0)
goto endjob;
- }
if (virHostdevPrepareDomainDevices(hostdev_mgr, LIBXL_DRIVER_NAME,
vm->def, VIR_HOSTDEV_SP_PCI) < 0)
--
1.8.4.5
9 years, 7 months
[libvirt] [PATCH] virsh: add check for exclusive options for domstats command
by Pavel Hrdina
Option --domain cannot be combined with options --list-*.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1143837
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tools/virsh-domain-monitor.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index 6951db2..e683a6d 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -2110,6 +2110,15 @@ cmdDomstats(vshControl *ctl, const vshCmd *cmd)
const vshCmdOpt *opt = NULL;
bool ret = false;
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-active");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-inactive");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-persistent");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-transient");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-running");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-paused");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-shutoff");
+ VSH_EXCLUSIVE_OPTIONS("domain", "list-other");
+
if (vshCommandOptBool(cmd, "state"))
stats |= VIR_DOMAIN_STATS_STATE;
--
2.0.5
9 years, 7 months
[libvirt] [PATCH] virDomainShutdown*: Describe blocking behaviour
by Michal Privoznik
The description to both virDomainShutdown() and
virDomainShutdownFlags() is quite misleading when it comes to
blocking behaviour of these two APIs. Firstly, we support many
shutdown methods, from signalizing an ACPI event, through sending
a signal to guest agent assisted shutdown. Some of these methods
make the API return immediately, while others block the API until
domain is actually shut of. And since virDomainShutdown() is
equivalent to calling virDomainShutdownFlags(0), it's up to each
driver which methods to try. So the bare virDomainShutdown() may
block or may return immediately at the same time. I know, it's
confusing, but at least let users know.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/libvirt-domain.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index f1608dc..03b342f 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -1474,9 +1474,12 @@ virDomainScreenshot(virDomainPtr domain,
* 'on_poweroff' XML setting resulting in a domain that reboots instead of
* shutting down. For guests that react to a shutdown request, the differences
* from virDomainDestroy() are that the guests disk storage will be in a
- * stable state rather than having the (virtual) power cord pulled, and
- * this command returns as soon as the shutdown request is issued rather
- * than blocking until the guest is no longer running.
+ * stable state rather than having the (virtual) power cord pulled. It's up to
+ * hypervisor's driver implementation what methods of
+ * virDomainShutdownFlagValues are tried and in which order. As described in
+ * virDomainShutdownFlags, this call may return immediately after the shutdown
+ * request is send, or it may block indefinitely long, until the domain is
+ * actually shut off.
*
* If the domain is transient and has any snapshot metadata (see
* virDomainSnapshotNum()), then that metadata will automatically
@@ -1540,7 +1543,9 @@ virDomainShutdown(virDomainPtr domain)
* and a hypervisor is not required to support all methods.
*
* To use guest agent (VIR_DOMAIN_SHUTDOWN_GUEST_AGENT) the domain XML
- * must have <channel> configured.
+ * must have <channel> configured. Moreover, depending on underlying
+ * hypervisor used, passing this flag may block the API until the domain
+ * is shut off (which is not guaranteed to happen anyway).
*
* Returns 0 in case of success and -1 in case of failure.
*/
--
2.0.5
9 years, 7 months
[libvirt] connect: ssh: Shall we remove the dependency of netcat ?
by zhang bo
1 When we connect libvirt with URI "qemu+ssh", it uses 'nc' command to connect to libvirt-sock.
# virsh -c qemu+ssh://root@9.61.1.74/system list
Password: //ask users to input passwords here.
Id Name State
----------------------------------------------------
11 pxe running
It in fact uses 'ssh' and 'nc' commands to connect to remote libvirt-sock, such as:
ssh -l root 9.61.1.74 sh -c ''nc' -U /var/run/libvirt/libvirt-sock'
The code path is : virConnectOpen->doRemoteOpen->virNetClientNewSSH->virNetSocketNewConnectSSH
2 However, netcat(nc) is considered as an insecure tool, because it's too powerful in controlling the network.
It's abandoned by some organizations.
3 So, is there any good substitution for netcat to realize qemu+ssh?
9 years, 7 months
[libvirt] [PATCH 0/3] For 1.2.14: Fix regression in synchronous block job ABORT/PIVOT
by Peter Krempa
When a block job is terminated via the synchronous API the backing chain would
be updated in a separate thread and thus allowed applications to get outdated
data. This broke live snapshot merge on oVirt.
Since the commit breaking this (see patch 3/3) was not released yet I'm asking
to merge this during the freeze.
Peter Krempa (3):
qemu: processBlockJob: Don't unlock @vm twice
qemu: Extract internals of processBlockJobEvent into a helper
qemu: blockjob: Synchronously update backing chain in XML on
ABORT/PIVOT
src/conf/domain_conf.c | 16 +++-
src/conf/domain_conf.h | 6 ++
src/qemu/qemu_driver.c | 246 ++++++++++++++++++++++++------------------------
src/qemu/qemu_process.c | 38 +++++---
4 files changed, 169 insertions(+), 137 deletions(-)
--
2.2.2
9 years, 7 months
[libvirt] [PATCH] qemucaps2xmltest: fix test to successfully run without kvm support
by Pavel Hrdina
Function virQEMUCapsInitGuestFromBinary detect kvm support by testing
whether /dev/kvm exists or whether we pass path to kvmbin. Provide the
path we are testing via kvmbin for testing purpose instead of detecting
presence of /dev/kvm to successfully run the tests on all hosts.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/qemucaps2xmltest.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c
index b3975b4..826f9ea 100644
--- a/tests/qemucaps2xmltest.c
+++ b/tests/qemucaps2xmltest.c
@@ -118,8 +118,8 @@ testGetCaps(char *capsData, const testQemuData *data)
if (virQEMUCapsInitGuestFromBinary(caps,
"/usr/bin/qemu-system-i386",
qemuCaps,
- NULL,
- NULL,
+ "/usr/bin/qemu-system-i386",
+ qemuCaps,
data->guestarch) < 0) {
fprintf(stderr, "failed to create the capabilities from qemu");
goto error;
--
2.0.5
9 years, 7 months
[libvirt] [PATCH] Strip control codes in virBufferEscapeString
by Ján Tomko
These cannot be represented in XML.
We have been stripping them, but only if the string had
characters that needed escaping: <>"'&
Extend the strcspn check to include control codes, and strip
them even if we don't do any escaping.
https://bugzilla.redhat.com/show_bug.cgi?id=1184131
https://bugzilla.redhat.com/show_bug.cgi?id=1066564
---
src/util/virbuffer.c | 14 +++++++++++---
tests/virbuftest.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c
index 706dbfa..3d13c90 100644
--- a/src/util/virbuffer.c
+++ b/src/util/virbuffer.c
@@ -438,6 +438,13 @@ virBufferEscapeString(virBufferPtr buf, const char *format, const char *str)
int len;
char *escaped, *out;
const char *cur;
+ const char forbidden_characters[] = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ /*\t*/ /*\n*/ 0x0B, 0x0C, /*\r*/ 0x0E, 0x0F, 0x10,
+ 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
+ 0x19, '"', '&', '\'', '<', '>',
+ '\0'
+ };
if ((format == NULL) || (buf == NULL) || (str == NULL))
return;
@@ -446,7 +453,7 @@ virBufferEscapeString(virBufferPtr buf, const char *format, const char *str)
return;
len = strlen(str);
- if (strcspn(str, "<>&'\"") == len) {
+ if (strcspn(str, forbidden_characters) == len) {
virBufferAsprintf(buf, format, str);
return;
}
@@ -490,8 +497,7 @@ virBufferEscapeString(virBufferPtr buf, const char *format, const char *str)
*out++ = 'o';
*out++ = 's';
*out++ = ';';
- } else if (((unsigned char)*cur >= 0x20) || (*cur == '\n') || (*cur == '\t') ||
- (*cur == '\r')) {
+ } else if (!strchr(forbidden_characters, *cur)) {
/*
* default case, just copy !
* Note that character over 0x80 are likely to give problem
@@ -499,6 +505,8 @@ virBufferEscapeString(virBufferPtr buf, const char *format, const char *str)
* it's hard to handle properly we have to assume it's UTF-8 too
*/
*out++ = *cur;
+ } else {
+ /* silently ignore control characters */
}
cur++;
}
diff --git a/tests/virbuftest.c b/tests/virbuftest.c
index 21cb18b..10398d5 100644
--- a/tests/virbuftest.c
+++ b/tests/virbuftest.c
@@ -349,6 +349,39 @@ testBufAddStr(const void *opaque ATTRIBUTE_UNUSED)
static int
+testBufEscapeStr(const void *opaque ATTRIBUTE_UNUSED)
+{
+ const struct testBufAddStrData *data = opaque;
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
+ char *actual;
+ int ret = -1;
+
+ virBufferAddLit(&buf, "<c>\n");
+ virBufferAdjustIndent(&buf, 2);
+ virBufferEscapeString(&buf, "<el>%s</el>\n", data->data);
+ virBufferAdjustIndent(&buf, -2);
+ virBufferAddLit(&buf, "</c>");
+
+ if (!(actual = virBufferContentAndReset(&buf))) {
+ TEST_ERROR("buf is empty");
+ goto cleanup;
+ }
+
+ if (STRNEQ_NULLABLE(actual, data->expect)) {
+ TEST_ERROR("testBufEscapeStr(): Strings don't match:\n");
+ virtTestDifference(stderr, data->expect, actual);
+ goto cleanup;
+ }
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(actual);
+ return ret;
+}
+
+
+static int
mymain(void)
{
int ret = 0;
@@ -379,6 +412,22 @@ mymain(void)
DO_TEST_ADD_STR("<a/>\n", "<c>\n <a/>\n</c>");
DO_TEST_ADD_STR("<b>\n <a/>\n</b>\n", "<c>\n <b>\n <a/>\n </b>\n</c>");
+#define DO_TEST_ESCAPE(data, expect) \
+ do { \
+ struct testBufAddStrData info = { data, expect }; \
+ if (virtTestRun("Buf: EscapeStr", testBufEscapeStr, &info) < 0) \
+ ret = -1; \
+ } while (0)
+
+ DO_TEST_ESCAPE("<td></td><td></td>",
+ "<c>\n <el><td></td><td></td></el>\n</c>");
+ DO_TEST_ESCAPE("\007\"&&\"\x15",
+ "<c>\n <el>"&&"</el>\n</c>");
+ DO_TEST_ESCAPE(",,'..',,",
+ "<c>\n <el>,,'..',,</el>\n</c>");
+ DO_TEST_ESCAPE("\x01\x01\x02\x03\x05\x08",
+ "<c>\n <el></el>\n</c>");
+
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--
2.0.5
9 years, 7 months