On Wed, Nov 26, 2014 at 02:10:00PM +0000, Konstantin Belousov wrote: > Author: kib > Date: Wed Nov 26 14:10:00 2014 > New Revision: 275121 > URL: https://svnweb.freebsd.org/changeset/base/275121 > > Log: > The process spin lock currently has the following distinct uses: > > - Threads lifetime cycle, in particular, counting of the threads in > the process, and interlocking with process mutex and thread lock. > The main reason of this is that turnstile locks are after thread > locks, so you e.g. cannot unlock blockable mutex (think process > mutex) while owning thread lock. > > - Virtual and profiling itimers, since the timers activation is done > from the clock interrupt context. Replace the p_slock by p_itimmtx > and PROC_ITIMLOCK(). > > - Profiling code (profil(2)), for similar reason. Replace the p_slock > by p_profmtx and PROC_PROFLOCK(). > > - Resource usage accounting. Need for the spinlock there is subtle, > my understanding is that spinlock blocks context switching for the > current thread, which prevents td_runtime and similar fields from > changing (updates are done at the mi_switch()). Replace the p_slock > by p_statmtx and PROC_STATLOCK(). > > The split is done mostly for code clarity, and should not affect > scalability. > > Tested by: pho > Sponsored by: The FreeBSD Foundation > MFC after: 1 week hi, any chance to merge it?
_______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"