Timur Tabi <[EMAIL PROTECTED]> 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. _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general