On 02/12/2015 08:12 AM, Daniel P. Berrange wrote:
On Thu, Feb 12, 2015 at 08:03:44AM -0500, John Ferlan wrote:
> Add virDomainGetIOThreadsInfo in order to returned a list of
> virDomainIOThreadsInfoPtr structures which list the IOThread ID,
> the thread_id, and the CPU Affinity map for each IOThread for
> the active domain.
>
> Also added virDomainIOThreadsInfoFree in order to free the cpumap
> and the array entry structure.
>
> For inactive domains or where IOThreads is not supported return
> an error and an empty structure
>
> Signed-off-by: John Ferlan <jferlan(a)redhat.com>
> ---
> include/libvirt/libvirt-domain.h | 22 +++++++++++++-
> src/driver-hypervisor.h | 8 ++++-
> src/libvirt-domain.c | 63 +++++++++++++++++++++++++++++++++++++++-
> src/libvirt_public.syms | 6 ++++
> 4 files changed, 96 insertions(+), 3 deletions(-)
>
> diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
> index 4dbd7f5..54f8de4 100644
> --- a/include/libvirt/libvirt-domain.h
> +++ b/include/libvirt/libvirt-domain.h
> @@ -4,7 +4,7 @@
> * Description: Provides APIs for the management of domains
> * Author: Daniel Veillard <veillard(a)redhat.com>
> *
> - * Copyright (C) 2006-2014 Red Hat, Inc.
> + * Copyright (C) 2006-2015 Red Hat, Inc.
> *
> * This library is free software; you can redistribute it and/or
> * modify it under the terms of the GNU Lesser General Public
> @@ -1568,6 +1568,26 @@ int virDomainGetEmulatorPinInfo
(virDomainPtr domain,
> unsigned int flags);
>
> /**
> + * virIOThreadsInfo:
> + *
> + * The data structure for information about IOThreads in a domain
> + */
> +typedef struct _virDomainIOThreadsInfo virDomainIOThreadsInfo;
> +typedef virDomainIOThreadsInfo *virDomainIOThreadsInfoPtr;
> +struct _virDomainIOThreadsInfo {
> + unsigned int iothread_id; /* IOThread ID */
> + unsigned int thread_id; /* Thread ID associated with IOThread */
Hmm, one thing we've avoided doing in the past is to expose the idea of PIDs
in any of the libvirt APIs - we never expose the QEMU PID anywhere. So I
think I'd leave this thread_id field out of the info here, the iothread_id
should be sufficient for apps. The actual thread_is should only be needed
internally by libvirt itself, in order to do pinning & so forth - we don't
want to have apps using it todo pinning themslves.
OK no problem - that's "folklore" I wasn't aware of... Easy enough to
remove.
John