Re: [PATCH 1/6] staging: android: binder: Remove some funny && usage

Daniel Walker
2009-06-19T22:53:17Z

On Fri, 2009-06-19 at 12:20 -0700, Brian Swetland wrote:
> 2009/6/17 Daniel Walker <dwalker@fifo99.com>:
> > On Wed, 2009-06-17 at 14:26 -0700, Arve Hjønnevåg wrote:
> >> On Wed, Jun 17, 2009 at 9:31 AM, Jeremy Fitzhardinge<jeremy@goop.org> wrote:
> >> > On 06/17/09 09:08, Daniel Walker wrote:
> >> ...
> >> > Also, what its usermode ABI is, how stable it is, whether its generally
> >> > useful, does it have glibc/other library support, etc. Would you ever want
> >> > to use this in a non-Android context?
> >>
> >> You could use this in a non-android context, but the abi is not
> >> stable. There is some documentaion of the current user space api at
> >> http://developer.android.com/reference/android/os/IBinder.html. You
> >> can also find more information at http://www.open-binder.org/ which is
> >> where the api came from.
> >
> > Why does all this need to be done in the kernel? Couldn't any of the
> > current IPC mechanisms be re-used to accomplish this?
>
> Arve can probably go into more detail here, but I believe the two
> notable properties of the binder that are not present in existing IPC
> mechanisms in the kernel (that I'm aware of) are:
> - avoiding copies by having the kernel copy from the writer into a
> ring buffer in the reader's address space directly (allocating space
> if necessary)

This sounds like a performance speed up ..

> - managing the lifespan of proxied remoted userspace objects that can
> be shared and passed between processes (upon which the userspace
> binder library builds its remote reference counting model)

The "managing the lifespan" sounds very much like part of the
description for DBus .. I think the main competing interface would be
DBus. I know it's used in the software for the OpenMoko phone , and I
think the Palm Pre uses it too.

Did Google evaluate DBus at all? Also are there any userspace test cases
that Google used to test the performance of this interface. Or test
cases to compare the binder with something like sockets, or any other
type of IPC?

If Google believes the binder is the right solution for IPC, how was
that conclusion formed?

Daniel