Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752733AbbLaWIm (ORCPT ); Thu, 31 Dec 2015 17:08:42 -0500 Received: from mail-yk0-f180.google.com ([209.85.160.180]:35407 "EHLO mail-yk0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751477AbbLaWIh (ORCPT ); Thu, 31 Dec 2015 17:08:37 -0500 MIME-Version: 1.0 In-Reply-To: <5684A0CD.9040005@oracle.com> References: <1450899560-26708-1-git-send-email-ross.zwisler@linux.intel.com> <1450899560-26708-3-git-send-email-ross.zwisler@linux.intel.com> <56838FA3.5030909@oracle.com> <5684A0CD.9040005@oracle.com> Date: Thu, 31 Dec 2015 14:08:36 -0800 Message-ID: Subject: Re: [PATCH v6 2/7] dax: support dirty DAX entries in radix tree From: Dan Williams To: Bob Liu Cc: Ross Zwisler , "linux-kernel@vger.kernel.org" , "H. Peter Anvin" , "J. Bruce Fields" , "Theodore Ts'o" , Alexander Viro , Andreas Dilger , Dave Chinner , Ingo Molnar , Jan Kara , Jeff Layton , Matthew Wilcox , Thomas Gleixner , linux-ext4 , linux-fsdevel , Linux MM , linux-nvdimm , X86 ML , XFS Developers , Andrew Morton , Matthew Wilcox , Dave Hansen Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1983 Lines: 44 On Wed, Dec 30, 2015 at 7:28 PM, Bob Liu wrote: > > On 12/31/2015 04:39 AM, Dan Williams wrote: >> On Wed, Dec 30, 2015 at 12:02 AM, Bob Liu wrote: >>> Hi Ross, >>> >>> On 12/24/2015 03:39 AM, Ross Zwisler wrote: >>>> Add support for tracking dirty DAX entries in the struct address_space >>>> radix tree. This tree is already used for dirty page writeback, and it >>>> already supports the use of exceptional (non struct page*) entries. >>>> >>>> In order to properly track dirty DAX pages we will insert new exceptional >>>> entries into the radix tree that represent dirty DAX PTE or PMD pages. >>> >>> I may get it wrong, but there is "struct page" for persistent memory after >>> "[PATCH v4 00/18]get_user_pages() for dax pte and pmd mappings". >>> So why not just add "struct page" to radix tree directly just like normal page cache? >>> >>> Then we don't need to deal with any exceptional entries and special writeback. >> >> That "struct page" is optional and fsync/msync needs to operate in its absence. >> > > Any special reason or scenario that "struct page" should not be enabled? > I didn't see any disadvantages if always enable "struct page" by force when using DAX model for pmem. > The benefits would be things can be more simple and less potential bugs because of smaller patches. > We can't enable struct page coverage by default. The persistent memory capacity may be too large to allocate the memmap array from DRAM. Allocating it from pmem reduces the size of the device and we can't have a block device change sizes just by booting a different kernel (any kernel less than 4.5). So, enabling struct page must be an explicit action. > Happy New Year! Happy New Year! -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/