[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Need Input] (informal) Automotive PV drivers subproject request

Artem, Xen community,

based on prior discussion with Artem and the session at the Hackathon I asked Artem to outline a pre-cursor for a proposal for a new offical Xen Project git repo and frame the question whether we should associate it to the Hypervisor subproject or whether we should propose a new subproject. This is really the context of this mail.

Also see, http://lists.xenproject.org/archives/html/xen-devel/2014-06/msg00289.html for the Hackathon minutes

There is a separate discussion for a few personal repos on xenbits, which is waiting for some information. But does not require a community discussion.

== important ==
I marked items, which require community input as [need input] below. Based on discussion and feedback, I would suggest to create a subproject proposal or otherwise.

On 04/06/2014 14:04, Artem Mygaiev wrote:
As a part of effort on bringing Xen into Automotive (and thus Embedded)
space, we are working on a set of PV drivers needed to share
peripherals between domains.
 * PV audio - new driver using ALSA
 * PV USB - based on old existing PV USB solution
 * PV framebuffer - modifications and improvements for existing FB
 * PV events - new driver for sharing HIDs across domains (touchscreen,
   keyb, etc.)
So just to clarify. The proposal here is to create another top-level git *.git tree alongside xen.git
@Artem, @Andrii

That raises a number of questions:

[need input] What name? posibilities are "automotive-pvdrivers, "embedded-pvdrivers", "pvdrivers", ...

[need input] Taking a slightly wider view, I know there was some discussion related to upstreaming RT-Xen. How does this fit in? Would there maybe be a case for "embedded/pvdrivers", "embedded/schedulers", ...

[need input] Should these be owned by a separate subproject or attached to an existing subproject (e.g. the Hypervisor project)

My personal view is that we should not create any offical new Xen Project codebases outside a subproject. Otherwise we will run into problems at some point. Do note, that this is a case we have not been through:
* in the case of Xen on ARM the project goal was to upstream changes to the hypervisor (we created a subproject to inbcrease visibility)
* Mirage OS was clearly a separate codebase and project already

There are trade-offs to either decision
* The key benefits of a separate subproject are commit access and project leadership for GlobalLogic. And consequently less burden on the existing Xen Project committer base.
* Improved visibility and PR value : this would be beneficial for a new subproject as well as the Xen Project as a whole. It would show increased momentum for the Xen project overall, while keeping the message to the market clear.
* A subproject would also avoid the situation that there is no clear governance and set of expectations around the code and a subproject goal: something we suffered from with the old ARM PV port (admittedly we didn't have governance then). In other words we have clear governance framework if,
a) the worst case happens and the drivers start to become unmaintained and,
b) if the best case happens and we suddenly get a lot of interest and there are arguments about ownership, process, decision making, ...
* The option of separate infrastructure, e.g. a separate mailing list, would reduce trhe barrier of entry to the new subproject

This list is not final, other things are to be added later on. Each
driver consists, obviously, of frontend and backend which may be
implemented for different OSes. So far only Linux is supported, QNX is
wip, ArcCore or similar being considered. Due to this, each driver has
following structure (sample):
[need input] I suppose the long-term question here is whether "pvdrivers/pvaudio/*" or "pvdrivers/qnx/pvaudio/*" is better in the long run. Part of it comes down to any headers and other stuff is needed to build drivers for the like of "qnx". Cutting components by OS, aka "pvdrivers/qnx/*", ... may also be cleaner from a licensing and ownership perspective (e.g. say another OS is added by a company called "foobar")

Linux kernel code is developed under GPLv2 license, userspace
components like some backends are under Apache 2 license, so can be
integrated into software with commercial licenses.
That is fine for subprojects in principle. Of course we prefer GPL, but any OSI approved license is fine (see http://opensource.org/licenses/alphabetical).

QNX and other OSes
will have licenses that are required by corresponding regulations, some
may be not open nevertheless we tend to make all parts of the code
available to the Xen community.
Artem, Andrii: Just to clarify
* Can QNX drivers be built a) on Linux and b) without requiring to purchase QNX
* Are there any issues with QNX driver headers : in other words, can these be included under OSI approved licenses ?
* I suppose there is also some unclarity about which Linux drivers would live in Linux (and which in this repo). Can we try and establish a more concrete list?

As a starting point in publishing the code we would like to request for
creation of a dedicated project where these drivers could be maintained
by us (GlobalLogic) and available to the community for use, and
hopefully, further development.
Artem, Andrii: Just to clarify
* short term: did you mean the personal branches we already discussed?
* and longer term: conclude this discussion such that we can find an official home for those drivers

Best Regards

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.