Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp121433imm; Mon, 1 Oct 2018 07:35:55 -0700 (PDT) X-Google-Smtp-Source: ACcGV61pc8CpbkLz9bIixYzCCy7MLNXD8CLeITTcC6bjFODkF9jNanWqXWXumacC9WYCF+2ElgP6 X-Received: by 2002:a63:a612:: with SMTP id t18-v6mr2383388pge.390.1538404555353; Mon, 01 Oct 2018 07:35:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538404555; cv=none; d=google.com; s=arc-20160816; b=vfBKa5OCgxc6WmSpQZUbEnGyqaLuUuNyUsvx38/Z5+ySLoZ11M0GZwnvIOIz96cZ0u S5O2kbtvdBZBAToWg+DV/BfdcJtJInys5yGBXUSvJ4tf1NupZrvfOYBowwsryIzmXaAH kMvIm2RhE+wyjrVgYklp82PgXDJpgU0AwdV3A2QqzQDmjPvjSEWu/5/pD09UF1S0lBuC 0qn0pENSnxB+zaGLIZNE/fCIknA6KzblqXk01fp8327T8+ZiwMoWjyDz+U2bJ+SRHkqH XyTP/2FAZ8kvVS2Ras33gdcbmLXZNWTZNVPkNtmVOJ7GnDhykiqikJxI1hDmQesdrHfD RkzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=YaTcncD5SSoFjDPPAvq91bg0NRA+swxey8cMssbW1Sc=; b=PSTbwSdNOLZXjxhE/pys4W7GLcqF8nhKmS5DDmOUV4xwApZCvrBS9lIU6b9LgP7rZm 2v9YID5Ja72Ckoc6aHETAxGh4wzwNh2mXYJBTMKVqNoRaR6WAeF0WtCDRhNj6ZP5lSyz HhNKGzFjDyiSk27nrAKLE2t+hqYH4V51pYBe/AVOKx+Y4wrKoSZHEOG077tIse2ltDUA Ca4QDkOCfoUsvOdbjX0HR3TahWRSxwQVMs0RC8MQnhOHg7mb6s6zmX1yWDHK4RBEKmOP qQkhSr90MgdN0EodijEMhf7Zi/Rp1MwEnghuasLuJk3ao2xf0sCfTFx0KbZnUv0Pm0N3 KumA== ARC-Authentication-Results: i=1; mx.google.com; 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j12-v6si12002972pgb.328.2018.10.01.07.35.40; Mon, 01 Oct 2018 07:35:55 -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; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729496AbeJAVN1 (ORCPT + 99 others); Mon, 1 Oct 2018 17:13:27 -0400 Received: from mga01.intel.com ([192.55.52.88]:19224 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729378AbeJAVN0 (ORCPT ); Mon, 1 Oct 2018 17:13:26 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Oct 2018 07:35:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,328,1534834800"; d="scan'208";a="261908429" Received: from ddalessa-mobl2.amr.corp.intel.com (HELO [10.254.201.54]) ([10.254.201.54]) by orsmga005.jf.intel.com with ESMTP; 01 Oct 2018 07:35:04 -0700 Subject: Re: [PATCH 3/4] infiniband/mm: convert to the new put_user_page() call To: John Hubbard , Jason Gunthorpe , john.hubbard@gmail.com Cc: Matthew Wilcox , Michal Hocko , Christopher Lameter , Dan Williams , Jan Kara , Al Viro , linux-mm@kvack.org, LKML , linux-rdma , linux-fsdevel@vger.kernel.org, Doug Ledford , Mike Marciniszyn , Christian Benvenuti References: <20180928053949.5381-1-jhubbard@nvidia.com> <20180928053949.5381-3-jhubbard@nvidia.com> <20180928153922.GA17076@ziepe.ca> <36bc65a3-8c2a-87df-44fc-89a1891b86db@nvidia.com> From: Dennis Dalessandro Message-ID: Date: Mon, 1 Oct 2018 10:35:02 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <36bc65a3-8c2a-87df-44fc-89a1891b86db@nvidia.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/28/2018 11:12 PM, John Hubbard wrote: > On 9/28/18 8:39 AM, Jason Gunthorpe wrote: >> On Thu, Sep 27, 2018 at 10:39:47PM -0700, john.hubbard@gmail.com wrote: >>> From: John Hubbard > [...] >>> >>> diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c >>> index a41792dbae1f..9430d697cb9f 100644 >>> +++ b/drivers/infiniband/core/umem.c >>> @@ -60,7 +60,7 @@ static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int d >>> page = sg_page(sg); >>> if (!PageDirty(page) && umem->writable && dirty) >>> set_page_dirty_lock(page); >>> - put_page(page); >>> + put_user_page(page); >> >> Would it make sense to have a release/put_user_pages_dirtied to absorb >> the set_page_dity pattern too? I notice in this patch there is some >> variety here, I wonder what is the right way? >> >> Also, I'm told this code here is a big performance bottleneck when the >> number of pages becomes very long (think >> GB of memory), so having a >> future path to use some kind of batching/threading sound great. >> > > Yes. And you asked for this the first time, too. Consistent! :) Sorry for > being slow to pick it up. It looks like there are several patterns, and > we have to support both set_page_dirty() and set_page_dirty_lock(). So > the best combination looks to be adding a few variations of > release_user_pages*(), but leaving put_user_page() alone, because it's > the "do it yourself" basic one. Scatter-gather will be stuck with that. > > Here's a differential patch with that, that shows a nice little cleanup in > a couple of IB places, and as you point out, it also provides the hooks for > performance upgrades (via batching) in the future. > > Does this API look about right? I'm on board with that and the changes to hfi1 and qib. Reviewed-by: Dennis Dalessandro