gshipman wrote:
The fork() problem is due to memory registration aggravated by
registration cache. Memory registration in itself is a hack from
the OS
point of view, and you already know a lot about the various problems
related to registration cache.
So Gleb is indicating that this is a problem in the pipeline protocol
which does not use a registration cache. I think the registration
cache, while increasing the probability of badness after fork, is not
the culprit.
Indeed, it makes things worse by extending the vulnerability outside the
time frame of an asynchronous communication. Without the registration
cache, the bad case is limited to a process that forks while a com is
pending and touches the same pages before they are read/written by the
hardware. This is not very likely because the window of time is very
small, but still possible. However, it is not limited to the last
partial page of the buffer, it can happen for any pinned page.
Patrick
--
Patrick Geoffray
Myricom, Inc.
http://www.myri.com