From: Ian Campbell <Ian.Campbell@citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Jim Fehlig <jfehlig@suse.com>, xen-devel@lists.xensource.com
Subject: Re: [PATCH 2/6] libxl: events: Deregister xenstore watch fd when not needed
Date: Fri, 28 Nov 2014 15:00:53 +0000 [thread overview]
Message-ID: <1417186853.23604.56.camel@citrix.com> (raw)
In-Reply-To: <21624.36102.93368.357206@mariner.uk.xensource.com>
On Fri, 2014-11-28 at 14:56 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH 2/6] libxl: events: Deregister xenstore watch fd when not needed"):
> > On Thu, 2014-11-27 at 18:27 +0000, Ian Jackson wrote:
> > > * On libxl teardown, the watch fd should therefore be unregistered.
> > > assert that this is the case.
> >
> > A bunch of the patches in this series basically assume that the ctx is
> > idle when it is freed, i.e. it requires everything to be explicitly
> > cancelled rather than implicitly doing so on free.
>
> libxl_ctx_free explicitly disables all the application-requested event
> generators. (free_disable_deaths and libxl__evdisable_disk_eject.)
So it does, I was looking for that before commenting but didn't see
those calls for what they were, despite the comment right there...
> Destroying the ctx during the execution of an asynchronous operation
> is forbidden by this text in libxl.h (near line 813):
> * *ao_how does not need to remain valid after the initiating function
> * returns. All other parameters must remain valid for the lifetime of
> * the asynchronous operation, unless otherwise specified.
> That implies that the ctx must remain valid during the ao, so it may
> not be destroyed beforehand.
>
> Those are the two ways that, even without any threads inside libxl, a
> ctx can be other than idle.
>
> It should be obvious to the application programmer that destroying the
> ctx when there are other threads inside libxl is not going to work.
> Indeed a programmer who tries to destroy the ctx when they have
> threads which might be inside libxl cannot ensure that the ctx is
> valid even on entry to libxl.
>
> > I think this is a fine restriction, but it probably ought to be written
> > down.
>
> Does the above demonstrate that the existing restrictions are
> documented ?
Yes.
> I'd rather avoid writing the restrictions twice if it
> can be avoided - these docs are long enough as they are.
Indeed.
next prev parent reply other threads:[~2014-11-28 15:00 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-26 15:37 segv in osevent_release_nexus with libxl backend to libvirt Ian Campbell
[not found] ` <21621.61406.151530.376288@mariner.uk.xensource.com>
2014-11-26 15:40 ` Ian Campbell
2014-11-26 15:52 ` Ian Campbell
2014-11-26 17:38 ` Ian Jackson
2014-11-27 10:22 ` Ian Campbell
2014-11-27 18:27 ` [PATCH for-4.5 0/6] libxl: events: Tear down fd interests when idle Ian Jackson
2014-11-27 18:27 ` [PATCH 1/6] libxl: events: Assert that libxl_ctx_free is not called from a hook Ian Jackson
2014-11-28 12:42 ` Ian Campbell
2014-11-27 18:27 ` [PATCH 2/6] libxl: events: Deregister xenstore watch fd when not needed Ian Jackson
2014-11-28 13:06 ` Ian Campbell
2014-11-28 14:56 ` Ian Jackson
2014-11-28 15:00 ` Ian Campbell [this message]
2014-11-28 13:19 ` Ian Campbell
2014-11-27 18:27 ` [PATCH 3/6] libxl: events: Deregister, don't just modify, sigchld pipe fd Ian Jackson
2014-11-28 12:48 ` Ian Campbell
2014-11-28 14:42 ` Ian Jackson
2014-11-28 14:44 ` Ian Campbell
2014-11-27 18:27 ` [PATCH 4/6] libxl: events: Tear down SIGCHLD machinery on ctx destruction Ian Jackson
2014-11-28 12:51 ` Ian Campbell
2014-11-27 18:27 ` [PATCH 5/6] libxl: events: Deregister evtchn fd when not needed Ian Jackson
2014-11-28 13:04 ` Ian Campbell
2014-11-28 14:47 ` Ian Jackson
2014-11-28 14:52 ` Ian Campbell
2014-12-09 11:22 ` Ian Jackson
2014-12-09 11:31 ` Ian Campbell
2014-12-09 15:48 ` [PATCH 5/6] libxl: events: Deregister evtchn fd when not needed [and 1 more messages] Ian Jackson
2014-11-27 18:27 ` [PATCH 6/6] libxl: events: Document and enforce actual callbacks restriction Ian Jackson
2014-11-28 13:04 ` Ian Campbell
2014-11-27 18:30 ` [PATCH for-4.5 0/6] libxl: events: Tear down fd interests when idle Ian Jackson
2014-11-28 13:05 ` Ian Campbell
2014-12-08 16:18 ` Konrad Rzeszutek Wilk
2014-12-08 10:33 ` Ian Campbell
2014-12-09 15:54 ` [PATCH for-4.5 v2 " Ian Jackson
2014-12-09 15:54 ` [PATCH 1/6] libxl: events: Assert that libxl_ctx_free is not called from a hook Ian Jackson
2014-12-09 15:54 ` [PATCH 2/6] libxl: events: Deregister xenstore watch fd when not needed Ian Jackson
2014-12-09 15:59 ` Ian Campbell
2014-12-09 16:13 ` Ian Jackson
2014-12-09 15:54 ` [PATCH 3/6] libxl: events: Deregister, don't just modify, sigchld pipe fd Ian Jackson
2014-12-09 15:54 ` [PATCH 4/6] libxl: events: Tear down SIGCHLD machinery on ctx destruction Ian Jackson
2014-12-09 15:54 ` [PATCH 5/6] libxl: events: Deregister evtchn fd when not needed Ian Jackson
2014-12-09 15:56 ` Ian Campbell
2014-12-09 15:54 ` [PATCH 6/6] libxl: events: Document and enforce actual callbacks restriction Ian Jackson
2014-12-10 10:45 ` [PATCH for-4.5 v2 0/6] libxl: events: Tear down fd interests when idle 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=1417186853.23604.56.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=jfehlig@suse.com \
--cc=xen-devel@lists.xensource.com \
/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.