svn commit: r275121 - in head/sys: compat/linux compat/svr4 fs/procfs kern sys
Chagin Dmitry
dchagin at freebsd.org
Thu Jan 7 13:39:58 UTC 2016
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?
More information about the svn-src-head
mailing list