From patchwork Fri Apr 21 21:43:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Chamberlain X-Patchwork-Id: 13220706 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 25516C7618E for ; Fri, 21 Apr 2023 21:44:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6530A6B0080; Fri, 21 Apr 2023 17:44:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 58B826B0071; Fri, 21 Apr 2023 17:44:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B5EB6B0078; Fri, 21 Apr 2023 17:44:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 1ECB46B0071 for ; Fri, 21 Apr 2023 17:44:20 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E8300160695 for ; Fri, 21 Apr 2023 21:44:19 +0000 (UTC) X-FDA: 80706727038.29.F7D66F9 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf13.hostedemail.com (Postfix) with ESMTP id F075820007 for ; Fri, 21 Apr 2023 21:44:16 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=Len1yzwK; spf=none (imf13.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=1682113458; 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=kIm+HajOeoUPf2+lVY4BBZIQ0O/I9EyHtsPMg+rZ0Kc=; b=kRt/Ly8vT1z7jWY4XQ73MY2IZLat2yFPOjv3vTat37tySyLk6ggpsbZDT+IA7gnoIKUng2 BOoQ6lOGMIGVcY48r58xJDNiC9blM56NfI6+Pt6Q/FWnpZ1p8obsA6n/HAFvf8Af2VEeZC fHQS2T9CS+FALRcVCpaSv3YvZx0nqwc= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=Len1yzwK; spf=none (imf13.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=1682113458; a=rsa-sha256; cv=none; b=KIRPBeOYch2y22iJ0M+mRJIlWQCgk40JxOJ5yJ0CqUFRDEzdIi7L7YUbjLzMihQ5ax1mxI jaxH3RdrKZRhQpzhZwVnPlBWGn2zT+5mT8yMe5T7AZFbOSTqpF+rH0P5bGNArHFZ2mt/Bo R4HxOBKb+ZBHAYMbKqQdCMOUefm6E64= 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=kIm+HajOeoUPf2+lVY4BBZIQ0O/I9EyHtsPMg+rZ0Kc=; b=Len1yzwK9xjx59+qsKo1F+zvmo +aUn2YbUJugrJe8dXSdbxmZlTKxrreA9IzoGdLVdC1eGVczJTAELlOsRwcJUqNaEGPL5rddVTdiuR 2paO6yV15AQmkvh/r2vO9b7zoXcIlpl5k+bxfP1tQYU7r0yIo0NJa57GpOa/vmN/iPcfQM25C9axc 9fAyhFR1UcdzhDQCHEodaN0a2CLAr7FSbG6HJhhQkhBXWfR0VxRZJhpFpyKBbupNefaohXdKaGvs2 iJXFqj+JOo/hz8cLkWi8cBerPGguStJhP3RoX47i5vHERUL+Etq2Peo/JaqIXZEyR3e8KdNnjBCCs VqLXYKLQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1ppyY1-00Btog-1d; Fri, 21 Apr 2023 21:44:05 +0000 From: Luis Chamberlain To: hughd@google.com, akpm@linux-foundation.org, willy@infradead.org, brauner@kernel.org, djwong@kernel.org Cc: p.raghav@samsung.com, da.gomez@samsung.com, a.manzanares@samsung.com, dave@stgolabs.net, yosryahmed@google.com, keescook@chromium.org, hare@suse.de, kbusch@kernel.org, mcgrof@kernel.org, patches@lists.linux.dev, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC 0/8] shmem: add support for blocksize > PAGE_SIZE Date: Fri, 21 Apr 2023 14:43:52 -0700 Message-Id: <20230421214400.2836131-1-mcgrof@kernel.org> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-Stat-Signature: uqnp8xzek7ppba7s18bi7c8rsaf8e5eb X-Rspam-User: X-Rspamd-Queue-Id: F075820007 X-Rspamd-Server: rspam06 X-HE-Tag: 1682113456-225492 X-HE-Meta: U2FsdGVkX1/tBGixlLduvEb8z6FOj9lrNs82Rm4XDML4HLjUPVt/If/cc4WUiD/UuHgyXa+YE+OL/k0d8cXMJprO9FSKrHdEAIj/tkHHbkPp2ftX4R5HpE4WcArO5qRd72Oud7roPMlZdljj6WhH1Id2zNmqOC7W0YAjaEfNP3gOzGq3QqGUkOZJubehEfShf8sdXpx8Cic1DGJaCH7ropkwuaaIjpHHEY6sP9AaDZVFBBXAAJLF5zXHF/5fqKUPQjZrsXk/x0tgihmon5QH4a4I2UZGXhFTXVl50Z+0x4MLEhVbdN626B36FE2HS8zNMRqxk6lEK2alkAtOQnzX49yfXpFDtL/Ff4zh9pNumVkhg33NVW9r/aHVhcHIWOgAXEYTg5JRNOOWpgDvI44l/mcnky8QPtaFD4+QWiEUgBTsSxfCFnergc3NigFDEQO5kmAtlgaCrr2XK7tW8yOefZZcTMTv1SJ8eYJG55/ipid8k3LX2owMsmVJSYqapgDG5kIr3j0b0bBAat2kLR4HbOi03nL/DZaXZDPUneCWjsp2CCs/QJN8pR4Iv3QSCItY8NxA2DsKLK6WZRPs2Hu+lyd+nC4hyO+67+o+sTdfMX6DuoqoUPvQHbN4x7mJVAE3wRvRXu4Dvc8bHt5gsqdSMBcsINsJTFTfENsXxUmhxV2SVi6tg8PkiL8FTACefHYW2qMnaP2eG3IlJyct8bXs9GfMufBE3scOVrHDHN9v2JoxvvZVVt+JSqrVzBOyu94D3mtWEoezZYnJCte8La5QWH9iDDZsYac7/Vzxaq+EwmNmX6xgHPKmm1UXJPwTJzIGpqS8F65ePF+JSgChbQdlBVeJc9tjpDU+pE94SxJql9NgtLZYXqtTfkqJMk02Ua0OJWXYhv5lKKiBwz3eM7JPC/4BrlMPUiBWMsooPa8M32abqwCOy4Fc6rqsik5QGbASjC/nZMgeZJPLO41gh0j ZQ4gFTSe IsWvMEI4wwpCQVoz48W87QsfpwpXsyCRJGbDg2nIZyIFzcbEHymPlYbVzWjHre6fupCGVWSRo7hUGaYLGrnMlxEr5FoZLuoHzMPg0Gy3t8Hv/c5avPBCaHul54oBCwlC+obWjn/ftNOmipINO+e1UeQon5tLPrlQHXsymtxhf13Y9lGRw+SUjXM5yapd/UOw6+NX6XPv2HITABsR07MIkcQ4tEh/cRKxWlrD3upRqD7dQJm48JlpZygY3EAcJ6/diUaapRoMtfNhrviDlmdC/fQjwz2lsqC/wnI9YXaBGihk8FfcKcJ8I15yaglUPCEXgr/kolZVGJ2/iO8/PzROHguply+X0mzrTq7ZL1juDrWRIlTkYOlwRV1RUFQG0d/rgk8n2CfaFlp0WuIMcltuu5Ii8n9VVLjc4RypCTQ104EQs0jHJ+lJk9JRetEhRau1q2VyT2zDtZXlyS+SuVNDqlx+V7Q== 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 is an initial attempt to add support for block size > PAGE_SIZE for tmpfs. Why would you want this? It helps us experiment with higher order folio uses with fs APIS and helps us test out corner cases which would likely need to be accounted for sooner or later if and when filesystems enable support for this. Better review early and burn early than continue on in the wrong direction so looking for early feedback. I have other patches to convert shmem_write_begin() and shmem_file_read_iter() to folios too but those are not yet working. In the swap world the next thing to look at would be to convert swap_cluster_readahead() to folios. If folks want to experiment with tmpfs, brd or with things related to larger block sizes I've put a branch up with this, Hannes's brd patches, and some still work-in-progress patches on my large-block-20230421 branch [0]. Similarly you can also use kdevops with CONFIG_QEMU_ENABLE_EXTRA_DRIVE_LARGEIO support to get everything with just as that branch is used for that: make make bringup make linux [0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=large-block-20230421 [1] https://github.com/linux-kdevops/kdevops Luis Chamberlain (8): shmem: replace BLOCKS_PER_PAGE with PAGE_SECTORS shmem: convert to use folio_test_hwpoison() shmem: account for high order folios shmem: add helpers to get block size shmem: account for larger blocks sizes for shmem_default_max_blocks() shmem: consider block size in shmem_default_max_inodes() shmem: add high order page support shmem: add support to customize block size on multiple PAGE_SIZE include/linux/shmem_fs.h | 3 + mm/shmem.c | 146 +++++++++++++++++++++++++++++---------- 2 files changed, 114 insertions(+), 35 deletions(-)