Thus spake Mike Silbersack <[EMAIL PROTECTED]>: > I'm curious how well COW sharing really works under FreeBSD. Earlier this > year, I fixed a piece of code which was O((processes sharing a page)^2) in > the VM system. When certain simple forkbombs were run, they would cause > the machine to freeze for 30 seconds at a time or more once the VM cleanup > routines kicked in and ran the O(N^2) piece of code. > > What bugged me at the time was that I couldn't seem to reproduce the > problem with other programs... this led me to believe that we aren't > really sharing too many pages in common use, but I didn't have time to > investigate if that was true or not. Someone with an interest in VM > implementations might want to take a wander through and see how well page > sharing really works on a typical FreeBSD system. :)
I'm not sure exactly what routine you're referring to, but one thing to keep in mind is that most pages that somehow got to be massively shared are never, ever written. For example, the text segment of virtually all executables is read-only, except when using debuggers. Anyway, the point is that if it takes O(N^2) time to take a write fault on a page shared by N processes, that's certainly bad, but not as bad as it sounds. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message