Received: by 10.213.65.68 with SMTP id h4csp2196072imn; Mon, 2 Apr 2018 03:03:34 -0700 (PDT) X-Google-Smtp-Source: AIpwx48pUa8Kf1udc/P9fMQh5BqWjLsgaqzpK8SL7F2mcvzGtCSx/Vov/YwQlxkw01nIMHMPf1Hg X-Received: by 10.101.86.70 with SMTP id m6mr6018023pgs.349.1522663414498; Mon, 02 Apr 2018 03:03:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522663414; cv=none; d=google.com; s=arc-20160816; b=m9sH1xv8FjryP4wB4pw/mIclIx3egaCeX0DGkr7uPq77RXySgM/Z4tXUWmQcSgsqA7 wWAiWJMYvV0BY5dwpORRtgkoOkXmnNmHjaDVuscbhR4ABBmGmFjAkHtELnErlb6utLA6 9e5WbJ5+S+uZUil5oQ4bgIrP1wAqz+GKDj6/3uVabAiF9tQt1FN20CCqSIvxXEvas2kx mS2FWECmnUby819pkELOaEqBMCFwgTH1TlSvP7vVLTrjD/eZPTvMziZaXiH7iOMoZbOw DUHAXU3db2iC5ISS/aB/d+4X52GYyc4gAOY8QuX7q/LmmanUBWyTNAK6jU+YiZfjUasx 4TWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=3rCKbM3F7+fSlgZLVlT5FFTLEzTFr+rr9sVr8ePZ51Q=; b=0RR8HjgBFOqdmWgHLRZOTOxRkQOSzP3bxS6Il1/vhYe/nuQbsZBEaeacGNvDKPZXIN 6Zi3D/7ee3o3T7+aJK/CtP8Uxv+wkSQksmL6RylAquwx/3OOJfHyuFB/5kIPNQnSHaA8 J/x2W482Yeyaz/339SrMwn0F1dHLCvR74vDqS/w2ygQxk3OzYUrgKvMqveU1BOpe8Asw p606ZHGmvQfBmJsKGqdgLt+dy3XeaJ8/oRQ++srpKunA9V8ieDLwXWaHbPV5ywaX0wsy nXhPzKQggxHHUggbB/1UtJv0s7BmtR4exkOG44DAguL2fhhnHOmYYJhshmloDpl4/gls x5Ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aRZun2t/; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q20-v6si24144pls.25.2018.04.02.03.03.20; Mon, 02 Apr 2018 03:03:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aRZun2t/; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754431AbeDBKCC (ORCPT + 99 others); Mon, 2 Apr 2018 06:02:02 -0400 Received: from mail-io0-f196.google.com ([209.85.223.196]:36819 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754217AbeDBKCB (ORCPT ); Mon, 2 Apr 2018 06:02:01 -0400 Received: by mail-io0-f196.google.com with SMTP id o4so17382409iod.3 for ; Mon, 02 Apr 2018 03:02:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3rCKbM3F7+fSlgZLVlT5FFTLEzTFr+rr9sVr8ePZ51Q=; b=aRZun2t/kAIBeRHq8rtgFwr2DLKgGyndJYHaFuQwOkz6QIoFKcDsdRQglecbK7pHIU c3oE7N5SP3OKnwRcz+s5JuN43GW1dXxD9VWC773m89hMVBjKectPp5/MS1R4jlnNk/Xy 2Rn6/PobINCoFQumlZLlW+k+uK3lK0spBb+ZmSpRopP8t2oxYOQN+rYRfV0wMXX5wH8P Is3FE4AQE2qWzmC4QbL+Rkn/jg+FSG+e9OdvG/a5NWSL4ohuwetdhFlRZNAbI91UDhia QYwSaf12gkoCa0CY0WL5+dokcpwAdFXbKXmZNugvZWwDQEGI5qkqgmI7QRI0GxsYiLa5 jZeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3rCKbM3F7+fSlgZLVlT5FFTLEzTFr+rr9sVr8ePZ51Q=; b=cd6kCz/mnjf6pnJpOlMs4WMYE9jD2p9T0APekduuknz/YanHgWeJAo207+jrM3I7J4 j3LPOCCWSPXzyR1+Z1mWV2fsMiiBJzq2i3jMtJDRU1YGESQv+HbEziMMP8G60Scfqv2l bygq+YVXkKHokKZAecz8xIcm64+c+9EeiQrxxRUdLBCi/33OtmvdwLcO59+YpcfBZJVx x4e8/saHW2os5XogQuu26otR/R8Q2uxZgPsBBAm0LisNvVi6k08s03sVlA0nKX6OZYHa d8QXTTSxDBIwTibwg5I6ysoawr38q5Fgk+QXiLAFf9ESo6XGo3bmoOrERkzyfM7z66pZ yO3A== X-Gm-Message-State: ALQs6tDRZo3Ldy6QtAEFKyQq97jYcE83TcNS4fdEM/9EY/i1Ply8LV8B AaFoJ+tNeENCtzM60P38P+3DWgjmJjtYvsi4n5Y= X-Received: by 10.107.178.14 with SMTP id b14mr7548272iof.294.1522663320356; Mon, 02 Apr 2018 03:02:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.168.153 with HTTP; Mon, 2 Apr 2018 03:01:59 -0700 (PDT) In-Reply-To: <20180402071133.GA62369@rodete-desktop-imager.corp.google.com> References: <20180329065424.203172-1-minchan@kernel.org> <20180330012921.GB255979@rodete-desktop-imager.corp.google.com> <20180330100407.GB19140@kroah.com> <20180402063448.GA250086@rodete-desktop-imager.corp.google.com> <20180402071133.GA62369@rodete-desktop-imager.corp.google.com> From: Ganesh Mahendran Date: Mon, 2 Apr 2018 18:01:59 +0800 Message-ID: Subject: Re: [PATCH v5] ANDROID: binder: change down_write to down_read To: Minchan Kim Cc: Greg Kroah-Hartman , LKML , Joe Perches , =?UTF-8?B?QXJ2ZSBIasO4bm5ldsOlZw==?= , Todd Kjos , Martijn Coenen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018-04-02 15:11 GMT+08:00 Minchan Kim : > On Mon, Apr 02, 2018 at 02:46:14PM +0800, Ganesh Mahendran wrote: >> 2018-04-02 14:34 GMT+08:00 Minchan Kim : >> > On Fri, Mar 30, 2018 at 12:04:07PM +0200, Greg Kroah-Hartman wrote: >> >> On Fri, Mar 30, 2018 at 10:29:21AM +0900, Minchan Kim wrote: >> >> > Hi Ganesh, >> >> > >> >> > On Fri, Mar 30, 2018 at 09:21:55AM +0800, Ganesh Mahendran wrote: >> >> > > 2018-03-29 14:54 GMT+08:00 Minchan Kim : >> >> > > > binder_update_page_range needs down_write of mmap_sem because >> >> > > > vm_insert_page need to change vma->vm_flags to VM_MIXEDMAP unless >> >> > > > it is set. However, when I profile binder working, it seems >> >> > > > every binder buffers should be mapped in advance by binder_mmap. >> >> > > > It means we could set VM_MIXEDMAP in binder_mmap time which is >> >> > > > already hold a mmap_sem as down_write so binder_update_page_range >> >> > > > doesn't need to hold a mmap_sem as down_write. >> >> > > > >> >> > > > Android suffers from mmap_sem contention so let's reduce mmap_sem >> >> > > > down_write. >> >> > > >> >> > > Hi, Minchan: >> >> > > >> >> > > It seems there is performance regression of this patch. >> >> > >> >> > You mean "This patch aims for solving performance regression" not "This patch >> >> > makes performance regression"? >> >> > >> >> > > >> >> > > Do you have some test result of android app launch time or binderThroughput? >> >> > >> >> > Unfortunately, I don't have any number. The goal is to reduce the number of >> >> > call mmap_sem as write-side lock because it makes priority inversion of threads >> >> > easily and that's one of clear part I spot that we don't need write-side lock. >> >> >> >> Please always run the binderThroughput tests when making binder changes >> >> (there is a binder test suite in the CTS Android tests), as that ensures >> >> that you are not causing performance regressions as well as just normal >> >> bug regressions :) >> > >> > Thanks for the information. I didn't notice that such kinds of tests for >> > binder. I will keep it in mind. >> > >> > Today, I have setup the testing for my phone and found testing was very >> > fluctuating even without my patch. It might be not good with my test >> > skill. I emulated user's behavior with various touch event. With it, I open >> > various apps and play with them several times. Before starting the test, >> > I did "adb shell stop && adb shell start && echo 3 > /proc/sys/vm/drop_caches" >> > >> > Such 15% noise was very easy to make it. >> > >> > Ganesh, How did you measure? What's the stddev? >> >> Hi, Minchan: >> >> Sorry for the late response, a little busy these days. :) >> >> We have our own test tools to measure app launch time, or you can use >> android systrace to get the app launch time. We tested your V1 patch: >> https://patchwork.kernel.org/patch/10312057/ >> and found app lunch time regression. > > V1 had a bug with VM_MAYWRITE. Could you confirm it with v5? I have finished binder Throughput test. The test result is stable, there is no performance regression found both in v1 and v5. base patch_v1 patch_v5 ----------------------------------------------------------- 91223.4 90560.2 89644.5 90520.3 89583.1 89048.2 89833.2 90247.6 90091.3 90740.2 90276.7 90994.2 89703.5 90112.4 89994.6 89945.1 89122.8 88937.7 89872.8 90357.3 89307.4 89913.2 90355.4 89563.8 88979 90393.4 90182.8 89577.3 90946.8 90441.4 AVG 90030.8 90195.57 89820.59 Before the test, I stop the android framework by: adb shell stop > > Please tell me more detail. What apps are slower compared to old? > Every apps are slowed with avg 15%? Then, what's the stddev? Not all of the apps slowed 15%, The app *avg* launch time slowed 15%. And We will re-launch the test tomorrow: base, v1,v5. We will get the test result in two days later. Then I will post all the app launch time details. > > The reason I'm asking is as I mentioned, it would be caused by rw_semaphore > implementation and priority of threads which calls binder operation so I > guess it would be not deterministic. > > When I had an simple experiment, it was very fluctuating as I expected. > (the testing enviroment might be not good in my side). > If it's real problem on real practice, better fix is not using write_lock > of mmap_sem(it's abusing the write-side lock) but should adjust priority, > I think. What do you think? If you want to narrow the range of the problem. We can disable binder priority inherit, and do not set the priority(currently it is nice -10 or fifo) of top app in Android AMS. I think we need to wait for the test result to see whether it really has performance regression. > > Anyway, before the further discussion, we should confirm the root cause. > >> >> I will use binderThroghput tool to test the patch today or tomorrow. >> > > Thanks. I will do.