From: Jim Fehlig <jfehlig@novell.com>
To: Ian Campbell <Ian.Campbell@eu.citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Jan Beulich <JBeulich@novell.com>,
Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
Subject: Re: libxl API changes for 4.2 (Was: Re: [PATCH] libxl: do not expose libxenctrl/libxenstore headers via libxl.h)
Date: Thu, 14 Apr 2011 11:41:20 -0600 [thread overview]
Message-ID: <4DA731C0.3090804@novell.com> (raw)
In-Reply-To: <1302689173.5997.22.camel@zakaz.uk.xensource.com>
Ian Campbell wrote:
> On Wed, 2011-04-13 at 05:07 +0100, Jim Fehlig wrote:
>
>> Stefano Stabellini wrote:
>>
>>> I agree with you on the general principle but I suspect it is going to
>>> be almost a rewrite at the end of this development cycle :-/
>>>
>>>
>> :-( For clients' sake, I hope the API stabilizes in 4.2 timeframe,
>>
>
> We're sorry about this, the API in 4.1 isn't one we are comfortable
> supporting as a long term thing, it has some rough edges and various
> inconsistencies. There's a bit of a chicken and egg situation with the
> clients since sometimes you need to see what users are doing in practice
> in order to figure out what the best long term API is.
>
> We hope to iron it out for the 4.2 release and have a more stable
> interface from then, although of course the API will still evolve, but
> more slowly and the intention is to try and preserve compatibility where
> possible.
>
Great, thanks. It would be ideal for a client built against libxl4.2 to
work with libxl4.3 :).
>
>> and no backports to 4.1 break the API in that branch.
>>
>
> I think that's something we should be avoiding.
>
This would be very helpful and much appreciated!
>
>> IIRC, there have been
>> other API-incompatible libxl changes since 4.1.
>>
>
> Yes, there have.
>
> The removal of the domid field from the devices springs to mind (in many
> cases you can omit setting it even on 4.1 though, as it happens). So
> does the change of the ctx type from a struct to an opaque pointer (the
> parent thread of this mail).
>
> Going forward these are the things which spring to mind for 4.2:
>
> Some of the enum value names will also be changed to allow them to be
> more consistently autogenerated (although a compat.h style thing could
> help here).
>
> A related change is the fixing of the TaggedUnion type in the idl into
> something with semantics which map onto language bindings in a sensible
> way.
>
> The specification of specific hvmloader and qemu-dm binaries is also
> likely to be deprecated soon, the user will just need to ask for old or
> new qemu and libxl will figure the rest out (it will still be possible
> to override if desired)
>
Yep, ability to specify device model binary should be retained. I don't
know of any users specifying a qemu-dm wrapper via device_model, but
wouldn't be surprised if they exist.
> I've also been wondering what can/should be done about the split between
> libxl_domain_create_info, libxl_domain_build_info and
> libxl_device_model_info now that they are all bundled together in
> libxl_domain_config and not exposed directly in the API (since the
> related functions became internal, that was before 4.1). It seems like
> there ought to be scope for collapsing those datastructures somewhat but
> I'm not sure how yet.
>
I wonder if libxl_device_model_info even needs to be exposed? Generally
speaking, the domain config consists of
metadata (name, uuid, description, etc.)
basic resources (cpu, memory, maxmemory, etc.)
OS booting info (order, loader, kernel/ramdisk)
clock/timekeeping (clock offset, timer type, timer tick policy, etc.)
lifecycle controls (what to do on reboot, shutdown, crash, etc.)
devices (block, net, framebuffer, PCI, framebuffer, input, serial,
parallel, etc.)
All of the device model info can be inferred from this configuration.
BTW, thanks for the heads up on these changes.
Regards,
Jim
> The topologyinfo datastructure should be a list of tuples, not a tuple
> of lists.
>
> The API seems to expose a bunch of console related datastructures but
> not much in the way of functions to do anything with them. One of those
> must be wrong.
>
> I think IanJ wants to fixup the event API as well, it's a bit barking at
> the moment.
>
> IanJ is also going to be looking at the handling of storage backends, I
> expect that is moistly going to be internal to the library but it might
> have an impact on the API too.
>
>
>> Seems best for clients
>> to target new releases (4.1, 4.2, ...) and expect branch releases
>> (4.1.1, 4.1.2, ...) to have a stable API?
>>
>
> That seems like a reasonable expectation to me.
>
> Ian.
>
>
>
next prev parent reply other threads:[~2011-04-14 17:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-06 15:19 [PATCH] libxl: do not expose libxenctrl/libxenstore headers via libxl.h Ian Campbell
2011-04-06 15:52 ` Ian Jackson
2011-04-07 8:30 ` Jan Beulich
2011-04-07 8:52 ` Ian Campbell
2011-04-07 9:32 ` Jan Beulich
2011-04-07 9:58 ` Ian Jackson
2011-04-07 10:23 ` Stefano Stabellini
2011-04-08 15:17 ` Ian Jackson
2011-04-13 4:07 ` Jim Fehlig
2011-04-13 10:06 ` libxl API changes for 4.2 (Was: Re: [PATCH] libxl: do not expose libxenctrl/libxenstore headers via libxl.h) Ian Campbell
2011-04-13 10:12 ` Christoph Egger
2011-04-13 11:00 ` Ian Campbell
2011-04-13 11:04 ` Ian Jackson
2011-04-13 11:03 ` Ian Jackson
2011-04-14 17:41 ` Jim Fehlig [this message]
2011-04-15 8:24 ` 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=4DA731C0.3090804@novell.com \
--to=jfehlig@novell.com \
--cc=Ian.Campbell@eu.citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@novell.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.