Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4278246pxb; Tue, 2 Mar 2021 10:54:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJxFiuDMaE6gzRbmRf1ogjFeWDxNtBDvbVXntZmJvtVYR6MmCafLFVMb0JTLOyjUzti/cZ+c X-Received: by 2002:a05:6402:22b5:: with SMTP id cx21mr12081770edb.27.1614711247739; Tue, 02 Mar 2021 10:54:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614711247; cv=none; d=google.com; s=arc-20160816; b=rnEX7Lf+/p/XZzOAwzyIQt9Y1krUYYiqzvNg2611+GrooPD/Di0urZJKRb/m4/1TUh XXRLy7LlwkUwbOLHXktd/wOF2NnzoxwhTPTjSgY9VSTcMxxYmBgVGuFXbT0Z9RIo/89Z x1+jtbdi9LRke89kAxfoTbXogSCPiSFjXNbqzTXQOSMjv5t6KkxDhkjhJ0rzUnBkmMi6 v635hXjsl7ZPRcOcefF6U6ocpog0NPLSAdEtLQUbCOqhh/br0dD6a7FXwlkc5CABOTnJ xAddp+EAo4Rl7D2Q8i5wrwTTpXwp5z+L6q2P/MaHgGX8325kijvXEGJQgHLB8lq1+Gmt fwjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=QHkKhS85lTO/1ZkryMnHdjoXWEHU3orWJwuliOPijEg=; b=TZ6r6DJ09RST5FIqhoTN2tc98OYvwP66+8vsATZtyYn0t7Mqk7Rvs4NPEZj17SAC6j KsnwBh0XdOrojZI2gyFt2MAtgM4+npAiUTSyJ7onJtg39hNYm9qOggyJR/zihI3u5kUb OfC+NY9zHPcZSak9L3x5r0CKeL8rvpmDAuCY0gwSHvjdVB3naYpf2KtlOgi64obPlMqP MWr7Mt/f3yKo+f60zqVd6F26reg9vyLZL5wZyQw63ARRguYrralcdemw2quBb6KJxcgX khVwOPoH4vJiSIDRWHc5oZhMUziSZeo6RC2sh1WTfGO63jYFlB1HneO1XM2bJMTXdwuV kYaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=un1zylhU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r9si3794206edy.4.2021.03.02.10.53.44; Tue, 02 Mar 2021 10:54:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=un1zylhU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347595AbhCBFds (ORCPT + 99 others); Tue, 2 Mar 2021 00:33:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1574441AbhCBDfv (ORCPT ); Mon, 1 Mar 2021 22:35:51 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC34EC061794 for ; Mon, 1 Mar 2021 19:33:38 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id s8so23517770edd.5 for ; Mon, 01 Mar 2021 19:33:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=QHkKhS85lTO/1ZkryMnHdjoXWEHU3orWJwuliOPijEg=; b=un1zylhUbUa9CBvR67wBcwPZvQL0x4JmNFowwQWRDdGYxu6J0OgWJEqn+3PtBd+4QC cqbNNIeSXYA8G6vSnR2uWbYjsgGQb5v/h7oL7jXxuD/VBFphR/pct3mB6r/X2pupGg/4 SX0eqVTO0JkgI1bmn9LswXNbdaya2hfY4NIFZphT51UPaWZdFK1euP4fmMjsJ/0gWvHH 5MQKmxtzMf+qFdDzOGUkl/xaAxZrFsRaD+xCnHywqcc6II2p9p2dKXMlqjkktBRuwj7O L/YYyNBuR6P8AD/3Fbh94FYwxPajGC5dQCIpOaLmcM/6zN0em2h1wm4dnam+wALgryIF VUzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=QHkKhS85lTO/1ZkryMnHdjoXWEHU3orWJwuliOPijEg=; b=dFzxmtVPk+PLFAgcuV9A3I/fyUZW2ilN6KwL9XEQFalV55LdtiMfC7Yw8LV/Mnd66R XYgqr0mLnSdy3eWbRmGs0vA5UzKTbfYlkJ9TfspDg0Kk0PJ6ZpTnYvjElUWwBPV1kBv9 xSgu3KuFkyIiCu9al0+I9Gp5LrJgVfxzqlpIZe/79wKgy+1S9Cj888G1k66pZeKInTf3 0J2W6cM80sAPshLVKCVG5mEIqDACeJn/Z4V/RTgT343matWwGFb8pVjgMrggPGiAHvnn qa2Pcaq8jZ1zxnEXZNZPv9U8RxSV7HyS1e2oxeZSgVgqw8Xb343AKoUXgAwwRxfQb6bS Vdmg== X-Gm-Message-State: AOAM5320htKgus2jpt19cUelnBtAizk1MOF7Si7tmhMTMEhy9+P/RiEk y9Nikaxn/mRaV9RtB9+1jtHBSoMJyRUpx44SCJBeoA== X-Received: by 2002:a05:6402:1152:: with SMTP id g18mr19307291edw.18.1614656017366; Mon, 01 Mar 2021 19:33:37 -0800 (PST) MIME-Version: 1.0 References: <20210226205126.GX4662@dread.disaster.area> <20210226212748.GY4662@dread.disaster.area> <20210227223611.GZ4662@dread.disaster.area> <20210228223846.GA4662@dread.disaster.area> <20210301224640.GG4662@dread.disaster.area> <20210302024227.GH4662@dread.disaster.area> In-Reply-To: <20210302024227.GH4662@dread.disaster.area> From: Dan Williams Date: Mon, 1 Mar 2021 19:33:28 -0800 Message-ID: Subject: Re: Question about the "EXPERIMENTAL" tag for dax in XFS To: Dave Chinner Cc: "Darrick J. Wong" , "ruansy.fnst@fujitsu.com" , "linux-kernel@vger.kernel.org" , "linux-xfs@vger.kernel.org" , "linux-nvdimm@lists.01.org" , "linux-fsdevel@vger.kernel.org" , "darrick.wong@oracle.com" , "willy@infradead.org" , "jack@suse.cz" , "viro@zeniv.linux.org.uk" , "linux-btrfs@vger.kernel.org" , "ocfs2-devel@oss.oracle.com" , "hch@lst.de" , "rgoldwyn@suse.de" , "y-goto@fujitsu.com" , "qi.fuli@fujitsu.com" , "fnstml-iaas@cn.fujitsu.com" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 1, 2021 at 6:42 PM Dave Chinner wrote: [..] > We do not need a DAX specific mechanism to tell us "DAX device > gone", we need a generic block device interface that tells us "range > of block device is gone". This is the crux of the disagreement. The block_device is going away *and* the dax_device is going away. The dax_device removal implies one set of actions (direct accessed pfns invalid) the block device removal implies another (block layer sector access offline). corrupted_range is blurring the notification for 2 different failure domains. Look at the nascent idea to mount a filesystem on dax sans a block device. Look at the existing plumbing for DM to map dax_operations through a device stack. Look at the pushback Ruan got for adding a new block_device operation for corrupted_range(). > The reason that the block device is gone is irrelevant to the > filesystem. The type of block device is also irrelevant. If the > filesystem isn't using DAX (e.g. dax=never mount option) even when > it is on a DAX capable device, then it just doesn't care about > invalidating DAX mappings because it has none. But it still may care > about shutting down the filesystem because the block device is gone. Sure, let's have a discussion about a block_device gone notification, and a dax_device gone notification. > This is why we need to communicate what error occurred, not what > action a device driver thinks needs to be taken. The driver is only an event producer in this model, whatever the consumer does at the other end is not its concern. There may be a generic consumer and a filesystem specific consumer. > The error is > important to the filesystem, the action might be completely > irrelevant. And, as we know now, shutdown on DAX enable filesystems > needs to imply DAX mapping invalidation in all cases, not just when > the device disappears from under the filesystem. Sure.