Devel
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 25 participants
- 40350 discussions
08 Jul '15
Set the state of virDomainObj in the functions that
actually change the domain state, instead of the generic
libxlDomainCleanup function. This approach gives functions
calling libxlDomainCleanup more flexibility wrt when and
how they change virDomainObj state via virDomainObjSetState.
The prior approach of calling virDomainObjSetState in
libxlDomainCleanup resulted in the following incorrect
coding pattern in the various functions that change
domain state
libxlDomain<DoStateTransition>
call libxl function to do state transition
emit lifecycle event
libxlDomainCleanup
virDomainObjSetState
Once simple manifestation of this bug is seeing a domain
running in virt-manager after selecting the shutdown button,
even after the domain has long shutdown.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
I considered emitting the lifecycle event in libxlDomainCleanup,
but IMO it is best to change the state and emit the event where
where the state change actually occurs.
src/libxl/libxl_domain.c | 23 ++++++++++++-----------
src/libxl/libxl_domain.h | 3 +--
src/libxl/libxl_driver.c | 28 ++++++++++++++++++----------
src/libxl/libxl_migration.c | 8 ++++++--
4 files changed, 37 insertions(+), 25 deletions(-)
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 8e8a292..224ff77 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -397,7 +397,6 @@ libxlDomainShutdownThread(void *opaque)
libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL;
libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason;
- virDomainShutoffReason reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
libxlDriverConfigPtr cfg;
cfg = libxlDriverConfigGet(driver);
@@ -406,12 +405,14 @@ libxlDomainShutdownThread(void *opaque)
goto cleanup;
if (xl_reason == LIBXL_SHUTDOWN_REASON_POWEROFF) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
switch ((virDomainLifecycleAction) vm->def->onPoweroff) {
case VIR_DOMAIN_LIFECYCLE_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_RESTART:
case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME:
@@ -421,12 +422,14 @@ libxlDomainShutdownThread(void *opaque)
goto endjob;
}
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_CRASH) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_CRASHED);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
switch ((virDomainLifecycleCrashAction) vm->def->onCrash) {
case VIR_DOMAIN_LIFECYCLE_CRASH_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_CRASHED;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_CRASH_RESTART:
case VIR_DOMAIN_LIFECYCLE_CRASH_RESTART_RENAME:
@@ -442,12 +445,14 @@ libxlDomainShutdownThread(void *opaque)
goto restart;
}
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_REBOOT) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
switch ((virDomainLifecycleAction) vm->def->onReboot) {
case VIR_DOMAIN_LIFECYCLE_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_RESTART:
case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME:
@@ -467,7 +472,7 @@ libxlDomainShutdownThread(void *opaque)
dom_event = NULL;
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, reason);
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemove(driver->domains, vm);
@@ -479,7 +484,7 @@ libxlDomainShutdownThread(void *opaque)
dom_event = NULL;
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+ libxlDomainCleanup(driver, vm);
if (libxlDomainStart(driver, vm, false, -1) < 0) {
virErrorPtr err = virGetLastError();
VIR_ERROR(_("Failed to restart VM '%s': %s"),
@@ -685,8 +690,7 @@ libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
*/
void
libxlDomainCleanup(libxlDriverPrivatePtr driver,
- virDomainObjPtr vm,
- virDomainShutoffReason reason)
+ virDomainObjPtr vm)
{
libxlDomainObjPrivatePtr priv = vm->privateData;
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
@@ -709,9 +713,6 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
priv->deathW = NULL;
}
- if (vm->persistent)
- virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
-
if (virAtomicIntDecAndTest(&driver->nactive) && driver->inhibitCallback)
driver->inhibitCallback(false, driver->inhibitOpaque);
diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h
index 8c73cc4..44b3e0b 100644
--- a/src/libxl/libxl_domain.h
+++ b/src/libxl/libxl_domain.h
@@ -110,8 +110,7 @@ libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
void
libxlDomainCleanup(libxlDriverPrivatePtr driver,
- virDomainObjPtr vm,
- virDomainShutoffReason reason);
+ virDomainObjPtr vm);
/*
* Note: Xen 4.3 removed the const from the event handler signature.
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 149ef70..50861ac 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -383,7 +383,7 @@ libxlReconnectDomain(virDomainObjPtr vm,
return 0;
out:
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN);
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemoveLocked(driver->domains, vm);
else
@@ -1266,16 +1266,19 @@ libxlDomainDestroyFlags(virDomainPtr dom,
goto endjob;
}
+ if (libxlDomainDestroyInternal(driver, vm) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Failed to destroy domain '%d'"), vm->def->id);
+ goto endjob;
+ }
+
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_DESTROYED);
+
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
- if (libxlDomainDestroyInternal(driver, vm) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to destroy domain '%d'"), vm->def->id);
- goto endjob;
- }
-
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_DESTROYED);
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemove(driver->domains, vm);
@@ -1609,6 +1612,9 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
goto cleanup;
}
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SAVED);
+
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SAVED);
@@ -1618,7 +1624,7 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
goto cleanup;
}
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_SAVED);
+ libxlDomainCleanup(driver, vm);
vm->hasManagedSave = true;
ret = 0;
@@ -1825,7 +1831,9 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags)
goto unpause;
}
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_CRASHED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
if (!vm->persistent)
diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c
index 39e4a65..aa9547b 100644
--- a/src/libxl/libxl_migration.c
+++ b/src/libxl/libxl_migration.c
@@ -585,7 +585,9 @@ libxlDomainMigrationFinish(virConnectPtr dconn,
cleanup:
if (dom == NULL) {
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_FAILED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FAILED);
if (!vm->persistent)
@@ -624,7 +626,9 @@ libxlDomainMigrationConfirm(libxlDriverPrivatePtr driver,
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_MIGRATED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_MIGRATED);
--
2.1.4
2
2
In Xen, dom0 is really just another domain that supports ballooning,
adding/removing devices, changing vcpu configuration, etc. This patch
adds support to the libxl driver for managing dom0. Note that the
legacy xend driver has long supported managing dom0.
Operations that are not supported on dom0 are filtered in libvirt
where a sensible error is reported. Errors from libxl are not
always helpful. E.g., attempting a save on dom0 results in
2015-06-23 15:25:05 MDT libxl: debug: libxl_dom.c:1570:libxl__toolstack_save: domain=0 toolstack data size=8
2015-06-23 15:25:05 MDT libxl: debug: libxl.c:979:do_libxl_domain_suspend: ao 0x7f7e68000b70: inprogress: poller=0x7f7e68000930, flags=i
2015-06-23 15:25:05 MDT libxl-save-helper: debug: starting save: Success
2015-06-23 15:25:05 MDT xc: detail: xc_domain_save_suse: starting save of domid 0
2015-06-23 15:25:05 MDT xc: error: Couldn't map live_shinfo (3 = No such process): Internal error
2015-06-23 15:25:05 MDT xc: detail: Save exit of domid 0 with errno=3
2015-06-23 15:25:05 MDT libxl-save-helper: debug: complete r=1: No such process
2015-06-23 15:25:05 MDT libxl: error: libxl_dom.c:1876:libxl__xc_domain_save_done: saving domain: domain did not respond to suspend request: No such process
2015-06-23 15:25:05 MDT libxl: error: libxl_dom.c:2033:remus_teardown_done: Remus: failed to teardown device for guest with domid 0, rc -8
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
src/libxl/libxl_driver.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 95 insertions(+)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 149ef70..d0b76ac 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -79,6 +79,15 @@ VIR_LOG_INIT("libxl.libxl_driver");
/* Number of Xen scheduler parameters */
#define XEN_SCHED_CREDIT_NPARAM 2
+#define LIBXL_CHECK_DOM0_GOTO(name, label) \
+ do { \
+ if (STREQ_NULLABLE(name, "Domain-0")) { \
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s", \
+ _("Domain-0 does not support requested operation")); \
+ goto label; \
+ } \
+ } while (0)
+
static libxlDriverPrivatePtr libxl_driver;
@@ -501,6 +510,62 @@ const struct libxl_event_hooks ev_hooks = {
};
static int
+libxlAddDom0(libxlDriverPrivatePtr driver)
+{
+ libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ virDomainDefPtr def = NULL;
+ virDomainObjPtr vm = NULL;
+ virDomainDefPtr oldDef = NULL;
+ libxl_dominfo d_info;
+ int ret = -1;
+
+ libxl_dominfo_init(&d_info);
+
+ /* Ensure we have a dom0 */
+ if (libxl_domain_info(cfg->ctx, &d_info, 0) != 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("unable to get Domain-0 information from libxenlight"));
+ goto cleanup;
+ }
+
+ if (!(def = virDomainDefNew()))
+ goto cleanup;
+
+ def->id = 0;
+ def->virtType = VIR_DOMAIN_VIRT_XEN;
+ if (VIR_STRDUP(def->name, "Domain-0") < 0)
+ goto cleanup;
+
+ def->os.type = VIR_DOMAIN_OSTYPE_XEN;
+
+ if (virUUIDParse("00000000-0000-0000-0000-000000000000", def->uuid) < 0)
+ goto cleanup;
+
+ vm->def->vcpus = d_info.vcpu_online;
+ vm->def->maxvcpus = d_info.vcpu_max_id + 1;
+ vm->def->mem.cur_balloon = d_info.current_memkb;
+ vm->def->mem.max_balloon = d_info.max_memkb;
+
+ if (!(vm = virDomainObjListAdd(driver->domains, def,
+ driver->xmlopt,
+ 0,
+ &oldDef)))
+ goto cleanup;
+
+ def = NULL;
+ ret = 0;
+
+ cleanup:
+ libxl_dominfo_dispose(&d_info);
+ virDomainDefFree(def);
+ virDomainDefFree(oldDef);
+ if (vm)
+ virObjectUnlock(vm);
+ virObjectUnref(cfg);
+ return ret;
+}
+
+static int
libxlStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
@@ -616,6 +681,10 @@ libxlStateInitialize(bool privileged,
if (!(libxl_driver->xmlopt = libxlCreateXMLConf()))
goto error;
+ /* Add Domain-0 */
+ if (libxlAddDom0(libxl_driver) < 0)
+ goto error;
+
/* Load running domains first. */
if (virDomainObjListLoadAllConfigs(libxl_driver->domains,
cfg->stateDir,
@@ -1030,6 +1099,8 @@ libxlDomainSuspend(virDomainPtr dom)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSuspendEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1086,6 +1157,8 @@ libxlDomainResume(virDomainPtr dom)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1147,6 +1220,8 @@ libxlDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
@@ -1212,6 +1287,8 @@ libxlDomainReboot(virDomainPtr dom, unsigned int flags)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainRebootEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
@@ -1254,6 +1331,8 @@ libxlDomainDestroyFlags(virDomainPtr dom,
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1656,6 +1735,8 @@ libxlDomainSaveFlags(virDomainPtr dom, const char *to, const char *dxml,
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSaveFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1782,6 +1863,8 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainCoreDumpEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1877,6 +1960,8 @@ libxlDomainManagedSave(virDomainPtr dom, unsigned int flags)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainManagedSaveEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4000,6 +4085,8 @@ libxlDomainSetAutostart(virDomainPtr dom, int autostart)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSetAutostartEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4294,6 +4381,8 @@ libxlDomainOpenConsole(virDomainPtr dom,
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainOpenConsoleEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4817,6 +4906,12 @@ libxlDomainMigrateBegin3Params(virDomainPtr domain,
if (!(vm = libxlDomObjFromDomain(domain)))
return NULL;
+ if (STREQ_NULLABLE(vm->def->name, "Domain-0")) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("Domain-0 cannot be migrated"));
+ return NULL;
+ }
+
if (virDomainMigrateBegin3ParamsEnsureACL(domain->conn, vm->def) < 0) {
virObjectUnlock(vm);
return NULL;
--
2.1.4
2
3
This patch series includes a new version for the trailing slash fix, but also
includes other fixes to get virt-sandbox run nicely with apparmor. Thus only
one patch has v2 ;)
Cédric Bosdonnat (4):
virt-aa-helper: fix rules for paths with trailing slash
Get more libvirt errors from virt-aa-helper
virt-aa-helper: rename ctl->hvm to ctl->os
virt-aa-helper: add DomainGuest to mockup caps
src/security/security_apparmor.c | 4 ++++
src/security/virt-aa-helper.c | 38 ++++++++++++++++++++++++++++++++++----
tests/virt-aa-helper-test | 3 ---
3 files changed, 38 insertions(+), 7 deletions(-)
--
2.1.4
3
6
[libvirt] [[PATCH v5] autocreate tap device for VIR_DOMAIN_NET_TYPE_ETHERNET] autocreate tap device for VIR_DOMAIN_NET_TYPE_ETHERNET
by Vasiliy Tolstov 08 Jul '15
by Vasiliy Tolstov 08 Jul '15
08 Jul '15
If a user specify ehernet device create it via libvirt and run
script if it provided. After this commit user does not need to
run external script to create tap device or add root to qemu
process.
Signed-off-by: Vasiliy Tolstov <v.tolstov(a)selfip.ru>
---
src/qemu/qemu_command.c | 139 ++++++++++++++++++++++++++++++------------------
src/qemu/qemu_hotplug.c | 13 ++---
src/qemu/qemu_process.c | 6 +++
3 files changed, 98 insertions(+), 60 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 3886b4f..f9008e4 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -332,10 +332,39 @@ static int qemuCreateInBridgePortWithHelper(virQEMUDriverConfigPtr cfg,
return *tapfd < 0 ? -1 : 0;
}
+/**
+ * qemuExecuteEthernetScript:
+ * @ifname: the interface name
+ * @script: the script name
+ *
+ * This function executes script for new tap device created by libvirt.
+ * Returns 0 in case of success or -1 on failure
+ */
+static int
+qemuExecuteEthernetScript(const char *ifname, const char *script)
+{
+ virCommandPtr cmd;
+ int ret;
+
+ cmd = virCommandNew(script);
+ virCommandAddArgFormat(cmd, "%s", ifname);
+ virCommandClearCaps(cmd);
+#ifdef CAP_NET_ADMIN
+ virCommandAllowCap(cmd, CAP_NET_ADMIN);
+#endif
+ virCommandAddEnvPassCommon(cmd);
+
+ ret = virCommandRun(cmd, NULL);
+
+ virCommandFree(cmd);
+ return ret;
+}
+
/* qemuNetworkIfaceConnect - *only* called if actualType is
- * VIR_DOMAIN_NET_TYPE_NETWORK or VIR_DOMAIN_NET_TYPE_BRIDGE (i.e. if
- * the connection is made with a tap device connecting to a bridge
- * device)
+ * VIR_DOMAIN_NET_TYPE_NETWORK, VIR_DOMAIN_NET_TYPE_BRIDGE
+ * VIR_DOMAIN_NET_TYPE_ETHERNET (i.e. if the connection is
+ * made with a tap device connecting to a bridge device or
+ * use plain tap device)
*/
int
qemuNetworkIfaceConnect(virDomainDefPtr def,
@@ -351,6 +380,7 @@ qemuNetworkIfaceConnect(virDomainDefPtr def,
bool template_ifname = false;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
const char *tunpath = "/dev/net/tun";
+ virMacAddr tapmac;
if (net->backend.tap) {
tunpath = net->backend.tap;
@@ -361,11 +391,6 @@ qemuNetworkIfaceConnect(virDomainDefPtr def,
}
}
- if (!(brname = virDomainNetGetActualBridgeName(net))) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing bridge name"));
- goto cleanup;
- }
-
if (!net->ifname ||
STRPREFIX(net->ifname, VIR_NET_GENERATED_PREFIX) ||
strchr(net->ifname, '%')) {
@@ -381,40 +406,62 @@ qemuNetworkIfaceConnect(virDomainDefPtr def,
tap_create_flags |= VIR_NETDEV_TAP_CREATE_VNET_HDR;
}
- if (cfg->privileged) {
- if (virNetDevTapCreateInBridgePort(brname, &net->ifname, &net->mac,
- def->uuid, tunpath, tapfd, *tapfdSize,
- virDomainNetGetActualVirtPortProfile(net),
- virDomainNetGetActualVlan(net),
- tap_create_flags) < 0) {
+ if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_ETHERNET) {
+ if (virNetDevTapCreate(&net->ifname, tunpath, tapfd, *tapfdSize,
+ tap_create_flags) < 0) {
virDomainAuditNetDevice(def, net, tunpath, false);
goto cleanup;
}
- if (virDomainNetGetActualBridgeMACTableManager(net)
- == VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) {
- /* libvirt is managing the FDB of the bridge this device
- * is attaching to, so we need to turn off learning and
- * unicast_flood on the device to prevent the kernel from
- * adding any FDB entries for it. We will add add an fdb
- * entry ourselves (during qemuInterfaceStartDevices(),
- * using the MAC address from the interface config.
- */
- if (virNetDevBridgePortSetLearning(brname, net->ifname, false) < 0)
- goto cleanup;
- if (virNetDevBridgePortSetUnicastFlood(brname, net->ifname, false) < 0)
+ virMacAddrSet(&tapmac, &net->mac);
+
+ if (virNetDevSetMAC(net->ifname, &tapmac) < 0)
+ goto cleanup;
+
+ if (net->script) {
+ if (qemuExecuteEthernetScript(net->ifname, net->script) < 0)
goto cleanup;
}
} else {
- if (qemuCreateInBridgePortWithHelper(cfg, brname,
- &net->ifname,
- tapfd, tap_create_flags) < 0) {
- virDomainAuditNetDevice(def, net, tunpath, false);
+ if (!(brname = virDomainNetGetActualBridgeName(net))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing bridge name"));
goto cleanup;
}
- /* qemuCreateInBridgePortWithHelper can only create a single FD */
- if (*tapfdSize > 1) {
- VIR_WARN("Ignoring multiqueue network request");
- *tapfdSize = 1;
+
+ if (cfg->privileged) {
+ if (virNetDevTapCreateInBridgePort(brname, &net->ifname, &net->mac,
+ def->uuid, tunpath, tapfd, *tapfdSize,
+ virDomainNetGetActualVirtPortProfile(net),
+ virDomainNetGetActualVlan(net),
+ tap_create_flags) < 0) {
+ virDomainAuditNetDevice(def, net, tunpath, false);
+ goto cleanup;
+ }
+ if (virDomainNetGetActualBridgeMACTableManager(net)
+ == VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) {
+ /* libvirt is managing the FDB of the bridge this device
+ * is attaching to, so we need to turn off learning and
+ * unicast_flood on the device to prevent the kernel from
+ * adding any FDB entries for it. We will add add an fdb
+ * entry ourselves (during qemuInterfaceStartDevices(),
+ * using the MAC address from the interface config.
+ */
+ if (virNetDevBridgePortSetLearning(brname, net->ifname, false) < 0)
+ goto cleanup;
+ if (virNetDevBridgePortSetUnicastFlood(brname, net->ifname, false) < 0)
+ goto cleanup;
+ }
+ } else {
+ if (qemuCreateInBridgePortWithHelper(cfg, brname,
+ &net->ifname,
+ tapfd, tap_create_flags) < 0) {
+ virDomainAuditNetDevice(def, net, tunpath, false);
+ goto cleanup;
+ }
+ /* qemuCreateInBridgePortWithHelper can only create a single FD */
+ if (*tapfdSize > 1) {
+ VIR_WARN("Ignoring multiqueue network request");
+ *tapfdSize = 1;
+ }
}
}
@@ -5221,6 +5268,7 @@ qemuBuildHostNetStr(virDomainNetDefPtr net,
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_DIRECT:
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
virBufferAsprintf(&buf, "tap%c", type_sep);
/* for one tapfd 'fd=' shall be used,
* for more than one 'fds=' is the right choice */
@@ -5238,20 +5286,6 @@ qemuBuildHostNetStr(virDomainNetDefPtr net,
is_tap = true;
break;
- case VIR_DOMAIN_NET_TYPE_ETHERNET:
- virBufferAddLit(&buf, "tap");
- if (net->ifname) {
- virBufferAsprintf(&buf, "%cifname=%s", type_sep, net->ifname);
- type_sep = ',';
- }
- if (net->script) {
- virBufferAsprintf(&buf, "%cscript=%s", type_sep,
- net->script);
- type_sep = ',';
- }
- is_tap = true;
- break;
-
case VIR_DOMAIN_NET_TYPE_CLIENT:
virBufferAsprintf(&buf, "socket%cconnect=%s:%d",
type_sep,
@@ -8226,7 +8260,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
/* Currently nothing besides TAP devices supports multiqueue. */
if (net->driver.virtio.queues > 0 &&
!(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
- actualType == VIR_DOMAIN_NET_TYPE_BRIDGE)) {
+ actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
+ actualType == VIR_DOMAIN_NET_TYPE_ETHERNET)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Multiqueue network is not supported for: %s"),
virDomainNetTypeToString(actualType));
@@ -8235,7 +8270,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
if (net->backend.tap &&
!(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
- actualType == VIR_DOMAIN_NET_TYPE_BRIDGE)) {
+ actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
+ actualType == VIR_DOMAIN_NET_TYPE_ETHERNET)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Custom tap device path is not supported for: %s"),
virDomainNetTypeToString(actualType));
@@ -8245,7 +8281,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
cfg = virQEMUDriverGetConfig(driver);
if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
- actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) {
+ actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
+ actualType == VIR_DOMAIN_NET_TYPE_ETHERNET) {
tapfdSize = net->driver.virtio.queues;
if (!tapfdSize)
tapfdSize = 1;
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index cc86a3b..21ea3fd 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -908,7 +908,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
/* Currently nothing besides TAP devices supports multiqueue. */
if (net->driver.virtio.queues > 0 &&
!(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
- actualType == VIR_DOMAIN_NET_TYPE_BRIDGE)) {
+ actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
+ actualType == VIR_DOMAIN_NET_TYPE_ETHERNET)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Multiqueue network is not supported for: %s"),
virDomainNetTypeToString(actualType));
@@ -916,7 +917,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
}
if (actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
- actualType == VIR_DOMAIN_NET_TYPE_NETWORK) {
+ actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
+ actualType == VIR_DOMAIN_NET_TYPE_ETHERNET) {
tapfdSize = vhostfdSize = net->driver.virtio.queues;
if (!tapfdSize)
tapfdSize = vhostfdSize = 1;
@@ -947,13 +949,6 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
iface_connected = true;
if (qemuOpenVhostNet(vm->def, net, priv->qemuCaps, vhostfd, &vhostfdSize) < 0)
goto cleanup;
- } else if (actualType == VIR_DOMAIN_NET_TYPE_ETHERNET) {
- vhostfdSize = 1;
- if (VIR_ALLOC(vhostfd) < 0)
- goto cleanup;
- *vhostfd = -1;
- if (qemuOpenVhostNet(vm->def, net, priv->qemuCaps, vhostfd, &vhostfdSize) < 0)
- goto cleanup;
}
/* Set device online immediately */
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 64ee049..d866e44 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5205,6 +5205,12 @@ void qemuProcessStop(virQEMUDriverPtr driver,
cfg->stateDir));
VIR_FREE(net->ifname);
break;
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
+ if (net->ifname) {
+ ignore_value(virNetDevTapDelete(net->ifname, net->backend.tap));
+ VIR_FREE(net->ifname);
+ }
+ break;
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
#ifdef VIR_NETDEV_TAP_REQUIRE_MANUAL_CLEANUP
--
2.3.3
2
4
08 Jul '15
Virt machine in qemu since v2.3.0 has PCI generic host controller, and can use
PCI devices. This provides performance improvement as well as vhost-net with
irqfd support for virtio-net. However libvirt currently does not allow ARM virt
machine to have PCI devices. This patchset adds the necessary support.
This version is completely reworked and uses different approach.
Changes since v2:
- Correctly model PCI Express bus on the machine. It is now possible to
explicitly specify <address-type='pci'> with attributes. This allows to
attach not only virtio, but any other PCI device to the model.
- Default is not changed and still mmio, for backwards compatibility with
existing installations. PCI bus has to be explicitly specified.
- Check for the capability in correct place, in v2 it actually did not work
Changes since v1:
- Added capability based on qemu version number
- Recognize also "virt-" prefix
Pavel Fedin (3):
Introduce QEMU_CAPS_ARM_VIRT_PCI
Add PCI-Express root to ARM virt machine
Build correct command line for PCI NICs on ARM
src/qemu/qemu_capabilities.c | 5 +++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 3 ++-
src/qemu/qemu_domain.c | 12 ++++++++----
4 files changed, 16 insertions(+), 5 deletions(-)
--
1.9.5.msysgit.0
3
8
08 Jul '15
It is better not to assume that newly created network should be
connected to a bridge with same name, but specify it explicitly
by PRL_USE_VNET_NAME_FOR_BRIDGE_NAME flag.
Signed-off-by: Maxim Nestratov <mnestratov(a)virtuozzo.com>
---
src/vz/vz_sdk.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index 1b66958..1c56655 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -2834,7 +2834,9 @@ static int prlsdkAddNet(PRL_HANDLE sdkdom,
pret = PrlVirtNet_SetNetworkType(vnet, PVN_BRIDGED_ETHERNET);
prlsdkCheckRetGoto(pret, cleanup);
- job = PrlSrv_AddVirtualNetwork(privconn->server, vnet, 0);
+ job = PrlSrv_AddVirtualNetwork(privconn->server,
+ vnet,
+ PRL_USE_VNET_NAME_FOR_BRIDGE_NAME);
if (PRL_FAILED(pret = waitJob(job)))
goto cleanup;
--
1.7.1
2
2
[libvirt] [PATCH v2 00/10] Restore code to allow unpriv_sgio for hostdev SCSI generic
by John Ferlan 08 Jul '15
by John Ferlan 08 Jul '15
08 Jul '15
v1 here:
http://www.redhat.com/archives/libvir-list/2015-June/msg00814.html
Changes since v1:
- Add doc patch 1 to indicate that this feature may only be supported by
certain kernels
- Adjust former patch 1 to add call to qemuIsSharedHostdev from
qemuSetUnprivSGIO
- Insert patches 7 & 8 which essentially refactor qemuSetUnprivSGIO a bit.
There should be no functional difference
- Patch 9 is now a much slimmer former patch 6
The end result is that 'generically speaking' if any kernel supports
setting the unprivileged SGIO feature, then these patches provide
the capability to do so.
Although as pointed out in the review of v1 only one specific downstream
kernel supports the feature, that doesn't mean other distros couldn't add
support in the same manner. So rather than just remove all traces from
libvirt completely, it seems it would be reasonable to keep the checks
in place and if a kernel then decides to add support this code exists
to assist.
John Ferlan (10):
docs: Clarify unprivileged sgio feature for host devices
qemu: Introduce qemuIsSharedHostdev
qemu: Introduce qemuGetHostdevPath
qemu: Refactor qemuCheckSharedDisk to create virCheckUnprivSGIO
qemu: Refactor qemuAddSharedHostdev and qemuRemoveSharedHostdev
qemu: Extract qemuGetHostdevPath from qemuGetSharedHostdevKey
qemu: Refactor qemuSetUnprivSGIO return values
qemu: Fix integer/boolean logic in qemuSetUnprivSGIO
qemu: Add ability to set sgio values for hostdev
qemu: Add check for unpriv sgio for SCSI generic host device
docs/formatdomain.html.in | 7 +-
src/qemu/qemu_conf.c | 226 ++++++++++++++++++++++++++++++----------------
2 files changed, 154 insertions(+), 79 deletions(-)
--
2.1.0
2
23
[libvirt] [PATCH v2 0/2] Add support for portable-rpcgen from portablexdr library
by Pavel Fedin 08 Jul '15
by Pavel Fedin 08 Jul '15
08 Jul '15
This patch set allows to build libvirt natively under MinGW/MSYS using
portablexdr library. An updated version of portablexdr with fixed bugs
is available as part of MSYS2 project.
Differences from v1:
- Split into two parts
- Reflect structure definiton change also in xc_monitor_protocol-structs,
fix "make syntax-check"
Pavel Fedin (2):
Remove explicit enum from protocol structures
Add support for portable-rpcgen from portablexdr library
configure.ac | 2 +-
src/lxc/lxc_monitor_protocol.x | 2 +-
src/lxc_monitor_protocol-structs | 2 +-
src/rpc/genprotocol.pl | 5 ++++-
4 files changed, 7 insertions(+), 4 deletions(-)
--
1.9.5.msysgit.0
2
3
08 Jul '15
Commit 03d7462d added it for channels, but it is also needed for serials. Add
it for serials, parallels, and consoles as well.
This solves https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1015154
Signed-off-by: Serge Hallyn <serge.hallyn(a)ubuntu.com>
---
src/security/virt-aa-helper.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 13f8a6a..4440552 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -951,8 +951,10 @@ get_files(vahControl * ctl)
(ctl->def->serials[i]->source.type == VIR_DOMAIN_CHR_TYPE_PTY ||
ctl->def->serials[i]->source.type == VIR_DOMAIN_CHR_TYPE_DEV ||
ctl->def->serials[i]->source.type == VIR_DOMAIN_CHR_TYPE_FILE ||
+ ctl->def->serials[i]->source.type == VIR_DOMAIN_CHR_TYPE_UNIX ||
ctl->def->serials[i]->source.type == VIR_DOMAIN_CHR_TYPE_PIPE) &&
- ctl->def->serials[i]->source.data.file.path)
+ ctl->def->serials[i]->source.data.file.path &&
+ ctl->def->serials[i]->source.data.file.path[0] != '\0')
if (vah_add_file_chardev(&buf,
ctl->def->serials[i]->source.data.file.path,
"rw",
@@ -964,8 +966,10 @@ get_files(vahControl * ctl)
(ctl->def->consoles[i]->source.type == VIR_DOMAIN_CHR_TYPE_PTY ||
ctl->def->consoles[i]->source.type == VIR_DOMAIN_CHR_TYPE_DEV ||
ctl->def->consoles[i]->source.type == VIR_DOMAIN_CHR_TYPE_FILE ||
+ ctl->def->consoles[i]->source.type == VIR_DOMAIN_CHR_TYPE_UNIX ||
ctl->def->consoles[i]->source.type == VIR_DOMAIN_CHR_TYPE_PIPE) &&
- ctl->def->consoles[i]->source.data.file.path)
+ ctl->def->consoles[i]->source.data.file.path &&
+ ctl->def->consoles[i]->source.data.file.path[0] != '\0')
if (vah_add_file(&buf,
ctl->def->consoles[i]->source.data.file.path, "rw") != 0)
goto cleanup;
@@ -975,8 +979,10 @@ get_files(vahControl * ctl)
(ctl->def->parallels[i]->source.type == VIR_DOMAIN_CHR_TYPE_PTY ||
ctl->def->parallels[i]->source.type == VIR_DOMAIN_CHR_TYPE_DEV ||
ctl->def->parallels[i]->source.type == VIR_DOMAIN_CHR_TYPE_FILE ||
+ ctl->def->parallels[i]->source.type == VIR_DOMAIN_CHR_TYPE_UNIX ||
ctl->def->parallels[i]->source.type == VIR_DOMAIN_CHR_TYPE_PIPE) &&
- ctl->def->parallels[i]->source.data.file.path)
+ ctl->def->parallels[i]->source.data.file.path &&
+ ctl->def->parallels[i]->source.data.file.path[0] != '\0')
if (vah_add_file_chardev(&buf,
ctl->def->parallels[i]->source.data.file.path,
"rw",
--
2.1.4
2
1
08 Jul '15
I have reworked the original code quite a bit, while
maintaining the same logic and hopefully introducing
no bugs of my own :)
Notable changes from v2 to v3:
* the function to get the number of threads per subcore
has been moved to the from virarch.c, which deals with
architecture names only and is therefore not the right
place to read host configuration, to nodeinfo.c where
the rest of this stuff lives;
* said function has also been given a shorter name;
* the "valid subcore mode" boolean has been removed:
threads_per_subcore will be a positive number if
subcores should be taken into account, and if that's
not the case (x86 host, tainted configuration) it
will simply be zero, so now the code needs to keep
track of a single variable instead of two;
* the test case has been renamed to be more
descriptive;
* the test data has been cleaned up by removing all
cpu/cpu*/node* links, which prevented 'make dist'
from working due to recursive linking.
I've added a Signed-off-by: tag to each commit and
maintained Shivaprasad as commit author; if that's not
a proper way to handle authorship information in this
situation please let me know.
Shivaprasad G Bhat (2):
Fix nodeinfo output on PPC64 KVM hosts
Add testcase for PPC64 kvm host nodeinfo
src/libvirt_private.syms | 1 +
src/nodeinfo.c | 140 +++++++++++++++++++--
src/nodeinfo.h | 1 +
tests/Makefile.am | 6 +
tests/nodeinfodata/linux-ppc64-subcores.cpuinfo | 59 +++++++++
tests/nodeinfodata/linux-ppc64-subcores.expected | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu0/online | 1 +
.../linux-subcores/cpu/cpu0/physical_id | 1 +
.../linux-subcores/cpu/cpu0/topology/core_id | 1 +
.../linux-subcores/cpu/cpu0/topology/core_siblings | 1 +
.../cpu/cpu0/topology/core_siblings_list | 1 +
.../cpu/cpu0/topology/physical_package_id | 1 +
.../cpu/cpu0/topology/thread_siblings | 1 +
.../cpu/cpu0/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu1/online | 1 +
.../linux-subcores/cpu/cpu1/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu10/online | 1 +
.../linux-subcores/cpu/cpu10/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu11/online | 1 +
.../linux-subcores/cpu/cpu11/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu12/online | 1 +
.../linux-subcores/cpu/cpu12/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu13/online | 1 +
.../linux-subcores/cpu/cpu13/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu14/online | 1 +
.../linux-subcores/cpu/cpu14/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu15/online | 1 +
.../linux-subcores/cpu/cpu15/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu16/online | 1 +
.../linux-subcores/cpu/cpu16/physical_id | 1 +
.../linux-subcores/cpu/cpu16/topology/core_id | 1 +
.../cpu/cpu16/topology/core_siblings | 1 +
.../cpu/cpu16/topology/core_siblings_list | 1 +
.../cpu/cpu16/topology/physical_package_id | 1 +
.../cpu/cpu16/topology/thread_siblings | 1 +
.../cpu/cpu16/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu17/online | 1 +
.../linux-subcores/cpu/cpu17/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu18/online | 1 +
.../linux-subcores/cpu/cpu18/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu19/online | 1 +
.../linux-subcores/cpu/cpu19/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu2/online | 1 +
.../linux-subcores/cpu/cpu2/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu20/online | 1 +
.../linux-subcores/cpu/cpu20/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu21/online | 1 +
.../linux-subcores/cpu/cpu21/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu22/online | 1 +
.../linux-subcores/cpu/cpu22/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu23/online | 1 +
.../linux-subcores/cpu/cpu23/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu24/online | 1 +
.../linux-subcores/cpu/cpu24/physical_id | 1 +
.../linux-subcores/cpu/cpu24/topology/core_id | 1 +
.../cpu/cpu24/topology/core_siblings | 1 +
.../cpu/cpu24/topology/core_siblings_list | 1 +
.../cpu/cpu24/topology/physical_package_id | 1 +
.../cpu/cpu24/topology/thread_siblings | 1 +
.../cpu/cpu24/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu25/online | 1 +
.../linux-subcores/cpu/cpu25/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu26/online | 1 +
.../linux-subcores/cpu/cpu26/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu27/online | 1 +
.../linux-subcores/cpu/cpu27/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu28/online | 1 +
.../linux-subcores/cpu/cpu28/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu29/online | 1 +
.../linux-subcores/cpu/cpu29/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu3/online | 1 +
.../linux-subcores/cpu/cpu3/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu30/online | 1 +
.../linux-subcores/cpu/cpu30/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu31/online | 1 +
.../linux-subcores/cpu/cpu31/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu32/online | 1 +
.../linux-subcores/cpu/cpu32/physical_id | 1 +
.../linux-subcores/cpu/cpu32/topology/core_id | 1 +
.../cpu/cpu32/topology/core_siblings | 1 +
.../cpu/cpu32/topology/core_siblings_list | 1 +
.../cpu/cpu32/topology/physical_package_id | 1 +
.../cpu/cpu32/topology/thread_siblings | 1 +
.../cpu/cpu32/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu33/online | 1 +
.../linux-subcores/cpu/cpu33/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu34/online | 1 +
.../linux-subcores/cpu/cpu34/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu35/online | 1 +
.../linux-subcores/cpu/cpu35/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu36/online | 1 +
.../linux-subcores/cpu/cpu36/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu37/online | 1 +
.../linux-subcores/cpu/cpu37/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu38/online | 1 +
.../linux-subcores/cpu/cpu38/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu39/online | 1 +
.../linux-subcores/cpu/cpu39/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu4/online | 1 +
.../linux-subcores/cpu/cpu4/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu40/online | 1 +
.../linux-subcores/cpu/cpu40/physical_id | 1 +
.../linux-subcores/cpu/cpu40/topology/core_id | 1 +
.../cpu/cpu40/topology/core_siblings | 1 +
.../cpu/cpu40/topology/core_siblings_list | 1 +
.../cpu/cpu40/topology/physical_package_id | 1 +
.../cpu/cpu40/topology/thread_siblings | 1 +
.../cpu/cpu40/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu41/online | 1 +
.../linux-subcores/cpu/cpu41/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu42/online | 1 +
.../linux-subcores/cpu/cpu42/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu43/online | 1 +
.../linux-subcores/cpu/cpu43/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu44/online | 1 +
.../linux-subcores/cpu/cpu44/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu45/online | 1 +
.../linux-subcores/cpu/cpu45/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu46/online | 1 +
.../linux-subcores/cpu/cpu46/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu47/online | 1 +
.../linux-subcores/cpu/cpu47/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu48/online | 1 +
.../linux-subcores/cpu/cpu48/physical_id | 1 +
.../linux-subcores/cpu/cpu48/topology/core_id | 1 +
.../cpu/cpu48/topology/core_siblings | 1 +
.../cpu/cpu48/topology/core_siblings_list | 1 +
.../cpu/cpu48/topology/physical_package_id | 1 +
.../cpu/cpu48/topology/thread_siblings | 1 +
.../cpu/cpu48/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu49/online | 1 +
.../linux-subcores/cpu/cpu49/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu5/online | 1 +
.../linux-subcores/cpu/cpu5/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu50/online | 1 +
.../linux-subcores/cpu/cpu50/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu51/online | 1 +
.../linux-subcores/cpu/cpu51/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu52/online | 1 +
.../linux-subcores/cpu/cpu52/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu53/online | 1 +
.../linux-subcores/cpu/cpu53/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu54/online | 1 +
.../linux-subcores/cpu/cpu54/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu55/online | 1 +
.../linux-subcores/cpu/cpu55/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu56/online | 1 +
.../linux-subcores/cpu/cpu56/physical_id | 1 +
.../linux-subcores/cpu/cpu56/topology/core_id | 1 +
.../cpu/cpu56/topology/core_siblings | 1 +
.../cpu/cpu56/topology/core_siblings_list | 1 +
.../cpu/cpu56/topology/physical_package_id | 1 +
.../cpu/cpu56/topology/thread_siblings | 1 +
.../cpu/cpu56/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu57/online | 1 +
.../linux-subcores/cpu/cpu57/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu58/online | 1 +
.../linux-subcores/cpu/cpu58/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu59/online | 1 +
.../linux-subcores/cpu/cpu59/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu6/online | 1 +
.../linux-subcores/cpu/cpu6/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu60/online | 1 +
.../linux-subcores/cpu/cpu60/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu61/online | 1 +
.../linux-subcores/cpu/cpu61/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu62/online | 1 +
.../linux-subcores/cpu/cpu62/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu63/online | 1 +
.../linux-subcores/cpu/cpu63/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu64/online | 1 +
.../linux-subcores/cpu/cpu64/physical_id | 1 +
.../linux-subcores/cpu/cpu64/topology/core_id | 1 +
.../cpu/cpu64/topology/core_siblings | 1 +
.../cpu/cpu64/topology/core_siblings_list | 1 +
.../cpu/cpu64/topology/physical_package_id | 1 +
.../cpu/cpu64/topology/thread_siblings | 1 +
.../cpu/cpu64/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu65/online | 1 +
.../linux-subcores/cpu/cpu65/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu66/online | 1 +
.../linux-subcores/cpu/cpu66/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu67/online | 1 +
.../linux-subcores/cpu/cpu67/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu68/online | 1 +
.../linux-subcores/cpu/cpu68/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu69/online | 1 +
.../linux-subcores/cpu/cpu69/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu7/online | 1 +
.../linux-subcores/cpu/cpu7/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu70/online | 1 +
.../linux-subcores/cpu/cpu70/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu71/online | 1 +
.../linux-subcores/cpu/cpu71/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu72/online | 1 +
.../linux-subcores/cpu/cpu72/physical_id | 1 +
.../linux-subcores/cpu/cpu72/topology/core_id | 1 +
.../cpu/cpu72/topology/core_siblings | 1 +
.../cpu/cpu72/topology/core_siblings_list | 1 +
.../cpu/cpu72/topology/physical_package_id | 1 +
.../cpu/cpu72/topology/thread_siblings | 1 +
.../cpu/cpu72/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu73/online | 1 +
.../linux-subcores/cpu/cpu73/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu74/online | 1 +
.../linux-subcores/cpu/cpu74/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu75/online | 1 +
.../linux-subcores/cpu/cpu75/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu76/online | 1 +
.../linux-subcores/cpu/cpu76/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu77/online | 1 +
.../linux-subcores/cpu/cpu77/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu78/online | 1 +
.../linux-subcores/cpu/cpu78/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu79/online | 1 +
.../linux-subcores/cpu/cpu79/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu8/online | 1 +
.../linux-subcores/cpu/cpu8/physical_id | 1 +
.../linux-subcores/cpu/cpu8/topology/core_id | 1 +
.../linux-subcores/cpu/cpu8/topology/core_siblings | 1 +
.../cpu/cpu8/topology/core_siblings_list | 1 +
.../cpu/cpu8/topology/physical_package_id | 1 +
.../cpu/cpu8/topology/thread_siblings | 1 +
.../cpu/cpu8/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu80/online | 1 +
.../linux-subcores/cpu/cpu80/physical_id | 1 +
.../linux-subcores/cpu/cpu80/topology/core_id | 1 +
.../cpu/cpu80/topology/core_siblings | 1 +
.../cpu/cpu80/topology/core_siblings_list | 1 +
.../cpu/cpu80/topology/physical_package_id | 1 +
.../cpu/cpu80/topology/thread_siblings | 1 +
.../cpu/cpu80/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu81/online | 1 +
.../linux-subcores/cpu/cpu81/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu82/online | 1 +
.../linux-subcores/cpu/cpu82/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu83/online | 1 +
.../linux-subcores/cpu/cpu83/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu84/online | 1 +
.../linux-subcores/cpu/cpu84/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu85/online | 1 +
.../linux-subcores/cpu/cpu85/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu86/online | 1 +
.../linux-subcores/cpu/cpu86/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu87/online | 1 +
.../linux-subcores/cpu/cpu87/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu88/online | 1 +
.../linux-subcores/cpu/cpu88/physical_id | 1 +
.../linux-subcores/cpu/cpu88/topology/core_id | 1 +
.../cpu/cpu88/topology/core_siblings | 1 +
.../cpu/cpu88/topology/core_siblings_list | 1 +
.../cpu/cpu88/topology/physical_package_id | 1 +
.../cpu/cpu88/topology/thread_siblings | 1 +
.../cpu/cpu88/topology/thread_siblings_list | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu89/online | 1 +
.../linux-subcores/cpu/cpu89/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu9/online | 1 +
.../linux-subcores/cpu/cpu9/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu90/online | 1 +
.../linux-subcores/cpu/cpu90/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu91/online | 1 +
.../linux-subcores/cpu/cpu91/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu92/online | 1 +
.../linux-subcores/cpu/cpu92/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu93/online | 1 +
.../linux-subcores/cpu/cpu93/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu94/online | 1 +
.../linux-subcores/cpu/cpu94/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/cpu95/online | 1 +
.../linux-subcores/cpu/cpu95/physical_id | 1 +
tests/nodeinfodata/linux-subcores/cpu/dscr_default | 1 +
tests/nodeinfodata/linux-subcores/cpu/kernel_max | 1 +
tests/nodeinfodata/linux-subcores/cpu/offline | 1 +
tests/nodeinfodata/linux-subcores/cpu/online | 1 +
tests/nodeinfodata/linux-subcores/cpu/possible | 1 +
tests/nodeinfodata/linux-subcores/cpu/present | 1 +
.../linux-subcores/cpu/subcores_per_core | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu0 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu1 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu10 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu11 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu12 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu13 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu14 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu15 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu16 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu17 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu18 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu19 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu2 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu20 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu21 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu22 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu23 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu3 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu4 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu5 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu6 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu7 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu8 | 1 +
tests/nodeinfodata/linux-subcores/node/node0/cpu9 | 1 +
.../nodeinfodata/linux-subcores/node/node0/cpulist | 1 +
.../nodeinfodata/linux-subcores/node/node0/cpumap | 1 +
.../linux-subcores/node/node0/distance | 1 +
.../nodeinfodata/linux-subcores/node/node0/meminfo | 29 +++++
.../linux-subcores/node/node0/numastat | 6 +
tests/nodeinfodata/linux-subcores/node/node1/cpu24 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu25 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu26 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu27 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu28 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu29 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu30 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu31 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu32 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu33 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu34 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu35 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu36 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu37 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu38 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu39 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu40 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu41 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu42 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu43 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu44 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu45 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu46 | 1 +
tests/nodeinfodata/linux-subcores/node/node1/cpu47 | 1 +
.../nodeinfodata/linux-subcores/node/node1/cpulist | 1 +
.../nodeinfodata/linux-subcores/node/node1/cpumap | 1 +
.../linux-subcores/node/node1/distance | 1 +
.../nodeinfodata/linux-subcores/node/node1/meminfo | 29 +++++
.../linux-subcores/node/node1/numastat | 6 +
.../nodeinfodata/linux-subcores/node/node16/cpu48 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu49 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu50 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu51 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu52 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu53 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu54 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu55 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu56 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu57 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu58 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu59 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu60 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu61 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu62 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu63 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu64 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu65 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu66 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu67 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu68 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu69 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu70 | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpu71 | 1 +
.../linux-subcores/node/node16/cpulist | 1 +
.../nodeinfodata/linux-subcores/node/node16/cpumap | 1 +
.../linux-subcores/node/node16/distance | 1 +
.../linux-subcores/node/node16/meminfo | 29 +++++
.../linux-subcores/node/node16/numastat | 6 +
.../nodeinfodata/linux-subcores/node/node16/uevent | 0
.../nodeinfodata/linux-subcores/node/node16/vmstat | 39 ++++++
.../nodeinfodata/linux-subcores/node/node17/cpu72 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu73 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu74 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu75 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu76 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu77 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu78 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu79 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu80 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu81 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu82 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu83 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu84 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu85 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu86 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu87 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu88 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu89 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu90 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu91 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu92 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu93 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu94 | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpu95 | 1 +
.../linux-subcores/node/node17/cpulist | 1 +
.../nodeinfodata/linux-subcores/node/node17/cpumap | 1 +
.../linux-subcores/node/node17/distance | 1 +
.../linux-subcores/node/node17/meminfo | 29 +++++
.../linux-subcores/node/node17/numastat | 6 +
.../nodeinfodata/linux-subcores/node/node17/vmstat | 39 ++++++
tests/nodeinfodata/linux-subcores/node/online | 1 +
tests/nodeinfodata/linux-subcores/node/possible | 1 +
tests/nodeinfomock.c | 35 ++++++
tests/nodeinfotest.c | 3 +-
400 files changed, 831 insertions(+), 14 deletions(-)
create mode 100644 tests/nodeinfodata/linux-ppc64-subcores.cpuinfo
create mode 100644 tests/nodeinfodata/linux-ppc64-subcores.expected
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu0/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu1/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu1/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu10/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu10/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu11/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu11/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu12/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu12/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu13/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu13/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu14/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu14/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu15/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu15/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu16/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu17/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu17/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu18/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu18/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu19/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu19/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu2/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu2/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu20/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu20/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu21/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu21/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu22/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu22/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu23/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu23/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu24/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu25/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu25/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu26/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu26/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu27/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu27/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu28/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu28/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu29/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu29/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu3/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu3/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu30/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu30/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu31/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu31/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu32/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu33/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu33/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu34/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu34/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu35/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu35/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu36/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu36/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu37/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu37/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu38/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu38/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu39/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu39/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu4/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu4/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu40/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu41/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu41/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu42/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu42/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu43/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu43/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu44/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu44/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu45/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu45/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu46/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu46/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu47/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu47/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu48/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu49/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu49/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu5/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu5/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu50/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu50/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu51/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu51/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu52/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu52/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu53/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu53/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu54/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu54/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu55/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu55/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu56/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu57/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu57/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu58/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu58/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu59/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu59/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu6/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu6/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu60/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu60/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu61/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu61/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu62/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu62/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu63/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu63/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu64/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu65/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu65/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu66/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu66/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu67/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu67/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu68/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu68/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu69/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu69/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu7/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu7/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu70/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu70/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu71/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu71/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu72/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu73/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu73/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu74/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu74/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu75/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu75/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu76/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu76/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu77/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu77/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu78/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu78/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu79/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu79/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu8/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu80/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu81/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu81/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu82/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu82/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu83/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu83/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu84/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu84/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu85/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu85/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu86/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu86/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu87/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu87/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/core_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/core_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/core_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/physical_package_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/thread_siblings
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu88/topology/thread_siblings_list
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu89/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu89/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu9/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu9/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu90/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu90/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu91/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu91/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu92/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu92/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu93/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu93/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu94/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu94/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu95/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/cpu95/physical_id
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/dscr_default
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/kernel_max
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/offline
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/online
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/possible
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/present
create mode 100644 tests/nodeinfodata/linux-subcores/cpu/subcores_per_core
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu0
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu1
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu10
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu11
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu12
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu13
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu14
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu15
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu16
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu17
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu18
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu19
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu2
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu20
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu21
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu22
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu23
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu3
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu4
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu5
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu6
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu7
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu8
create mode 120000 tests/nodeinfodata/linux-subcores/node/node0/cpu9
create mode 100644 tests/nodeinfodata/linux-subcores/node/node0/cpulist
create mode 100644 tests/nodeinfodata/linux-subcores/node/node0/cpumap
create mode 100644 tests/nodeinfodata/linux-subcores/node/node0/distance
create mode 100644 tests/nodeinfodata/linux-subcores/node/node0/meminfo
create mode 100644 tests/nodeinfodata/linux-subcores/node/node0/numastat
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu24
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu25
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu26
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu27
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu28
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu29
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu30
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu31
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu32
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu33
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu34
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu35
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu36
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu37
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu38
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu39
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu40
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu41
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu42
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu43
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu44
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu45
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu46
create mode 120000 tests/nodeinfodata/linux-subcores/node/node1/cpu47
create mode 100644 tests/nodeinfodata/linux-subcores/node/node1/cpulist
create mode 100644 tests/nodeinfodata/linux-subcores/node/node1/cpumap
create mode 100644 tests/nodeinfodata/linux-subcores/node/node1/distance
create mode 100644 tests/nodeinfodata/linux-subcores/node/node1/meminfo
create mode 100644 tests/nodeinfodata/linux-subcores/node/node1/numastat
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu48
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu49
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu50
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu51
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu52
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu53
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu54
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu55
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu56
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu57
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu58
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu59
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu60
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu61
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu62
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu63
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu64
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu65
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu66
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu67
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu68
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu69
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu70
create mode 120000 tests/nodeinfodata/linux-subcores/node/node16/cpu71
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/cpulist
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/cpumap
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/distance
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/meminfo
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/numastat
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/uevent
create mode 100644 tests/nodeinfodata/linux-subcores/node/node16/vmstat
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu72
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu73
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu74
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu75
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu76
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu77
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu78
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu79
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu80
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu81
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu82
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu83
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu84
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu85
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu86
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu87
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu88
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu89
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu90
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu91
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu92
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu93
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu94
create mode 120000 tests/nodeinfodata/linux-subcores/node/node17/cpu95
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/cpulist
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/cpumap
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/distance
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/meminfo
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/numastat
create mode 100644 tests/nodeinfodata/linux-subcores/node/node17/vmstat
create mode 100644 tests/nodeinfodata/linux-subcores/node/online
create mode 100644 tests/nodeinfodata/linux-subcores/node/possible
create mode 100644 tests/nodeinfomock.c
--
2.4.3
2
5