svn commit: r275121 - in head/sys: compat/linux compat/svr4 fs/procfs kern sys
Konstantin Belousov
kostikbel at gmail.com
Thu Jan 7 15:37:10 UTC 2016
On Thu, Jan 07, 2016 at 04:39:53PM +0300, Chagin Dmitry wrote:
> 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?
I do not want to merge the split, for many reasons.
I suppose the merge conflicts due to the replace of PROC_SLOCK() by
PROC_*LOCK() are what you are looking after, am I right ?
What could be done, is to merge the syntax changes from the patch. I mean,
provide the PROC_*LOCK() macros and merge all changes to use new macros,
but internal implementation would still lock the same proc spinlock.
More information about the svn-src-head
mailing list