Re: [RFC] [PATCH v5 0/3] fadvise: support POSIX_FADV_NOREUSE

From: Aneesh Kumar K.V
Date: Sun Feb 12 2012 - 12:54:57 EST


On Sun, 12 Feb 2012 12:58:34 +0100, Andrea Righi <andrea@xxxxxxxxxxxxxxx> wrote:
> On Sun, Feb 12, 2012 at 03:16:07PM +0800, Hillf Danton wrote:
> > Hello Andrea
> >
> > On Sun, Feb 12, 2012 at 8:21 AM, Andrea Righi <andrea@xxxxxxxxxxxxxxx> wrote:
> > [...]
> > > Â- Some of the routines to implement the generic interval tree has been taken
> > > Â from the x86 PAT code, that uses interval trees to keep track of PAT ranges
> > > Â (in the future it would be interesting to convert also the x86 PAT code to
> > > Â use the generic interval tree implementation).
> > >
> > Perhaps the tree implemented in this work could also be used in tracking
> > regions in mm/hugetlb.c.
> >
> > Thanks
> > Hillf
>
> Thanks, Hillf.
>
> Yes, I quickly looked at the hugtlb code, it seems another potential
> user of the interval tree. Now all the hugetlb regions are stored in a
> list, the interval tree is a more efficient structure for lookups -
> O(log(n)), so there are probably advantages in presence of many
> different disjoint intervals.
>
> mmh... at the moment there's not a way to map region_count() with the
> current kinterval API, but we can easily extend it to provide also this
> feature (count the overlap size of two intervals).
>

I am also extending the hugetlb region list in the hugetlb cgroup
patchset i recently posted to make sure we don't merge region if the
associated private data doesn't match (in my case it is the pointer to
hugetlb cgroup). Ref:
http://article.gmane.org/gmane.linux.kernel.mm/73829

The goal is to make sure a region add with different private value
results in below.


old
| hcg1 |
-------------------

new
| hcg2 |
----------------------------------

results in

| hcg2 | | hcg1 | | hcg2 |
--------- __________________ ----------


-aneesh

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/