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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FD35C6FD1D for ; Wed, 15 Mar 2023 17:48:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232645AbjCORsX (ORCPT ); Wed, 15 Mar 2023 13:48:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232627AbjCORr4 (ORCPT ); Wed, 15 Mar 2023 13:47:56 -0400 Received: from mail-io1-xd33.google.com (mail-io1-xd33.google.com [IPv6:2607:f8b0:4864:20::d33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66E63113C1 for ; Wed, 15 Mar 2023 10:47:41 -0700 (PDT) Received: by mail-io1-xd33.google.com with SMTP id k17so8185024iob.1 for ; Wed, 15 Mar 2023 10:47:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20210112.gappssmtp.com; s=20210112; t=1678902435; x=1681494435; h=content-transfer-encoding:mime-version:date:message-id:subject :references:in-reply-to:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+lxfpdXXZwd5ObmwIUKYTvInLkSnJ3rTmk1dwfXuWn8=; b=j9zqC407ORD8JyCqubo5WPcomiRwRsgSCSSitJearydehrdb9JmZmX1rrAPvBarmDI APa7Mmkn0oYxgQl+hDgaAbnSf1Gfotr9lsBCqg8+KunkhVpQTNRE9c+Uc3o2y6Ki54zD 9yMtnupZGdSKcH0Dh42IsgTI+f7K+gAsNZDJKHxvwoc1mgNszsufVoss9y9Kb4Yl/flK D4iOTC3S3GCxDs7oxdJdi9FhFA4/jU9D4EQfXvzEw8R69jZgFe/xYPMY61r9C9vHLDXf 1+2m2A4MHtceKufCfJX4QnOXmFmWiTHIUgAOGbWOZZ7UtXPxRIvFDXRRYFhktW4goBQ8 8Isg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678902435; x=1681494435; h=content-transfer-encoding:mime-version:date:message-id:subject :references:in-reply-to:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+lxfpdXXZwd5ObmwIUKYTvInLkSnJ3rTmk1dwfXuWn8=; b=Ie2LKYsXIqr2yOh2bFQr5HBpYtd/7gi9pmfscJHHZlsxeMW+OalT/8LgP5DLpNcym1 k1RJHMDxrNrMtZkh9IfdOYOXNxYGMikQEVGhDPpYljEAe7SjYOU2GD3VIwhIejZDHyA1 0wGwFxBor0dG+2voJf5uNhihrm4DmNTa2FNcvPYtnU0VdCNy5L0HbMvkdwS2nwdABrzf brTeKMSokvtmMgS7P798R9vQWXTlRUC9ES+dXUDK3Y7dhFdXxxDPPglOBb34sWLXnJPW uDjF5K2VtnVhUSphkt7DsmZIMVNEZkvU/XCTiFobqgVj/XTyiMj/XWfAA5KsC75k7W+S 4NhA== X-Gm-Message-State: AO0yUKXFPEg17h9JUQ9XgQ9tiktiLqqo+i2i/qHKQIfO43+SssRyWA0x MCIcDBhbzIeXRHhxSivb+7WCdw== X-Google-Smtp-Source: AK7set8NaGAjOIa8kTwZzEhvCzFYesiBzdjCmPGndPULiKBjmur+M8FpGX8hzACaLs458oHc/KbObQ== X-Received: by 2002:a6b:3c0a:0:b0:719:6a2:99d8 with SMTP id k10-20020a6b3c0a000000b0071906a299d8mr1919987iob.0.1678902435147; Wed, 15 Mar 2023 10:47:15 -0700 (PDT) Received: from [127.0.0.1] ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id r14-20020a6b440e000000b00740710c0a65sm1811816ioa.47.2023.03.15.10.47.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 10:47:14 -0700 (PDT) From: Jens Axboe To: Al Viro , Christoph Hellwig , David Howells Cc: Matthew Wilcox , Jan Kara , Jeff Layton , David Hildenbrand , Logan Gunthorpe , Hillf Danton , Christian Brauner , Linus Torvalds , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Jason Gunthorpe In-Reply-To: <20230315163549.295454-1-dhowells@redhat.com> References: <20230315163549.295454-1-dhowells@redhat.com> Subject: Re: [PATCH v19 00/15] splice, block: Use page pinning and kill ITER_PIPE Message-Id: <167890243414.54517.7660243890362126266.b4-ty@kernel.dk> Date: Wed, 15 Mar 2023 11:47:14 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Mailer: b4 0.13-dev-2eb1a Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 15 Mar 2023 16:35:34 +0000, David Howells wrote: > The first half of this patchset kills off ITER_PIPE to avoid a race between > truncate, iov_iter_revert() on the pipe and an as-yet incomplete DMA to a > bio with unpinned/unref'ed pages from an O_DIRECT splice read. This causes > memory corruption[2]. Instead, we use filemap_splice_read(), which invokes > the buffered file reading code and splices from the pagecache into the > pipe; direct_splice_read(), which bulk-allocates a buffer, reads into it > and then pushes the filled pages into the pipe; or handle it in > filesystem-specific code. > > [...] Applied, thanks! [01/15] splice: Clean up direct_splice_read() a bit commit: d187b44bc9404581bad8d006d80937d1b3a2b0c0 [02/15] splice: Make do_splice_to() generic and export it commit: 6dc39c2949ee71ee9996d6190d374512ecf44982 [03/15] shmem: Implement splice-read commit: b81d7b89beccbeebe347c21c004665ffe07e36bb [04/15] overlayfs: Implement splice-read commit: f39de7bd1b5088241f0580b5fe5d76cc5569711f [05/15] coda: Implement splice-read commit: f0daac2d4dcd286168d7c70d0495328c096d4d96 [06/15] tty, proc, kernfs, random: Use direct_splice_read() commit: 82ab8404c910d4aba33f55257c2bbc8ea9cfad3c [07/15] splice: Do splice read from a file without using ITER_PIPE commit: 3eb3c59b128509a5e8a8349dafced64b9769438e [08/15] cifs: Use generic_file_splice_read() commit: fa9a848ded4984a8c64d0d20c3a5b0aab97c7754 [09/15] iov_iter: Kill ITER_PIPE commit: a53f5dee3448a51e6602a7f98952abaf19049641 [10/15] iomap: Don't get an reference on ZERO_PAGE for direct I/O block zeroing commit: 2102c4e41418fb5c2cdf26bf2b97922190e38ba2 [11/15] block: Fix bio_flagged() so that gcc can better optimise it commit: caf8aae59a7b1f668a32f91115ed8be3aebaaa41 [12/15] block: Replace BIO_NO_PAGE_REF with BIO_PAGE_REFFED with inverted logic commit: e812d15adde4363c95f1743b7dd4946f1a550c5c [13/15] block: Add BIO_PAGE_PINNED and associated infrastructure commit: b5596bf292996a5cd62f1fbc00c2c35f1a3faa12 [14/15] block: Convert bio_iov_iter_get_pages to use iov_iter_extract_pages commit: 648627d7077d4de810e5f4c09490cb993514a53f [15/15] block: convert bio_map_user_iov to use iov_iter_extract_pages commit: d187b44bc9404581bad8d006d80937d1b3a2b0c0 Best regards, -- Jens Axboe