Thread (25 messages) 25 messages, 11 authors, 2014-10-24

Re: [PATCH] staging: android: binder: move to the "real" part of the kernel

From: John Stultz <hidden>
Date: 2014-10-17 03:25:36
Also in: lkml

On Thu, Oct 16, 2014 at 4:12 PM, Greg Kroah-Hartman
[off-list ref] wrote:
On Thu, Oct 16, 2014 at 10:09:04AM -0700, John Stultz wrote:
quoted
On Thu, Oct 16, 2014 at 5:47 AM, Greg Kroah-Hartman
[off-list ref] wrote:
quoted
From: Greg Kroah-Hartman <redacted>

The Android binder code has been "stable" for many years now.  No matter
Well, ignoring the ABI break that landed in the last year. :)
As no one noticed, it wasn't a "break" :)
quoted
quoted
This was discussed in the Android miniconf at the Plumbers conference.
If anyone has any objections to this, please let me know, otherwise I'm
queueing this up for 3.19-rc1
So my main concerns/thoughts here are:

Who is going to maintain this? Has Arve agreed?
Do we really need someone to do more work that has been done on it in
the past as an official "maintainer"?  I'll be glad to do it, as I doubt
it will require any time at all.
Ok. The only caution I have if Arve isn't involved is that we have in
the past merged cleanup changes that introduced bugs, and it wasn't
until Arve took at look at the new kernel that these were sorted out
(see e194fd8a5d8e0a7eeed239a8534460724b62fe2d). So I think if at all
possible getting his ack on things would be good.
quoted
Are the Android guys comfortable with the ABI stability rules they'll
now face?
Just because something is in staging, doesn't mean you don't have to
follow the same ABI stability rules as the rest of the kernel.  If a
change had happened to this code that broke userspace in the past, I
would have reverted it.  So this should not be anything different from
what has been happening inthe past.

And the Android developers said they were happy to see this code move
into the "real" part of the kernel.
Alright then.

quoted
Currently in the android space no one but libbinder should use the
kernel interface.
That is correct.  If you do that, you deserve all of the pain and
suffering and rooted machines you will get.
You reference this issue quite a bit, and I have a handwavy sense of
the problem, but do you have a more detailed link to the specific
issue here?

quoted
Can we enforce that no one use this interface out-side of android (To
ensure its one of those "if the abi breaks and no one notices..." edge
cases)?
This is the kernel, we can not dictate "use", that's the good part of
the GPLv2 :)

Again, as no one has done this before, I strongly doubt it will happen
in the future.
Well, the longer something is in the kernel, the more likely someone
will depend on it.

quoted
I'm still hopeful that a libbinder over kdbus will eventually pan out.
I still see having two core IPC mechanisms (even if the use cases are
different in style) as a negative, and I worry this might reduce
motivation to unify things at the lower level. Granted, such work can
still continue, but the incentives do change.
Yes, things are going to change in the future, there is work happening
here, and there was a presentation at Plumbers about what is going to be
coming.

But all of the changes will be in new code.  Be it kdbus, or something
else if that doesn't work out.  This existing binder.c file will not be
changing at all.  This existing ABI, and codebase, is something that we
have to maintain forever for those millions of devices out there in the
real world today.  So as there really is nothing left to do on it, it
deserves to be in the main part of the kernel source tree.
Well, realistically, those millions of devices out there will almost
*never* get a kernel version bump

But yes, I'm fine with it going in. I'm just a bit surprised at how
quickly thoughts change here.

This does raise the question if the same standard could be held to
ashmem then? That's a *much* simpler and easier to maintain chunk of
code, and is just as isolated, logic wise.  And while I think it would
be ideal if the unpinning feature could be done more generically, if
volatile ranges really doesn't have a future, then its maybe silly to
hold ashmem out as well?

thanks
-john
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help