All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: Ian Campbell <Ian.Campbell@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>,
	George Dunlap <george.dunlap@eu.citrix.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 v4 02/15] libxl: sanitize error handling in libxl_get_max_{cpus, nodes}
Date: Tue, 3 Dec 2013 12:40:11 +0100	[thread overview]
Message-ID: <1386070811.5338.300.camel@Solace> (raw)
In-Reply-To: <1386063680.16012.42.camel@kazak.uk.xensource.com>


[-- Attachment #1.1: Type: text/plain, Size: 3945 bytes --]

`On mar, 2013-12-03 at 09:41 +0000, Ian Campbell wrote:
> On Mon, 2013-12-02 at 19:21 +0100, Dario Faggioli wrote:
> > I feel like it's more natural to do like this, rather than having a
> > pre-patch just moving the code for no apparent reason... Isn't it?
> 
> Certainly making changes which are necessarily required by the code
> motion is fine to do in a single step, although even then if you can
> arrange to make the changes either before or after the move it is
> better.
> 
> But is that what is happening here?
> 
> -static inline int libxl_cpu_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *cpumap,
> -                                         int max_cpus)
> -{
> -    if (max_cpus < 0)
> -        return ERROR_INVAL;
> -    if (max_cpus == 0)
> -        max_cpus = libxl_get_max_cpus(ctx);
> -    if (max_cpus == 0)
> -        return ERROR_FAIL;
> -
> -    return libxl_bitmap_alloc(ctx, cpumap, max_cpus);
> -}
> 
> is becoming:
> 
> +int libxl_cpu_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *cpumap, int max_cpus)
> +{
> +    GC_INIT(ctx);
> +    int rc = 0;
> +
> +    if (max_cpus < 0) {
> +        rc = ERROR_INVAL;
> +        goto out;
> +    }
> +    if (max_cpus == 0)
> +        max_cpus = libxl_get_max_cpus(ctx);
> +    if (max_cpus <= 0) {
> +        LOG(ERROR, "failed to retrieve the maximum number of cpus");
> +        rc = ERROR_FAIL;
> +        goto out;
> +    }
> +    /* This can't fail: no need to check and log */
> +    libxl_bitmap_alloc(ctx, cpumap, max_cpus);
> +
> + out:
> +    GC_FREE;
> +    return rc;
> +}
> 
> which involves a lot more reworking than simply adding the GC. 
>
Well, is it? All I'm doing is adding the GC and one LOG(). In v5 it's 2
LOG()s. The rest of the rework is indeed related to the GC-ification,
since I can't leave without calling GC_FREE anymore...

> In any
> case I don't see why the original function couldn't be moved as is and
> then have the GC-ification added in the new location, I don't think the
> move requires the change to using the GC In any way.
> 
Mmm... I'm not sure I'm fully understanding what you're trying to say.
That function is in libxl_utils.h right now (IIRC, I put it there
myself :-)) because it's a trivial wrapper of libxl_bitmap_alloc().

What is happening is that, as a result of changing the error handling in
libxl_get_max_cpus(), and deciding to move logging for when it fails
closer to it --which is what happens in this very patch-- I just don't
think this is a trivial enough wrapper any longer.

So, my view here is: if I modify the function, adding GC and the LOG()s,
then it should also be moved, if not, it can stay where it is. What you
seem to be suggesting is that I (either in this or a previous patch)
move the function as is, for no apparent reason, and then (either in a
following or this patch), introduce the GC and the LOG()s... Is that the
case, or am I missing something? I see the point of not combining
functional and not-functional changes, but that really looks odd to me,
in this particular case.

Anyway, if that's what you want, I certainly can do that... I'm not
being graded against a maximum number of patches in a series, am I? ;-P

> > (Anyway, feel free to look at v5 and reply there).
> 
> In general it would be better to reply to vN either up front or as you
> do the rework, so we can resolve any misunderstanding rather than
> waiting until after you've posted vN+1 and perhaps requiring a vN+2.
> 
Definitely, and I always do that. This round suffered from a combination
of weird circumstances on my side. Sorry for that.

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2013-12-03 11:40 UTC|newest]

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

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=1386070811.5338.300.camel@Solace \
    --to=dario.faggioli@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=george.dunlap@eu.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.