Messages in this thread | | | Date | Thu, 8 Sep 2016 19:46:52 +0200 | From | Greg Kroah-Hartman <> | Subject | Re: [PATCH] android: binder: Disable preemption while holding the global binder lock |
| |
On Thu, Sep 08, 2016 at 09:12:50AM -0700, Todd Kjos wrote: > In Android systems, the display pipeline relies on low > latency binder transactions and is therefore sensitive to > delays caused by contention for the global binder lock. > Jank is siginificantly reduced by disabling preemption > while the global binder lock is held. > > Originally-from: Riley Andrews <riandrews@google.com>
So should the "From: " line be Riley? Did Riley sign off on this?
> Signed-off-by: Todd Kjos <tkjos@google.com> > --- > drivers/android/binder.c | 194 +++++++++++++++++++++++++++++++++++------------ > 1 file changed, 146 insertions(+), 48 deletions(-) > > diff --git a/drivers/android/binder.c b/drivers/android/binder.c > index 16288e7..c36e420 100644 > --- a/drivers/android/binder.c > +++ b/drivers/android/binder.c > @@ -379,6 +379,7 @@ static int task_get_unused_fd_flags(struct > binder_proc *proc, int flags) > struct files_struct *files = proc->files; > unsigned long rlim_cur; > unsigned long irqs; > + int ret; > > if (files == NULL) > return -ESRCH; > @@ -389,7 +390,11 @@ static int task_get_unused_fd_flags(struct > binder_proc *proc, int flags) > rlim_cur = task_rlimit(proc->tsk, RLIMIT_NOFILE); > unlock_task_sighand(proc->tsk, &irqs); > > - return __alloc_fd(files, 0, rlim_cur, flags); > + preempt_enable_no_resched(); > + ret = __alloc_fd(files, 0, rlim_cur, flags); > + preempt_disable(); > + > + return ret; > }
Your tabs are all eaten and broke the patch, so it can't be applied :(
Can you try again?
thanks,
greg k-h
| |