mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-27 15:05:17 +00:00
util: Remove now-unneeded resctrl functions
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
3bbae43d8c
commit
6328e48713
@ -2552,8 +2552,6 @@ virRandomInt;
|
|||||||
# util/virresctrl.h
|
# util/virresctrl.h
|
||||||
virCacheTypeFromString;
|
virCacheTypeFromString;
|
||||||
virCacheTypeToString;
|
virCacheTypeToString;
|
||||||
virResctrlGetCacheControlType;
|
|
||||||
virResctrlGetCacheInfo;
|
|
||||||
virResctrlGetInfo;
|
virResctrlGetInfo;
|
||||||
virResctrlInfoGetCache;
|
virResctrlInfoGetCache;
|
||||||
virResctrlInfoNew;
|
virResctrlInfoNew;
|
||||||
|
@ -358,135 +358,3 @@ virResctrlInfoGetCache(virResctrlInfoPtr resctrl,
|
|||||||
VIR_FREE(*controls);
|
VIR_FREE(*controls);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
virResctrlGetCacheInfo(unsigned int level,
|
|
||||||
unsigned long long size,
|
|
||||||
virCacheType scope,
|
|
||||||
virResctrlInfoPerCachePtr **controls,
|
|
||||||
size_t *ncontrols)
|
|
||||||
{
|
|
||||||
int ret = -1;
|
|
||||||
char *tmp = NULL;
|
|
||||||
char *path = NULL;
|
|
||||||
char *cbm_mask = NULL;
|
|
||||||
char *type_upper = NULL;
|
|
||||||
unsigned int bits = 0;
|
|
||||||
unsigned int min_cbm_bits = 0;
|
|
||||||
virResctrlInfoPerCachePtr control;
|
|
||||||
|
|
||||||
if (VIR_ALLOC(control) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (scope != VIR_CACHE_TYPE_BOTH &&
|
|
||||||
virStringToUpper(&type_upper, virCacheTypeToString(scope)) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (virFileReadValueUint(&control->max_allocation,
|
|
||||||
SYSFS_RESCTRL_PATH "/info/L%u%s/num_closids",
|
|
||||||
level,
|
|
||||||
type_upper ? type_upper : "") < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (virFileReadValueString(&cbm_mask,
|
|
||||||
SYSFS_RESCTRL_PATH
|
|
||||||
"/info/L%u%s/cbm_mask",
|
|
||||||
level,
|
|
||||||
type_upper ? type_upper: "") < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (virFileReadValueUint(&min_cbm_bits,
|
|
||||||
SYSFS_RESCTRL_PATH "/info/L%u%s/min_cbm_bits",
|
|
||||||
level,
|
|
||||||
type_upper ? type_upper : "") < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
virStringTrimOptionalNewline(cbm_mask);
|
|
||||||
|
|
||||||
for (tmp = cbm_mask; *tmp != '\0'; tmp++) {
|
|
||||||
if (c_isxdigit(*tmp))
|
|
||||||
bits += count_one_bits(virHexToBin(*tmp));
|
|
||||||
}
|
|
||||||
|
|
||||||
control->granularity = size / bits;
|
|
||||||
if (min_cbm_bits != 1)
|
|
||||||
control->min = min_cbm_bits * control->granularity;
|
|
||||||
|
|
||||||
control->scope = scope;
|
|
||||||
|
|
||||||
if (VIR_APPEND_ELEMENT(*controls, *ncontrols, control) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(path);
|
|
||||||
VIR_FREE(cbm_mask);
|
|
||||||
VIR_FREE(type_upper);
|
|
||||||
VIR_FREE(control);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline int
|
|
||||||
virResctrlGetCacheDir(char **path,
|
|
||||||
const char *prefix,
|
|
||||||
unsigned int level,
|
|
||||||
virCacheType type)
|
|
||||||
{
|
|
||||||
return virAsprintf(path,
|
|
||||||
SYSFS_RESCTRL_PATH "%s/L%u%s",
|
|
||||||
prefix ? prefix : "",
|
|
||||||
level,
|
|
||||||
virResctrlTypeToString(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This function tests whether TYPE of cache control is supported or not.
|
|
||||||
*
|
|
||||||
* Returns 0 if not, 1 if yes and negative value on error.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
virResctrlGetCacheSupport(unsigned int level, virCacheType type)
|
|
||||||
{
|
|
||||||
int ret = -1;
|
|
||||||
char *path = NULL;
|
|
||||||
|
|
||||||
if (virResctrlGetCacheDir(&path, "/info", level, type) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
ret = virFileExists(path);
|
|
||||||
VIR_FREE(path);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This function tests which TYPE of cache control is supported
|
|
||||||
* Return values are:
|
|
||||||
* -1: error
|
|
||||||
* 0: none
|
|
||||||
* 1: CAT
|
|
||||||
* 2: CDP
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
virResctrlGetCacheControlType(unsigned int level)
|
|
||||||
{
|
|
||||||
int rv = -1;
|
|
||||||
|
|
||||||
rv = virResctrlGetCacheSupport(level, VIR_CACHE_TYPE_BOTH);
|
|
||||||
if (rv < 0)
|
|
||||||
return -1;
|
|
||||||
if (rv)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
rv = virResctrlGetCacheSupport(level, VIR_CACHE_TYPE_CODE);
|
|
||||||
if (rv < 0)
|
|
||||||
return -1;
|
|
||||||
if (rv)
|
|
||||||
return 2;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
@ -65,15 +65,4 @@ virResctrlInfoGetCache(virResctrlInfoPtr resctrl,
|
|||||||
size_t *ncontrols,
|
size_t *ncontrols,
|
||||||
virResctrlInfoPerCachePtr **controls);
|
virResctrlInfoPerCachePtr **controls);
|
||||||
|
|
||||||
/* To be removed */
|
|
||||||
int
|
|
||||||
virResctrlGetCacheInfo(unsigned int level,
|
|
||||||
unsigned long long size,
|
|
||||||
virCacheType scope,
|
|
||||||
virResctrlInfoPerCachePtr **controls,
|
|
||||||
size_t *ncontrols);
|
|
||||||
|
|
||||||
int
|
|
||||||
virResctrlGetCacheControlType(unsigned int level);
|
|
||||||
|
|
||||||
#endif /* __VIR_RESCTRL_H__ */
|
#endif /* __VIR_RESCTRL_H__ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user