All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <Ian.Campbell@citrix.com>
To: Razvan Cojocaru <rcojocaru@bitdefender.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: Xenstore.h clarifications
Date: Fri, 28 Nov 2014 09:58:01 +0000	[thread overview]
Message-ID: <1417168681.19852.2.camel@citrix.com> (raw)
In-Reply-To: <54770242.9000709@bitdefender.com>

On Thu, 2014-11-27 at 12:51 +0200, Razvan Cojocaru wrote:

It's a good idea to CC the relevant maintainers if you want their input.

> Hello,
> 
> I know that xc_interface_open() can be safely called several times from
> the same process, and that several processes can each have a bunch of
> xc_interface handles open, and that I shouldn't use an xc_interface
> inherited from the parent in a child process, because xenctrl.h says so.
> 
> Is it safe to assume that the same restrictions / conventions apply to
> xs_handles obtained via xs_open()? Xenstore.h is not explicit. Looking
> at the code, it would seem safe to assume that it can be used in a
> similar manner, but it would be nice to have this confirmed if possible.

I think there's a pretty good chance that the same applies to xenstore
connections made over the device/shared-ring interface.

I'm not really sure about the semantics of a Unix domain socket after a
fork, but I don't expect both parent and child could sanely make use of
it.

So I think the answer is:

      * Connections made with xs_open(0) (which might be shared page or
        socket based) are only guaranteed to work in the parent after
        fork.
      * Connections made with xs_open(XS_OPEN_SOCKETONLY) will be usable
        in either the parent or the child after fork, but not both.
      * xs_daemon_open*() and xs_domain_open() are deprecated synonyms
        for xs_open(0)
      * XS_OPEN_READONLY has not bearing on any of this.

Ian, does that seem right?

Razvan, assuming Ian concurs with the above (or corrects it) then could
you knock up a patch to document the result please.

Ian.

  reply	other threads:[~2014-11-28  9:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27 10:51 Xenstore.h clarifications Razvan Cojocaru
2014-11-28  9:58 ` Ian Campbell [this message]
2014-11-28 10:18   ` Razvan Cojocaru
2014-11-28 11:37   ` Ian Jackson

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=1417168681.19852.2.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=rcojocaru@bitdefender.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.