All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: Paulina Szubarczyk <paulinaszubarczyk@gmail.com>
Cc: wei.liu2@citrix.com, ian.campbell@citrix.com,
	George.Dunlap@eu.citrix.com, ian.jackson@eu.citrix.com,
	xen-devel@lists.xenproject.org, roger.pau@citrix.com
Subject: Re: [PATCH v2 05/10] xl_cmdimpl: improve return codes for memset commands
Date: Fri, 8 Apr 2016 11:41:29 +0200	[thread overview]
Message-ID: <1460108489.13871.74.camel@citrix.com> (raw)
In-Reply-To: <1460106276.5709.12.camel@localhost>


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

On Fri, 2016-04-08 at 11:04 +0200, Paulina Szubarczyk wrote:
> On Fri, 2016-04-08 at 10:26 +0200, Dario Faggioli wrote:
> > Mmmm.. I see no reason why this can't remain exit(). In fact, it
> > should
> > be turned int exit(EXIT_FAILURE), and there's Harmandeep's series
> > --
> > just resubmitted by me tonight-- outstanding that does that [1].
> There was a discussion [2] that the exit() could be replaced by
> return 1
> in the v1 of this patch, that is way I did here and in the following
> commits. 
>
Yeah, and in fact, sorry for not participating in that discussion... I
wanted to, but was otherwise engaged at the time.

> Should it be rather reverted? 
> 
Well, this is something Wei and Ian have the final say on.

I'm actually fine with either approaches but, considering that:
 1. calling exit() in situations similar to this is, AFAICT, what xl
    does pretty much always;
 2. converting exit()-s to 'return 1' may (but that's on a case by
    case basis) require a bigger patch;

Right now, given the status this is in xl, I would just focus on making
sure that the program terminates with either EXIT_SUCCESS or
EXIT_FAILURE; if that comes from an exit() being called in a non-top
level functions, so be it... And, in fact, in this case, the quickest
and cleanest way to make that happen, is doing what George's patch
does, which is neither exit() nor 'return 1'. :-/

> > In any case, this patch is probably not necessary any longer, not
> > because Harmandeep pending series, but because George take care of
> > what
> > I think you're trying to do in here in
> > commit 0614c454209ac67016e2296577abfee9e9dcb012 already.
> In that George's commit the set_memory_* functions return
> EXIT_{FAILURE/SUCCESS}. Following the patches from Harmandeep's
> series I
> was going to changed them to return 1/0 and return
> EXIT_{FAILURE/SUCCESS} in main_* functions, after asking about that
> in
> that thread [3], though, you said there are exceptions too that in
> [1].
> 
Yep, it's again, at least up to a cartain extent, a matter of taste and
something that is hard to carve in stone, leaving no room for
exceptions.

For example, in principle, what you say you're planning to do is
correct: internal functions should return 0/1, top level function (and
main_foo() are top level functions) should either exit() or return
EXIT_SUCCESS/EXIT_FAILURE.

But.

Although set_memory_max() certainly is an internal function, it is
_only_ used from main_memmax() like this:

  return set_memory_max(domid, mem);

and since main_memmax() is a top level function, if it were my call,
I'd be more than ok with bending the above stated rule and allow
set_memory_max() to return EXIT_SUCCESS/EXIT_FAILURE.

IOW, since it's return code is always directly returned by a top level
function, I think we can allow set_memory_max() (and functions used in
similar ways) to return just like top level functions do.

I know, it's tricky, because it's not just a matter of "blindly"
applying a set of rules, you have to consider all the implication --and 
there are many of them-- on a case by case basis. It's what (among
other things), IMO, makes Open Source challenging, but also beautiful
and rewarding. :-D

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: 181 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:[~2016-04-08  9:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-06 11:45 [PATCH v2 00/10] xl: improve coding style and return more failure on failure for more xl commands Paulina Szubarczyk
2016-04-06 11:45 ` [PATCH v2 01/10] libxl_pci: improve return codes " Paulina Szubarczyk
2016-04-08  8:00   ` Dario Faggioli
2016-04-06 11:45 ` [PATCH v2 02/10] libxl-pci: removing the extra 'out_closedir' cleaning path Paulina Szubarczyk
2016-04-08  8:12   ` Dario Faggioli
2016-04-06 11:45 ` [PATCH v2 03/10] libxl: fix return value of libxl__device_pci_destroy_all Paulina Szubarczyk
2016-04-08  8:19   ` Dario Faggioli
2016-04-06 11:45 ` [PATCH v2 04/10] xl: improve return code for freemem function Paulina Szubarczyk
2016-04-06 11:45 ` [PATCH v2 05/10] xl_cmdimpl: improve return codes for memset commands Paulina Szubarczyk
2016-04-08  8:26   ` Dario Faggioli
2016-04-08  9:04     ` Paulina Szubarczyk
2016-04-08  9:41       ` Dario Faggioli [this message]
2016-04-06 11:45 ` [PATCH v2 06/10] xl_cmdimpl: improve return codes for cd-insert commands Paulina Szubarczyk
2016-04-08  8:29   ` Dario Faggioli
2016-04-06 11:46 ` [PATCH v2 07/10] xl_cmdimpl - Add return codes for pci-detach, pci-attach, pci-asssignable-add, and pci-assignable-remove Paulina Szubarczyk
2016-04-08  8:36   ` Dario Faggioli
2016-04-06 11:46 ` [PATCH v2 08/10] libxl: improve main_tmem_* return codes Paulina Szubarczyk
2016-04-08  9:00   ` Dario Faggioli
2016-04-06 11:46 ` [PATCH v2 09/10] libxl: Fix libxl_set_memory_target return value Paulina Szubarczyk
2016-04-06 12:54   ` George Dunlap
2016-04-06 13:21     ` Paulina Szubarczyk
2016-04-06 13:53       ` George Dunlap
2016-04-06 11:46 ` [PATCH v2 10/10] libxl: libxl_tmem functions improving coding style Paulina Szubarczyk
2016-04-08  8:54   ` Dario Faggioli

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=1460108489.13871.74.camel@citrix.com \
    --to=dario.faggioli@citrix.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=paulinaszubarczyk@gmail.com \
    --cc=roger.pau@citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.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.