Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation

Andrew Morton
2005-04-26T20:38:29Z

Roland Dreier <roland@topspin.com> wrote:
>
> Roland> a) app registers 0x0000 through 0x17ff
> Roland> b) app registers 0x1800 through 0x2fff
> Roland> c) app unregisters 0x0000 through 0x17ff
> Roland> d) the page at 0x1000 must stay pinned
>
> Andrew> The userspace library should be able to track the tree and
> Andrew> the overlaps, etc. Things might become interesting when
> Andrew> the memory is MAP_SHARED pagecache and multiple
> Andrew> independent processes are involved, although I guess
> Andrew> that'd work OK.
>
> I used to think I knew how to handle this, but in your scheme where
> the kernel is doing accounting for pinned memory by marking vmas with
> VM_KERNEL_LOCKED, at step c), I don't see why the kernel won't unlock
> vmas covering 0x0000 through 0x1fff and credit 8K back to the
> process's pinning count.
>
> Sorry to be so dense but can you spell out what you think should
> happen at steps a), b) and c) above?

Well I was vaguely proposing that the userspace library keep track of the
byteranges and the underlying page states. So in the above scenario
userspace would leave the page at 0x1000 registered until all
registrations against that page have been undone.