Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp193806pxk; Wed, 16 Sep 2020 23:52:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNAxG+K0q/DLFCSLU6J/EIbkAOpmvjiII933k6N+K9N0joH9thfreH9azhDU1Z2sUd+Q55 X-Received: by 2002:a17:907:444f:: with SMTP id on23mr28472907ejb.392.1600325539199; Wed, 16 Sep 2020 23:52:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600325539; cv=none; d=google.com; s=arc-20160816; b=l1w19NvOHdZZX0nPiFdupeuVfYuDQWj88xRyEbK2/3eWiZu3r0riV5WDzr4KxxIr+s ZQa1ZulcNgdmXs5HI4FqfvuCHKnduYqyaGvtArgll8RZxjJAjCjP2Ne+qnnO3gsLeyFd G7Us9bjd/LReCB2aAwwAZGT8XQ4Fp8cJShMp/R1Gy6wDERMz+XtJmaC1mL7BFlmGVW+w f7re1PssjorTu01gyY3fbt7j2J2z5breu2phmsPSLxvM5gp0KpnUhEiDqjjyV8gp6h2l pYfnQgreq1kAdgNlnkhxc7yxrAib+cvr4V89CHjelXFmLYEKKSdORYw3kyddxSH0ZHQR iYmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=FT9kKWqO44LtdODqEL2MRar9ou6XSVxG66enGGgs8Es=; b=DTveV+q4yEVBK7d4P52vKItIL5hIaL7gtFW301pn/36X7nIvcD0T1XAeX2cXuaP/t8 clLuA7DSaYDUNc+a9oyRgGMWj/FAx5WiCNYgBqZASAZpbaEiQoUjBMB8++L2jCaNXmUW 2T36/MDxcXqAZ1lqcsIhHcWhyFVRImEVYs8NtBhloSZSwdD4Lr0MBs4bflvr/UbYylgc ZZEZVPi5OshnZrfHw8SmuQ3ALgd4lWSL2Wy9swCZQvQWOUrg1uJfecsX9LHNVhtSL8aS WmOiQ0+GorTlCd9EWipmPNMjoZx/CK1EvSj/mXHgmiVP8zmxE3ev1vbfP6ZlHEBcZDZH l7YQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=g5CcHwam; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r8si13960828edw.288.2020.09.16.23.51.54; Wed, 16 Sep 2020 23:52:19 -0700 (PDT) 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=@infradead.org header.s=casper.20170209 header.b=g5CcHwam; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726199AbgIQGup (ORCPT + 99 others); Thu, 17 Sep 2020 02:50:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726106AbgIQGup (ORCPT ); Thu, 17 Sep 2020 02:50:45 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBAF5C06174A; Wed, 16 Sep 2020 23:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=FT9kKWqO44LtdODqEL2MRar9ou6XSVxG66enGGgs8Es=; b=g5CcHwamwpXA0o1C6qQ9TZ56eP VOarKxr3hUyo+hJpsUhl01pWk1xTjBiFdw+lBU55OAClpb1VcZ8EEikff0FSz8RJJy1MCNTY80Rbb M8JVGM8OzPsNYvf1r6H7nZQGwtF3LORlpwgMHWiUGk4nnf9RmoNfCDEcrX6/VM2bhzCVnm23CXHLh vsbapnZKgfigwTxcdVp8K9LYMBKCcJQy5+8V5ATsTk1eQ/Hrs5II0+RfkZjMuZeKV/HTowP9yGvM+ e15KNpMXlQ2UT1mbVV93jxwsSVV8yCPQozn32YNC4AReBIWmF0f+XXjnF/IAuf1q7Y8/BrIztF/CB AETmfowA==; Received: from hch by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kInkQ-0003E4-5e; Thu, 17 Sep 2020 06:50:26 +0000 Date: Thu, 17 Sep 2020 07:50:26 +0100 From: Christoph Hellwig To: Dan Williams Cc: Mikulas Patocka , Linus Torvalds , Alexander Viro , Andrew Morton , Vishal Verma , Dave Jiang , Ira Weiny , Matthew Wilcox , Jan Kara , Eric Sandeen , Dave Chinner , "Kani, Toshi" , "Norton, Scott J" , "Tadakamadla, Rajesh (DCIG/CDI/HPS Perf)" , Linux Kernel Mailing List , linux-fsdevel , linux-nvdimm Subject: Re: [PATCH] pmem: export the symbols __copy_user_flushcache and __copy_from_user_flushcache Message-ID: <20200917065026.GA11920@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 16, 2020 at 10:40:13AM -0700, Dan Williams wrote: > > Before nvfs gets included in the kernel, I need to distribute it as a > > module. So, it would make my maintenance easier. But if you don't want to > > export it now, no problem, I can just copy __copy_user_flushcache from the > > kernel to the module. > > That sounds a better plan than exporting symbols with no in-kernel consumer. Exporting symbols without a user is a complete no-go. > > > My first question about nvfs is how it compares to a daxfs with > > > executables and other binaries configured to use page cache with the > > > new per-file dax facility? > > > > nvfs is faster than dax-based filesystems on metadata-heavy operations > > because it doesn't have the overhead of the buffer cache and bios. See > > this: http://people.redhat.com/~mpatocka/nvfs/BENCHMARKS > > ...and that metadata problem is intractable upstream? Christoph poked > at bypassing the block layer for xfs metadata operations [1], I just > have not had time to carry that further. > > [1]: "xfs: use dax_direct_access for log writes", although it seems > he's dropped that branch from his xfs.git I've pushed the old branch out again: http://git.infradead.org/users/hch/xfs.git/shortlog/refs/heads/xfs-log-dax The main sticking points here are: - currently all our nvdimm/DAX code does totally pointless pmem_flush calls just to be on the safe side. That probably is one of the big speedups of nova and other academic snake oil projects over our stack. We need to handle this properly - what do we do about write error handling? That is the other big thing in the pmem/dax stack that all of the direct writers (including MAP_SYNC mmaps) pretty much ignore Once that is sorted out we can not just put the log changes like above in, but also move the buffer cache over to do a direct access and basically stop using the block layer for a pure DAX XFS.