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

Andrew Morton
2005-04-26T20:40:00Z

Timur Tabi <timur.tabi@ammasso.com> wrote:
>
> Roland Dreier wrote:
>
> > Yes, I agree. If an app wants to register half a page and pass the
> > other half to a child process, I think the only answer is "don't do
> > that then."
>
> How can the app know that, though? It would have to allocate I/O buffers with knowledge
> of page boundaries. Today, the apps just malloc() a bunch of memory and pay no attention
> to whether the beginning or the end of the buffer shares a page with some other, unrelated
> object. We may as well tell the app that it needs to page-align all I/O buffers.
>
> My point is that we can't just simply say, "Don't do that". Some entity (the kernel,
> libraries, whatever) should be able to tell the app that its usage of memory is going to
> break in some unpredictable way.

Our point is that contemporary microprocessors cannot electrically do what
you want them to do!

Now, conceeeeeeiveably the kernel could keep track of the state of the
pages down to the byte level, and could keep track of all COWed pages and
could look at faulting addresses at the byte level and could copy sub-page
ranges by hand from one process's address space into another process's
after I/O completion. I don't think we want to do that.

Methinks your specification is busted.