Hello all,

In recent kernels we encountered very mysterious binder related
crashes, and only on a particular board port on powerpc.

The symptoms were a backtrace from a WARN at kernel/workqueue.c
flush_cpu_workqueue and afterwards the system hanged with a flurry of

    binder: 1903: binder_alloc_buf, no vma
    binder: 2084:2084 transaction failed 536900113, size60-0

messages.

It turns out the reason is that the deffered path was executed
from a workqueue context, and called files_put.

files_put would call recursively flush the workqueue, and we
ended up recursively at flush_cpu_workqueue.

That workqueue got blocked and soon after we crashed.

There is a patch pending in linux testing that detects the recursion but
the backtrace still remains, and it's problematic.

We fixed it, by creating a binder kthread that handles the deferred operations.

We include a reworked patch against the top of the android mainline kernel.

Hope this helps anyone encountering the same problem, like anil with
the eclair porting problem: (Subject eclair-porting-problem)

Regards

-- Pantelis


Attachment: binder-android-mainline.patch
Description: Binary data

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to