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 520E1C7EE29 for ; Thu, 25 May 2023 16:32:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EA5A6B0074; Thu, 25 May 2023 12:32:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 874846B0075; Thu, 25 May 2023 12:32:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7120C900002; Thu, 25 May 2023 12:32:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 5B89C6B0074 for ; Thu, 25 May 2023 12:32:09 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4F115160CDE for ; Thu, 25 May 2023 16:32:08 +0000 (UTC) X-FDA: 80829319536.30.7235192 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf16.hostedemail.com (Postfix) with ESMTP id EF016180006 for ; Thu, 25 May 2023 16:32:04 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=OgAplwi7; dmarc=none; spf=pass (imf16.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.41 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685032325; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SNfCUobrUAUA40iHcw/nxcay95zNsz3B8ogepnZvesE=; b=PdXxxazOWGjrrKdni0NCeiM6J6hnx7jMWr4Epxfi7/20a/iIaaSeL70EvIc4vbX7s5C0X8 iE0Tcsf2bQR9D1AaQ/o6748y1IvZXxUAX/dLZ2CYYcbNJoREmVH+Rl7xFG0qDELq60DkDt yJWllIFZIpEU41Lf0nK9dP7Numzpqhw= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=OgAplwi7; dmarc=none; spf=pass (imf16.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.41 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685032325; a=rsa-sha256; cv=none; b=pSqwDtqjKJqVFPP/LoVvNYAkariZSdTkncg5uVHho+eFbTGE4PFeQr17/8wcNRC4M1qqSc 77V7rzEcnOsUw7J5HMHyw/NNYqyVZ0OgO89iAcnoGARVQHpXdhZTaOu74LydchX6DGGNue IahTLL3itTx71i9SedC3/DtbhPAvl4U= Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-96f99222e80so153306566b.1 for ; Thu, 25 May 2023 09:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1685032323; x=1687624323; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=SNfCUobrUAUA40iHcw/nxcay95zNsz3B8ogepnZvesE=; b=OgAplwi7dHaym7T2CTKHHAsLwjXeqAptxqzsXZUWF7LBssaQhTyBj9It8cJKUwWmrQ F/KE+QT4dmKSj8OHM7gPgVN+qazjmOSfhODoYI+yi/UVf46tUREtl1vAB9KmefcGCESR K86Pp1wxOhxpuvnjErBd4KM7YC8XTaUR/ZKUM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685032323; x=1687624323; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SNfCUobrUAUA40iHcw/nxcay95zNsz3B8ogepnZvesE=; b=YeEgTZ7bJMcUmjlkTG+lF8eDmeaToUYYIw3gixUOrDb/IlrEzIZ6qYj1rF6ktuDl9+ bM4lYv7n5kYZjN6pONkv3un0ByltT1tyK9rS2EX7ZFmHQTb8OtWRta1Xa5wbEON7UNeE ayRrEoGdEV7sSdNDnM9DToaaV88rkq7WIZX7ugfWkoWkajusHAAqk2iYkZ99T8QETWsz GCT3axFXu95He+2H98qTHoEgI1r0w6ceUhyPf0j9YnYN2vr+wYlsNgxdBUO64pMekPrI k2NZPNnJULGv3M/h5+3N41LlmViRFTUHZjJ3Km+IHf7Zh7c9mfKZr3HbAC2g/RqwLR0x Z79g== X-Gm-Message-State: AC+VfDym/gsRG49pAI4OxjtpFeoylIcJHnj/g//sPcXsIZFXo2uOaA+A GYNFWeJ0TVaMLPr5UC93/IU++RWrnCpxZcyNQgyTMKUL X-Google-Smtp-Source: ACHHUZ5JW0p7buUgyXkvyeB0YRoAy7rwQ/4hnhNcUwk0unr+wfkWNu9OAXntUPQZbj6eIMOy5tEkng== X-Received: by 2002:a17:907:7f0d:b0:96f:f56a:e9be with SMTP id qf13-20020a1709077f0d00b0096ff56ae9bemr2232450ejc.8.1685032323236; Thu, 25 May 2023 09:32:03 -0700 (PDT) Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com. [209.85.208.53]) by smtp.gmail.com with ESMTPSA id u12-20020a1709064acc00b0097382ed45cbsm1057678ejt.108.2023.05.25.09.32.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 May 2023 09:32:01 -0700 (PDT) Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-514447e8578so1535235a12.0 for ; Thu, 25 May 2023 09:32:01 -0700 (PDT) X-Received: by 2002:a17:907:a407:b0:96f:5511:8803 with SMTP id sg7-20020a170907a40700b0096f55118803mr1880847ejc.22.1685032321217; Thu, 25 May 2023 09:32:01 -0700 (PDT) MIME-Version: 1.0 References: <20230522205744.2825689-1-dhowells@redhat.com> <3068545.1684872971@warthog.procyon.org.uk> <3215177.1684918030@warthog.procyon.org.uk> In-Reply-To: <3215177.1684918030@warthog.procyon.org.uk> From: Linus Torvalds Date: Thu, 25 May 2023 09:31:44 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Extending page pinning into fs/direct-io.c To: David Howells Cc: Christoph Hellwig , Jens Axboe , Al Viro , Matthew Wilcox , Jan Kara , Jeff Layton , David Hildenbrand , Jason Gunthorpe , Logan Gunthorpe , Hillf Danton , Christian Brauner , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: EF016180006 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: oaeh3qzmt5xry6bomipeq9cr5k37izmx X-HE-Tag: 1685032324-855244 X-HE-Meta: U2FsdGVkX1+fLmOSyb2iK9P8Y2U/Qz3X0CeiW2i+CC5fjvHzBb/CaODVxtA6mqKxuDqOhZ9B2/1/2hT325JhHtj/C+SRgzfM5oTggoKTGMxjwNKbMI0awZWLYF875gFRUjq3MQ64Mibqo3pOyvvubMG0oVx2FbM9dEHn6QYS+dfJsF6ybU+Av20bzKwTmO+woUVA+UzoXXM7F8X0UdvnYGw3MDWoMY01eGCUU/UaKVVVv7LHTfRCh8LFP34fYEhX7ebKU2x5BM8UtURKftleWqvoiTpF6jYf2xtS2n5uIfmm7iBLW4+aqxy54UNMC53MuglFC3SUYBPD49tPhaN8AkaYnhv/L7W/G/JmsiYcFVmZyzBjH2XEAGTjLF71cDHmyHdNGtDbfDSz1meTC0xLXlsMhhvVoBmt5NDT4TpfC5ey2REGdbJ57/zkMC8kczXESDi+QPJ+BQlSNjj3D1OeC7ZFyPXpp8IPXtgDRtknYs9ZcBZZt8JVKO8tfO6avxcKh8of15KYW8YkIoefOgmGwCWPUnXdgPB4rraTcFmvul53v6svl/G2Fe7gyJEP0w+dXuEU5+VPNzECVQCXKDG3F8mrfOI4yxm3hUmItml6/xeHZxW8nqKoaC0L6lYejWibXIVA7xuWqnDkRkHRnuecL7WY3QxB+nso6P8BxAHsqaYzChgpfOaDQ/EwCSzTavwEemwBb5FX506sh9XZHAXqqvZUmJhktxV8VPcdHZTWmzEFNHLz23gIpVkIhDWFenaKAHaBQXMz2uUyG6bT/lhj4VAe4FlLyFE4XNVHEq+jaCWnd24+bKLHT4lXqZpWxiNfZbLmoRq/B+WHgUXIr1nWP8MuUJVkdvdS+Iztyr6Bbi/eYbSZlRuowSS6xNh1vd8xn/eV6mKy0wCiMV5QVzPLBC5Fm5HMlb2dxbSYNu9B6BvLCD8ZpWv2iPiIr0tcfuswIKg9XUfqpEC6AgpCL56 RtLGz2ld pybZEWuxxXfAIjVqjejApjGBrY4A38FNI/GUTrdgHU9SKG8TkwYwMZcaLh9qHSNasTXi9nKDRIbZcwABv5OQO5QIUdTiGGJ019HgcgceoPdYi7stjzO6Bq0qepCEk9Skdtd41cev2YMzW5sbXd1Pp3BzHxuhlTs9nnFZXNW54P5oF/3Ofg0mhIKi/Edpnh+2569xd90Fb2G7mBdlNQQH6l+URl1frcj8YnVW47Caulgt2b2jRz26LHdJPaMXK50xVQE7mA3nfk4dcyUN9YwqpEDpPYewScJdbkyUDuUaSyATjPsAg/XaPISN4voRuGHYpgEEVRafazPDaDV/Ruifse+rCdLDJC3uJ+mR8HsyVTmHqQNLfX7uVkAmfzq2NEpEwLeHkHq3ubKq5hit5Oma+2FhbefmolqZnLDjJQauE2pbaDByovUiuzNHvffQOP3MYMCoUv32v5kJQjCbWnJ4ET5WBXWOSrASNb03bnFNMcYB+wy6wg2/TowkFlDJfoy6m2XxZ9/DoFRaOtzaRQbCTq1HXJJf6kym29TIrnhvyg8xoU2A= 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 Wed, May 24, 2023 at 1:47=E2=80=AFAM David Howells = wrote: > > True - but I was thinking of just treating the zero_page specially and ne= ver > hold a pin or a ref on it. It can be checked by address, e.g.: > > static inline void bio_release_page(struct bio *bio, struct page *pag= e) > { > if (page =3D=3D ZERO_PAGE(0)) > return; That won't actually work. We do have cases that try to use the page coloring that we support. Admittedly it seems to be only rmda that does it directly with something like this: vmf->page =3D ZERO_PAGE(vmf->address); but you can get arbitrary zero pages by pinning or GUPing them from user space mappings. Now, the only architectures that *use* multiple zero pages are - I think - MIPS (including Loongarch) and s390. So it's rare, but it does happen. Linus