All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>,
	Dario Faggioli <dario.faggioli@citrix.com>
Cc: Marcus Granado <Marcus.Granado@eu.citrix.com>,
	Keir Fraser <keir@xen.org>, Matt Wilson <msw@amazon.com>,
	Li Yechen <lccycc123@gmail.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>,
	Juergen Gross <juergen.gross@ts.fujitsu.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	xen-devel@lists.xen.org, Jan Beulich <JBeulich@suse.com>,
	Justin Weaver <jtweaver@hawaii.edu>,
	Elena Ufimtseva <ufimtseva@gmail.com>
Subject: Re: [PATCH v3 11/14] libxl: get and set soft affinity
Date: Wed, 20 Nov 2013 11:29:17 +0000	[thread overview]
Message-ID: <528C9D0D.8020302@eu.citrix.com> (raw)
In-Reply-To: <1384946825.28441.56.camel@kazak.uk.xensource.com>

On 20/11/13 11:27, Ian Campbell wrote:
> On Tue, 2013-11-19 at 18:51 +0100, Dario Faggioli wrote:
>>>> +{
>>>> +    libxl_cputopology *topology;
>>>> +    libxl_bitmap ecpumap;
>>>> +    int nr_cpus = 0, rc;
>>>> +
>>>> +    topology = libxl_get_cpu_topology(ctx, &nr_cpus);
>>>> +    if (!topology) {
>>>> +        LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "failed to retrieve CPU topology");
>>> It's not consistent within the file but I think for new functions we
>>> should use the LOG macro variants.
>>>
>> Right, but don't I need a gc to use it? Should I "make up" one just for
>> the purpose of using LOG/LOGE?
> I think a call to GC_INIT/GC_FREE should be cheap enough.
>
>>>> +        return ERROR_FAIL;
>>>> +    }
>>>> +    libxl_cputopology_list_free(topology, nr_cpus);
>>> Why are you retrieving this only to immediately throw it away?
>>>
>> Because I need nr_cpus. :-)
> Surely this is not the recommended way to get nr_cpus!
>
> libxl_get_cpu_topology() itself calls libxl_get_max_cpus() which seems
> like the obvious candidate.
>
>
>>>> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
>>>> index c7dceda..504c57b 100644
>>>> --- a/tools/libxl/libxl.h
>>>> +++ b/tools/libxl/libxl.h
>>>> @@ -82,6 +82,20 @@
>>>>   #define LIBXL_HAVE_DOMAIN_NODEAFFINITY 1
>>>>   
>>>>   /*
>>>> + * LIBXL_HAVE_VCPUINFO_SOFTAFFINITY indicates that a 'cpumap_soft'
>>>> + * field (of libxl_bitmap type) is present in libxl_vcpuinfo,
>>>> + * containing the soft affinity for the vcpu.
>>>> + */
>>>> +#define LIBXL_HAVE_VCPUINFO_SOFTAFFINITY 1
>>>> +
>>>> +/*
>>>> + * LIBXL_HAVE_BUILDINFO_SOFTAFFINITY indicates that a 'cpumap_soft'
>>>> + * field (of libxl_bitmap type) is present in libxl_domain_build_info,
>>>> + * containing the soft affinity for the vcpu.
>>>> + */
>>>> +#define LIBXL_HAVE_BUILDINFO_SOFTAFFINITY 1
>>> Given that they arrive can we just use HAVE_SOFTRAFFINITY?
>>>
>> You mean just introducing one #define? Sure... For some reason I assumed
>> that every new field should come with it's own symbol. But if it's fine
>> to have one, I'm all for it. :-)
> I think it's ok.
>
>>>> +/* Flags, consistent with domctl.h */
>>>> +#define LIBXL_VCPUAFFINITY_HARD 1
>>>> +#define LIBXL_VCPUAFFINITY_SOFT 2
>>> Can these be an enum in the idl?
>>>
>> I think yes.
>>
>> I did actually check and, of all the enum-s in the IDL, none are used as
>> flags, they're rather used as "single values". OTOH, the only actual
>> flags I found (I think it was LIBXL_SUSPEND_DEBUG, LIBXL_SUSPEND_LIVE)
>> were defined like I did myself above... That's why I went for it.
> I have a feeling they predate the IDL, or at least the Enumeration
> support. It's true that we don't have any other bit fields in enums
> though. I can't see the harm, it's probably not worth introducing a new
> IDL type for them.

