Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jan 2016 17:37:03 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Chagin Dmitry <dchagin@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r275121 - in head/sys: compat/linux compat/svr4 fs/procfs kern sys
Message-ID:  <20160107153703.GV3625@kib.kiev.ua>
In-Reply-To: <20160107133953.GA62554@chd.heemeyer.club>
References:  <201411261410.sAQEA0JO071065@svn.freebsd.org> <20160107133953.GA62554@chd.heemeyer.club>

next in thread | previous in thread | raw e-mail | index | archive | help
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.




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