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 E829FC64ED6 for ; Mon, 27 Feb 2023 00:08:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3576B6B0072; Sun, 26 Feb 2023 19:08:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 307806B0073; Sun, 26 Feb 2023 19:08:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CEF36B0074; Sun, 26 Feb 2023 19:08:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0E4236B0072 for ; Sun, 26 Feb 2023 19:08:06 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id AB54AA03EE for ; Mon, 27 Feb 2023 00:08:05 +0000 (UTC) X-FDA: 80511134130.03.3EE9DE8 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf08.hostedemail.com (Postfix) with ESMTP id C0E15160015 for ; Mon, 27 Feb 2023 00:08:03 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=fromorbit-com.20210112.gappssmtp.com header.s=20210112 header.b=d+9lTc6+; spf=pass (imf08.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677456483; 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=2MTXMIlz/dV0iBnAtnBofs7P8vQ/S8XF/YLaf2+qt2M=; b=T5YbgdMpEaaf0IJGKMYJ57WsWvJzGx4XXbLHvGOxNh6T+gdfaEtRCJhxLWG3lzk6ZaxEiq z1FJkhfJ4ZTQNJs6FIA02I3E3UiHlTHppg63TNOFkQI43bd/RuC0EjM2yvWRw6bsed2FO5 2OIlVCiBS3grK7ltUF0eRKAgsHIrgjQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=fromorbit-com.20210112.gappssmtp.com header.s=20210112 header.b=d+9lTc6+; spf=pass (imf08.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677456483; a=rsa-sha256; cv=none; b=ceBq0P6a5m2Jbrela1xllIlhe23wzAPnMuwpcfpYIjGdIQ7eE12FW1mWTZ2UJtCRohuNVH bCTLRS16xeuDNiGaUnQvDe7p48SJy3rHcz65HmLdiiiZs7d6fe0pwOwfGndmS3Xd26Rdj1 i7JpZAgUEYNoCTvKXysyJxQOu5BKr1g= Received: by mail-pj1-f48.google.com with SMTP id y2so4360974pjg.3 for ; Sun, 26 Feb 2023 16:08:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20210112.gappssmtp.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=2MTXMIlz/dV0iBnAtnBofs7P8vQ/S8XF/YLaf2+qt2M=; b=d+9lTc6+OUhmOYiqKJRCk50VavmXC3N+7KWcPckDoUDZ7l9ArueFObChf7lgiN4W3O rDBuiNPw/HIcX57OdOLNhgHiFmcGwnD79/SOOGcwtymHix3+X/XzEHRyw3zpv0z/P5WG Ram63RCw70PMOGgNfVW9Nq497QRvJV8T+VLX001rXCzg1c+MucbcNx8ml1LkUFnLgjvg OOfwSep0SdFwhfpoXtZVUgN+wUlAK8I5FqdhYfyiD6d5Gnsv/nPEDYExpqdBilqAWdV1 r0eDZGj71Ek7FH3jpx5YtBCAt9f6S1gMLqTLvzMjt5HnIeL1DnKVwIb1SpLvDiD/Cm35 XC/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2MTXMIlz/dV0iBnAtnBofs7P8vQ/S8XF/YLaf2+qt2M=; b=mNW7xfj4qwcH6zojfii6mbl2yiACsZdevhqqzyG3duWERpI22+LixbEPcie1MzFhp7 uEPAD4x00uT6KZ7et4rDsl20aVoVNkUSi3NjKH5LZrrOKg6IoKfhn4sNKrvWh9KTS3Q/ 4vpWfkntKcHtlhTICHet8nzPupz19vofFMm5tRw+vcxsxPoFdJ1ejXCkFyGwe12PHN13 w46zx4UAxqfdvNRdFv3dNoULkMx9pUad6WluAQ8vnacE/+S2Ukxs0YlGjfHW+85Pm+rN nmf5Wx5+dKRM9pxrFnr/sGeKePaLF5FDdprQKgihmJwOyzORvTs7DnhcBzPCQnNDSwow GPiA== X-Gm-Message-State: AO0yUKUjxdvv1c2nP5zUseLzfN9vFomRrzhf4YjK7mWP+fMsGrX3jzsO eO183B6reMMee8JJOjLVkzKPDQ== X-Google-Smtp-Source: AK7set8+PnfY2B8V9G4CP2Lj8RDaQp+dmHVQXgLREsohum+UH1nqFrxnkjraneEwoMXVj1dLQJOeqw== X-Received: by 2002:a05:6a20:3ca6:b0:cc:8e18:420f with SMTP id b38-20020a056a203ca600b000cc8e18420fmr10210968pzj.35.1677456482521; Sun, 26 Feb 2023 16:08:02 -0800 (PST) Received: from dread.disaster.area (pa49-186-4-237.pa.vic.optusnet.com.au. [49.186.4.237]) by smtp.gmail.com with ESMTPSA id k26-20020aa790da000000b005d6dff9bbecsm2979685pfk.62.2023.02.26.16.08.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Feb 2023 16:08:02 -0800 (PST) Received: from dave by dread.disaster.area with local (Exim 4.92.3) (envelope-from ) id 1pWR3f-002Wx8-CQ; Mon, 27 Feb 2023 11:07:59 +1100 Date: Mon, 27 Feb 2023 11:07:59 +1100 From: Dave Chinner To: Shiyang Ruan Cc: linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, djwong@kernel.org, dan.j.williams@intel.com, hch@infradead.org, jane.chu@oracle.com, akpm@linux-foundation.org, willy@infradead.org Subject: Re: [PATCH v10 3/3] mm, pmem, xfs: Introduce MF_MEM_REMOVE for unbind Message-ID: <20230227000759.GZ360264@dread.disaster.area> References: <1676645312-13-1-git-send-email-ruansy.fnst@fujitsu.com> <1676645312-13-4-git-send-email-ruansy.fnst@fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1676645312-13-4-git-send-email-ruansy.fnst@fujitsu.com> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: C0E15160015 X-Stat-Signature: 7cpcp5qo6i4w4k1qje6y1bahc36bmkzy X-Rspam-User: X-HE-Tag: 1677456483-29419 X-HE-Meta: U2FsdGVkX1/tXihmTdQLdrVU2UwmSW1z1OX0gzLGHdvcnlYyCYrz9HBqDfWsa71q1wUTP0NgShgAUDVd8h51jCjpXcT29XTTM1Lea1XAy3KII3hunkVb2stbqfRLFM0lFjd85pAHF5gV95WEr5v7Ni9Vu/7x8CwS3H1gKQa/xgXOWWIRex6iOpakDfRil3Ve6JPUWHfudfwN4k3NlenOZjz6ukgxgiBcpKe2gyM4dMWO2aGPhUYICoHsrMOfqwbYQdHfR4uUiZVwoT0yQhbQuap/fcQ8zlg6tXEmg4VAqCKT65ajjLNnwxN78//zeSF/aEnO+cK6L/U5/FCs1NqzwvLJrzLNQKy47jH2UP3h3Os8sz3kzM0ZnXM8Gyq77Hje9koJJLJGEsxx7/wDCbujfXmfgrXabk+QKO/s97P/BDJBwYm+A+Nz+5QjsGOr17a1pBu/wQWP91HrZuchce+lja2y3WtfoWucM7kqTFdAdID9FPmAngfY/GeDz8tkhSxysVfmfZyiD+5M7tNd3b+WT7izYOkouuNUVvdFtW/tcGA2YbGGiliabuIQmOfOA/fsYfQ1YRUwqeqvMz35DdaP8qObQwBAF/0Vi35VwfdsFYiIBHzmowchtSyLzkszJKYbm9GyQXdHZ550e7gL9OXCNR+LtvLMfDHzZPDdbiCz+EfFmzVWIr8qhb3vmr/fLNbAwaROtb7w2ozna54dXQJK8qEshkIw1lTIvvhqTNkmEVHdVgW55R6Jp2NEr27J3W+KpwFSABHdNMc8kjeIGJn6OhzrWzPcmXq8gIp/c3T7yNFVBFrQoLfJf16qIaAhZvA5gmq7W5OUxz3Zh+KGZEyWsY3esgEWxVTCHy7lvHw9lqte1NBv2jfZ3qH4d0rBDnXwt+2Nlmg77TQLsMvMOwCQT9Fco16JwBZQe4HmTWV4cC7S37qScEVxsM+4z20sKOCfQaajv4PLOlublLxxK9x 6cpRCWQZ qtdPyPxCTY/497KN2qHE3BHrB/qqW/G3g3cUUQD5/LgHa6lDn8cAouuw83gvYQ9IWts12b/l3s88nqnqR+IXql4xlwDNaNK1Xh6ph5TAZr9QnR4jb0NrAfCoPtIbmGZh2Owh3j9lAbtTs3Dw72lLLFm+KKRVugUz8czJTP9/qJFuA8ZxR4nyzn5EHxIEBUazX6C5X1QQE/Di0unciujBpODut8KezRoYJlBlWobknnxI0AIFZw6fVO2Xbj29KiOVuhPQHsT3ZrNByH45K4nD4YMDWQKLygW8lkmfyNkgbGm1OYXz+/2306aTbuFGegF/yVsKO6vpBzdYViia9TWgtqp53rDshGCRj1s8dvCQHvmfydv6TUZbMBgzZLdqCqEt39z77HOgPqvX0aoHeN0HASOJRWRa8C1DiPYIt65StDZe49wFfaBWCZnP5l1kjiLLk7nur5ktu6TURlpp0w408VJMbbgQqzvdTUn8UevrAGWrB4wDTiFsHZDLfXpYvNKRN4MhC2bK05Gq8/P0CWOJGboDxI/Zo3KmuR+A3AynHumleYf89lh/f48JG0aNnJQfTXRKNfGzAD9quBVrPt0uaWYv6aWgcgIVJNeEGzShyqmdQOAg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Feb 17, 2023 at 02:48:32PM +0000, Shiyang Ruan wrote: > This patch is inspired by Dan's "mm, dax, pmem: Introduce > dev_pagemap_failure()"[1]. With the help of dax_holder and > ->notify_failure() mechanism, the pmem driver is able to ask filesystem > (or mapped device) on it to unmap all files in use and notify processes > who are using those files. > > Call trace: > trigger unbind > -> unbind_store() > -> ... (skip) > -> devres_release_all() # was pmem driver ->remove() in v1 > -> kill_dax() > -> dax_holder_notify_failure(dax_dev, 0, U64_MAX, MF_MEM_PRE_REMOVE) > -> xfs_dax_notify_failure() > > Introduce MF_MEM_PRE_REMOVE to let filesystem know this is a remove > event. So do not shutdown filesystem directly if something not > supported, or if failure range includes metadata area. Make sure all > files and processes are handled correctly. > > [1]: https://lore.kernel.org/linux-mm/161604050314.1463742.14151665140035795571.stgit@dwillia2-desk3.amr.corp.intel.com/ > > Signed-off-by: Shiyang Ruan ..... > --- > @@ -225,6 +242,15 @@ xfs_dax_notify_failure( > if (offset + len - 1 > ddev_end) > len = ddev_end - offset + 1; > > + if (mf_flags & MF_MEM_PRE_REMOVE) { > + xfs_info(mp, "device is about to be removed!"); > + error = freeze_super(mp->m_super); > + if (error) > + return error; > + /* invalidate_inode_pages2() invalidates dax mapping */ > + super_drop_pagecache(mp->m_super, invalidate_inode_pages2); > + } Why do you still need to drop the pagecache here? My suggestion was to replace it with freezing the filesystem at this point is to stop it being dirtied further before the device remove actually occurs. The userspace processes will be killed, their DAX mappings reclaimed and the filesystem shut down before device removal occurs, so super_drop_pagecache() is largely superfluous as it doesn't actually provide any protection against racing with new mappings or dirtying of existing/newly created mappings. Freezing doesn't stop the creation of new mappings, either, it just cleans all the dirty mappings and halts anything that is trying to dirty existing clean mappings. It's not until we kill the userspace processes that new mappings will be stopped, and it's not until we shut the filesystem down that the filesystem itself will stop accessing the storage. Hence I don't see why you retained super_drop_pagecache() here at all. Can you explain why it is still needed? -Dave. -- Dave Chinner david@fromorbit.com