int *threads,
int *offline)
{
- const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH;
int ret = -1;
int processors = 0;
DIR *cpudir = NULL;
goto cleanup;
}
- present_cpumap = nodeGetPresentCPUBitmap(prefix);
+ present_cpumap = nodeGetPresentCPUBitmap(sysfs_prefix);
/* enumerate sockets in the node */
CPU_ZERO(&sock_map);
return ret;
}
-int linuxNodeInfoCPUPopulate(FILE *cpuinfo,
- const char *sysfs_dir,
+int linuxNodeInfoCPUPopulate(const char *sysfs_prefix,
+ FILE *cpuinfo,
virArch arch,
virNodeInfoPtr nodeinfo)
{
+ const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH;
char line[1024];
DIR *nodedir = NULL;
struct dirent *nodedirent = NULL;
/* OK, we've parsed clock speed out of /proc/cpuinfo. Get the
* core, node, socket, thread and topology information from /sys
*/
- if (virAsprintf(&sysfs_nodedir, "%s/node", sysfs_dir) < 0)
+ if (virAsprintf(&sysfs_nodedir, "%s/node", prefix) < 0)
goto cleanup;
if (!(nodedir = opendir(sysfs_nodedir))) {
nodeinfo->nodes++;
if (virAsprintf(&sysfs_cpudir, "%s/node/%s",
- sysfs_dir, nodedirent->d_name) < 0)
+ prefix, nodedirent->d_name) < 0)
goto cleanup;
- if ((cpus = virNodeParseNode(sysfs_dir, sysfs_cpudir, arch,
+ if ((cpus = virNodeParseNode(sysfs_prefix, sysfs_cpudir, arch,
&socks, &cores,
&threads, &offline)) < 0)
goto cleanup;
fallback:
VIR_FREE(sysfs_cpudir);
- if (virAsprintf(&sysfs_cpudir, "%s/cpu", sysfs_dir) < 0)
+ if (virAsprintf(&sysfs_cpudir, "%s/cpu", prefix) < 0)
goto cleanup;
- if ((cpus = virNodeParseNode(sysfs_dir, sysfs_cpudir, arch,
+ if ((cpus = virNodeParseNode(sysfs_prefix, sysfs_cpudir, arch,
&socks, &cores,
&threads, &offline)) < 0)
goto cleanup;
#ifdef __linux__
{
int ret = -1;
- const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH;
FILE *cpuinfo = fopen(CPUINFO_PATH, "r");
if (!cpuinfo) {
return -1;
}
- ret = linuxNodeInfoCPUPopulate(cpuinfo, prefix,
+ ret = linuxNodeInfoCPUPopulate(sysfs_prefix, cpuinfo,
hostarch, nodeinfo);
if (ret < 0)
goto cleanup;
char *cpupath = NULL;
int ncpu = -1;
- if (!(present_path = linuxGetCPUPresentPath(prefix)))
+ if (!(present_path = linuxGetCPUPresentPath(sysfs_prefix)))
return -1;
if (virFileExists(present_path)) {
char *present_path = NULL;
virBitmapPtr bitmap = NULL;
#endif
- const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH;
- if ((max_present = nodeGetCPUCount(prefix)) < 0)
+ if ((max_present = nodeGetCPUCount(sysfs_prefix)) < 0)
return NULL;
#ifdef __linux__
- if (!(present_path = linuxGetCPUPresentPath(prefix)))
+ if (!(present_path = linuxGetCPUPresentPath(sysfs_prefix)))
return NULL;
if (virFileExists(present_path))
bitmap = linuxParseCPUmap(max_present, present_path);
virBitmapPtr cpumap;
int present;
- present = nodeGetCPUCount(prefix);
+ present = nodeGetCPUCount(sysfs_prefix);
if (present < 0)
return NULL;
unsigned int *online,
unsigned int flags)
{
- const char *prefix = sysfs_prefix ? sysfs_prefix : SYSFS_SYSTEM_PATH;
virBitmapPtr cpus = NULL;
int maxpresent;
int ret = -1;
virCheckFlags(0, -1);
if (!cpumap && !online)
- return nodeGetCPUCount(prefix);
+ return nodeGetCPUCount(sysfs_prefix);
- if (!(cpus = nodeGetCPUBitmap(prefix, &maxpresent)))
+ if (!(cpus = nodeGetCPUBitmap(sysfs_prefix, &maxpresent)))
goto cleanup;
if (cpumap && virBitmapToData(cpus, cpumap, &dummy) < 0)
}
static int
-nodeCapsInitNUMAFake(const char *prefix,
+nodeCapsInitNUMAFake(const char *sysfs_prefix,
const char *cpupath ATTRIBUTE_UNUSED,
virCapsPtr caps ATTRIBUTE_UNUSED)
{
int id, cid;
int onlinecpus ATTRIBUTE_UNUSED;
- if (nodeGetInfo(prefix, &nodeinfo) < 0)
+ if (nodeGetInfo(sysfs_prefix, &nodeinfo) < 0)
return -1;
ncpus = VIR_NODEINFO_MAXCPUS(nodeinfo);
return -1;
if (!virNumaIsAvailable()) {
- ret = nodeCapsInitNUMAFake(prefix, cpupath, caps);
+ ret = nodeCapsInitNUMAFake(sysfs_prefix, cpupath, caps);
goto cleanup;
}
#else
static int
-linuxTestCompareFiles(const char *cpuinfofile,
- char *sysfs_dir,
+linuxTestCompareFiles(char *sysfs_prefix,
+ const char *cpuinfofile,
virArch arch,
const char *outputfile)
{
}
memset(&nodeinfo, 0, sizeof(nodeinfo));
- if (linuxNodeInfoCPUPopulate(cpuinfo, sysfs_dir, arch, &nodeinfo) < 0) {
+ if (linuxNodeInfoCPUPopulate(sysfs_prefix, cpuinfo, arch, &nodeinfo) < 0) {
if (virTestGetDebug()) {
virErrorPtr error = virSaveLastError();
if (error && error->code != VIR_ERR_OK)
{
int result = -1;
char *cpuinfo = NULL;
- char *sysfs_dir = NULL;
+ char *sysfs_prefix = NULL;
char *output = NULL;
struct linuxTestNodeInfoData *data = (struct linuxTestNodeInfoData *) opaque;
const char *archStr = virArchToString(data->arch);
- if (virAsprintf(&sysfs_dir, "%s/nodeinfodata/linux-%s",
+ if (virAsprintf(&sysfs_prefix, "%s/nodeinfodata/linux-%s",
abs_srcdir, data->testName) < 0 ||
virAsprintf(&cpuinfo, "%s/nodeinfodata/linux-%s-%s.cpuinfo",
abs_srcdir, archStr, data->testName) < 0 ||
goto cleanup;
}
- result = linuxTestCompareFiles(cpuinfo, sysfs_dir, data->arch, output);
+ result = linuxTestCompareFiles(sysfs_prefix, cpuinfo, data->arch, output);
cleanup:
VIR_FREE(cpuinfo);
VIR_FREE(output);
- VIR_FREE(sysfs_dir);
+ VIR_FREE(sysfs_prefix);
return result;
}