Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753820AbdGCJS4 (ORCPT ); Mon, 3 Jul 2017 05:18:56 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:43280 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752970AbdGCJSy (ORCPT ); Mon, 3 Jul 2017 05:18:54 -0400 Date: Mon, 3 Jul 2017 11:18:35 +0200 From: Greg KH To: Todd Kjos Cc: arve@android.com, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, maco@google.com, tkjos@google.com, Riley Andrews , Omprakash Dhyade Subject: Re: [PATCH 03/37] binder: Use wake up hint for synchronous transactions. Message-ID: <20170703091835.GD30284@kroah.com> References: <20170629190211.16927-1-tkjos@google.com> <20170629190211.16927-4-tkjos@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170629190211.16927-4-tkjos@google.com> User-Agent: Mutt/1.8.3 (2017-05-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1316 Lines: 39 On Thu, Jun 29, 2017 at 12:01:37PM -0700, Todd Kjos wrote: > From: Riley Andrews > > Use wake_up_interruptible_sync() to hint to the scheduler binder > transactions are synchronous wakeups. Disable preemption while waking > to avoid ping-ponging on the binder lock. > > Signed-off-by: Todd Kjos > Signed-off-by: Omprakash Dhyade No signed-off-by from Riley? Why not? (just curious, not a requirement here, but generally good practice.) > --- > drivers/android/binder.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/android/binder.c b/drivers/android/binder.c > index 9393924ae8e8..f7665c31feca 100644 > --- a/drivers/android/binder.c > +++ b/drivers/android/binder.c > @@ -2200,8 +2200,12 @@ static void binder_transaction(struct binder_proc *proc, > list_add_tail(&t->work.entry, target_list); > tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE; > list_add_tail(&tcomplete->entry, &thread->todo); > - if (target_wait) > - wake_up_interruptible(target_wait); > + if (target_wait) { > + if (reply || !(t->flags & TF_ONE_WAY)) > + wake_up_interruptible_sync(target_wait); > + else > + wake_up_interruptible(target_wait); > + } This too should be backported, right? thanks, greg k-h