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 7F3CEEB64DD for ; Fri, 11 Aug 2023 06:16:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F00AB6B0071; Fri, 11 Aug 2023 02:16:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EB12C6B0072; Fri, 11 Aug 2023 02:16:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D78DA6B0074; Fri, 11 Aug 2023 02:16:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C83356B0071 for ; Fri, 11 Aug 2023 02:16:26 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 98BFF1CA11D for ; Fri, 11 Aug 2023 06:16:26 +0000 (UTC) X-FDA: 81110814372.10.9197B8E Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com [209.85.217.41]) by imf19.hostedemail.com (Postfix) with ESMTP id D0CEB1A0015 for ; Fri, 11 Aug 2023 06:16:24 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=E2x0gdiZ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of hughd@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691734584; a=rsa-sha256; cv=none; b=p/OtCNPbIZDkwSLZ5vtQlYPJ9vy3hNIPmnFT5/ng3Jm695Ww1URf35VjSSoi+8CHz7nZXJ OpUAbnHGcUXNkuX2Cv57mZnwrlZEjbbzB6Gq/h88ST7BAViYFbWAi2u+GD+ZjGmYq1Xea6 OhPmLMzC6JrS9EF0V49ZrxhMyTNJLuk= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=E2x0gdiZ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of hughd@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691734584; 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=k63lmr8I7sqJPk2JhZZQWH3JdgVkDU1otw9D0h7AzuA=; b=1WQ5LtYN9/iMNXu59m+HZ1nDvi4Ep/MbEOdA7RvotDe5J6/aJ+ot/PTtpkEu+Ukf8ox/nQ EJoyHEQCl9SIrSlwd0AecnNVVkk9iEkYt5qOAyPm5ABJzd1xOF4xVIU8/y12l2RVSfZ36y AnWyJa6zn6Xb35+MdsjTQbVfGOSF2wQ= Received: by mail-vs1-f41.google.com with SMTP id ada2fe7eead31-4475df91bb1so690801137.3 for ; Thu, 10 Aug 2023 23:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691734584; x=1692339384; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=k63lmr8I7sqJPk2JhZZQWH3JdgVkDU1otw9D0h7AzuA=; b=E2x0gdiZ/pVqLIYLGDDCsoEUQDDNoRjtt/iz1R4NSiJbFmar3d8Hlx15JCkUvScQcI 9ShucdHVB0T9WfJex6c/wKRuJ8RgOs4dVHKsG8poxSCu9vn/Hx8hijITVVhvfSyKcCeM lKGgZQlmO4qUZ7jtmJs/1QXeru4VG46rfhrsf+mTagfiekkU4mrrlW0GCFgjEvGdkYMW mPrYc/hTApWZMhZs07bbywG9yZEZL99xflTrQXruEkM6bI1xaaBlMOj22kbfEoNDaGRu 4Ihw2fthsxGpUFQQVnWuwg+/BNfseTasvt4/GkWRvFCtyHnxZSu3P+9oeha1WPGZ6kvB JmPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691734584; x=1692339384; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=k63lmr8I7sqJPk2JhZZQWH3JdgVkDU1otw9D0h7AzuA=; b=HixTh8HraOpZI0uvAKqbnt5ih6uxiMR9PkqqT+5yzsE16WiclwQrZw5FnqnQet7v3l 1kd2/5MIPHov7wYJ/EHvXGrLJDGNmX5eG9sSB/DVUetDI2LHVyj79AtZGSVwHiGEtwM+ IdjmtqqmWTour/vENGfTuKgEnUEDuaoxUBz5XxwB6Lt6lv0H0su3G1YhM1xYUeLIdLMQ /139wfMIHIUtPtoA+5tSeWfI9maHPmOziwQKTx3ERMQO/z1oToN0YmxALG4MmNkEQC4R 39YCJB7l5xh6Y5de9CRQPyhFoGnpRGUUbY8ndmlkn2RjRPBq3u7WhoXy5Yeq6e5CqPu8 aalA== X-Gm-Message-State: AOJu0YyqqqNeViYHReP5z8FNH+PNu6cBxDMTObAuee2xahbC9dHksnIN AVRsUiRkr7uqizoJQxF+ymnveA== X-Google-Smtp-Source: AGHT+IGKZO8zd/JD5KljLPxbp3udF/OyhU30sxa+eu8czKTLWgnV1zl64yRaOhp2KRRBQ4LGpsIRfg== X-Received: by 2002:a67:ffd1:0:b0:443:6afe:e842 with SMTP id w17-20020a67ffd1000000b004436afee842mr592456vsq.35.1691734583817; Thu, 10 Aug 2023 23:16:23 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id o124-20020a254182000000b00d1f0204c1b6sm770452yba.27.2023.08.10.23.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Aug 2023 23:16:23 -0700 (PDT) Date: Thu, 10 Aug 2023 23:16:20 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: "Darrick J. Wong" cc: Christoph Hellwig , Hugh Dickins , Christian Brauner , Andrew Morton , Oleksandr Tymoshenko , Carlos Maiolino , Jeff Layton , Chuck Lever , Jan Kara , Miklos Szeredi , Daniel Xu , Chris Down , Tejun Heo , Greg Kroah-Hartman , Matthew Wilcox , Pete Zaitcev , Helge Deller , Topi Miettinen , Yu Kuai , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH vfs.tmpfs 4/5] tmpfs: trivial support for direct IO In-Reply-To: <20230810234124.GH11336@frogsfrogsfrogs> Message-ID: <5d913a4-a118-1218-25f2-32709b3e618@google.com> References: <7c12819-9b94-d56-ff88-35623aa34180@google.com> <20230810234124.GH11336@frogsfrogsfrogs> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D0CEB1A0015 X-Stat-Signature: bcnc8s7ffb8xqr8fzqka87437pkz946p X-HE-Tag: 1691734584-111759 X-HE-Meta: U2FsdGVkX18xFCDxTTvVx8vugQSdjrQpVKJBrnETmzKS5sn82Ly+0p1frcD29sQ2Xh83OCGmEud/8yG2BiK1LHeIleiI+sQ2NgHpRgSjDBcVGJnB2jygPg1UY93SWS3qxAntgLNgrE+XJTKNQ4j6nstSu7oaL4pAMbHdpGRzeQTAVdOzaA11Z6Mc1WUBOxtajHj0LaX+QVkcZ53ghReSJ0EXSFE9s1BcUEyYhfE50JTmtHXHL2UpgpE1s2XF7TZGq50fTJ0H98VuyDS/kxs5ZdIuSIrfQR4b9pgsaDI6fVSsEBSGaVqVy2DSeEkOAZqWcj294/gEVY2341DT1u2d2X9aba00QuTFNS8/bEj80iOSEG9lzEwjuD+gr/LTgcQe1YZFeNrN9SGqFQPVvslnr/68Lce72NRA1MGq/jqtbPLH7mDv+40YZnJ/3bcbCObAu/xEjQOqqKQxDvx+Gb9ZWjRAj85uJ5U5tDHEn5XVNM7CnyRsUFKixG6hXuz5i+cHUsDdcAe0XgdXwxiyrf3D/l0zSzuo4etj880HCqe2LlDPr8svzdK70dNngBFMvskTbKRHZCC3xZmpjnXPmxJFdK64LBv8CMisfBcPdB0MGlorKnzuSWIAbJWGgU/eDuX2qktKAI2D4L7plfen7d/bebnCFTV+dWaJ2lPr34JPbPTMM8lIpBcQEH1q7s/5pVktCAo5C7phDMf2o/KDofvD/HGg0wpZ1I9xW4tUzSNH7xSynX+w+IWKqvqMMgREuf8D9W+US2wQZI9Vs/Hb3CtozgugqsPQLRTnWwll+A00aflWjO4g4qGWlpIG6fTIcEOXAe6QZ2zeh1lUwzhlV09FzD4Agc91Lp2MVVc//9VW4Rl/15YUDk/xQm0ACPO9pLCVNwDKBr4ZAO8k1VW2B1qPI+CsHwAp0sZKjTCxFBWxCuc4WIbL439F8eskiYq8t0Dz+rJXiyuoKtYopsJaNwT 60vFi/eF KfgaY8wdtDYDFlE4N3pSdVrxKw8odVhD51tOk8Ft9NjXntA0zKZTFzEn3CbSayLW4MD1ARCLCV4ioC+JFdnYVcHqdegG3C4hiMkHQuqGOVUZwygQQS9g0Q8WTiVjp2LfS36/sV7BU/GDfuUJCLyHZmfU+NIBj0VY59k3p3XzHATda76W8XjJDGNayGEBfmVB3/aeBmEOfYwJnQkJip7RTRMD9FjzDWEHWOQPrYjdfJt3uUaAU5SbIWfvKK1P7ssylpr58kQ37PZQ3PBlkn4+TRLHSLW/YC0LU3BkX8Fu4zZ/BA0x92vcVqw7FFuo7orXqFDm9W+vxP+ZOmxveOhH4Pbq9+EXBuG1CF+5QftkYjZ8DaiPEfwj6UWQO4VEgWGXuLtjG9lj3JN5wtmM= 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, 10 Aug 2023, Darrick J. Wong wrote: > On Wed, Aug 09, 2023 at 06:41:17AM -0700, Christoph Hellwig wrote: > > Please do not add a new ->direct_IO method. I'm currently working hard > > on removing it, just set FMODE_CAN_ODIRECT and handle the fallback in > > your read_iter/write_iter methods. > > > > But if we just start claiming direct I/O support for file systems that > > don't actually support it, I'm starting to seriously wonder why we > > bother with the flag at all and don't just allow O_DIRECT opens > > to always succeed.. > > I see it differently -- you can do byte-aligned directio to S_DAX files > on persistent memory, so I don't see why you can't do that for tmpfs > files too. Helpful support, thanks. But I didn't read Christoph as unhappy with the granularity issue: just giving me directIOn to FMODE_CAN_ODIRECT, and rightly wondering why we ever fail O_DIRECTs. Hugh > > (I'm not advocating for letting *disk* based filesystems allow O_DIRECT > even if read and writes are always going to go through the page cache > and get flushed to disk. If programs wanted that, they'd use O_SYNC.) > > /mnt is a pmem filesystem, /mnt/on/file has S_DAX set, and /mnt/off/file > does not: > > # xfs_io -c statx /mnt/{on,off}/file > fd.path = "/mnt/on/file" > fd.flags = non-sync,non-direct,read-write > stat.ino = 132 > stat.type = regular file > stat.size = 1048576 > stat.blocks = 2048 > fsxattr.xflags = 0x8002 [-p------------x--] > fsxattr.projid = 0 > fsxattr.extsize = 0 > fsxattr.cowextsize = 0 > fsxattr.nextents = 1 > fsxattr.naextents = 0 > dioattr.mem = 0x200 > dioattr.miniosz = 512 > dioattr.maxiosz = 2147483136 > fd.path = "/mnt/off/file" > fd.flags = non-sync,non-direct,read-write > stat.ino = 8388737 > stat.type = regular file > stat.size = 1048576 > stat.blocks = 2048 > fsxattr.xflags = 0x2 [-p---------------] > fsxattr.projid = 0 > fsxattr.extsize = 0 > fsxattr.cowextsize = 0 > fsxattr.nextents = 1 > fsxattr.naextents = 0 > dioattr.mem = 0x200 > dioattr.miniosz = 512 > dioattr.maxiosz = 2147483136 > > And now we try a byte-aligned direct write: > > # xfs_io -d -c 'pwrite -S 0x58 47 1' /mnt/off/file > pwrite: Invalid argument > # xfs_io -d -c 'pwrite -S 0x58 47 1' /mnt/on/file > wrote 1/1 bytes at offset 47 > 1.000000 bytes, 1 ops; 0.0001 sec (5.194 KiB/sec and 5319.1489 ops/sec) > > --D