freebsd-nq/sys/compat/linux
Konstantin Belousov 5c7bebf961 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
2014-11-26 14:10:00 +00:00
..
check_error.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
check_internal_locks.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_dtrace.h dtrace sdt: remove the ugly sname parameter of SDT_PROBE_DEFINE 2013-11-26 08:46:27 +00:00
linux_emul.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_emul.h - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_file.c Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
linux_file.h Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h 2013-01-29 18:41:30 +00:00
linux_fork.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_futex.c Glibc was switched to the FUTEX_WAIT_BITSET op and CLOCK_REALTIME 2014-05-31 14:58:53 +00:00
linux_futex.h
linux_getcwd.c
linux_ioctl.c Remake Linux' SOUND_MIXER_INFO IOCTL as a wrapper around new FreeBSD's one. 2014-09-24 08:18:11 +00:00
linux_ioctl.h Add some missing LIBUSB IOCTL conversion codes. 2013-07-14 10:13:01 +00:00
linux_ipc.c
linux_ipc.h Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h 2013-01-29 18:41:30 +00:00
linux_mib.c Bump minimum linux compat version to support Centos6 ports updates for linux. 2014-09-22 17:26:07 +00:00
linux_mib.h
linux_misc.c The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
linux_misc.h Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h 2013-01-29 18:41:30 +00:00
linux_signal.c
linux_signal.h Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h 2013-01-29 18:41:30 +00:00
linux_socket.c Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
linux_socket.h Reduce duplication between i386/linux/linux.h and amd64/linux32/linux.h 2013-01-29 18:41:30 +00:00
linux_stats.c Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
linux_sysctl.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_sysproto.h
linux_time.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_timer.c Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00
linux_timer.h Implement most of timer_{create,settime,gettime,getoverrun,delete} 2014-09-18 08:36:45 +00:00
linux_uid16.c Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
linux_util.c - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
linux_util.h - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
linux_videodev2_compat.h
linux_videodev_compat.h
stats_timing.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
trace_futexes.d - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00