xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: ian.jackson@eu.citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH XEN v4 07/23] tools: Refactor /dev/xen/gnt{dev, shr} wrappers into libxengnttab.
Date: Wed, 4 Nov 2015 16:08:29 +0000	[thread overview]
Message-ID: <1446653309.6461.127.camel@citrix.com> (raw)
In-Reply-To: <20151029162818.GY18674@zion.uk.xensource.com>

On Thu, 2015-10-29 at 16:28 +0000, Wei Liu wrote:
> On Wed, Oct 21, 2015 at 04:23:14PM +0100, Ian Campbell wrote:
> > libxengnttab will provide a stable API and ABI for accessing the
> > grant table devices.
> > 
> > The functions are moved into the xengnt{tab,shr} namespace to make a
> > clean break from libxc and avoid ambiguity regarding which interfaces
> > are stable.
> > 
> > XXX consider combining into a single namespace (i.e. with
> > xengnttab_handle having two open fd's in it on Linux)
> > 
> 
> This?

Currently there are two separate interfaces (i.e. 2x_open, 2x handle types,
2x sets of functions for using the handle, 2x namespaces, etc) in this
library corresponding to two underlying devices in /dev/xen, one of which
is for utilising grant references which you have been given (gntdev), the
other of which is for allocating suitable memory for granting and creating
grants of it to give away to others (gntshr).

Only Linux and mini-os implement gntshr today, I think.

AFAIK most consumers (e.g. qemu's pv backends, or userspace pv backends
generally) are only using the first (consuming grants). The only user of
gntshr I know of is libvchan, but in general any userspace frontend would
likely need this functionality.

There are three possibilities here for the stable library interface:
 * Do nothing, keep it as two interfaces in one library.
 * Split into separate libgntdev and libgntshr libraries.
 * Unify the two APIs such that a single handle actually contains two fd's
   and functions are all in the same namespace etc and just the correct
   underlying fd associated with the op.

The comment is wondering if we should do the third, I hadn't thought of the
middle one at the time.

Right now my preference is towards the first, the implementation of which
is "delete the XXX comment".

The downside of not merging is that if some new OS port comes along which
has gntdev and gntshr in a single device that the applications then still
have to open and manage two handles and updating the ABI to unify them
later would be a pain.

I'm inclined towards lazily thinking that having two handles is not such a
big deal, even on an OS where the underlying implementation is such that
they contain "redundant" file handles.

Ian.

  reply	other threads:[~2015-11-04 16:08 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-21 15:22 [PATCH v4 0/<VARIOUS>] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-10-21 15:23 ` [PATCH XEN v4 00/23] " Ian Campbell
2015-10-21 15:23   ` [PATCH XEN v4 01/23] tools/Rules.mk: Properly handle libraries with recursive dependencies Ian Campbell
2015-10-29 16:27     ` Wei Liu
2015-11-02 14:20       ` Ian Campbell
2015-10-21 15:23   ` [PATCH XEN v4 02/23] tools: Refactor "xentoollog" into its own library Ian Campbell
2015-10-29 16:27     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 03/23] tools/libxc: Remove osdep indirection for xc_evtchn Ian Campbell
2015-10-29 16:27     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 04/23] tools: Refactor /dev/xen/evtchn wrappers into libxenevtchn Ian Campbell
2015-10-29 16:27     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 05/23] tools: Arrange to check public headers for ANSI compatiblity Ian Campbell
2015-10-29 16:27     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 06/23] tools/libxc: Remove osdep indirection for xc_gnt{shr, tab} Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 07/23] tools: Refactor /dev/xen/gnt{dev, shr} wrappers into libxengnttab Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-11-04 16:08       ` Ian Campbell [this message]
2015-10-21 15:23   ` [PATCH XEN v4 08/23] tools/libxc: Remove osdep indirection for privcmd Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 09/23] tools: Refactor hypercall calling wrappers into libxencall Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 10/23] tools/libxc: drop xc_map_foreign_bulk_compat wrappers Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 11/23] tools: Remove xc_map_foreign_batch Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 12/23] tools: Implement xc_map_foreign_range(s) in terms of common helper Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 13/23] tools: Refactor foreign memory mapping into libxenforeignmemory Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 14/23] tools: foreignmemory: provide xenforeignmemory_unmap Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 15/23] foreignmemory: use size_t for size arguments Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 16/23] tools/libs/evtchn: Review and update doc comments Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 17/23] tools/libs: Clean up hard tabs Ian Campbell
2015-10-29 16:28     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 18/23] tools/libs/gnttab: Review and update doc comments Ian Campbell
2015-10-29 16:29     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 19/23] tools/libs/call: Update some log messages to not refer to xc Ian Campbell
2015-10-29 16:29     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 20/23] tools/libs/call: Avoid xc_memalign in netbsd and solaris backends Ian Campbell
2015-10-29 16:29     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 21/23] tools/libs/foreignmemory: Mention restrictions on fork in docs Ian Campbell
2015-10-29 16:29     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 22/23] tools: Update CFLAGS for qemu-xen to allow it to use new libraries Ian Campbell
2015-10-29 16:29     ` Wei Liu
2015-10-21 15:23   ` [PATCH XEN v4 23/23] HACK: Update Config.mk to pull all the right bits from my xenbits trees Ian Campbell
2015-10-21 15:23 ` [PATCH QEMU-XEN v4 0/9] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 1/9] xen_console: correctly cleanup primary console on teardown Ian Campbell
2015-10-22 16:46     ` Stefano Stabellini
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 2/9] xen: Switch to libxenevtchn interface for compat shims Ian Campbell
2015-10-23 11:06     ` Stefano Stabellini
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 3/9] xen: Switch to libxengnttab " Ian Campbell
2015-10-23 11:06     ` Stefano Stabellini
     [not found]     ` <alpine.DEB.2.02.1510221754220.15801@kaball.uk.xensource.com>
