All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: xen-devel@lists.sourceforge.net
Subject: Re: [PATCH] libxen-3.0 (libxc rewrite)
Date: Tue, 22 Mar 2005 09:16:18 -0600	[thread overview]
Message-ID: <424036C2.7080002@us.ibm.com> (raw)
In-Reply-To: <a68f0e9bb226b15e8fd728fc1d88f11d@cl.cam.ac.uk>

Keir Fraser wrote:

>
> On 21 Mar 2005, at 21:25, Anthony Liguori wrote:
>
>> I've been doing a lot of work on libxc.  I've got it to the point 
>> that I'm ready to share.  Below are the major changes.  Feedback is 
>> greatly appreciated, especially with respect to things that would be 
>> required for it to be integrated into the xen-unstable tree.
>
>
> Is there a particular reason for opening /proc/xen/privcmd on every 
> invocation, rather than keeping a handle 

It's not opened on every invocation.  It uses lazy evaluation to only 
open it once for the library.  I should have perhaps documented that a 
little better.

> continuously open? Also I rather liked the xc_ name tags: the tag was 
> a nice indication that I had reached the 

I don't mind adding a common prefix back.  Do other agree with this?  
What about using xen_ instead of xc_?

> bottom of a tools call path and was about to hit Xen. The -errno 
> return values are bizarre: user space has the errno variable for 
> conveying this information.

I can't speak for every library, but I think it's pretty rare to 
actually return errno in userspace.  It just makes life so much easier.

> Overall the library seems to be a greater modification of libxc than I 
> would have thought necessary. It basically looks like a rewrite to 
> pretty much the same interface but with names and copyrights changed.

The goals were to provide a interface tightly tied to the actual 
hypercalls.  I know it's probably a lot more than you expected but there 
were a lot of problems with libxc.  I can attest to this from trying to 
develop tools off of them.

Here were some of the problems with libxc:

1) Inconsistent errors
   - some calls returned errno from the hypercall, some returned errno 
from the call that failed, some set errno themselves, some never touched 
errno and made calls that would squash the hypercall's errno.
   - some calls just printf()'d an error message and squashed errno

2) Inconsistent mlock()'ing
   - some functions required arguments to be mlock()'d and some did it 
for you.

3) Poor typing
   - some functions used the wrong types in the interface (like passing 
an int instead of a domid_t for xc_domain_create()).

4) Lack of documentation

5) Poor developer support
   - Assumes headers and libs are in /usr/{include, lib}

So, making all of these changes touched every function.  Especially 
documenting every error condition.  So it was significantly easier to 
just start with fresh code.

>  -- Keir
>
>



-------------------------------------------------------
This SF.net email is sponsored by: 2005 Windows Mobile Application Contest
Submit applications for Windows Mobile(tm)-based Pocket PCs or Smartphones
for the chance to win $25,000 and application distribution. Enter today at
http://ads.osdn.com/?ad_id=6882&alloc_id=15148&op=click

  reply	other threads:[~2005-03-22 15:16 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-21 21:25 [PATCH] libxen-3.0 (libxc rewrite) Anthony Liguori
2005-03-22  3:33 ` Jacob Gorm Hansen
2005-03-22  4:24   ` Anthony Liguori
2005-03-22 19:28   ` Adam Heath
2005-03-22 20:12     ` Jacob Gorm Hansen
2005-03-22 11:02 ` Christian Limpach
2005-03-22 15:04   ` Anthony Liguori
2005-03-22 16:01     ` Christian Limpach
2005-03-22 16:06       ` Anthony Liguori
2005-03-22 16:13         ` Christian Limpach
2005-03-22 16:21           ` Anthony Liguori
2005-03-22 16:41             ` Christian Limpach
2005-03-22 17:05               ` Anthony Liguori
2005-03-22 17:28                 ` Keir Fraser
2005-03-22 17:32                 ` Ronald G. Minnich
2005-03-22 17:47                 ` Christian Limpach
2005-03-22 17:53                   ` Anthony Liguori
2005-03-22 13:50 ` Keir Fraser
2005-03-22 15:16   ` Anthony Liguori [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-03-22  9:01 Ian Pratt
2005-03-22 15:03 ` Anthony Liguori
     [not found]   ` <1111504492.20157.26.camel@bree.local.net>
2005-03-22 15:18     ` Anthony Liguori
2005-03-22 15:31       ` Jeremy Katz
2005-03-22 15:55         ` Anthony Liguori
2005-03-22 16:25           ` Jeremy Katz
2005-03-22 21:58             ` Jeremy Katz
2005-03-22 22:18               ` Anthony Liguori
2005-03-22 15:13 Ian Pratt
2005-03-22 16:00 Ian Pratt
2005-03-22 16:13 ` Anthony Liguori
2005-03-22 16:29   ` Nivedita Singhvi
2005-03-22 16:34     ` Anthony Liguori
2005-03-22 16:39       ` Steven Hand
2005-03-22 16:25 Ian Pratt
2005-03-22 17:21 Ian Pratt
2005-03-22 17:31 ` Anthony Liguori

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=424036C2.7080002@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=xen-devel@lists.sourceforge.net \
    /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.