From: Andres Lagar-Cavilla <andres@lagarcavilla.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
xen-devel@lists.xensource.com
Subject: libxenlight or libxenheavy?
Date: Mon, 30 Nov 2009 14:08:47 -0500 [thread overview]
Message-ID: <4B14183F.3070801@lagarcavilla.com> (raw)
Aside of the tongue in cheek title, I'd like to get a feel for where is
libxenlight going. I love having a library that gives me three
straight-forward C calls to create a domain, and I think it's an
excellent vehicle to writing control stacks.
But some of the latest patches have grown/bloated the library in
directions I don't think are useful. This an obviously subjective take
on the matter, but here are two examples:
- Managing tapdisk2 devices in libxenlight: why at all? An upper-level
control stack can (will have to) vet the configuration stanza of the
tapdisk2 process, and it can then launch it and manage its life-cycle
(i.e. echo appropriate commands to the sysfs interface). One of the
great advantages of tapdisk2 is that it looks like a regular block
device: /dev/xen/blktap-2/tapdev0. Libxenlight doesn't need to know this
is any different from a regular block device ...
- Asynchronous notifications via xenstore watches: I've seen at least
two locations (device deletion during destroy and waiting for domain
death) where a watch on a xenstore path is placed by the library, and
later xs_read_watch is called. According to my limited understanding,
this could read *any* firing watch placed by the same process, and the
code will discard it unless it's the one we are looking for. Thus
destroying information useful to someone else. I cannot have two
concurrent (or even interleaved) calls to libxenlight on these code
paths, because they could read each other's watches. Why not leave these
to an upper-level stack, which in all likelihood will have to deal with
lots of asynchronous events? As it stands, I have to write my code
*around* libxenlight, which kind of defeats the purpose.
Anyway, these are two observations. Libxenlight is great. And to buy
back some of the love I spent ranting, I'll follow this with 14 patches.
These are all based off20522: abc6183f486e
<http://xenbits.xen.org/xen-unstable.hg?rev/abc6183f486e>. Some are more
RFC-ish in nature, but there a fair bit of fixes. They apply -p1
(sorry). Just let me know if you need a rebasing or whatever.
Andres
next reply other threads:[~2009-11-30 19:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-30 19:08 Andres Lagar-Cavilla [this message]
2009-12-01 6:12 ` libxenlight or libxenheavy? Vincent Hanquez
2009-12-01 6:35 ` Vincent Hanquez
2009-12-01 11:41 ` Stefano Stabellini
2009-12-01 12:14 ` Keir Fraser
2009-12-01 13:51 ` Keir Fraser
2009-12-01 14:00 ` Stefano Stabellini
2009-12-01 14:01 ` Keir Fraser
2009-12-01 14:27 ` Andres Lagar-Cavilla
2009-12-01 11:23 ` Stefano Stabellini
2009-12-01 11:24 ` Jean Guyader
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=4B14183F.3070801@lagarcavilla.com \
--to=andres@lagarcavilla.com \
--cc=stefano.stabellini@eu.citrix.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.