Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp340988imm; Thu, 27 Sep 2018 22:40:24 -0700 (PDT) X-Google-Smtp-Source: ACcGV63rfEcJo+tFZskDxMXwN73QFB1vVmb6CzVwuFpqq2/mYKA8AWyDWBpAN0Bnii4LN3LGBBmC X-Received: by 2002:a63:f902:: with SMTP id h2-v6mr13392969pgi.154.1538113224810; Thu, 27 Sep 2018 22:40:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538113224; cv=none; d=google.com; s=arc-20160816; b=MFpOUWQ78UweshVorA3kUIyJr3inJ+4mmARFw15QZKsDteUL4n6Q3mUELOo5fmEyUp lM5BZZqmk2/l2WEYo+zr/+MVi80WYgeAWjbNbDtjXR2GVKlCFotWBbHtZfutAnpd24vO YpBfNiROMg5uf2yAXbz2F7XCDenjc5HgOhgKjye2iWTKwpRjznM9zQu037izQjRr1nb/ /ht2eF7rZYKn6GVfImbXT/CLjDhOC2QjSRFy+qO/HeSRnksrhniLYs+Qwlw4hGgcxRwM q9CJ6pBqgsmbZv1tDcepGD8I5vePpI+kvUVNViF8z4/h89gMIvBoMvBmqAErngmat3f+ Auuw== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=J2hgA74dPm3XPw9UsKR4RfXplU0BnJxwDgszRzFnK00=; b=wLwrHaN6R7/vkYIXvuB0FDp7icM2Kwvc64UoIOjisJcGQZ3b0PQLxjL/kyLHxM8N09 sI2D4iszZiBkDqhuElRXbTSgZThyAGswUBjtnQ1WWsUfhi0p5tQ3KIiRUQrLrp1UbquW gW+fa7fuDfoOq/ObEuWcLS77eiAmBekutdlwnYQ4DPCo//3/ic3qycPD7LehxwjHIeRH WY9C7MSzpF0tsYFFCxcnTPkzzdq5wPFQyuQ/CzXNktDh1klruheEermzudq6MpfToNkM wmvDv54J656Dw83kzXlpV5OU2S5WM6RispxZWqs6Sp1mKXRraLQnFFq1YdDt7GF097hX RTIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="OVvx/jX6"; 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 b6-v6si4017451pls.349.2018.09.27.22.40.08; Thu, 27 Sep 2018 22:40:24 -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="OVvx/jX6"; 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 S1728792AbeI1MB5 (ORCPT + 99 others); Fri, 28 Sep 2018 08:01:57 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:36917 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728490AbeI1MB4 (ORCPT ); Fri, 28 Sep 2018 08:01:56 -0400 Received: by mail-pf1-f193.google.com with SMTP id x26-v6so3515276pfn.4; Thu, 27 Sep 2018 22:39:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J2hgA74dPm3XPw9UsKR4RfXplU0BnJxwDgszRzFnK00=; b=OVvx/jX6uKzMr3lAfwsb+GdhgB6MOtjKb+gpZh/1ZI24JzMhAp7kDuizQhS2Mhq7Jl x8lSPu730dibmQ3OaR+3zfUzulqfuOpaDfdFhC+GlXjtdnwVJ/XqJHiRzhV2u59SYPyp AKAGGB9wl/DuRR4YZz1EsuJg37SGwsfrEG3gycKimsojadRzzSYVVJelP1Hf2gJPx3Ff WXpuiIWe4ZQqzCHcSFDxA33GzrZWvMawMhTMfoKwbrLl0UTqwjn/9jIpR2OH3hHSe/xT Gr/SIVx8NQtJQnlTDH3G3T/GS/4sgqAQw4UaqqMa6rbIStpXD0BlBGTDCl1dxn4opvrt A0rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J2hgA74dPm3XPw9UsKR4RfXplU0BnJxwDgszRzFnK00=; b=hubF289ilatE7UBbqItw1iBUQ363fzKahCEB6BzBzSz8OCiUYdQokUZclevHGCxrSn ujKNnB3NxMYHp1qa6iisKfEdG9Na9xIxo0olqhGMFdz4USEwDxayBGa/HTWJV5yiI2Je PfU15xBffClJP40N0n1X+v8zlbYXOXiOELPjmBXvG6OJ1URfUgkf5JpSbbu0uluzJlvy EutP4B9gdUeo4sI5ceqGgnV6G39zOdrfSwqdB+761/1FBb0f2kUm9sP8rfe5WcwTs7S4 1dmgrMhhCsa0k4N9GQgnUpAj1QfUaZ6bJvz2uZaYdy6o7oDJ3Kg0rO0joyLCTqgU0fhf xvZA== X-Gm-Message-State: ABuFfogAfFqefrzQ6qr7A6hDDXn1/ymTm+SgHb7ZrylC5bs4HHyGfvsS VYKz2OQ67g2wGIryvRnxems= X-Received: by 2002:a63:1c1b:: with SMTP id c27-v6mr13079669pgc.351.1538113196128; Thu, 27 Sep 2018 22:39:56 -0700 (PDT) Received: from blueforge.nvidia.com (searspoint.nvidia.com. [216.228.112.21]) by smtp.gmail.com with ESMTPSA id u9-v6sm6569953pfi.104.2018.09.27.22.39.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 27 Sep 2018 22:39:54 -0700 (PDT) From: john.hubbard@gmail.com X-Google-Original-From: jhubbard@nvidia.com To: Matthew Wilcox , Michal Hocko , Christopher Lameter , Jason Gunthorpe , Dan Williams , Jan Kara , Al Viro Cc: linux-mm@kvack.org, LKML , linux-rdma , linux-fsdevel@vger.kernel.org, John Hubbard , Christian Benvenuti , Dennis Dalessandro , Doug Ledford , Mike Marciniszyn Subject: [PATCH 0/4] get_user_pages*() and RDMA: first steps Date: Thu, 27 Sep 2018 22:39:45 -0700 Message-Id: <20180928053949.5381-1-jhubbard@nvidia.com> X-Mailer: git-send-email 2.19.0 MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: John Hubbard Hi, This short series prepares for eventually fixing the problem described in [1], and is following a plan listed in [2]. I'd like to get the first two patches into the -mm tree. Patch 1, although not technically critical to do now, is still nice to have, because it's already been reviewed by Jan, and it's just one more thing on the long TODO list here, that is ready to be checked off. Patch 2 is required in order to allow me (and others, if I'm lucky) to start submitting changes to convert all of the callsites of get_user_pages*() and put_page(). I think this will work a lot better than trying to maintain a massive patchset and submitting all at once. Patch 3 converts infiniband drivers: put_page() --> put_user_page(). I picked a fairly small and easy example. Patch 4 converts a small driver from put_page() --> release_user_pages(). This could just as easily have been done as a change from put_page() to put_user_page(). The reason I did it this way is that this provides a small and simple caller of the new release_user_pages() routine. I wanted both of the new routines, even though just placeholders, to have callers. Once these are all in, then the floodgates can open up to convert the large number of get_user_pages*() callsites. [1] https://lwn.net/Articles/753027/ : "The Trouble with get_user_pages()" [2] https://lkml.kernel.org/r/20180709080554.21931-1-jhubbard@nvidia.com Proposed steps for fixing get_user_pages() + DMA problems. CC: Al Viro CC: Christian Benvenuti CC: Christopher Lameter CC: Dan Williams CC: Dennis Dalessandro CC: Doug Ledford CC: Jan Kara CC: Jason Gunthorpe CC: Matthew Wilcox CC: Michal Hocko CC: Mike Marciniszyn CC: linux-kernel@vger.kernel.org CC: linux-mm@kvack.org CC: linux-rdma@vger.kernel.org John Hubbard (4): mm: get_user_pages: consolidate error handling mm: introduce put_user_page(), placeholder version infiniband/mm: convert to the new put_user_page() call goldfish_pipe/mm: convert to the new release_user_pages() call drivers/infiniband/core/umem.c | 2 +- drivers/infiniband/core/umem_odp.c | 2 +- drivers/infiniband/hw/hfi1/user_pages.c | 2 +- drivers/infiniband/hw/mthca/mthca_memfree.c | 6 ++-- drivers/infiniband/hw/qib/qib_user_pages.c | 2 +- drivers/infiniband/hw/qib/qib_user_sdma.c | 8 ++--- drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +- drivers/platform/goldfish/goldfish_pipe.c | 7 ++-- include/linux/mm.h | 14 ++++++++ mm/gup.c | 37 ++++++++++++--------- 10 files changed, 52 insertions(+), 30 deletions(-) -- 2.19.0