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 71325C7EE2A for ; Mon, 23 Jun 2025 13:53:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 117C38D0009; Mon, 23 Jun 2025 09:53:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0C8968D0005; Mon, 23 Jun 2025 09:53:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F209A8D0009; Mon, 23 Jun 2025 09:53:06 -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 E1DF88D0005 for ; Mon, 23 Jun 2025 09:53:06 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 90EB31A035C for ; Mon, 23 Jun 2025 13:53:06 +0000 (UTC) X-FDA: 83586806772.15.88827E1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf22.hostedemail.com (Postfix) with ESMTP id DABB4C0019 for ; Mon, 23 Jun 2025 13:53:04 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=0g9CUqnB; dmarc=none; spf=none (imf22.hostedemail.com: domain of BATV+617475e3227a0a436e26+7974+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+617475e3227a0a436e26+7974+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750686784; a=rsa-sha256; cv=none; b=GBOT3GByYUtPlG4Q0UxhLj43YXPmxnWokUMG3rSQwMn7VPcioBSHgfu99bDGRFwcH6OfQr OmU9tC4yi1GbWRFxYM8ls6f9H+QiTYKas5CuqYz3o9m9VRc4B8b2yU3kpdb2YoUjnyKBfT kqTWz6kDjwiPcrUSwutmb7im00kvESc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=0g9CUqnB; dmarc=none; spf=none (imf22.hostedemail.com: domain of BATV+617475e3227a0a436e26+7974+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+617475e3227a0a436e26+7974+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750686784; 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=YVHSJAiRhj7qf6Q+0VoJztFQx2dBI/eUpzohiN1zMCc=; b=7+l7NmDAcSg+h6embScRTTjoFoyAbhYeUjghNugPuB13NLivh7iVm7sNznQyLjhHjyWqru Di8pTG7nZMxXp/Ztnw5ll7fiORDYAJWJIYb5ubNLAQWirGCgaHVexlw91hP284g/Isp8Sw Qwx2cHTv6q5hp0KsYOggDGXU5MRJS68= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; 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=YVHSJAiRhj7qf6Q+0VoJztFQx2dBI/eUpzohiN1zMCc=; b=0g9CUqnB1CfKDqlHsdyDKWKIJR AbYW4CnHUKJerou9qQ1LyzJhKkI2On3ZQyoBz1p3EKk/ybJyUzUaIQPSGxRosBwBsfyRAB1tm4m3T qlDA5bF99eMEprEbvv9J5UvRfUoejni6zhLUmN5M8gaZ+6+1NxAqWMH+rrSb+wzOYmBu5oR95udXJ lPrS0doZWtcg1PEbYrSArNVAMJCMYZ0W4B8sWRLKHWn8eefz/HUuhVRhLWO40J4ELRCv8hxQVteU5 e6UiPIU9BVb70rl/h9KAz55Z2rvMQuZJjRB/Pu7HemRvxEwekrSST5U5sOzDxUdoVc9mtKLYLQGVW XCFluUZQ==; Received: from hch by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uThbY-00000002wC1-1uG3; Mon, 23 Jun 2025 13:53:00 +0000 Date: Mon, 23 Jun 2025 06:53:00 -0700 From: Christoph Hellwig To: David Howells Cc: Andrew Lunn , Eric Dumazet , "David S. Miller" , Jakub Kicinski , David Hildenbrand , John Hubbard , Christoph Hellwig , willy@infradead.org, Christian Brauner , Al Viro , Miklos Szeredi , torvalds@linux-foundation.org, netdev@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: AF_UNIX/zerocopy/pipe/vmsplice/splice vs FOLL_PIN Message-ID: References: <1069540.1746202908@warthog.procyon.org.uk> <165f5d5b-34f2-40de-b0ec-8c1ca36babe8@lunn.ch> <0aa1b4a2-47b2-40a4-ae14-ce2dd457a1f7@lunn.ch> <1015189.1746187621@warthog.procyon.org.uk> <1021352.1746193306@warthog.procyon.org.uk> <2135907.1747061490@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2135907.1747061490@warthog.procyon.org.uk> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Queue-Id: DABB4C0019 X-Rspamd-Server: rspam10 X-Stat-Signature: cpqgts4icbmdcrzbr6hrmpfzba45zqq6 X-HE-Tag: 1750686784-326619 X-HE-Meta: U2FsdGVkX1+yr2g7LLqDrjiFVuVTNRnUIiUwxzgp0EZieMwi5SW60endtCZ3qjCaIMtF6BdZc5aiH0yM4VlG96apE9Ji5/AvzJ0MlxVHBd/I/fH7fBd0EvX1Ocdh4yq4kizTSPTltCYLDo2NHPVCpHusxiHCMfmZY1jbP/km7KcvZm5x9/ZGU4/dMyMbVLDrNr6komL5rZHhO1BJC2h2RdaYKa+fSUYFGloG04MPlIPgqMgWHjjICN4tG9Y+Uc+dHjE+/Sth8MbJ20dkwCnbIQ1rs4m/v+9HzMcjurCLfXO2yD71dedwc17kWqiVH8g2y+Ap/41Avj2l0yac/NneX8KAGfVDXe9/gWfNgCaCsffSwUy7Frn9rWAyg8mN/xyYoI5f6vcNBN9UTbIlUJjeiZqmxRF3iD9jel9fheYBUOvhswoL4Va4qxbQBUmEHa+4q1eQ+ZeV1wreLTjyq2TzKoYJFKW8NavIvutuxMGSKOTtG2BipX3GsjLkX0QHQ2hyH7a4LpC7dZRpGbM0G7dfaMRbusfEKYsDjq2p9Tskk1PxbgBMgdf84XtsBZfIZj4pXRhDjCI7USf9JgvS1+/tTqUqoGlB3b1gM4aJZHpv8V9Q9ATwbxOuuZ3To7Mi66/8jzzvcdPUfWk/TdOfg+tSRlwEg2FToD6SDwFKpsTGpSpF3ngClUaiG02Q63BqT3QQYhCc6+CnPzxhR4/rPQcclu9KMeTTsN0xxZS+Clc79XVoOf+mY4Ji5GKyCqNsdFvRsHd5QuHi6SHMWVdOLkKzOy5/crrNjxAIxLNb7MDFOxk75qVXisIArYRoFZigr58EC0kqNd94o7ojkahK9dTmDdo/PmDvgB25wxO4JZ/TUAXrnKn3dmWPhRmKtZiOT6TRMymHdlhYwVXq3J8RACg50zPckPt00TP8afunGhaDyW9OwCILwLtVJzWKmTnBlABA0QZf2knqdV7NkJJeQuq plWQHrlq APGB6I/FaL+C0PjdmlOJqDAVqGtrsuUcDRkz9F35gE3iJRoTiIFlgtEM0ucANZO6x9a+oCzmbvSx1dD031s8NqgCtferuuFIGTGzOy0P8KKkIxiZTtnjTs17G9K12d5UwfN+rbWDHh+ESTo0IeKZE3szsdBrxUPvlEWUKeS/7Q+k538oyywwJQY3sNMHehBcBW5eL0go1rydZUv+pjaR5DBUYzLiejHSjiKrJTLvJH13wsTRbacOxtBnuqNjbHrzDAVTbnM3X/Di3ElI80z0nTSAIYYhI53ikRFcdWM3oLI64aYKeZVjpE8wH3xtnF8io/8JzyQ5KBETrG7f1+6JhZAdcr9PetvfC46C6XYLk3cqD93iB+2FthlreZssQ/vA2MvBbzTf0VjUD0A2yRD4xzYPbey+4ApnUFuKxcl9yDLTbsou/TMelbkL6V2mj555LGMBRvlYLGJWCCqOANpUeMTv9YWm4RlNqRq/0ow2jxOp1J1RSEUgRQ0PQQyv6761BCtFE7gEX2+s9gVd5K1ISqamoBg== 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, May 12, 2025 at 03:51:30PM +0100, David Howells wrote: > I'm looking at how to make sendmsg() handle page pinning - and also working > towards supporting the page refcount eventually being removed and only being > available with certain memory types. Yes, that would be great. > The question is what should happen here to a memory span for which the network > layer or pipe driver is not allowed to take reference, but rather must call a > destructor? Particularly if, say, it's just a small part of a larger span. What is a "span" in this context? In general splice unlike direct I/O relies on page reference counts inside the splice machinery. But that is configurable through the pipe_buf_operations. So if you want something to be handled by splice that does not use simple page refcounts you need special pipe_buf_operations for it. And you'd better have a really good use case for this to be worthwhile. > And then there's vmsplice(). The same goes for vmsplice() to AF_UNIX or to a > pipe. That should also pin memory. It may also be possible to vmsplice a > pinned page into the target process's VM or a page from a memory span with > some other type of destruction. I don't suppose we can deprecate vmsplice()? You'll need a longterm pin for vmsplice. I'd love to deprecate it, but I doubt it's going to go away any time soon if ever.