On Friday 08 May 2009 5:41:17 pm Ed Schouten wrote: > A solution would be to solve it as follows: > > - Use a semaphore, initialized to some insane high value to put an upper > limit on the amount of concurrent sysctl calls. I'm not sure whether > this is really needed. Maybe this issue is not as serious as we think > it is.
Well, one compromise might be to allow concurrent userland requests if the buffer size is small (say < 1 page). This would be a quite simple change and would cover many common syscalls like fetching an int which don't wire memory anyway. > - Use an rw/rm/sxlock to protect the sysctl tree, but only pick up > the lock when we traverse parts of the sysctl tree that has > dynamically created entries. I don't think further work is needed here for the tree, notice that in-kernel sysctls are already concurrent and use a read lock on the tree. -- John Baldwin _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"