From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 918EAC636D6 for ; Thu, 23 Feb 2023 02:44:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7AEC6B007B; Wed, 22 Feb 2023 21:44:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E25446B007E; Wed, 22 Feb 2023 21:44:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C50E56B007B; Wed, 22 Feb 2023 21:44:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B08016B0074 for ; Wed, 22 Feb 2023 21:44:21 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7A9CB160E8A for ; Thu, 23 Feb 2023 02:44:21 +0000 (UTC) X-FDA: 80497012722.05.D0325C7 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf15.hostedemail.com (Postfix) with ESMTP id A76BBA0002 for ; Thu, 23 Feb 2023 02:44:19 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b="mUlD/MPP"; spf=none (imf15.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677120260; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=bXX0DMS2swWkMqSYibcCFsHDgPbrh21a4B1H1mImqJM=; b=bcd7nw6S9k8xkqrNk4phfXMb3L0HqLKYoyzYVca8/d7KkgZGI7ObQOdWrHPSJJ8Qy/IUVF eeHjTnzfYXwT7vfqX841Y33sMGJfYY1VpolZ3v/av9ULFE5WHiWi1N7ESPYV62zFOFuwyg 0Dta4VTmHyC3r3MnOMkShWWkHlGi1YU= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b="mUlD/MPP"; spf=none (imf15.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677120260; a=rsa-sha256; cv=none; b=vMf2ZbG3SMB1iu+u/lCSb/g/kAJyg299n2ytz2waoOlCgczfBCqmkPrCP3p10MOBC92ZnE 5PI7JDqmKt4mcXd5FimUdCwl+qHrar+HVg4IUJrjSuBDj20z6nuPb3stJufv+WfKYFAsFW oatF1s2uDBGbYPkRUzkLf5kYv2QDhIw= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=bXX0DMS2swWkMqSYibcCFsHDgPbrh21a4B1H1mImqJM=; b=mUlD/MPP0fVPyx7NdHMz3zb0YB nmVgJCICeQKODh7hp10D24qRCz0ZhxuWrkIljrcfQJIcQPB3xwNrm63aTNppEDbJMrrbJ3eTducUT meT0EmUMpB9gdr9ADY+5zvAGtFkRpXSvLwr0Vluqq34ZNE7n46NFyjTTwpJfd9bl59YQwBqaMMSz6 m6OVIyv2xw38XY0Mm68dFC0zBEnLMhJq3Gueeet4xmWgjFodCB/sevSVQBjeIGaOVJHXChEsu0NID OxkWZEalI1ch06GvCxIMWD/e6cSc09wckUA+MevURiUImgvOZ7ZG+/ecImJe4vBPkv843CXoKgcJX DX79YhqQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pV1ah-00EmN6-4b; Thu, 23 Feb 2023 02:44:15 +0000 From: Luis Chamberlain To: hughd@google.com, akpm@linux-foundation.org, willy@infradead.org Cc: linux-mm@kvack.org, p.raghav@samsung.com, dave@stgolabs.net, a.manzanares@samsung.com, yosryahmed@google.com, mcgrof@kernel.org, linux-kernel@vger.kernel.org Subject: [RFC v2 0/5] tmpfs: add the option to disable swap Date: Wed, 22 Feb 2023 18:44:07 -0800 Message-Id: <20230223024412.3522465-1-mcgrof@kernel.org> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: obg5p4hq5ius17sikk9zxt4zu87phtj6 X-Rspamd-Queue-Id: A76BBA0002 X-HE-Tag: 1677120259-910154 X-HE-Meta: U2FsdGVkX1+fTATixlBLfizY8uJBw7T4SOyfTQZItfA4kkU3R0rd4GjCELU6k23dyvltuuix2gUB5ntclgU6R5KE/+E97opAGpexH4ns+8JtLqPAYzgsOiua6GLw/qRw3PzkcgMu40M/Gme6WERvnmk25/cNxZt3BW9EtXT6fElUtKVRVkbD2X/JP3A/tcq51H7hWlJYHWXqcL+3jIy/6LUiKdhGTCWMZwIRm29nL3hRQV+0L634wVftLDht9eXZUo0sVn2sppbVv4/ThCd3+UZDeR0LuzT2mzMftQvnZD4eAj7Xcyh+g/SQbAGPO8dKIYGdGntgQJBS1otZG6b0RnPOJJBwMkrVOqzP3aBYnF5yRiJvIilj4V9brRMpdFsln+Ye8yLN6KuDXIUt/r7mcIiezoez/9n+3MepV1GsyAT/hx8L2ZZqI21Cppb6HYF/lqbnvBqZjQPBD4pZTMnHOKhE2Q9OUUrDyf16R8iqRdV2DkrGNA6fHSGU2/6qM4SfqMJJfG/E+j3OM/mSXuYFuMTMlnz0ZeYFFsG69yt3vsOOc690YUtceTCIhmDDXD9030DT953h7w9FTuS9KcgymfL4tH8N8rj5wV3Mq6UwH+wcICHQN/R5N57dgl7tiypXTS9eRbpqVdXvuI6vBJbHW6UaqhmuwxkaJRHLKueVXHiz77fWcq4hamfpfDt5k6gUQCzZ1UvJvihIfzGfB/jqrhf/zJBRcAzpjuRzLo1G5z8Didcon+4KmzcIRpC2g0opd8Xfj902z2qF/Jrh0ReHPGMOadsumJloVNpW/mzXKiWE05C1fP20qBZA+lKz3k4M/gHLkWsg+xsjzJDfXpw8uMP0DNyXw0IwCVqqwCBCNZzGPEuZLvl9lsIuaGFnN0FTLejbujHAy7CA489PEc3fyBQNKgPM/V9L1XiZTUr/Pme9vRYk27GNYcSZ4SHZmd3JqV9poLzSc86AnkgDzpe LDBARwwZ DTspn0CEZ4LLFpoEnVa3RypVDkHo0fD9DhJ/YyS6jszQhb0jX8a64aBFFjRWGEM0zML94KSrgtt7fR5uxoxKzl3hnPKEvKMnO5Zhk52K5NN99//kfMd4/2Cms26Nt8yLWgQnFm9cAeOtHRLdydBF+GAYWFwo5BcSvB7d8eFqqg0P5MjLi/btKcQeXr2yfzXquvcZcW9sUWwZurJpVTRR21TkM7I9KTou3SAuHtxI40lJrTTcJ44D87PvqdQINm0nJe4PV9m6PsTJP4iZvS6BJ1ITTKYo7hv1Vp5ktL+OxP3PAf/e+13OPS8s8TBt2qm5eS8cvwHz9/oASSvCuQ8JrTOcixm+Dxe5J5hmLY2bbzFMDq4PUDhiFDIGd/+G/Nqg/sokW4PpfX8j6dHpimkbWFCDKv4B9iU4WbL59 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: This adds noswap support to tmpfs. This follows up the first RFC [0], you can look at that link for details of the testing done. On this v2 I've addressed the feedback provided by Matthew Wilcox and Yosry Ahmed. I've also made some other changes. Changes on this v2: o Matthew suggested BUG_ON(!folio_test_locked(folio)) is not needed on writepage() callback for shmem so just remove that. o Based on Matthew's feedback the inode is set up early as it is not reset in case we split the folio. So now we move all the variables we can set up really early. o shmem writepage() should only be issued on reclaim, so just move the WARN_ON_ONCE(!wbc->for_reclaim) early so that the code and expectations are easier to read. This also avoid the folio splitting in case of that odd case. o There are a few cases where the shmem writepage() could possibly hit, but in the total_swap_pages we just bail out. We shouldn't be splitting the folio then. Likewise for VM_LOCKED case. But for a writepage() on a VM_LOCKED case is not expected so we want to learn about it so add a WARN_ON_ONCE() on that condition. o Based on Yosry Ahmed's feedback the patch which allows tmpfs to disable swap now just uses mapping_set_unevictable() on inode creation. In that case writepage() should not be called so we augment the WARN_ON_ONCE() for writepage() for that case to ensure that never happens. If this all seems peachy I can move this to PATCH form next. I've tested and indeed just using mapping_set_unevictable() suffices to disable swap upon inode creation. [0] https://lkml.kernel.org/r/20230207025259.2522793-1-mcgrof@kernel.org Luis Chamberlain (5): shmem: remove check for folio lock on writepage() shmem: set shmem_writepage() variables early shmem: move reclaim check early on writepages() shmem: skip page split if we're not reclaiming shmem: add support to ignore swap Documentation/mm/unevictable-lru.rst | 2 + include/linux/shmem_fs.h | 1 + mm/shmem.c | 68 ++++++++++++++++++---------- 3 files changed, 48 insertions(+), 23 deletions(-) -- 2.39.1