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 6A891C10DCE for ; Thu, 7 Dec 2023 22:10:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D462E6B00E8; Thu, 7 Dec 2023 17:10:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF2996B00ED; Thu, 7 Dec 2023 17:10:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B93D36B00F0; Thu, 7 Dec 2023 17:10:24 -0500 (EST) 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 A2E1D6B00E8 for ; Thu, 7 Dec 2023 17:10:24 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 786D2140228 for ; Thu, 7 Dec 2023 22:10:24 +0000 (UTC) X-FDA: 81541416768.11.3A3DFD1 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf08.hostedemail.com (Postfix) with ESMTP id 6FF64160019 for ; Thu, 7 Dec 2023 22:10:21 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="neI12TK/"; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of kbusch@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=kbusch@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701987021; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pH1oxLSwhQvWIhVCj8LzWrye4aCz9bpVtCZJRtVEskY=; b=FNma7OxTgC47SsHnwm5+cQBhNkqs6hUXebjU9uO3Sv1DwqItwSni2uuphbZbz2CKCU5gXB vaJ373iqrWmMPnPsnKNsgaMDkCcT25tV8t/7MD4IhFcmDoz2rtT11EbFGkYttjIFcnYSWh 0uLMlat2lPUZt3K8kkBAQkKEdvI0W2E= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="neI12TK/"; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of kbusch@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=kbusch@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701987021; a=rsa-sha256; cv=none; b=hKwjJVSHDwxz6whdeNKTILoa1pKWMVu40FQEE5rDzSHbiDlKHw11Jh3Knn57IkkALX0zo7 SGMdriDCpxptfumjS+rVVuav6lucJaXpz7xw/CLn73eFksp0J1X/XZ/wnrGhAQlLsMPwsi BsZBZhT0vdscpl0tevAxz+EmFmdMyWg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 87A7ECE258E; Thu, 7 Dec 2023 22:10:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20215C433C8; Thu, 7 Dec 2023 22:10:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701987016; bh=sBNd3oxL6+a22NEO/VDNFOidep38poCkeBZb+XkzywM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=neI12TK/fHjGgZNDnLArNdLQEFClIYknp5Ch25AvJ3uzwa2mhmCuGfWn6SZmc4Xyh gQMahdRIXK77n5/TMkaJuK/OTaGAPpUr8VBnnr4q3wtd7Fji08gZbr7yFVPHi4KIgb kPw8zNI7nHJ/VS+tzDxLN1M0wA5VuigBoMI9/5Yj/pDRS49Sl+6w9ez2hmAT7NjNC7 qQdXIGld6g178tGepH6B2006iUsLwQmpAinMxrh1bo76odHAfwiueeCK5A2UhUESZZ nVUMpRinVsxy8gbJ5s20Klo6zNQG6cK7+fyob9qhJiofGyOE3G4twLx4NuUzZqYJo8 EHr/yFHXpV51A== Date: Thu, 7 Dec 2023 15:10:13 -0700 From: Keith Busch To: "Matthew Wilcox (Oracle)" Cc: Jens Axboe , Andrew Morton , "Kirill A . Shutemov" , Hugh Dickins , linux-mm@kvack.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH] block: Remove special-casing of compound pages Message-ID: References: <20230814144100.596749-1-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230814144100.596749-1-willy@infradead.org> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 6FF64160019 X-Stat-Signature: iroiyidz7j537q7gjcsgetthuqkh3ord X-Rspam-User: X-HE-Tag: 1701987021-692876 X-HE-Meta: U2FsdGVkX18ourOxAl5EY6r8swo/auYcFUlxBaaG/bBNGu/+0IpA/Pxzm759Hc4YCGAnYweuI/DJP+mALX89bCK5iLo1JW7MLFjF6vfWZ9ieKGXGU0oUXgUv3bbf1+FFM/QjUvzA7fKOJc+I9F7gLcXOVJyQH5aO24o02cyJ0hzJi/wRnfxbb3W/O6bQwz2GLRHa462MJN2CepSgPkeRwpCtj1t5Kf8bautr80ijSLyEaiPQu9DvOXwk5aIH3uIP8t5MrX71Fr+uZPzgM+ra6hiiar1hWk/5fJyFZQ1lZMCYK2e0abJtnRGRO/9+s6ZnJLYnIFxabkn5N2QcSG1+Iu/VZvsZ1pwqIlwoW5Alaj9ganSYKR7UT8bTevjIxmYwUsuseIAH9gLOEMWv8esC7zDn7kLqNaLFs9LLFC7SKgYiVh7nZS6bwXX7JEGC3OZV9feq0LPt4jX+H4kyq625m0Yc33Z1ov3u/EBIdD6luAwIbvInzw49tSVocHcLTABLxMcTzBrI+kWuuOAJwCadll7T6AXHBkjzxI7xnzGWAiqO5jeDQmkiUAI48tSozezP155Y415lJIHdofODwzU2/X/uJlajrNdUfJK6g9Ife/9G2DTz3cHOL/U+xjYfv7Xjrb6qHwA51cPxvRLWNv7gDs6A3k81Guoz3Q4AHDOdIvYlBaAVdTzcTolJbZaPvKGndaehyUyFh54f4AVdln6TM4sLxAUAe/0go5NwGhYR1mRfNlOATCOQrdCXzY4vRe/EgCVfB5ccHvD5Uy1BK738iZ3HX3RYXxYQSNE2LaibqzEHUu1OTOZ0JwdCcQRxld1ytUEMFRDPdi6b/qsOzNMRIxn7k4ze81jkXxq6230XGnsktGYEi20vDBDD3OZ3jzwdlobbhVBx6reujwSpFakNLHOEPfylR3YjE7hI+M01AzUm/tONlJdYAEbV4DkvenvGobiNAAhO/MB/9EyEgiN /ZHBcmhb IXnIT4N8CKryXPPQdOr6QX+Om4YB6bDh+x8YrM4frP0Z7XbNA21HHVxkpfC6gVhgJV97SZ8QOpycPfjPByv1B7FjSZTw94GUQlZ9Yc3CiRbPcd55jrfuJnk+Y0U7OPsiskJzUmnQb5UN7xy8e89sfa3YIikJPtSRiC0mpXkl4U++ECXGnckjCrZ3AfQ== 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: List-Subscribe: List-Unsubscribe: On Mon, Aug 14, 2023 at 03:41:00PM +0100, Matthew Wilcox (Oracle) wrote: > void __bio_release_pages(struct bio *bio, bool mark_dirty) > { > - struct bvec_iter_all iter_all; > - struct bio_vec *bvec; > + struct folio_iter fi; > + > + bio_for_each_folio_all(fi, bio) { > + struct page *page; > + size_t done = 0; > > - bio_for_each_segment_all(bvec, bio, iter_all) { > - if (mark_dirty && !PageCompound(bvec->bv_page)) > - set_page_dirty_lock(bvec->bv_page); > - bio_release_page(bio, bvec->bv_page); > + if (mark_dirty) { > + folio_lock(fi.folio); > + folio_mark_dirty(fi.folio); > + folio_unlock(fi.folio); > + } > + page = folio_page(fi.folio, fi.offset / PAGE_SIZE); > + do { > + bio_release_page(bio, page++); > + done += PAGE_SIZE; > + } while (done < fi.length); > } > } Is it okay to release same-folio pages while creating the bio instead of releasing all the pages at the completion? If so, the completion could provide just the final bio_release_page() instead looping. I'm more confirming if that's an appropriate way to use folios here.