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 0865DC7EE29 for ; Thu, 25 May 2023 17:13:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C861900003; Thu, 25 May 2023 13:13:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 77906900002; Thu, 25 May 2023 13:13:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 66796900003; Thu, 25 May 2023 13:13:35 -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 565E8900002 for ; Thu, 25 May 2023 13:13:35 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 91462A0C6E for ; Thu, 25 May 2023 17:13:34 +0000 (UTC) X-FDA: 80829423948.12.171A95B Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf18.hostedemail.com (Postfix) with ESMTP id 1CD6C1C0017 for ; Thu, 25 May 2023 17:13:31 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=KeS9Xc16; dmarc=none; spf=pass (imf18.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.167.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685034812; a=rsa-sha256; cv=none; b=vzTuSIbMOyE6o5YDT5bwXZ3UA5bJBwf3B/RX1ve6DRczGUCYSBfWK9US64PqEKFKH5UM16 Rx88Pn3+656TQxuJEA7j8IFgu2xoXh6kyUTEqO+I88yG6GnkqKYOFhYyOcZfjPtHTEND+a ImYrTPRhegQCED+uTHr8NrXXsVeaksg= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=KeS9Xc16; dmarc=none; spf=pass (imf18.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.167.54 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=1685034812; 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=YSr58RBXCv1EwUMOYtICqFDX8H+m5pyEj79JnZvBvqM=; b=giaDfPjgOlHORuX2zEOwBWPf3ZvuaSfJQDSIgQjsJCZRHH6DNvaql0zp9bkUKSn/2p2XTy +OGh2O3mq+jJC3vyhoNjEaBXQw6qvq5h3o9xCA7g16Y27wNNbiR8NukCOFGTjxpFGVYtEt eZ6GKT9lVBHVgxxdyk4Mvgi0mEWZibM= Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-4f4bdcde899so2707113e87.0 for ; Thu, 25 May 2023 10:13:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1685034809; x=1687626809; 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=YSr58RBXCv1EwUMOYtICqFDX8H+m5pyEj79JnZvBvqM=; b=KeS9Xc16D066u54+/ojGzEeAzowgWEUsLRCcTcyveI69AN7AsLV/4eefIDyNEb2LFl VR3YNContJ1uRgl9ek3r0ymlW/SJxvTMn9cje1/ke8Mw9xTNjfzQZIbon9UAwqTbLr5/ uecn3RCxXGWDgii8iYG/qvzxKm/vYTSZFrbS0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685034809; x=1687626809; 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=YSr58RBXCv1EwUMOYtICqFDX8H+m5pyEj79JnZvBvqM=; b=lwWVB+hoGY1MDKJP244B1FdrNEWXq6CBpSc4gVyvUpEr2aWF9DzC/Ih8TQSJcIO7nd tsM0L+KcQPyo3bcsBdfACKLLwiSHjDsNF+aLS5nXWy+6P2v1NwILOzGhvItM9DTqWg6C vEfHajObrHYSY1Kh0M6JgHR+VfD2Y0oLQq0TOqFSQg7tCA23MC0dv88HW0TtnkQjMaWv JR856Jt/i32FmWIftzQ3GgR+Fg4eMuTQmFczTY8yve+XVfuqqQq1lQO4Ty4beXBvTFv7 5Ieb28RWIkDUCY1rz5gSESxpC1Ka7P0xb4hamGUUjAlbh8CZIsdUdweRG/Erievxhukf GA9Q== X-Gm-Message-State: AC+VfDzwlRf1MWwO3SfBwbplM4TI+M0rla3wldIGiagQHS4u8noWGtE8 o0vsoNVpJOAhYM0QF35XZBKXK3khUOTL8xGgiFyJgdYP X-Google-Smtp-Source: ACHHUZ5BWazuW0hz5pXy5YuL5BDnnuRKY128RYKnnloAPX4iFOpwW27MneXQVCfzc7fxvInhY8j06w== X-Received: by 2002:ac2:4182:0:b0:4f3:93d6:377b with SMTP id z2-20020ac24182000000b004f393d6377bmr5808205lfh.37.1685034808706; Thu, 25 May 2023 10:13:28 -0700 (PDT) Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com. [209.85.208.180]) by smtp.gmail.com with ESMTPSA id v2-20020ac25582000000b004f3787d8006sm277818lfg.128.2023.05.25.10.13.28 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 May 2023 10:13:28 -0700 (PDT) Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2af2d092d7aso9104901fa.2 for ; Thu, 25 May 2023 10:13:28 -0700 (PDT) X-Received: by 2002:a17:907:3185:b0:970:925:6563 with SMTP id xe5-20020a170907318500b0097009256563mr2076202ejb.8.1685034310240; Thu, 25 May 2023 10:05:10 -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: From: Linus Torvalds Date: Thu, 25 May 2023 10:04:53 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Extending page pinning into fs/direct-io.c To: David Hildenbrand Cc: David Howells , Christoph Hellwig , Jens Axboe , Al Viro , Matthew Wilcox , Jan Kara , Jeff Layton , 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-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 1CD6C1C0017 X-Stat-Signature: bypezqxy3bpcbxuynq1np9tgx9mxwogf X-HE-Tag: 1685034811-665244 X-HE-Meta: U2FsdGVkX1/xImDETs1AOzFBC0d9klYFj1rUAnykS4wOU/z7dilQmBzCp3YBwXT1yfH0nnjgnwMCxqI81ZSwIAuUWWAQzY1tVmp7ZF4Cw0ddAL+c+OYLKH5o0hWkpNEUFKq2JGIaA86dUGTjq5ZJmdi78razrhMvnzQoKKaP+0aeVVrFlxtPE6MDymx7yZbELpGT/RBa7ENHpg1WMdZZ1rfDLvZlqcUU6ku+vIODJyB2FhwjCIbYEg0s5vRy5V6FPyR9pzVRUofJ8wKUkhk68vCySR3z0OdN8l9Sx75pdowP6l0s99ZnaSVSjUNrxM/vMrR0LUnT5mm6lGdw/xNhKyyOzUARX4BEQSvj0FDWD7DFgEKzTJlHC45qFiRdNXtGBNZJi2WV06tEFzDaB4xEyvgwuS442PWMF+jQtIyn21HKiek2U6azZXK7hzuppas7/2gQTw303MDj45/B3/FB9C/NFxKEg40PovEUocsXLJaTkdFT9kdcqlnuf0o298bQ7iky2BgTsc6PyIt3kej6s6LUXxbS2tIxY+VnNLbo77RhGs4B60MciDcjCxnYPGM2t0SRVxWJZIgmimi56ZsV38QuOzlPez3nQU6dVvxEDwz2S/9rHQFpw+PyiI20vQj/62dXAusZtYX5YtMIf7qGFvHdFIYM3wjthyrzfHXBzzyjKdNseeMnmwrxF5n0xjSuiwzp68swGOJ53/boovJhED0OjLSlmDUF7nlzN+x/1cW+9PonxI+/+mB6QhycO38bYwUtW4TOgjFjJfE5pD/j/5aYLvfYKKM4ckjUDTC5FYmYvWF4WYMjgiUPXzEps2TWAp3H0ljIFdemP0nSY4LdsHwfdRCIeqRyEW4cZwWzQ/hUJvo4CH8OgOLoACBIEiARh5bHEkr+VV24y+/bR+OCJ9wqS4CZ0D732jTbX0C1TG9CXYq0/M9Raht7MNKebw0Mvza12TDBx0qsX6InizY 71RqmP/c nWpxVImKICZGfRAp/vVwxwKMP0GBMiQR4J8qIGvgJG1sLLU9xVFnXihTIwqq0JHSnMZaHICCXIWmdavBgs5sNB7XEkb3EjetrPlXHyThlulm6H/k1A7RutbZOJytZdD+ppXEaK1USwKGI7jsxFx7CpKYDuPFULby7i6iaEX/oH0h+NECDzOEGCeyK3Rym9S3ftT0ARDcbDBARJEFmARdYGd26bTrFs0/P5XlRgvB13BKsh6IGZRiqNUwMPCQ0GGPXE3PoMBg+VzzwGuvJvU9ibEeK4shiVsSt/M8YZU92ekLFZ7h+LresobzMuqg6+ytvR3aP2t6f3igeW9WsCZ7IIVutmfVAcCEXOq3+eWaLk5JTDooDcnXToszWN7NsesriPqZmqjYKbej6SsClhP2DXe6AC3j2To3Y9MxLBiVg16UKPqY6vtRxRhlxxZcTagOpKpu3fl28g8UTzfPVsXApwdvopv/tnjA/jzYDsJrgfyuTOAmPBkvhKR4qgZ5BibuJzY8erqgDv7tst/IiNuu3w7+V5g== 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, May 25, 2023 at 9:45=E2=80=AFAM David Hildenbrand wrote: > > I think the correct way to test for a zero page is > is_zero_pfn(page_to_pfn(page). Yeah. Except it's really ugly and strange, and we should probably add a helper for that pattern. The reason it has that odd "look at pfn" is just because I think the first users were in the page table code, which had the pfn already, and the test is basically based on the zero_page_mask thing that the affected architectures have. So I suspect we should add that is_zero_pfn(page_to_pfn(page)) as a helper inline function rather than write it out even more times (that "is this 'struct page' a zero page" pattern already exists in /proc and a few other places. is_longterm_pinnable_page() already has it, so adding it as a helper there in is probably a good idea. Linus