Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp769137ybx; Wed, 30 Oct 2019 04:51:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqy9YVZLkEcMZ0/1YsxmCs5OuB88r8LE447vuavKSuixyWubgzbC7EzoHne3hgNqHDwUN+rA X-Received: by 2002:a50:e841:: with SMTP id k1mr31368408edn.280.1572436299593; Wed, 30 Oct 2019 04:51:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572436299; cv=none; d=google.com; s=arc-20160816; b=dLZhnrsRm1dWIldPWZvoUdlj4UMwV9z5IhrybzFJuz+Ig4APjzSdV5PX1St/9qeY/S iPNvHz9rDaXB9YmW6I2w9egVw4powsTWqGL/Lqn27eRH5qplPtwSoFg+sYedtAYRYvM1 /PiTMeOq32pzW10JdI3QOdA3S1uPgH+hHrdLjqkR4MiAXorULXW+OXypFfDxMduqjd5o bLC22aKdr/ot0tFqPV0IHWiSIWt1Rmp4D9b5bMyKUOWTe6ApFIP6Xyu/SlEfTjaCgCFe yJqD7W91xa2vSElR1pQzexXc2Asbq2M4uiJZgTXeKnye8KIIST1X2hry0qMMHojYEfAf +89w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=x8OFyMlOaw0FaJBmlIqJKXR7+INFq1ef8JhR58IVobc=; b=m7CnLR/DG+VaxQazDEIZfqIrDXDFbdU14Z2o/730DC7Qv+iZ5PWpP6R95JoQkA+S6W yiLzXgUE6gen2kWaAcqWdOknEP6Eg/WLUZYhhty1Abp8lo6QbhbTTUgvLGTlvH/E476G +UEbmb5JqEIHxJuSMweDg0EdQyOzxhz3AEG5li/QtBPw4U7MRrhncxxp/Qrn2oIVVJYt asdxRoHR9oF+3VZtO1L7IMMG5NWnTXar0pySvdvNA7cGMGIoDomrnCW1+LRrb+Mlj4yr SvnmFQVefaaQbaf8xu6LbMrsvelUHSZZXondp7JUl7LcH407P6E1fhKlDpSvbfY9W/Sf rufw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l27si1349353edc.358.2019.10.30.04.51.15; Wed, 30 Oct 2019 04:51:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726222AbfJ3LsX (ORCPT + 99 others); Wed, 30 Oct 2019 07:48:23 -0400 Received: from mx2.suse.de ([195.135.220.15]:58516 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726065AbfJ3LsX (ORCPT ); Wed, 30 Oct 2019 07:48:23 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 7A09FB147; Wed, 30 Oct 2019 11:48:21 +0000 (UTC) Date: Wed, 30 Oct 2019 06:48:18 -0500 From: Goldwyn Rodrigues To: Shiyang Ruan Cc: linux-xfs@vger.kernel.org, linux-nvdimm@lists.01.org, darrick.wong@oracle.com, hch@infradead.org, david@fromorbit.com, linux-kernel@vger.kernel.org, gujx@cn.fujitsu.com, qi.fuli@fujitsu.com, caoj.fnst@cn.fujitsu.com Subject: Re: [RFC PATCH v2 0/7] xfs: reflink & dedupe for fsdax (read/write path). Message-ID: <20191030114818.emvmgfgqadiqintw@fiona> References: <20191030041358.14450-1-ruansy.fnst@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191030041358.14450-1-ruansy.fnst@cn.fujitsu.com> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12:13 30/10, Shiyang Ruan wrote: > This patchset aims to take care of this issue to make reflink and dedupe > work correctly (actually in read/write path, there still has some problems, > such as the page->mapping and page->index issue, in mmap path) in XFS under > fsdax mode. Have you managed to solve the problem of multi-mapped pages? I don't think we can include this until we solve that problem. This is the problem I faced when I was doing the btrfs dax support. Suppose there is an extent shared with multiple files. You map data for both files. Which inode should page->mapping->host (precisely page->mapping) point to? As Dave pointed out, this needs to be fixed at the mm level, and will not only benefit dax with CoW but other areas such as overlayfs and possibly containers. -- Goldwyn > > It is based on Goldwyn's patchsets: "v4 Btrfs dax support" and the latest > iomap. I borrowed some patches related and made a few fix to make it > basically works fine. > > For dax framework: > 1. adapt to the latest change in iomap (two iomaps). > > For XFS: > 1. distinguish dax write/zero from normal write/zero. > 2. remap extents after COW. > 3. add file contents comparison function based on dax framework. > 4. use xfs_break_layouts() instead of break_layout to support dax. > > > Goldwyn Rodrigues (3): > dax: replace mmap entry in case of CoW > fs: dedup file range to use a compare function > dax: memcpy before zeroing range > > Shiyang Ruan (4): > dax: Introduce dax_copy_edges() for COW. > dax: copy data before write. > xfs: handle copy-on-write in fsdax write() path. > xfs: support dedupe for fsdax. > > fs/btrfs/ioctl.c | 3 +- > fs/dax.c | 211 +++++++++++++++++++++++++++++++++++++---- > fs/iomap/buffered-io.c | 8 +- > fs/ocfs2/file.c | 2 +- > fs/read_write.c | 11 ++- > fs/xfs/xfs_bmap_util.c | 6 +- > fs/xfs/xfs_file.c | 10 +- > fs/xfs/xfs_iomap.c | 3 +- > fs/xfs/xfs_iops.c | 11 ++- > fs/xfs/xfs_reflink.c | 79 ++++++++------- > include/linux/dax.h | 16 ++-- > include/linux/fs.h | 9 +- > 12 files changed, 291 insertions(+), 78 deletions(-) > > -- > 2.23.0 > > > -- Goldwyn