Since these are bits, not numbers, I don't think an enum is the right 
construct.  Or, the enum values should be the *bit numbers*, and the 
flags should be (1<<[bit_humber]).

  -George

  reply	other threads:[~2013-11-20 11:29 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-18 18:16 [PATCH v3 00/14] Series short description Dario Faggioli
2013-11-18 18:16 ` [PATCH v3 01/14] xl: match output of vcpu-list with pinning syntax Dario Faggioli
2013-11-18 18:16 ` [PATCH v3 02/14] libxl: sanitize error handling in libxl_get_max_{cpus, nodes} Dario Faggioli
2013-11-19 12:24   ` George Dunlap
2013-11-19 12:34     ` Dario Faggioli
2013-11-18 18:16 ` [PATCH v3 03/14] xl: allow for node-wise specification of vcpu pinning Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 04/14] xl: implement and enable dryrun mode for `xl vcpu-pin' Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 05/14] xl: test script for the cpumap parser (for vCPU pinning) Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 06/14] xen: sched: rename v->cpu_affinity into v->cpu_hard_affinity Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 07/14] xen: sched: introduce soft-affinity and use it instead d->node-affinity Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 08/14] xen: derive NUMA node affinity from hard and soft CPU affinity Dario Faggioli
2013-11-19 14:14   ` George Dunlap
2013-11-19 16:20   ` Jan Beulich
2013-11-19 16:35     ` Dario Faggioli
2013-11-18 18:17 ` [PATCH v3 09/14] xen: sched: DOMCTL_*vcpuaffinity works with hard and soft affinity Dario Faggioli
2013-11-19 14:32   ` George Dunlap
2013-11-19 16:39   ` Jan Beulich
2013-11-22 18:55     ` Dario Faggioli
2013-11-25  9:32       ` Jan Beulich
2013-11-25  9:54         ` Dario Faggioli
2013-11-25 10:00           ` Jan Beulich
2013-11-25 10:58             ` George Dunlap
2013-11-18 18:18 ` [PATCH v3 10/14] libxc: get and set soft and hard affinity Dario Faggioli
2013-11-19 14:51   ` George Dunlap
2013-11-19 14:57     ` Ian Campbell
2013-11-19 14:58       ` George Dunlap
2013-11-19 17:08   ` Ian Campbell
2013-11-19 18:01     ` Dario Faggioli
2013-11-18 18:18 ` [PATCH v3 11/14] libxl: get and set soft affinity Dario Faggioli
2013-11-19 15:41   ` George Dunlap
2013-11-19 16:09     ` Dario Faggioli
2013-11-19 17:15       ` Ian Campbell
2013-11-19 18:58         ` Dario Faggioli
2013-11-20 11:30           ` Ian Campbell
2013-11-20 13:59             ` George Dunlap
2013-11-20 14:04               ` Ian Campbell
2013-11-20 16:59                 ` Ian Jackson
2013-11-20 17:46                   ` Dario Faggioli
2013-11-20 14:09       ` George Dunlap
2013-11-19 17:24   ` Ian Campbell
2013-11-19 17:51     ` Dario Faggioli
2013-11-20 11:27       ` Ian Campbell
2013-11-20 11:29         ` George Dunlap [this message]
2013-11-20 11:32           ` Ian Campbell
2013-11-20 11:40             ` Dario Faggioli
2013-11-20 14:45               ` George Dunlap
2013-11-20 14:52                 ` Dario Faggioli
2013-11-20 12:00         ` Dario Faggioli
2013-11-20 12:05           ` Ian Campbell
2013-11-20 12:18             ` Dario Faggioli
2013-11-20 12:26               ` Ian Campbell
2013-11-20 14:50                 ` Dario Faggioli
2013-11-20 14:56                   ` Ian Campbell
2013-11-20 16:27                     ` Dario Faggioli
2013-11-18 18:18 ` [PATCH v3 12/14] xl: enable getting and setting soft Dario Faggioli
2013-11-19 17:30   ` Ian Campbell
2013-11-19 17:52     ` Dario Faggioli
2013-11-18 18:18 ` [PATCH v3 13/14] xl: enable for specifying node-affinity in the config file Dario Faggioli
2013-11-19 17:35   ` Ian Campbell
2013-11-18 18:18 ` [PATCH v3 14/14] libxl: automatic NUMA placement affects soft affinity Dario Faggioli
2013-11-19 17:41   ` Ian Campbell
2013-11-19 17:57     ` Dario Faggioli
2013-11-18 18:20 ` [PATCH v3 00/14] Series short description Dario Faggioli
2013-11-19 16:00 ` George Dunlap
2013-11-19 16:08   ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=528C9D0D.8020302@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=Marcus.Granado@eu.citrix.com \
    --cc=dario.faggioli@citrix.com \
    --cc=jtweaver@hawaii.edu \
    --cc=juergen.gross@ts.fujitsu.com \
    --cc=keir@xen.org \
    --cc=lccycc123@gmail.com \
    --cc=msw@amazon.com \
    --cc=ufimtseva@gmail.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.