On Fri, Jun 19, 2009 at 3:53 PM, Daniel Walker<dwalker@fifo99.com> wrote:> 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?

Some of our user-space code have in the past used or still use dbus,but as far as I know it has not been seriously considered as areplacement for the binder.

> 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

These are mostly questions for the framework team. The binder driveris there to support our user space code. At some point we used thedriver from www.open-binder.org, but we ran into, and fixed, a lot ofbugs (especially when processes died), so we determined it would befaster to rewrite the driver from scratch.