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 A16A7C61DA4 for ; Thu, 9 Feb 2023 14:54:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0DFC76B0074; Thu, 9 Feb 2023 09:54:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 091036B0075; Thu, 9 Feb 2023 09:54:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC1106B0078; Thu, 9 Feb 2023 09:54:23 -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 DCF736B0074 for ; Thu, 9 Feb 2023 09:54:23 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 402F38046A for ; Thu, 9 Feb 2023 14:54:23 +0000 (UTC) X-FDA: 80448049206.21.4D2EA2C Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id 6F899100007 for ; Thu, 9 Feb 2023 14:54:20 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YQ9o0Kau; spf=none (imf05.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675954461; a=rsa-sha256; cv=none; b=TU8EwS6fLF6pQb7oYHnJRyKmsbaAT+uhusc1ehWQQVqFdtvLP5B6SxC+b5AjMF5fI0I4oN NhePzXDd0VhVXwzJamy7K8XYTF3q2+Lc1Fv09LqgnhakIaSCHx4VY4m42gdGVY/S/kLSSA bOUaAKe7zoR/M07MrOdDO/6GA5UQKRk= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=YQ9o0Kau; spf=none (imf05.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675954461; 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=ES4udDTOA1uOWwrwxbciiHy4JfTk88Aqo60ttQ9GIH4=; b=JDHyddAJ7g8f+byc1aH+w93dckKMBfNy3nMAShtas3nLr7Hr9DBFGVqC/8uALj5Y860XDF 6q+MK1kCjarEfVsQswQ8reUZ6BSVPivsvKrvaqDW+pBytkTBmEsE86uE4XlRnEGfD+rYyq uSgla3rvCa7h9S9Ji4ScrlCfGRILsyo= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=ES4udDTOA1uOWwrwxbciiHy4JfTk88Aqo60ttQ9GIH4=; b=YQ9o0KaulzV77sBueXsLADh811 Iixr4ow0bYwfaVtI2mlyNlsW7L+zLjlL67ZUQw+xOqX7eAkQLXgToj8/3A5Jpcq2BoW1JQSTxPouI sXCaxvYau281l78kFL8KJILrB67lwaDAsHu7Xcgq+SQGuJ+qESXYcHyIygkMnKC0cyj1mY5H/SRaS nfto/ChofAGFkVRr5hAUnKl+0EWjSSa4Rarqocwq0yZ44LuePkkRoE1gluY4D9mf6tKrPiijxCosS +whvGmrXTx2dN2QMJNT5I6LP+JBIn9JERpn0uZSQVvZRJc3Gn1bjEoeqLVZR8Ev9IvLwxejkF9Lsh OaCWj5rw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQ8J7-002HHU-Nk; Thu, 09 Feb 2023 14:53:53 +0000 Date: Thu, 9 Feb 2023 14:53:53 +0000 From: Matthew Wilcox To: David Howells Cc: Jens Axboe , Al Viro , Christoph Hellwig , Jan Kara , Jeff Layton , David Hildenbrand , Jason Gunthorpe , Logan Gunthorpe , Hillf Danton , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, syzbot+a440341a59e3b7142895@syzkaller.appspotmail.com, Christoph Hellwig , John Hubbard Subject: Re: [PATCH v13 01/12] splice: Fix O_DIRECT file read splice to avoid reversion of ITER_PIPE Message-ID: References: <20230209102954.528942-1-dhowells@redhat.com> <20230209102954.528942-2-dhowells@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230209102954.528942-2-dhowells@redhat.com> X-Rspam-User: X-Rspamd-Queue-Id: 6F899100007 X-Rspamd-Server: rspam01 X-Stat-Signature: tn1jsydff3ksstb4t9xotizxfydu43jo X-HE-Tag: 1675954460-966088 X-HE-Meta: U2FsdGVkX18wNuA9SfeFBZeue6P2RMhcDBuBiwYeR5864/Ks80qelPUWZqO5xjvyCCgEH3uLVzcJs3jBhJLl+gL8DY/hBUUTr0DgzmZ/lhlRvKAxBPB0sUMxwPCyeg6sWOONtcjjPWp6h2xmQ/zctnFRmlqFFx7D4a2PY3dhMEaT/bhtPB6+NjEJYz3/kfRrWx2D0E1VMvv2SDywNOeecACMWy0MlGUdF+2H2ig7k6pZWWm4j5VnG7w8DwxRUiAn3PP1GIdw0u2WQbKGqA+2XTz35I+7V1PipRCNgLqlTFFaG+tY16cGYj7J0qMUkrJIH9o/aPWaLW/urmTljW8H32yszfQepvODQDfqt+JIWj6wU3xKgm1NAqqm6kwDbzC/MYvqXt04jSID6DP8YmKIe5s8rIHxpVFVp7XK2dQ/yzKkLHhwewxMooHWJQk+JZH+4b79zNFaFtVTQ8P190fkDj0b2wj3jLeU+8MkD7w2zlTgKW8ijTTNX+JSdZMK+FzxnEYFjrlnTfBDwg9Kt22dCR3uS5EZhUhC3rk5TjYlvlyjfc8Gk7ZEhJqRzFPVtPNvT8+WuA4JwA/NH9zg8yktDSS74eoeyn9SQqNikH2rUMBBoEVhqG2ibRPPqnjzfq5PMv2aryaoMEhfe/bWitG+B9EKYig1Yx728vNotaMNj2VArbnCQmn4+gAjTI7fMh3R6we1i1XiAkXMpyaqIQ5hRgwOla+bxEHcDqOu192BLZ8HOMVxrT8B78qkc4Ek9KzJUmlhDujJVQpaSrfLIns7ZKxnE//x1iT9BPklSse03AXSCxbz1m65nQntsgbAZ7x/dl65t49dDbkvzavStwaNT4A393Z/X/kl0m2E6Srp/8WOAqOrwd+t/WbQfFbBRlwsnXHz5/eZRdGmWZpmwFoYE0SJFdclb0d9z2oeTTaB4Q+OfPFRnBhkHRYQQbCP37UII2jJ7Wxtb1AGC21zK1h /+dJdX7M meFLXnYtPQ0BH00t4tE6xfQekcodYtS+rl0gyhVpwiN1+UP6dEZhElVtLycw5J6p3FTyGnUB/LnlKlRURQVkuorarIaPTKF+hNuLvxbvNfsRwTOAasJ63HoXb55bW2+fWyx6Aq741I+BhEy7UPEYaTaTRRzQqAG5dIEZNrQNXRUgimkBjntY0erk+eFF4FDS62LAZLNO0BPLWnMZPszz0kmpCIeJYsyrILO6VtTsLf39wHLSH/yrT0nbSjIQBbT5gS7QceLZjypznweqv4YWQSutVw5/KvR1yr9tWs39BqNJbaxc= 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: On Thu, Feb 09, 2023 at 10:29:43AM +0000, David Howells wrote: > + npages = alloc_pages_bulk_list(GFP_USER, npages, &pages); Please don't use alloc_pages_bulk_list(). If nobody uses it, it can go away again soon. Does alloc_pages_bulk_array() work for you? It's faster. > + /* Free any pages that didn't get touched at all. */ > + for (; reclaim >= PAGE_SIZE; reclaim -= PAGE_SIZE) > + __free_page(bv[--npages].bv_page); If you have that array, you can then use release_pages() to free them, which will be faster.