On Mon, Apr 22, 2024 at 01:38:38PM +0200, Michal Privoznik wrote: > This is a helper that parses /sys/devices/system/cpu/isolated > into a virBitmap. It's going to be needed soon. > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > src/libvirt_private.syms | 1 + > src/util/virhostcpu.c | 21 +++++++++++++++++++++ > src/util/virhostcpu.h | 1 + > 3 files changed, 23 insertions(+) > > diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms > index 839fe4f545..ed85f022e4 100644 > --- a/src/libvirt_private.syms > +++ b/src/libvirt_private.syms > @@ -2502,6 +2502,7 @@ virHostCPUGetCount; > virHostCPUGetCPUID; > virHostCPUGetHaltPollTime; > virHostCPUGetInfo; > +virHostCPUGetIsolated; > virHostCPUGetKVMMaxVCPUs; > virHostCPUGetMap; > virHostCPUGetMicrocodeVersion; > diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c > index 01de69c0d1..e61eb12414 100644 > --- a/src/util/virhostcpu.c > +++ b/src/util/virhostcpu.c > @@ -1151,6 +1151,27 @@ virHostCPUGetAvailableCPUsBitmap(void) > return g_steal_pointer(&bitmap); > } > > +/** > + * virHostCPUGetIsolated: > + * > + * Returns a bitmap of isolated CPUs (e.g. those passed to isolcpus= kernel > + * cmdline). > + */ > +virBitmap * > +virHostCPUGetIsolated(void) > +{ > +#ifdef __linux__ > + virBitmap *ret = NULL; > + > + virFileReadValueBitmap(&ret, "%s/cpu/isolated", SYSFS_SYSTEM_PATH); This can return '-2' if the file does not exist, or '-1' with error reported if there's a problem opennig/parsing it. In both cases 'ret' should end up NULL The next patch treats NULL as an error scenario, but this means in the '-2' case we'll be returning an error status up the call stack, but without having actually reported an error message. > + > + return ret; > +#else > + virReportError(VIR_ERR_NO_SUPPORT, "%s", > + _("map of isolated CPUs not implemented on this platform")); > + return NULL; > +#endif > +} > > #if WITH_LINUX_KVM_H && defined(KVM_CAP_PPC_SMT) > > diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h > index d7e09bff22..e7b15a2649 100644 > --- a/src/util/virhostcpu.h > +++ b/src/util/virhostcpu.h > @@ -43,6 +43,7 @@ bool virHostCPUHasBitmap(void); > virBitmap *virHostCPUGetPresentBitmap(void); > virBitmap *virHostCPUGetOnlineBitmap(void); > virBitmap *virHostCPUGetAvailableCPUsBitmap(void); > +virBitmap *virHostCPUGetIsolated(void); > > int virHostCPUGetCount(void); > int virHostCPUGetThreadsPerSubcore(virArch arch) G_NO_INLINE; > -- > 2.43.2 > _______________________________________________ > Devel mailing list -- devel@xxxxxxxxxxxxxxxxx > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx