Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753525AbbLJUc6 (ORCPT ); Thu, 10 Dec 2015 15:32:58 -0500 Received: from mail-vk0-f49.google.com ([209.85.213.49]:34832 "EHLO mail-vk0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752425AbbLJUc4 (ORCPT ); Thu, 10 Dec 2015 15:32:56 -0500 MIME-Version: 1.0 In-Reply-To: <20151210202438.GA6590@linux.intel.com> References: <1449602325-20572-1-git-send-email-ross.zwisler@linux.intel.com> <1449602325-20572-4-git-send-email-ross.zwisler@linux.intel.com> <20151210202438.GA6590@linux.intel.com> Date: Thu, 10 Dec 2015 12:31:53 -0800 Message-ID: Subject: Re: [PATCH v3 3/7] mm: add find_get_entries_tag() From: Dan Williams To: Ross Zwisler , Dan Williams , Linux Kernel Mailing List , Dave Hansen , Dave Chinner , "J. Bruce Fields" , linux-mm , Andreas Dilger , "H. Peter Anvin" , Jeff Layton , "linux-nvdimm@lists.01.org" , "the arch/x86 maintainers" , Ingo Molnar , ext4 hackers , XFS Developers , Alexander Viro , Thomas Gleixner , "Theodore Ts'o" , Jan Kara , linux-fsdevel , Andrew Morton , Matthew Wilcox 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: 2249 Lines: 45 On Thu, Dec 10, 2015 at 12:24 PM, Ross Zwisler wrote: > On Wed, Dec 09, 2015 at 11:44:16AM -0800, Dan Williams wrote: >> On Tue, Dec 8, 2015 at 11:18 AM, Ross Zwisler >> wrote: >> > Add find_get_entries_tag() to the family of functions that include >> > find_get_entries(), find_get_pages() and find_get_pages_tag(). This is >> > needed for DAX dirty page handling because we need a list of both page >> > offsets and radix tree entries ('indices' and 'entries' in this function) >> > that are marked with the PAGECACHE_TAG_TOWRITE tag. >> > >> > Signed-off-by: Ross Zwisler > <> >> Why does this mostly duplicate find_get_entries()? >> >> Surely find_get_entries() can be implemented as a special case of >> find_get_entries_tag(). > > I'm adding find_get_entries_tag() to the family of functions that already > exist and include find_get_entries(), find_get_pages(), > find_get_pages_contig() and find_get_pages_tag(). > > These functions all contain very similar code with small changes to the > internal looping based on whether you're looking through all radix slots or > only the ones that match a certain tag (radix_tree_for_each_slot() vs > radix_tree_for_each_tagged()). > > We already have find_get_page() to get all pages in a range and > find_get_pages_tag() to get all pages in the range with a certain tag. We > have find_get_entries() to get all pages and indices for a given range, but we > are currently missing find_get_entries_tag() to do that same search based on a > tag, which is what I'm adding. > > I agree that we could probably figure out a way to combine the code for > find_get_entries() with find_get_entries_tag(), as we could do for the > existing functions find_get_pages() and find_get_pages_tag(). I think we > should probably add find_get_entries_tag() per this patch, though, and then > decide whether to do any combining later as a separate step. Ok, sounds good to me. -- 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/