Date: Sat, 10 Jun 2000 21:05:24 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: Alfred Perlstein <bright@wintelcom.net> Cc: Brian Fundakowski Feldman <green@freebsd.org>, hackers@freebsd.org Subject: Re: uidinfo has many race conditions. Message-ID: <Pine.BSF.4.21.0006102104470.68954-100000@salmon.nlsystems.com> In-Reply-To: <20000610110326.R18462@fw.wintelcom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 10 Jun 2000, Alfred Perlstein wrote: > * Brian Fundakowski Feldman <green@FreeBSD.ORG> [000610 09:13] wrote: > > On Fri, 9 Jun 2000, Alfred Perlstein wrote: > > > > > * Alfred Perlstein <bright@wintelcom.net> [000609 16:45] wrote: > > > > hi, > > > > > > > > Is it just me or does the fact that uidinfo structures (see > > > > kern/kern_proc.c) are allocated with M_WAITOK after finding them > > > > fails and then inserted into the uidhash structure a race condition? > > > > > > > > Index: kern_proc.c > > > > =================================================================== > > > > > > Yes, I know i forgot to put the created ones back into the list, I was > > > just a bit flusteres after reading over the code. I'll have some more > > > later. > > > > With regard to sbsize itself, the test-and-branch conditions do not have > > to be atomic. It really isn't that important. The incrementing does, > > though, and to fix that a very lightweight mutex should be used. How > > about a simplelock? That should work perfectly. > > Well if we get an atomic_t it could be done that way, even if we > fail the race for updating and go beyond our rlimit slightly it's > much cheaper than a spinlock from my PoV. The only problem is > that afaik on some archs atomic_t can be quite small, we'd have > to watch for overflow, perhaps a spinlock is a better idea however > only if the next thing I mention here is realized: You can use atomic_add_*() to do safe arithmetic on memory locations. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 20 8442 9037 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?Pine.BSF.4.21.0006102104470.68954-100000>