Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Nov 2002 18:07:14 -0800
From:      David Schultz <dschultz@uclink.Berkeley.EDU>
To:        Mike Silbersack <silby@silby.com>
Cc:        Tony Finch <dot@dotat.at>, hackers@FreeBSD.ORG
Subject:   Re: cvs commit: src/bin/sleep sleep.c
Message-ID:  <20021121020714.GB2107@HAL9000.homeunix.com>
In-Reply-To: <Pine.BSF.4.44.0211201646550.27339-100000@niwun.pair.com>
References:  <E18EbhV-0008O5-00@chiark.greenend.org.uk> <Pine.BSF.4.44.0211201646550.27339-100000@niwun.pair.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake Mike Silbersack <silby@silby.com>:
> 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021121020714.GB2107>