Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-02 Thread Konstantin Khlebnikov
hursday, September 1, 2016 2:12 AM > To: Ross Zwisler <ross.zwis...@linux.intel.com> > Cc: Dan Williams <dan.j.willi...@intel.com>; Matthew Wilcox > <mawil...@microsoft.com>; linux-kernel@vger.kernel.org > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_r

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-02 Thread Konstantin Khlebnikov
AM > To: Ross Zwisler > Cc: Dan Williams ; Matthew Wilcox > ; linux-kernel@vger.kernel.org > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range > > On Wed, Aug 31, 2016 at 1:53 AM, Ross Zwisler > wrote: >> On Tue, Aug 30, 2016 at 03:21:24PM -0

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-02 Thread Matthew Wilcox
.com] Sent: Thursday, September 1, 2016 2:12 AM To: Ross Zwisler <ross.zwis...@linux.intel.com> Cc: Dan Williams <dan.j.willi...@intel.com>; Matthew Wilcox <mawil...@microsoft.com>; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-02 Thread Matthew Wilcox
.com] Sent: Thursday, September 1, 2016 2:12 AM To: Ross Zwisler Cc: Dan Williams ; Matthew Wilcox ; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range On Wed, Aug 31, 2016 at 1:53 AM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 03:21:24P

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-01 Thread Konstantin Khlebnikov
On Wed, Aug 31, 2016 at 7:36 PM, Dan Williams wrote: > On Wed, Aug 31, 2016 at 7:57 AM, Matthew Wilcox > wrote: >> I'm not at all against the idea of having a tree which supports ranges, >> except that we already have one; the interval tree.

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-01 Thread Konstantin Khlebnikov
On Wed, Aug 31, 2016 at 7:36 PM, Dan Williams wrote: > On Wed, Aug 31, 2016 at 7:57 AM, Matthew Wilcox > wrote: >> I'm not at all against the idea of having a tree which supports ranges, >> except that we already have one; the interval tree. Did you investigate >> using the interval tree for

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-01 Thread Konstantin Khlebnikov
On Wed, Aug 31, 2016 at 1:53 AM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 03:21:24PM -0700, Dan Williams wrote: >> On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler >> wrote: >> > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-09-01 Thread Konstantin Khlebnikov
On Wed, Aug 31, 2016 at 1:53 AM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 03:21:24PM -0700, Dan Williams wrote: >> On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler >> wrote: >> > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: >> >> On Mon, Aug 29, 2016 at 11:52 AM, Matthew

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-31 Thread Dan Williams
On Wed, Aug 31, 2016 at 7:57 AM, Matthew Wilcox wrote: > I'm not at all against the idea of having a tree which supports ranges, > except that we already have one; the interval tree. Did you investigate > using the interval tree for your use case? I am continuing to

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-31 Thread Dan Williams
On Wed, Aug 31, 2016 at 7:57 AM, Matthew Wilcox wrote: > I'm not at all against the idea of having a tree which supports ranges, > except that we already have one; the interval tree. Did you investigate > using the interval tree for your use case? I am continuing to investigate, but that is

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-31 Thread Matthew Wilcox
, 2016 6:21 PM To: Ross Zwisler <ross.zwis...@linux.intel.com> Cc: Matthew Wilcox <mawil...@microsoft.com>; Konstantin Khlebnikov <koc...@gmail.com>; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range On Tue, Aug 30, 2016 at 3:0

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-31 Thread Matthew Wilcox
, 2016 6:21 PM To: Ross Zwisler Cc: Matthew Wilcox ; Konstantin Khlebnikov ; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wr

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Tue, Aug 30, 2016 at 03:21:24PM -0700, Dan Williams wrote: > On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler > wrote: > > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: > >> On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox >

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Tue, Aug 30, 2016 at 03:21:24PM -0700, Dan Williams wrote: > On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler > wrote: > > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: > >> On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox > >> wrote: > >> > It may be protected by the mapping

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Sat, Aug 27, 2016 at 05:14:34PM +0300, Konstantin Khlebnikov wrote: > Tags should be set only for last index of THP range: this way iterator > will find them regardless of starting index. I don't think this works well for DAX. We really want to to have the tags be consistent for all indices

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Sat, Aug 27, 2016 at 05:14:34PM +0300, Konstantin Khlebnikov wrote: > Tags should be set only for last index of THP range: this way iterator > will find them regardless of starting index. I don't think this works well for DAX. We really want to to have the tags be consistent for all indices

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Dan Williams
On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: >> On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox >> wrote: >> > It may be protected by the mapping lock in the current

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Dan Williams
On Tue, Aug 30, 2016 at 3:03 PM, Ross Zwisler wrote: > On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: >> On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox >> wrote: >> > It may be protected by the mapping lock in the current code, but I would >> > it expect it to become an RCU

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: > On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox > wrote: > > It may be protected by the mapping lock in the current code, but I would it > > expect it to become an RCU lookup + lock eventually. No mapping

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Tue, Aug 30, 2016 at 02:56:17PM -0700, Dan Williams wrote: > On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox > wrote: > > It may be protected by the mapping lock in the current code, but I would it > > expect it to become an RCU lookup + lock eventually. No mapping lock, just > > like the

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Mon, Aug 29, 2016 at 06:52:54PM +, Matthew Wilcox wrote: > It may be protected by the mapping lock in the current code, but I would it > expect it to become an RCU lookup + lock eventually. No mapping lock, just > like the page cache. > > Even if we can work around it, why do we want to?

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Ross Zwisler
On Mon, Aug 29, 2016 at 06:52:54PM +, Matthew Wilcox wrote: > It may be protected by the mapping lock in the current code, but I would it > expect it to become an RCU lookup + lock eventually. No mapping lock, just > like the page cache. > > Even if we can work around it, why do we want to?

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Dan Williams
On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox wrote: > It may be protected by the mapping lock in the current code, but I would it > expect it to become an RCU lookup + lock eventually. No mapping lock, just > like the page cache. > > Even if we can work around it,

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-30 Thread Dan Williams
On Mon, Aug 29, 2016 at 11:52 AM, Matthew Wilcox wrote: > It may be protected by the mapping lock in the current code, but I would it > expect it to become an RCU lookup + lock eventually. No mapping lock, just > like the page cache. > > Even if we can work around it, why do we want to?

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
: Konstantin Khlebnikov [mailto:koc...@gmail.com] > Sent: Monday, August 29, 2016 12:14 PM > To: Matthew Wilcox <mawil...@microsoft.com> > Cc: Ross Zwisler <ross.zwis...@linux.intel.com>; > linux-kernel@vger.kernel.org > Subject: Re: [PATCH RFC 1/4] lib/radix: add univ

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
it. -Original Message- From: Konstantin Khlebnikov [mailto:koc...@gmail.com] Sent: Monday, August 29, 2016 2:16 PM To: Matthew Wilcox Cc: Ross Zwisler ; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range On Mon, Aug 29, 2016 at 9:08 PM, Matthew

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range On Mon, Aug 29, 2016 at 6:21 PM, Matthew Wilcox <mawil...@microsoft.com> wrote: > Thanks, Ross. > > Konstantin, I think there are problems with the concept behind this series.

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
or last entry. We just look up the index, then use the entry we got back. -Original Message- From: Konstantin Khlebnikov [mailto:koc...@gmail.com] Sent: Monday, August 29, 2016 12:14 PM To: Matthew Wilcox Cc: Ross Zwisler ; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/4] lib

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Konstantin Khlebnikov
kov [mailto:koc...@gmail.com] > Sent: Monday, August 29, 2016 12:14 PM > To: Matthew Wilcox <mawil...@microsoft.com> > Cc: Ross Zwisler <ross.zwis...@linux.intel.com>; linux-kernel@vger.kernel.org > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_rang

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Konstantin Khlebnikov
nt: Monday, August 29, 2016 12:14 PM > To: Matthew Wilcox > Cc: Ross Zwisler ; linux-kernel@vger.kernel.org > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range > > On Mon, Aug 29, 2016 at 6:21 PM, Matthew Wilcox > wrote: >> Thanks, Ross. >

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Konstantin Khlebnikov
See attachment. > > -Original Message- > From: Ross Zwisler [mailto:ross.zwis...@linux.intel.com] > Sent: Saturday, August 27, 2016 2:09 PM > To: Matthew Wilcox <mawil...@microsoft.com> > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range >

Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Konstantin Khlebnikov
Original Message- > From: Ross Zwisler [mailto:ross.zwis...@linux.intel.com] > Sent: Saturday, August 27, 2016 2:09 PM > To: Matthew Wilcox > Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range > > Hey Matthew, > > Just wanted to make sure that you

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
of a multiorder entry. See attachment. -Original Message- From: Ross Zwisler [mailto:ross.zwis...@linux.intel.com] Sent: Saturday, August 27, 2016 2:09 PM To: Matthew Wilcox <mawil...@microsoft.com> Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range Hey Matthew,

RE: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-29 Thread Matthew Wilcox
of a multiorder entry. See attachment. -Original Message- From: Ross Zwisler [mailto:ross.zwis...@linux.intel.com] Sent: Saturday, August 27, 2016 2:09 PM To: Matthew Wilcox Subject: Re: [PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range Hey Matthew, Just wanted to make sure

[PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-27 Thread Konstantin Khlebnikov
This patch adds function for filling and truncating ranges of slots: radix_tree_node *radix_tree_fill_range(root, start, end, item, flags) It fills slots in range "begin".."end" with "item" and returns pointer to the last filled node. Filling with NULL truncates range. This is intended for

[PATCH RFC 1/4] lib/radix: add universal radix_tree_fill_range

2016-08-27 Thread Konstantin Khlebnikov
This patch adds function for filling and truncating ranges of slots: radix_tree_node *radix_tree_fill_range(root, start, end, item, flags) It fills slots in range "begin".."end" with "item" and returns pointer to the last filled node. Filling with NULL truncates range. This is intended for