Received: by 10.192.165.148 with SMTP id m20csp4146727imm; Tue, 8 May 2018 03:52:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpQiOC6sbhIzhY55JAP/xdad6cRuTewba/H9SFClcZIxC1bUDujiAVAR442gbIfvWbnLpWR X-Received: by 10.98.214.5 with SMTP id r5mr40031000pfg.8.1525776736062; Tue, 08 May 2018 03:52:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525776736; cv=none; d=google.com; s=arc-20160816; b=AUkLZyMw8UyadV1akRgvqZZMNtfhQPKU9u/m+dEawEld+Wkch9XkcebNNxii9fKHt4 JJjNO/h56ozFR8bczcEwSLQb/jAF6EcvrZD/7PEHGhkHdAkoNyT/nPODoamXjRVlEFn4 ABjgAb4itwTW6g48YmahQfxQkvI3Uf/MlEhgbJ96Tc/bOrAT7imo0ZVRB4V6aA362CRG FS3dg9D4NTkOGRNboaqp+vJgA+kj4U4puAxNmNS8qPhwLNWLOKsD0S8xcDjX3vzP6c5G nzJS6MLGUtE8BaetouLPN9Y7pu46pREjUV/lpWmUm2nncYFJSpflNnfTIlGx4PDwWjtV PAgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=iLgVogULtBmwnGCFIk8bxhroBWk9fq3KVj9gfCRtWrU=; b=pEc4k/UeUXGLkXhLaomTqkUk47796sP+tWTDK15vFlw+S9WVYF7dYX85kIN7FE2B2z kowf6wW3/kfHJnryKjK/lg4HpdGLlVtrdMaopx+AQfudrAFA2oO7b+XZlpQaMdtnixNr Pzp4q1wMo3tlNcHVMMZn2dp0urDktIRfuj80SlJokgk8MJQCOez+REiHetPyLSNsz/eU nDBLO/f0/waYB/xGakgP+0Vs0fgZ+oog9ip1pkLv69fYi4iLKibDAgfpwasH6yFVG0hU dYXmOmXZ0jdJgX/pVgJL+Oo6V3MAtO01Ln1I6OG6wFi1ZGX2Y9O0uXHYD5c4VZJ0uIFZ GE+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=ley+fT8A; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si8623181plx.591.2018.05.08.03.51.59; Tue, 08 May 2018 03:52:16 -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=fail header.i=@gmail.com header.s=20161025 header.b=ley+fT8A; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751917AbeEHKvI (ORCPT + 99 others); Tue, 8 May 2018 06:51:08 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:36605 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751248AbeEHKvH (ORCPT ); Tue, 8 May 2018 06:51:07 -0400 Received: by mail-pf0-f195.google.com with SMTP id w129so18358248pfd.3 for ; Tue, 08 May 2018 03:51:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=iLgVogULtBmwnGCFIk8bxhroBWk9fq3KVj9gfCRtWrU=; b=ley+fT8ArSKXjCCsUYmJFkF92JcIxbEaBSIGIyfF1QC+9131GSp3anN9hHVStMeFnn tfBc5S9GrU4fIwbSjN2Z0W79mH5gqaEM8eAHaGbn1rr6B64qLe4f2W8vnGBKbTwNBWcc YfrGBz+HMIhzmVMpIICwF6w/ZcaUocbnxtHJnoI+4CE6QzVvJEJEg1a8EM5JVQVzGcCu KHWGfF7V/qZY6gz1hckG6Dip8vWPjFHELPZ+wivbl1QaybUHJ1U/zFebYaXOdaZUenzl 5vFgsAz2tOZ6LnK7EoU+NvzJouHvvtr/rFpXMMsr5+sVSTGV7Ijr8yibnB8GQfb6PZxp vSHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=iLgVogULtBmwnGCFIk8bxhroBWk9fq3KVj9gfCRtWrU=; b=j2iwoWqbuWKnxoCKssGkJxyLsdVVb3a6ZqB5zz1KIBei2zlJ5d1uBbAO+ZIZhKNm4S xMDabTTn/3ZCym0/wWo9Gqd3zlkAiZIhPZlUIiD9J0mAhl1LtuKh5NiWmxteTD47WZ7y VCsAPYfQ4nRL9Jkvp1eKvi8sdsil9tJ0T3S4RLKrWfcqy6iFkFCPdI81VpkvEKUDRC55 Mxb+q+3NJoFokGd+T6L+gyi0OAZi+prCjHS2dg2zw/IdTth2ifhJRR9EcqUV+mmY1ueM 5js0C4qLNOfOfyz8xqWCxOW2EI5KtBZ2xl6OUp59aeD46MU/oF99E78K48doXqcTSMkv nqIg== X-Gm-Message-State: ALQs6tAE7sdCIokEGXJkiOoT6a2J2/KGPJjShEDxXZVl7FFyRCl2wvKt 7cVyRhKyD7pnZ9F4HP+llFY= X-Received: by 10.98.163.145 with SMTP id q17mr39814399pfl.87.1525776666699; Tue, 08 May 2018 03:51:06 -0700 (PDT) Received: from rodete-desktop-imager.corp.google.com ([2401:fa00:d:10:affa:813f:5380:6613]) by smtp.gmail.com with ESMTPSA id u9sm49607577pfj.10.2018.05.08.03.51.03 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 08 May 2018 03:51:05 -0700 (PDT) Date: Tue, 8 May 2018 19:51:01 +0900 From: Minchan Kim To: Joel Fernandes Cc: LKML , Ganesh Mahendran , Joe Perches , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Todd Kjos , Greg Kroah-Hartman , Martijn Coenen Subject: Re: [PATCH v6] ANDROID: binder: change down_write to down_read Message-ID: <20180508105101.GB8209@rodete-desktop-imager.corp.google.com> References: <20180507141537.4855-1-minchan@kernel.org> <20180507172829.GA66161@joelaf.mtv.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180507172829.GA66161@joelaf.mtv.corp.google.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 07, 2018 at 10:28:29AM -0700, Joel Fernandes wrote: > On Mon, May 07, 2018 at 11:15:37PM +0900, Minchan Kim wrote: > > 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. > > Please use proper API down_read. It would help mmap_sem contention > > problem as well as fixing down_write abuse. > > > > Ganesh Mahendran tested app launching and binder throughput test > > and he said he couldn't find any problem and I did binder latency > > test per Greg KH request(Thanks Martijn to teach me how I can do) > > I cannot find any problem, too. > > > > Cc: Ganesh Mahendran > > Cc: Joe Perches > > Cc: Arve Hj?nnev?g > > Cc: Todd Kjos > > Cc: Greg Kroah-Hartman > > Reviewed-by: Martijn Coenen > > Signed-off-by: Minchan Kim > > --- > > drivers/android/binder.c | 4 +++- > > drivers/android/binder_alloc.c | 6 +++--- > > 2 files changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/android/binder.c b/drivers/android/binder.c > > index 4eab5be3d00f..7b8e96f60719 100644 > > --- a/drivers/android/binder.c > > +++ b/drivers/android/binder.c > > @@ -4730,7 +4730,9 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma) > > failure_string = "bad vm_flags"; > > goto err_bad_arg; > > } > > - vma->vm_flags = (vma->vm_flags | VM_DONTCOPY) & ~VM_MAYWRITE; > > + vma->vm_flags |= VM_DONTCOPY | VM_MIXEDMAP; > > + vma->vm_flags &= ~VM_MAYWRITE; > > + > > vma->vm_ops = &binder_vm_ops; > > vma->vm_private_data = proc; > > > > diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c > > index 5a426c877dfb..4f382d51def1 100644 > > --- a/drivers/android/binder_alloc.c > > +++ b/drivers/android/binder_alloc.c > > @@ -219,7 +219,7 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate, > > mm = alloc->vma_vm_mm; > > > > if (mm) { > > - down_write(&mm->mmap_sem); > > + down_read(&mm->mmap_sem); > > > Nice. Is there a need to hold the reader-lock at all here? Just curious what > else is it protecting (here or in vm_insert_page). It should protect vm_area_struct. IOW, when we try insert page into virtual address area, vma shouldn't be changed(ie, unmap/collapse/split). > > Otherwise looks good to me: > Reviewed-by: Joel Fernandes (Google) Thanks, Joel!