Exactly - the server mmap()'s the file but never actually accesses any
data. The socket write buffer addresses are translated by the kernel and
the needed pages are read in (if not already in mem) subsequently and
locked as the sending progresses, but all that is done in the kernels MMU
context so there shouldn't be any need to access the original process
context.
Since the process sleeps while doing the write(), it cannot munmap or do
nasty things to the mapping I guess. But the above is probably more
complicated than it sounds :)
Anyway the above would be useful for all kinds of servers - WWW, FTP, SMB
for example.
/Bjorn
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/