From: "Alex Bennée" <alex.bennee@linaro.org>
To: Christopher Covington <cov@codeaurora.org>
Cc: digit@google.com,
Android emulator development
<android-emulator-dev@googlegroups.com>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] New emulator code base (qemu-android) and "ranchu" virtual board.
Date: Thu, 06 Nov 2014 15:03:49 +0000 [thread overview]
Message-ID: <87wq78s756.fsf@linaro.org> (raw)
In-Reply-To: <545A4962.4050902@codeaurora.org>
Christopher Covington <cov@codeaurora.org> writes:
> Hi,
>
> [snip--for full message see
> https://groups.google.com/d/msg/android-emulator-dev/dltBnUW_HzU/2tSZNLaVzmQJ]
>
>> 5) Relationship with upstream
>>
>> In an ideal world, we would not need a fork, and all code would live on
>> the upstream QEMU git.
>>
>> In reality, things are different: there is little chance that the upstream
>> team would want to maintain 100K+ lines of code that are completely
>> specific to Android, and for good reason. That's why the refactoring effort
>> is so important, we need to find a way to maintain the Android-specific
>> QEMU patches as small as possible, and push as much stuff into the
>> android-emulation library.
>
> I'm curious, have there been previous discussions with the QEMU maintainers
> that you can summarize or point me to?
Taking my Linaro hat off and certainly not speaking for Google or the
maintainers:
Whenever new functionality is added to QEMU we rely on having:
* Someone to maintain and support the code
* Interested users that can regularly test and report breakages
Without this functionality can bitrot without being noticed and impose
an additional maintenance burden on the rest of the code-base. The
original authors may well have different priorities (e.g. shipping product!).
Of course not working directly upstream does impose additional costs
in the long term as you either take on the maintenance burden of
backporting fixes to your older tree or fixing conflicts on re-basing
with the upstream.
>> Even with smaller changes, it's crucial to have a good set of tests, that
>> exercise these Android-specific features, added to the QEMU test suite, and
>> clear documentation about the implementation being added. This may require
>> a stub or minimal mock version of android-emulation.
>>
>> Finally, we may want to dedicate serious engineering resources to better
>> continuous integration of upstream QEMU that would also exercise the
>> Android bits.
>>
>> Until we reach such a situation, we will have to maintain a separate fork
>> and continue to rebase it on top of recent QEMU changes.
Having said all that if you look at the current ranchu branch you'll see
the delta has come down a fair bit and is in itself relatively
self-contained. This should reduce the pain of regularly re-basing and
I'm sure Google don't want to go through the major upheaval moving from
the very old QEMU fork that the current emulator to a more modern QEMU
too often.
I'm hopeful we can get to a point where basic Android support is
up-stremable (and defended upstream) and the heavy android specific
stuff becomes a simple mechanical re-basing operations. Of the android
changes (off the top of my head) we have:
* Machine descriptions (fairly self-contained)
* Simple event driver (again self-contained)
* android_pipe services (self-contained but replicates virt-io functionality)
* android console support (provides ADB specific interfaces to QEMU)
* Simple Android Frame Buffer
* OpenGL (out-of-tree, likely very android specific)
I suspect the first 2 or 3 could be up-streamed without too much trouble
but it would be interesting to know if having this basic android emulation
in master would be of any interest to the wider community?
--
Alex Bennée
prev parent reply other threads:[~2014-11-06 15:04 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 15:59 [Qemu-devel] New emulator code base (qemu-android) and "ranchu" virtual board Christopher Covington
2014-11-06 15:03 ` Alex Bennée [this message]
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=87wq78s756.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=android-emulator-dev@googlegroups.com \
--cc=cov@codeaurora.org \
--cc=digit@google.com \
--cc=qemu-devel@nongnu.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).