[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191004174515.GE13988@ziepe.ca>
Date: Fri, 4 Oct 2019 14:45:15 -0300
From: Jason Gunthorpe <jgg@...pe.ca>
To: Michel Lespinasse <walken@...gle.com>
Cc: Davidlohr Bueso <dave@...olabs.net>,
Andrew Morton <akpm@...ux-foundation.org>,
Peter Zijlstra <peterz@...radead.org>,
LKML <linux-kernel@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>, dri-devel@...ts.freedesktop.org,
linux-rdma@...r.kernel.org
Subject: Re: [PATCH -next 00/11] lib/interval-tree: move to half closed
intervals
On Fri, Oct 04, 2019 at 06:15:11AM -0700, Michel Lespinasse wrote:
> Hi Jason,
>
> On Thu, Oct 3, 2019 at 5:26 PM Jason Gunthorpe <jgg@...pe.ca> wrote:
> > Hurm, this is not entirely accurate. Most users do actually want
> > overlapping and multiple ranges. I just studied this extensively:
>
> (Just curious, are you the person we discussed this with after the
> Maple Tree talk at LPC 2019 ?)
Possibly!
> I think we have two separate API problems there:
> - overlapping vs non-overlapping intervals (the interval tree API
> supports overlapping intervals, but some users are confused about
> this)
I think we just have a bunch of confused drivers, ie the two drm
drivers sure look confused to me.
> - closed vs half-open interval definitions
I'm not sure why this is a big problem..
We may actually just have bugs in handling the '-1' as it is supposed
to be written as start + (size-1) so that start + size == ULONG_MAX+1
works properly.
> > hfi1/mmu_rb definitely needs overlapping as it is dealing with
> > userspace VA ranges under control of userspace. As do the other
> > infiniband users.
>
> Do you have a handle on what usnic is doing with its intervals ?
> usnic_uiom_insert_interval() has some complicated logic to avoid
> having overlapping intervals, which is very confusing to me.
I don't know why it is so complicated, but I can say that it is
storing userspace VA's in that tree.
I have some feeling this driver is trying to use the IOMMU to create a
mirror of the userspace VA
Userspace can request the HW be able to access any set of overlapping
regions and so the driver must intersect all the ranges and compute a
list of VA pages to IOMMU map. Just guessing.
Jason
Powered by blists - more mailing lists