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 735C2C77B61 for ; Mon, 24 Apr 2023 05:49:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A66E26B0071; Mon, 24 Apr 2023 01:49:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A15616B0074; Mon, 24 Apr 2023 01:49:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 903EE6B0075; Mon, 24 Apr 2023 01:49:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 811DF6B0071 for ; Mon, 24 Apr 2023 01:49:47 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 5260E1C5F94 for ; Mon, 24 Apr 2023 05:49:47 +0000 (UTC) X-FDA: 80715208014.26.0143EB3 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf23.hostedemail.com (Postfix) with ESMTP id 0F45214000B for ; Mon, 24 Apr 2023 05:49:44 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=3MpQEmnJ; spf=none (imf23.hostedemail.com: domain of BATV+e16e2fc4419b117693a1+7183+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+e16e2fc4419b117693a1+7183+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682315385; h=from:from: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=rxuwauPRwLemTJXwY3VrKMRJhs+GgwhnyBD4s7nm7AY=; b=bwF/jtdGDBVQSU2lOmnniwj8EfHtkh7U+HEJhH78E/IgicdqLLn0y2ivpQhOoZBpLhZGcp URGnDeXtusbhYwOPSl2nPihjHsJK7NGuVcp6cj/ndHNN8m6OG7SlJigvkSoDMFE8VJAiYQ 0xY8cJ+fSXGomxjzRcBil8hmoZDjbUE= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=3MpQEmnJ; spf=none (imf23.hostedemail.com: domain of BATV+e16e2fc4419b117693a1+7183+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+e16e2fc4419b117693a1+7183+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682315385; a=rsa-sha256; cv=none; b=rFvqyVCdeNhiq+GTo7pAxJzLTPAHiFOi3vfPuT282BBgw4rU6vzkNkHD6G+Kl8ee4KeVv6 rduQsnof3FP2Hjr5R7pSvnmvE/RkM2p2sobceu8ipBt8jiC51+E4hKyGmy6Swm/UwZtFao m8bxGovYSZOG3LFGs1g8HdEyD9tEU8M= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=rxuwauPRwLemTJXwY3VrKMRJhs+GgwhnyBD4s7nm7AY=; b=3MpQEmnJ4id5J1jZ4YFohK5H8q bs7ciFKUIE9sA5F//wk8TThxaPzhLwI6FsUH1vKzNkmpHyq88uhXgF7wTEHMLlqIzGShUjm1tpoQ/ V9Tji0dQSyZQM/K5ekDNoH5faw93KpoQQtAuWkTbvGbcl7apn0KwIYdsbsU9S2n8QH5hFEZJO4yZ5 yp8GdzGRgc1AHk7t7DD60UmLFSqOCfsXJza1GpGtauNVHkVJvJiQUeDviaHbb72Zouz31uRXC/4XE B+bfmZC/bCU0vqPNw8dnGTB4G0skWpel5LUkS6Ua52Z/N1nKMNRb49n9vt5etsldL20AA2wC69Vmq TVA2auLw==; Received: from [2001:4bb8:189:a74f:e8a5:5f73:6d2:23b8] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1pqp4s-00FOtV-2G; Mon, 24 Apr 2023 05:49:31 +0000 From: Christoph Hellwig To: Jens Axboe Cc: Miklos Szeredi , "Darrick J. Wong" , Andrew Morton , David Howells , Matthew Wilcox , linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, ceph-devel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com, linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: RFC: allow building a kernel without buffer_heads Date: Mon, 24 Apr 2023 07:49:09 +0200 Message-Id: <20230424054926.26927-1-hch@lst.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Stat-Signature: yrmqhuq4k1r9aipg9pozbq34wbkpg8gk X-Rspam-User: X-Rspamd-Queue-Id: 0F45214000B X-Rspamd-Server: rspam06 X-HE-Tag: 1682315384-642746 X-HE-Meta: U2FsdGVkX19UMJnxzvo2vTSG6YlJp3WTR3D+SOcrA3sW0EkUXA+MG5fDqM8NjljVEom37DEw7P20Otj9YVmUkqkX/RnbmDMMdbHEee1Ps2QKdM9WC776oecmwIcSKhP++EBKy+HDmYIS3hAwLxNZKZOu8KVsim9GG1yM59PP3UM8XAIw2Yq4OMhuZo9HGxjlV5z+alyAJtQwRAXK+L1hKqopRJBjnl0er1mAWjDCTD535iV0jHEBCtUI5TghEpaO85kplgwtEQB6eLmw5q7vLYDRJlxX21+6foBlK9aDIj8EmLlUlN2fDohCBE5WKYtZLoYYRYCwRopVqCWgtgybuqHoohTLsjfBgNv15ZMANeSJhjdJbRu1xiyRwCDbRBQsmpEQoDeuqGQv9WP+qE4qmmdfMbtk6icUYnwrGgwwpV0RsSR9a78oYfxNXq5SJrEIOPRk3RUt76BFennnkAw/qPRSu5bIRdYM3cUh1EGi+NPKuguzvdh+3HnQ3HFVmk08lgB/rTpT1h8SwI1NzBm9R4Dp5Fr6I+EJK9yNHl99c60MGRgHP99xSBko6f7tW+yQqx9gjVMHxpn+0MruUV8QeDwZ/dHB6NRYoxeMdIGwcvzFr0apZGJeYLFuJeDcbgDyqu+KCLl5pXa2v9jSEf8Y+nDt7+ePzcL4WrMbBdXDHaNJft3CZBULV2eAHgBW7aGenRNOuf+xxjR20w2JEP9KjfAOTsft9RF19IyS+EueGAnpgRQsCnud9pmYf4f7EsMg1KbU6DUAtTe3/HVXslbrzxS1mGkaU9L1z0kdzy1NitDJGhK6pOla9XQavw/Tx3bTp+AZQZ4J5pwUBAt5v8pROAjL5z8DKbWxgX6vXZXqRqGDp09Wxikqy2wHazmg1BlDfc5UPWqjugcZjVg0rQSI84Z9lkDOIiAsiYp50m/nlpj6cMOzyD7B0TTdkQTYJ2XhnE+D6vrF7JaWV4gyVEI efxjwsZU 1zAu+dbIiNRPNCWFFaN5lYFbF7+YqDYvNRwpAijuKR6khKdKcye24pggNXP16AUpSzi+DF7NRZ231ugCUiFMhKQ/kMiXqJQ59EUDRI+qXHzFkcMppDWs274TH7ifrnbUogYvGxUz3230Q0ClCPCcc5EH2NBIu+U357BjYjASiewhScxyd2EN/Q/rH/gT+Yo8tSmYuo/HawcB7vheSBp9AkRht31cSq/yRpgRQbuhy/I6jMwM+wxbw9umPlDkkR3dAP8qJFMI0PohEVjiTLJ+fhr9fBhoSFrBtty6GP7jWtHBzesxc4aPtpPVslENskTddlf3EzRJAd0bzEFpwZn7VEZa5lnhzq91qYGO48tHF3iP3JfPQ5VIKeUokvdFdafE7tn33bsAn+FCU72mGp0ltYKJzQHYZgYNSxWPbCvyCDFILUKMIB1WW465GFO0NYhl62vRay/wgL33maFg= 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: Hi all, after all the talk about removing buffer_heads, here is a series that shows how to build a kernel without buffer_heads. And how unrealistic it is to remove the entirely. Most of the series refactors some common code to make implementing direct I/O easier without use of the ->direct_IO method and the helpers based around it. It then switches buffered writes (but not writeback) for block devices to use iomap unconditionally, but still using buffer_heads. The final patch then adds a CONFIG_BUFFER_HEAD selected by all file systems that need it (which is most block based file systems), makes the buffer_head support in iomap optional, and adds an alternative implementation of the block device address_operations using iomap. With this you can build a kernel with block device support, but without buffer_heads. This kernel supports xfs and btrfs as full blown block based filesystems, and a bunch of read-only ones like cramfs, erofs and squashfs. Note that the md software raid drivers is also disabled as it has some (rather questionable) buffer_head usage in the unconditionally built bitmap code. The series is based on Linux 6.3 and will need some rebasing before it can be fed to the maintainers incrementally. All but the last patch definitively seem useful for me. The last one I think is just to avoid introducing new buffer_head dependencies, even if I suspect the real life usefulness of a !CONFIG_BUFFER_HEAD kernel might be rather limited.