From patchwork Wed Jul 24 11:41:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bharath Vedartham X-Patchwork-Id: 11056667 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CAD3113AC for ; Wed, 24 Jul 2019 11:41:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA2BA286C1 for ; Wed, 24 Jul 2019 11:41:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A9CC9287AB; Wed, 24 Jul 2019 11:41:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BD779286C1 for ; Wed, 24 Jul 2019 11:41:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C5F7E6B0007; Wed, 24 Jul 2019 07:41:36 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C0F636B0008; Wed, 24 Jul 2019 07:41:36 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B25848E0002; Wed, 24 Jul 2019 07:41:36 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by kanga.kvack.org (Postfix) with ESMTP id 7B8BB6B0007 for ; Wed, 24 Jul 2019 07:41:36 -0400 (EDT) Received: by mail-pl1-f200.google.com with SMTP id y9so23971681plp.12 for ; Wed, 24 Jul 2019 04:41:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=nqvsbl2w9ubgA5WmXqlNPepTd4gyiLD5l4bjkw0rY64=; b=dRsdTEaEl0EXFsQIPTfQCUMDDIqdWDA47DobdDr32cK10j/FJPsuauDsAaePbSn0mE v0tVH8tND8cJ2/xHHEg+mbpHJXMUUL08nNVjFz8qDnf6absp9ZUE0BU2SZFQ8Q/L4TTc VF+6D2Wz8Ap9tpuozIRRruo2pbIlkaqgYokbws1zlMa830tzGS0Wrmy5KX/C+SGSzIy/ 4+LG6uLlhSSXJYYY9b+AM3UMLjgVGs+Lf3SdFfNdkZC0MFTJaSSf7EM9P4GSIEZDWWj0 VoqDtKrZoJuX0refG9F1bkWEtLKa8TTobwC/Pgv6OYLULQhAXrjOdfSCv1wQUWkr72iL k1Vg== X-Gm-Message-State: APjAAAUMUbf7Fk99xlud3z3om2k+ur7OjoJ9nhkwa5PpvppRQ51Egra1 jcswtU6RFyu8kp3a/XKcB6FSr04pREP2sR5rvM1sDOBH/yHjpp2daw1c6UgZ7WE3lyruW7wMEQQ mHZ+JrcsEduxZRbmuyu+xvJ6DxCM54WLiQBiZyeZfgiftfE0fJJBQwDp6n5+sjSuATw== X-Received: by 2002:a17:902:9689:: with SMTP id n9mr86664463plp.241.1563968496002; Wed, 24 Jul 2019 04:41:36 -0700 (PDT) X-Received: by 2002:a17:902:9689:: with SMTP id n9mr86664404plp.241.1563968495169; Wed, 24 Jul 2019 04:41:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563968495; cv=none; d=google.com; s=arc-20160816; b=Rh8MyvSZq7ndHFy1SD8LwlyZQrFuXTjfRZt7ueyJaNxF30sel9FQRPW11ytEkg7rJw tRcV10lHLxrvRCrDKBKXHnrwTGUyPrlvnFNL6TVgcaAky3k8bWx6OurEHN24jJUdkze0 zB9NvzcF2miwjHLs+N/1Z4kH0srn9nY0uxKy8W6A1jfD6QGUkEWv2OyjnCjF8bEGg0PY YPec2j3ZP5rvd7UboZ3qudxcsqCZ7WZcBXk3oFjmOHliFKnuPSyh9BiTX2kLWiobv+uE +R2COqTHMvA7hYpjgvOQINuPGOzCJ9BlEQjWwTDSQ5dlEnUCwVDQCEVOMjTfM1kXgutK 8Ssw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=nqvsbl2w9ubgA5WmXqlNPepTd4gyiLD5l4bjkw0rY64=; b=D9I5Nuq3BTeAySf9WkLdThrLDGoA4/EAJhIgMbTqL1gd2s/dCHN26Mq5WK2q4yOL6/ A8qH1RvFx06UkbNZQsU7oQusJdcTnd0ReJYczvveDNvWC/ZOzEB6saHuMd56xB56pab3 8CnuuCJaneNMxc+mW4COGpND4h1aOdq76YOh6bqa16SzmlZ6FBvN1NhNGcjiN3PfHyxT 2wei/SSnmhSV/uIooNLFn7+uWz3kAySStCSbEqGdua+5Llu5dJUOrqEh5UJ/W8vY5II9 A8AtzlvapXXJ0ktBaA6EbMYjs3NLbM3zcMVnvSTl1bn3w52woj+7flalZ0mei5ayTulX sEBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="sbZR1J1/"; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id q8sor19896112pgn.1.2019.07.24.04.41.35 for (Google Transport Security); Wed, 24 Jul 2019 04:41:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="sbZR1J1/"; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nqvsbl2w9ubgA5WmXqlNPepTd4gyiLD5l4bjkw0rY64=; b=sbZR1J1/xqSfxGhYdGe1aFC5Zkv0bIcVVCiEERD1YNPQcvJu+dI2eJwklfIzWnOinC wgzv6UwGtypD3oNxaNtqomTVBIb1YN0lcxHk60raGqu7gC9U3yuj0AO5dyeTmlDq2wsE tz9vqtq+shNHs/qAQoJ/Xohi6S0hphqNq9B5rBnNOtWxxfa2CCfaiIStlWKpcoFNQcOA NHaJuSgyUQB6cc3bli+/HQb9uC9mmSODW57RXUZx+2W8FXHIwa7POYv9odL8WsPcNIa4 ol+z5m2bndZA7uWkCFqwSXnG8oKhXqGUmzpnAycP/R6yUpBIR57luL0M0fwvfH2wLoah 6uIQ== X-Google-Smtp-Source: APXvYqyslSaLqtp4I3vK4ITATRHG4NBqTSovhWR6FrUXhe3TD7S2jUbFqr+lU2cQJA3rJYRr2NHLFA== X-Received: by 2002:a65:6850:: with SMTP id q16mr44415063pgt.423.1563968494767; Wed, 24 Jul 2019 04:41:34 -0700 (PDT) Received: from bharath12345-Inspiron-5559 ([103.110.42.34]) by smtp.gmail.com with ESMTPSA id b36sm70730923pjc.16.2019.07.24.04.41.33 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jul 2019 04:41:34 -0700 (PDT) From: Bharath Vedartham To: sivanich@sgi.com, arnd@arndb.de, jhubbard@nvidia.com Cc: ira.weiny@intel.com, jglisse@redhat.com, gregkh@linuxfoundation.org, william.kucharski@oracle.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Bharath Vedartham Subject: [PATCH v2 1/3] sgi-gru: Convert put_page() to get_user_page*() Date: Wed, 24 Jul 2019 17:11:14 +0530 Message-Id: <1563968476-12785-2-git-send-email-linux.bhar@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> References: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP For pages that were retained via get_user_pages*(), release those pages via the new put_user_page*() routines, instead of via put_page(). This is part a tree-wide conversion, as described in commit fc1d8e7cca2d ("mm: introduce put_user_page*(), placeholder versions"). Cc: Ira Weiny Cc: John Hubbard Cc: Jérôme Glisse Cc: Greg Kroah-Hartman Cc: Dimitri Sivanich Cc: Arnd Bergmann Cc: William Kucharski Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Reviewed-by: Ira Weiny Reviewed-by: John Hubbard Signed-off-by: Bharath Vedartham --- drivers/misc/sgi-gru/grufault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c index 4b713a8..61b3447 100644 --- a/drivers/misc/sgi-gru/grufault.c +++ b/drivers/misc/sgi-gru/grufault.c @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma, if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0) return -EFAULT; *paddr = page_to_phys(page); - put_page(page); + put_user_page(page); return 0; } From patchwork Wed Jul 24 11:41:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bharath Vedartham X-Patchwork-Id: 11056669 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 44C1E13AC for ; Wed, 24 Jul 2019 11:41:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 34BF8286C1 for ; Wed, 24 Jul 2019 11:41:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 27A4B287AB; Wed, 24 Jul 2019 11:41:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 93D65286C1 for ; Wed, 24 Jul 2019 11:41:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB0AA6B0008; Wed, 24 Jul 2019 07:41:41 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A62DA6B000A; Wed, 24 Jul 2019 07:41:41 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 904448E0002; Wed, 24 Jul 2019 07:41:41 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by kanga.kvack.org (Postfix) with ESMTP id 5DDCD6B0008 for ; Wed, 24 Jul 2019 07:41:41 -0400 (EDT) Received: by mail-pf1-f200.google.com with SMTP id j22so28318942pfe.11 for ; Wed, 24 Jul 2019 04:41:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ORy6NrKMahXgXjCFxtBMjvZtj+K0mFoX1H4GDy2eV+0=; b=hgUmrYM+HmLQUzmrngv6tpCsmavUYjh6/4s+IbaQ7nP0jGJ3PCVMmZaiTXN0koXcDD /sPPV0+Ge6TXnGSYY59baCdSgP4kMK9V7ei6q+mJGa2OImqbQfY/atoNelh88zYJItjQ j+2e4I6DrxnB+I1rUEwpXIV5RkelXv++zWJvrLhVWQF/8qmkPOp7Nb7uA4YD9dsdTTlX T2rlZRejhM7DoJFG0+NNpyD4dAPA/PrT3W4L5neOBmKbNvVKY4Gp/irzfSWZ6DSQJJM/ KyBt24JJy7fDVRhAGTlXqL34x6MwY3AbvydRof7JHk5Gw7mQxFGvAdV5klrbE9IezYNt yl+A== X-Gm-Message-State: APjAAAXl9PWGCtAICJifdqhu2c8cdBbiV4BZd1hcG2Jk9t6xdrTJjy6X OFzKDpq9HWCBVG8h5/FUiIjZTm2P9BmVy8I6NliI7TpigpnOYQaBWhSGA/l6VYT9XbJJPYSEh1X A3bb2Cm4bRlWkXDLLfWiFGCVK8tHoB7+Dc2LrMzCZkG2vqCJFd7gTlP+gr+PcieMxPA== X-Received: by 2002:a17:902:aa09:: with SMTP id be9mr1549423plb.52.1563968501014; Wed, 24 Jul 2019 04:41:41 -0700 (PDT) X-Received: by 2002:a17:902:aa09:: with SMTP id be9mr1549370plb.52.1563968500004; Wed, 24 Jul 2019 04:41:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563968500; cv=none; d=google.com; s=arc-20160816; b=01aQjGUO+2R/kLV4pfhC4gQ17DHki1p1T6N+99ckCVyYUdiSY7Km0LKc7/o9nwany1 oxWcGZsDHy2gdFvB6mJiOdX3oKZ0g4WtrrurXMi+IvSDUw9uDsWOd0XKEL7LkVP+9jsw 1Ew6jKkQne0833MVnzjZ0rOXR6J965Yd0xuQmRHr08YIl3SKUTv+RXr89+42xu6tLJKs 3YLpUHNE2vwMboAvPpDkqkE9nCLrDIpAzKA+I+Ksem2EwNj77NfMS10WjlEzafebvIgm m0HZ7TdikHd9pzZw2UPU6uMxYwmcNi8ol4A9Wrp2Mk61j6YBXOr3zskuOwJ+VBmzjjGG ozIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=ORy6NrKMahXgXjCFxtBMjvZtj+K0mFoX1H4GDy2eV+0=; b=FFiPpcD3GDA3KTCKDO6nU/9fjTEvsdAIHJIBC7DH8ezRcMDDPM5ni3FGImq8BUOajb vv4x1ES4OXemaPCf3xoAqNo88qEYnI0G3ttqAn81CLrY70vz0854E6QC9Eemk7ScatOC Swv/R1J28qGV5jGvhHKwZfaRw07wQ5527LSHs467wv5M0yh1+VP87+78qXAClQ0tjDDG 4cyIZur7u9GQwezIp3b0bw6AFZBVbt5N2DAWQTMpZbXAbD8GFU5zu8bJ9EI/7TMCF3zy irLg5aa5wXH/eH3okrAxo35GHylqcXFFgrbf98pn7Fb1Yjp/zOIkEyY29DHCRVbVmRAX fdiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fABmKKov; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 133sor26978085pfx.14.2019.07.24.04.41.39 for (Google Transport Security); Wed, 24 Jul 2019 04:41:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fABmKKov; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ORy6NrKMahXgXjCFxtBMjvZtj+K0mFoX1H4GDy2eV+0=; b=fABmKKovZIa7BVn8ihmTaxmHzv2Wkkhsm0ffh+FTnE7+zcgHg0cU75n5KQOmW+Dl0r 24F/bxwikeAXCzY7FWcBinMMg93Lqk6FZ0pLi5Ri+YUAzEiXrLL4RXPQhBkqKaAOPnLS BS6Yma/G8h23jbwDh9OCQFKe+mj8zFp3HpG59+0SPoxfl+3k7K9NQknftfi38SC2Prmu KJbF22DRE3X8ak6G2CbJWSD3ASdxhTeqiUzm/ag1eQ3zncxUnM1g0iH5yi7B1/5FKoBl fQhNDAgQx2VmuoDhYL1t+J2Q/pQvWsWmLDwsgecFXVTBgMNn68IiqDAtBau4jch7JOXI hLHg== X-Google-Smtp-Source: APXvYqzp2fHJi0yy0Ks5Ez2LolTZSaJhGmodS4FvD3yCpT3yql7W9SKJXRj+FwZauVCERIQa/kPf+A== X-Received: by 2002:a62:1d11:: with SMTP id d17mr10998103pfd.249.1563968499724; Wed, 24 Jul 2019 04:41:39 -0700 (PDT) Received: from bharath12345-Inspiron-5559 ([103.110.42.34]) by smtp.gmail.com with ESMTPSA id b30sm69751860pfr.117.2019.07.24.04.41.38 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jul 2019 04:41:39 -0700 (PDT) From: Bharath Vedartham To: sivanich@sgi.com, arnd@arndb.de, jhubbard@nvidia.com Cc: ira.weiny@intel.com, jglisse@redhat.com, gregkh@linuxfoundation.org, william.kucharski@oracle.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Bharath Vedartham Subject: [PATCH v2 2/3] sgi-gru: Remove CONFIG_HUGETLB_PAGE ifdef Date: Wed, 24 Jul 2019 17:11:15 +0530 Message-Id: <1563968476-12785-3-git-send-email-linux.bhar@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> References: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP is_vm_hugetlb_page has checks for whether CONFIG_HUGETLB_PAGE is defined or not. If CONFIG_HUGETLB_PAGE is not defined is_vm_hugetlb_page will always return false. There is no need to have an uneccessary CONFIG_HUGETLB_PAGE check in the code. Cc: Ira Weiny Cc: John Hubbard Cc: Jérôme Glisse Cc: Greg Kroah-Hartman Cc: Dimitri Sivanich Cc: Arnd Bergmann Cc: William Kucharski Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Reviewed-by: John Hubbard Reviewed-by: William Kucharski Reviewed-by: Ira Weiny Signed-off-by: Bharath Vedartham --- Changes since v2 - Added an 'unlikely' if statement as suggested by William Kucharski. This is because of the fact that most systems using this driver won't have CONFIG_HUGE_PAGE enabled and we optimize the branch with an unlikely. Signed-off-by: Bharath Vedartham --- drivers/misc/sgi-gru/grufault.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c index 61b3447..bce47af 100644 --- a/drivers/misc/sgi-gru/grufault.c +++ b/drivers/misc/sgi-gru/grufault.c @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma, { struct page *page; -#ifdef CONFIG_HUGETLB_PAGE - *pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT; -#else - *pageshift = PAGE_SHIFT; -#endif + if (unlikely(is_vm_hugetlb_page(vma))) + *pageshift = HPAGE_SHIFT; + else + *pageshift = PAGE_SHIFT; + if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0) return -EFAULT; *paddr = page_to_phys(page); @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr, return 1; *paddr = pte_pfn(pte) << PAGE_SHIFT; -#ifdef CONFIG_HUGETLB_PAGE - *pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT; -#else - *pageshift = PAGE_SHIFT; -#endif + + if (unlikely(is_vm_hugetlb_page(vma))) + *pageshift = HPAGE_SHIFT; + else + *pageshift = PAGE_SHIFT; + return 0; err: From patchwork Wed Jul 24 11:41:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bharath Vedartham X-Patchwork-Id: 11056671 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 539646C5 for ; Wed, 24 Jul 2019 11:41:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 42736286C1 for ; Wed, 24 Jul 2019 11:41:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 35D44287AB; Wed, 24 Jul 2019 11:41:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9358D286C1 for ; Wed, 24 Jul 2019 11:41:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C64C6B000A; Wed, 24 Jul 2019 07:41:46 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 979118E0002; Wed, 24 Jul 2019 07:41:46 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 88E2F6B000D; Wed, 24 Jul 2019 07:41:46 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by kanga.kvack.org (Postfix) with ESMTP id 521E86B000A for ; Wed, 24 Jul 2019 07:41:46 -0400 (EDT) Received: by mail-pg1-f199.google.com with SMTP id m17so19198356pgh.21 for ; Wed, 24 Jul 2019 04:41:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3/B7iS7twoHuFiN2Sq9UrpmOirWTgDsR38WI+eokeIw=; b=TE2BpcfMbUguQG5k/GV5nstt8Llic0/pOrYorKhCtZHxRcuwy39/D0Z4OByozSQK1h k0/EmVRNr1McOSyHch4t/Kmzzht89lwNH6PBhs5dpDwlKGFVM1JhJHXXRgykXGZU9ybU /vT4qLy3MUPpIanEagh2tmMzgFeLHHQaUpq1fQd9yjiBHV4r9tMrS5LTJCe5HUEciTLq 8hDDLGmdvNlwUJJ+8iwX/v8426XMjdN3ZBG6tFtWqd1fcgDcZ0BUBD0g7XjlMS1JNcga 0KkFzOfqJpWWbXbzIxQRF24N5rGRNPb7zsQCWL28UKZCOx418CdP9uTA7+pL7trzPylJ W2XQ== X-Gm-Message-State: APjAAAXGHk6CKP1JeZIuex9RgdeHdcLrnzAz5IYMygE5o2SyKTxsO8OV egXZEayghYchpljVmPS48l6zPNrrIhU4zEj04zDZNBSf0FDfydLinrRwPqIM1B1xqxjK82AWvjr Gvh3FvHM9MUKRw6ttW/EiAueelp8GVfpjda9z0X217Fp+5GZ2CZKswpgGnOViIsP4gw== X-Received: by 2002:a62:f20b:: with SMTP id m11mr10981143pfh.125.1563968505997; Wed, 24 Jul 2019 04:41:45 -0700 (PDT) X-Received: by 2002:a62:f20b:: with SMTP id m11mr10981061pfh.125.1563968504879; Wed, 24 Jul 2019 04:41:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563968504; cv=none; d=google.com; s=arc-20160816; b=U3rKACXqBOW0m4FGWbepUVIeYR1LiKSDXUuZJo+7/fkGoN0CK3Uf796HtE+VLo8eG1 kDCfPMNs73RsnBuPIJKTQEtUsxRaXEbWEhnthqJUzJtFEJKiZIWSqovOrEx0F3gjizGj 6wHRsn0vN0QPFFBcmPY6j/Jf7J+vpADRcdHqJIjZUC+b8g7sau2cn0LLsHNV+83o3bAv iXuvM3Pe9AfXM+EOfn67mWGywYcTJ/R5RYVVKqgbc6hNEQbPHHRh/QYkFu3h4sFi6zLP 7kzm1gSAa0/U1i4EgBb0thd8g/YHSCemPUG6UwkWp8jaFyV93axsnVwK/C2ausulb7N4 4KEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=3/B7iS7twoHuFiN2Sq9UrpmOirWTgDsR38WI+eokeIw=; b=ljqTt5XPoY8QwWUqbZ0F3diF+C6lFhuhItwO4qWnhsAFGziFrEZcLTfwc+rsa7LbHC N9B4Le0OHKu+Yy7RH2yI3uBNwUJghwbxSioq85x9/8dwwOro0ZU9+u+w7lq2Zyw5mk4A DynXshNHAz9TyHyQaSqOULIMLhmjtoNjZ4BE9N0o/x2fPqu6Kqtf1wLaZTsTi57L+3Tg TDiQIt0FcECMvDLdX8DIHGoQFGs0+/pGwSfA+urt9+TQw1q+CQ/HDs2HKqKAHYGDYBOG +5j2+j6AOXCy9KPgCO/c/PFc3B12cOJ0oqvo6bGfxJs9H9cGoZtvwz0vOMECCDMeJHub MPlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nuwmBoyk; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id d6sor26748905pfd.59.2019.07.24.04.41.44 for (Google Transport Security); Wed, 24 Jul 2019 04:41:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nuwmBoyk; spf=pass (google.com: domain of linux.bhar@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=linux.bhar@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3/B7iS7twoHuFiN2Sq9UrpmOirWTgDsR38WI+eokeIw=; b=nuwmBoyk/4mjKCCvHAMVDXxEHZeOXfghybqdlk45TABHI4NUxhZ7qZwTt4dgyuKVLk FdDuimPLodOe8X9r/jmApQ7hICQ2IjRf0du84YnIZK7DyFIncOglG/om0sL0N3Q7irou odpU3/NHnGVesgsh+LUJ3gU2qlBu0HUuj0dB/IVHsAQSalNpQstuQw9Rj9a+ibPlb8Mq 4zCr9nj3e5eppuywNhUaSody/+rxS7Fyt1hQWYs+9lfgebNTWkb9Xg+m8jf9qQBUoUSI mhSFVpXKlTKpoVv/wQOx20JWHfTeApoEsLMG3H2PcnTnUqr5PMtCAprlqC0JQeu2QWu9 7MhA== X-Google-Smtp-Source: APXvYqxyAvff4hzpbzMvBi/f0yE9LGLNcoyt7PgpRZOhB0FTxC0vLmHV/OJZGDPHCOMBdk5syS84iA== X-Received: by 2002:aa7:957c:: with SMTP id x28mr10859669pfq.42.1563968504581; Wed, 24 Jul 2019 04:41:44 -0700 (PDT) Received: from bharath12345-Inspiron-5559 ([103.110.42.34]) by smtp.gmail.com with ESMTPSA id o14sm46177906pjp.29.2019.07.24.04.41.43 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 24 Jul 2019 04:41:44 -0700 (PDT) From: Bharath Vedartham To: sivanich@sgi.com, arnd@arndb.de, jhubbard@nvidia.com Cc: ira.weiny@intel.com, jglisse@redhat.com, gregkh@linuxfoundation.org, william.kucharski@oracle.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Bharath Vedartham Subject: [PATCH v2 3/3] sgi-gru: Use __get_user_pages_fast in atomic_pte_lookup Date: Wed, 24 Jul 2019 17:11:16 +0530 Message-Id: <1563968476-12785-4-git-send-email-linux.bhar@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> References: <1563968476-12785-1-git-send-email-linux.bhar@gmail.com> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP *pte_lookup functions get the physical address for a given virtual address by getting a physical page using gup and use page_to_phys to get the physical address. Currently, atomic_pte_lookup manually walks the page tables. If this function fails to get a physical page, it will fall back too non_atomic_pte_lookup to get a physical page which uses the slow gup path to get the physical page. Instead of manually walking the page tables use __get_user_pages_fast which does the same thing and it does not fall back to the slow gup path. Also, the function atomic_pte_lookup's return value has been changed to boolean. The callsites have been appropriately modified. This is largely inspired from kvm code. kvm uses __get_user_pages_fast in hva_to_pfn_fast function which can run in an atomic context. Cc: Ira Weiny Cc: John Hubbard Cc: Jérôme Glisse Cc: Greg Kroah-Hartman Cc: Dimitri Sivanich Cc: Arnd Bergmann Cc: William Kucharski Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Reviewed-by: Ira Weiny Signed-off-by: Bharath Vedartham --- Changes since v2 - Modified the return value of atomic_pte_lookup to use booleans rather than numeric values. This was suggested by John Hubbard. --- drivers/misc/sgi-gru/grufault.c | 56 +++++++++++------------------------------ 1 file changed, 15 insertions(+), 41 deletions(-) diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c index bce47af..da2d2cc 100644 --- a/drivers/misc/sgi-gru/grufault.c +++ b/drivers/misc/sgi-gru/grufault.c @@ -193,9 +193,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma, } /* - * atomic_pte_lookup + * atomic_pte_lookup() - Convert a user virtual address + * to a physical address. + * @Return: true for success, false for failure. Failure means that + * the page could not be pinned via gup fast. * - * Convert a user virtual address to a physical address * Only supports Intel large pages (2MB only) on x86_64. * ZZZ - hugepage support is incomplete * @@ -205,49 +207,20 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma, static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr, int write, unsigned long *paddr, int *pageshift) { - pgd_t *pgdp; - p4d_t *p4dp; - pud_t *pudp; - pmd_t *pmdp; - pte_t pte; - - pgdp = pgd_offset(vma->vm_mm, vaddr); - if (unlikely(pgd_none(*pgdp))) - goto err; - - p4dp = p4d_offset(pgdp, vaddr); - if (unlikely(p4d_none(*p4dp))) - goto err; - - pudp = pud_offset(p4dp, vaddr); - if (unlikely(pud_none(*pudp))) - goto err; - - pmdp = pmd_offset(pudp, vaddr); - if (unlikely(pmd_none(*pmdp))) - goto err; -#ifdef CONFIG_X86_64 - if (unlikely(pmd_large(*pmdp))) - pte = *(pte_t *) pmdp; - else -#endif - pte = *pte_offset_kernel(pmdp, vaddr); - - if (unlikely(!pte_present(pte) || - (write && (!pte_write(pte) || !pte_dirty(pte))))) - return 1; - - *paddr = pte_pfn(pte) << PAGE_SHIFT; + struct page *page; if (unlikely(is_vm_hugetlb_page(vma))) *pageshift = HPAGE_SHIFT; else *pageshift = PAGE_SHIFT; - return 0; + if (!__get_user_pages_fast(vaddr, 1, write, &page)) + return false; -err: - return 1; + *paddr = page_to_phys(page); + put_user_page(page); + + return true; } static int gru_vtop(struct gru_thread_state *gts, unsigned long vaddr, @@ -256,7 +229,8 @@ static int gru_vtop(struct gru_thread_state *gts, unsigned long vaddr, struct mm_struct *mm = gts->ts_mm; struct vm_area_struct *vma; unsigned long paddr; - int ret, ps; + int ps; + bool success; vma = find_vma(mm, vaddr); if (!vma) @@ -267,8 +241,8 @@ static int gru_vtop(struct gru_thread_state *gts, unsigned long vaddr, * context. */ rmb(); /* Must/check ms_range_active before loading PTEs */ - ret = atomic_pte_lookup(vma, vaddr, write, &paddr, &ps); - if (ret) { + success = atomic_pte_lookup(vma, vaddr, write, &paddr, &ps); + if (!success) { if (atomic) goto upm; if (non_atomic_pte_lookup(vma, vaddr, write, &paddr, &ps))