From: Ian Campbell <ian.campbell@citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>,
Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: wei.liu2@citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH XEN v5 07/23] tools: Refactor /dev/xen/gnt{dev, shr} wrappers into libxengnttab.
Date: Tue, 24 Nov 2015 09:34:31 +0000 [thread overview]
Message-ID: <1448357671.13926.39.camel@citrix.com> (raw)
In-Reply-To: <1448298339.4973.77.camel@citrix.com>
On Mon, 2015-11-23 at 17:05 +0000, Ian Campbell wrote:
Adding Daniel who I should have included the first time, plus a few
more thoughts from me at the end.
> On Wed, 2015-11-11 at 15:03 +0000, Ian Jackson wrote:
> > > XXX consider combining into a single namespace (i.e. with
> > > xengnttab_handle having two open fd's in it on Linux)
> >
> [...]
> > I conclude it would be better to unify them.
>
> Starting to look into this I have some queries on the direction I ought to
> take.
>
> Currently the real world implementations are such that a given installation
> either provides:
> * Neither gnttab nor gntshr (*BSD)
> * Only gnttab, not gntshr (mini-os, older Linux versions)
> * Both gnttab and ghtshr (newer Linux versions)
>
> In particular gntshr but not gnttab is not found in any real world system.
> Should I plan for such systems existing in the API? I think I probably
> should.
>
> A second question is then what functionality should be provided for callers
> who only want either gnttab or gntshr, but not both. (The canonical example
> would be the xc_gntshr_* compat layer in libxenctrl, there may be others).
>
> Previously code could rely on either xc_gnt{tab,shr}_open failing if the
> underlying interface was not present, and react accordingly, which might
> involve disabling functionality entirely (in such a way as the other calls
> to xc_gnt{tab,shr}_* do not need to handle ENOSYS, including by calling
> exit(1)).
>
> Now xengnttab_open could succeed because the other interface is available,
> which may cause these applications to think they have an interface which
> they in reality do not => confusion.
>
> Options I can think of:
>
> * A set of open flags, either FOO_MANDATORY or FOO_ONLY (the latter
> allowing us to skip opening the relevant interface).
> * Provide an interface to query the actual functionality which a given
> handle supports, so apps can react accordingly (e.g. by closing it again
> and erroring)
> * Force all callers to adjust to handling ENOSYS as part of this
> transition
>
> Opinions?
Thinking about this some more overnight, it occurred to me that the
real issue is that gnttab and gntshr are actually two quite difference
APIs. gnttab is all about consuming grant references which are given to
you from elsewhere while gntshr is all about creating grant references
to give to others. They have relatively little in common wrt the
underlying infrastructure, e.g. gnttab is mostly about making GNTTABOP
hypercalls while gntshr mostly interacts with the kernel's grant ref
allocator with no interaction with the hypervisor.
Maybe that and the API issues above constitute an argument for not
combining, I'm really not sure.
Ian.
next prev parent reply other threads:[~2015-11-24 9:34 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-09 11:59 [Qemu-devel] [Minios-devel] [PATCH v4 0/<VARIOUS>] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 00/23] " Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 01/23] tools/Rules.mk: Properly handle libraries with recursive dependencies Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 02/23] tools: Refactor "xentoollog" into its own library Ian Campbell
2015-11-13 15:05 ` Andrew Cooper
2015-11-13 15:35 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 03/23] tools/libxc: Remove osdep indirection for xc_evtchn Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 04/23] tools: Refactor /dev/xen/evtchn wrappers into libxenevtchn Ian Campbell
2015-11-11 14:50 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 05/23] tools: Arrange to check public headers for ANSI compatiblity Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 06/23] tools/libxc: Remove osdep indirection for xc_gnt{shr, tab} Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 07/23] tools: Refactor /dev/xen/gnt{dev, shr} wrappers into libxengnttab Ian Campbell
2015-11-11 14:34 ` Wei Liu
2015-11-11 15:03 ` Ian Jackson
2015-11-13 15:02 ` Ian Campbell
2015-11-13 20:38 ` Daniel De Graaf
2015-11-16 12:30 ` Ian Campbell
2015-11-24 16:32 ` Daniel De Graaf
2015-11-23 17:05 ` Ian Campbell
2015-11-24 9:34 ` Ian Campbell [this message]
2015-11-25 15:06 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 08/23] tools/libxc: Remove osdep indirection for privcmd Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 09/23] tools: Refactor hypercall calling wrappers into libxencall Ian Campbell
2015-11-11 15:08 ` Ian Jackson
2015-11-11 15:31 ` Wei Liu
2015-11-13 15:17 ` Ian Campbell
2015-11-13 15:16 ` Ian Campbell
2015-11-13 16:56 ` Ian Campbell
2015-11-13 16:57 ` Ian Campbell
2015-11-13 17:16 ` Roger Pau Monné
2015-11-13 17:23 ` Ian Campbell
2015-11-13 15:35 ` Andrew Cooper
2015-11-13 15:49 ` Andrew Cooper
2015-12-02 14:55 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 10/23] tools/libxc: drop xc_map_foreign_bulk_compat wrappers Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 11/23] tools: Remove xc_map_foreign_batch Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 12/23] tools: Implement xc_map_foreign_range(s) in terms of common helper Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 13/23] tools: Refactor foreign memory mapping into libxenforeignmemory Ian Campbell
2015-11-11 15:13 ` Ian Jackson
2015-11-13 15:21 ` Ian Campbell
2015-11-13 15:27 ` Ian Jackson
2015-11-27 17:18 ` Ian Campbell
2015-11-27 17:48 ` Andrew Cooper
2015-11-29 9:54 ` Paul Durrant
[not found] ` <9AAE0902D5BC7E449B7C8E4E778ABCD02F69D32F@AMSPEX01CL01.citrite.net>
2015-11-30 9:51 ` Ian Campbell
[not found] ` <1448877118.15768.11.camel@citrix.com>
2015-12-01 10:16 ` Paul Durrant
2015-11-27 15:46 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 14/23] tools: foreignmemory: provide xenforeignmemory_unmap Ian Campbell
2015-11-11 15:14 ` Ian Jackson
2015-11-27 15:57 ` Ian Campbell
2015-11-13 16:16 ` Andrew Cooper
2015-11-13 16:17 ` Andrew Cooper
2015-11-09 12:00 ` [PATCH XEN v5 15/23] foreignmemory: use size_t for size arguments Ian Campbell
2015-11-11 15:15 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 16/23] tools/libs/evtchn: Review and update doc comments Ian Campbell
2015-11-11 15:15 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 17/23] tools/libs: Clean up hard tabs Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 18/23] tools/libs/gnttab: Review and update doc comments Ian Campbell
2015-11-11 15:17 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 19/23] tools/libs/call: Update some log messages to not refer to xc Ian Campbell
2015-11-13 16:20 ` Andrew Cooper
2015-11-23 13:10 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 20/23] tools/libs/call: Avoid xc_memalign in netbsd and solaris backends Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 21/23] tools/libs/foreignmemory: Mention restrictions on fork in docs Ian Campbell
2015-11-11 15:18 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 22/23] tools: Update CFLAGS for qemu-xen to allow it to use new libraries Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 23/23] HACK: Update Config.mk to pull all the right bits from my xenbits trees Ian Campbell
2015-11-11 15:20 ` [PATCH XEN v5 00/23] Begin to disentangle libxenctrl and provide some stable libraries Ian Jackson
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 0/9] " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN v5 1/9] xen_console: correctly cleanup primary console on teardown Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] " Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 2/9] xen: Switch to libxenevtchn interface for compat shims Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 3/9] xen: Switch to libxengnttab " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-10 14:02 ` [Qemu-devel] " Stefano Stabellini
2015-11-10 14:02 ` Stefano Stabellini
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 4/9] xen: Switch uses of xc_map_foreign_range into xc_map_foreign_bulk Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 5/9] xen: Switch uses of xc_map_foreign_pages " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN v5 6/9] xen: Switch uses of xc_map_foreign_bulk to use libxenforeignmemory API Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] " Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN v5 7/9] xen: Use stable library interfaces when they are available Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] " Ian Campbell
2015-11-10 14:00 ` Stefano Stabellini
2015-11-10 14:00 ` [Qemu-devel] " Stefano Stabellini
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 8/9] xen: domainbuild: reopen libxenctrl interface after forking for domain watcher Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build without the Xen PV domain builder Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-10 12:48 ` [Qemu-devel] " Stefano Stabellini
2015-11-10 12:48 ` Stefano Stabellini
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 1/5] qemu-xen-traditional: Use xentoollog as a separate library Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 2/5] qemu-xen-traditional: Use libxenevtchn Ian Campbell
2015-11-11 15:19 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 3/5] qemu-xen-traditional: Use libxengnttab Ian Campbell
2015-11-11 15:20 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 4/5] qemu-xen-traditional: Add libxencall to rpath-link Ian Campbell
2015-11-11 15:20 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 5/5] qemu-xen-traditional: Add libxenforeignmemory " Ian Campbell
2015-11-11 15:21 ` Ian Jackson
2015-11-11 15:23 ` [PATCH QEMU-XEN-TRADITIONAL v5 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Jackson
2015-11-09 12:01 ` [PATCH MINI-OS " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 1/5] mini-os: Include libxentoollog with libxc Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 2/5] mini-os: Include libxenevtchn " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 3/5] mini-os: Include libxengnttab " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 4/5] mini-os: Include libxencall " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 5/5] mini-os: Include libxenforeignmemory " 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=1448357671.13926.39.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=dgdegra@tycho.nsa.gov \
--cc=wei.liu2@citrix.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.