2015-10-23 11:15       ` Ian Campbell
2015-10-23 12:42       ` Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 4/9] xen: Switch uses of xc_map_foreign_range into xc_map_foreign_bulk Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 5/9] xen: Switch uses of xc_map_foreign_pages " Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 6/9] xen: Switch uses of xc_map_foreign_bulk to use libxenforeignmemory API Ian Campbell
2015-10-23 11:06     ` Stefano Stabellini
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 7/9] xen: Use stable library interfaces when they are available Ian Campbell
2015-10-23 11:31     ` Stefano Stabellini
     [not found]     ` <alpine.DEB.2.02.1510231214140.15801@kaball.uk.xensource.com>
2015-10-23 12:25       ` Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 8/9] xen: domainbuild: reopen libxenctrl interface after forking for domain watcher Ian Campbell
2015-10-21 15:23   ` [PATCH QEMU-XEN v4 9/9] xen: make it possible to build without the Xen PV domain builder Ian Campbell
2015-10-22 11:07     ` Ian Campbell
2015-10-23 11:12     ` Stefano Stabellini
     [not found]     ` <alpine.DEB.2.02.1510231209070.15801@kaball.uk.xensource.com>
2015-10-23 11:19       ` Ian Campbell
     [not found]       ` <1445599197.2374.127.camel@citrix.com>
2015-10-23 11:35         ` Stefano Stabellini
     [not found]         ` <alpine.DEB.2.02.1510231235120.15801@kaball.uk.xensource.com>
2015-10-23 12:23           ` Ian Campbell
     [not found]   ` <1445441038-25903-5-git-send-email-ian.campbell@citrix.com>
2015-10-23 11:07     ` [PATCH QEMU-XEN v4 4/9] xen: Switch uses of xc_map_foreign_range into xc_map_foreign_bulk Stefano Stabellini
2015-10-21 15:24 ` [PATCH QEMU-XEN-TRADITIONAL v4 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-10-21 15:24   ` [PATCH QEMU-XEN-TRADITIONAL v4 1/5] qemu-xen-traditional: Use xentoollog as a separate library Ian Campbell
2015-10-21 15:24   ` [PATCH QEMU-XEN-TRADITIONAL v4 2/5] qemu-xen-traditional: Use libxenevtchn Ian Campbell
2015-10-21 15:24   ` [PATCH QEMU-XEN-TRADITIONAL v4 3/5] qemu-xen-traditional: Use libxengnttab Ian Campbell
2015-10-21 15:24   ` [PATCH QEMU-XEN-TRADITIONAL v4 4/5] qemu-xen-traditional: Add libxencall to rpath-link Ian Campbell
2015-10-21 15:24   ` [PATCH QEMU-XEN-TRADITIONAL v4 5/5] qemu-xen-traditional: Add libxenforeignmemory " Ian Campbell
2015-10-21 15:24 ` [PATCH MINI-OS v4 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-10-21 15:24   ` [PATCH MINI-OS v4 1/5] mini-os: Include libxentoollog with libxc Ian Campbell
2015-10-21 15:24   ` [PATCH MINI-OS v4 2/5] mini-os: Include libxenevtchn " Ian Campbell
2015-10-21 15:24   ` [PATCH MINI-OS v4 3/5] mini-os: Include libxengnttab " Ian Campbell
2015-10-21 15:24   ` [PATCH MINI-OS v4 4/5] mini-os: Include libxencall " Ian Campbell
2015-10-21 15:24   ` [PATCH MINI-OS v4 5/5] mini-os: Include libxenforeignmemory " Ian Campbell
2015-10-22 20:42   ` [PATCH MINI-OS v4 0/5] Begin to disentangle libxenctrl and provide some stable libraries Samuel Thibault
2015-10-23  9:43     ` Ian Campbell
2015-10-26 14:43   ` Wei Liu
2015-10-21 15:47 ` [Minios-devel] [PATCH v4 0/<VARIOUS>] " Ian Campbell
2015-11-09 12:02   ` Ian Campbell
2015-11-19 16:20   ` Stefano Stabellini
2015-11-19 17:01     ` Ian Campbell
2015-11-20 11:07       ` Stefano Stabellini
2015-11-20 11:24         ` Ian Campbell
2015-11-20 14:11           ` Stefano Stabellini
2015-11-20 11:38     ` Ian Campbell
2015-11-20 11:40     ` Ian Campbell
2015-11-20 13:49       ` Stefano Stabellini
2015-11-23 12:49         ` Ian Campbell
2015-12-03  9:44     ` 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=1446653309.6461.127.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).