<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/kern/sys_process.c, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2015-06-15T18:16:23Z</updated>
<entry>
<title>MFC r283889,r283891:</title>
<updated>2015-06-15T18:16:23Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2015-06-15T18:16:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=58ea82d0ddf4380040e521b063960f8cc8e12a93'/>
<id>urn:sha1:58ea82d0ddf4380040e521b063960f8cc8e12a93</id>
<content type='text'>
Clear p_stops when doing PT_DETACH and PROCFS_CTL_DETACH.

Without this, if a process was being traced by truss(1), which
uses different p_stops bits than gdb(1), the latter would
misbehave because of the unexpected bits.

Reported by:	jceel
Submitted by:	sef
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>MFC 283546:</title>
<updated>2015-06-13T16:15:43Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2015-06-13T16:15:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fbbf439256a5c9c48a32eb3063a476e570714060'/>
<id>urn:sha1:fbbf439256a5c9c48a32eb3063a476e570714060</id>
<content type='text'>
Add KTR tracing for some MI ptrace events.
</content>
</entry>
<entry>
<title>Merge reaper facility.</title>
<updated>2015-01-05T03:27:09Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2015-01-05T03:27:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f11aebee48530f85c466b5d750d6dc4d84f5f705'/>
<id>urn:sha1:f11aebee48530f85c466b5d750d6dc4d84f5f705</id>
<content type='text'>
MFC r270443 (by mjg):
Properly reparent traced processes when the tracer dies.

MFC r273452 (by mjg):
Plug unnecessary PRS_NEW check in kern_procctl.

MFC 275800:
Add a facility for non-init process to declare itself the reaper of
the orphaned descendants.

MFC r275821:
Add missed break.

MFC r275846 (by mckusick):
Add some additional clarification and fix a few gammer nits.

MFC r275847 (by bdrewery):
Bump Dd for r275846.
</content>
</entry>
<entry>
<title>MFC 272449:</title>
<updated>2014-10-17T19:28:21Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2014-10-17T19:28:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9adcf68cebcd3c87e93db22de281c5f66822a270'/>
<id>urn:sha1:9adcf68cebcd3c87e93db22de281c5f66822a270</id>
<content type='text'>
Require p_cansched() for changing a process' protection status via
procctl() rather than p_cansee().
</content>
</entry>
<entry>
<title>MFC r269656:</title>
<updated>2014-08-21T10:46:19Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2014-08-21T10:46:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=04d46de6d9df43eaf529968493a9a8edb8c9e200'/>
<id>urn:sha1:04d46de6d9df43eaf529968493a9a8edb8c9e200</id>
<content type='text'>
Implement and use proc_realparent(9).

MFC r270024 (by markj):
Correct the order of arguments passed to LIST_INSERT_AFTER().

For merge, the p_treeflag member of struct proc was moved to the end
of the structure, to keep KBI intact.
</content>
</entry>
<entry>
<title>Extend the support for exempting processes from being killed when swap is</title>
<updated>2013-09-19T18:53:42Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2013-09-19T18:53:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=55648840de371b7e4cb2704cb5d47d92dff11d45'/>
<id>urn:sha1:55648840de371b7e4cb2704cb5d47d92dff11d45</id>
<content type='text'>
exhausted.
- Add a new protect(1) command that can be used to set or revoke protection
  from arbitrary processes.  Similar to ktrace it can apply a change to all
  existing descendants of a process as well as future descendants.
- Add a new procctl(2) system call that provides a generic interface for
  control operations on processes (as opposed to the debugger-specific
  operations provided by ptrace(2)).  procctl(2) uses a combination of
  idtype_t and an id to identify the set of processes on which to operate
  similar to wait6().
- Add a PROC_SPROTECT control operation to manage the protection status
  of a set of processes.  MADV_PROTECT still works for backwards
  compatability.
- Add a p_flag2 to struct proc (and a corresponding ki_flag2 to kinfo_proc)
  the first bit of which is used to track if P_PROTECT should be inherited
  by new child processes.

Reviewed by:	kib, jilles (earlier version)
Approved by:	re (delphij)
MFC after:	1 month
</content>
</entry>
<entry>
<title>Revert r253939:</title>
<updated>2013-08-05T08:55:35Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-08-05T08:55:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=be9968363742a7b369819f598be0d2f08f1c92ab'/>
<id>urn:sha1:be9968363742a7b369819f598be0d2f08f1c92ab</id>
<content type='text'>
We cannot busy a page before doing pagefaults.
Infact, it can deadlock against vnode lock, as it tries to vget().
Other functions, right now, have an opposite lock ordering, like
vm_object_sync(), which acquires the vnode lock first and then
sleeps on the busy mechanism.

Before this patch is reinserted we need to break this ordering.

Sponsored by:	EMC / Isilon storage division
Reported by:	kib
</content>
</entry>
<entry>
<title>The page hold mechanism is fast but it has couple of fallouts:</title>
<updated>2013-08-04T21:07:24Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-08-04T21:07:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b6714cacb30c4ded64d5580426cf7acc9dfcd32'/>
<id>urn:sha1:3b6714cacb30c4ded64d5580426cf7acc9dfcd32</id>
<content type='text'>
- It does not let pages respect the LRU policy
- It bloats the active/inactive queues of few pages

Try to avoid it as much as possible with the long-term target to
completely remove it.
Use the soft-busy mechanism to protect page content accesses during
short-term operations (like uiomove_fromphys()).

After this change only vm_fault_quick_hold_pages() is still using the
hold mechanism for page content access.
There is an additional complexity there as the quick path cannot
immediately access the page object to busy the page and the slow path
cannot however busy more than one page a time (to avoid deadlocks).

Fixing such primitive can bring to complete removal of the page hold
mechanism.

Sponsored by:	EMC / Isilon storage division
Discussed with:	alc
Reviewed by:	jeff
Tested by:	pho
</content>
</entry>
<entry>
<title>Switch some "low-hanging fruit" to acquire read lock on vmobjects</title>
<updated>2013-04-08T19:58:32Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-04-08T19:58:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bc403f030d01afa9621b209d737d09d236037ba8'/>
<id>urn:sha1:bc403f030d01afa9621b209d737d09d236037ba8</id>
<content type='text'>
rather than write locks.

Sponsored by:	EMC / Isilon storage division
Reviewed by:	alc
Tested by:	pho
</content>
</entry>
<entry>
<title>Switch the vm_object mutex to be a rwlock.  This will enable in the</title>
<updated>2013-03-09T02:32:23Z</updated>
<author>
<name>Attilio Rao</name>
<email>attilio@FreeBSD.org</email>
</author>
<published>2013-03-09T02:32:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=89f6b8632cc94bca2738b4fcc26e1189ef4f5dde'/>
<id>urn:sha1:89f6b8632cc94bca2738b4fcc26e1189ef4f5dde</id>
<content type='text'>
future further optimizations where the vm_object lock will be held
in read mode most of the time the page cache resident pool of pages
are accessed for reading purposes.

The change is mostly mechanical but few notes are reported:
* The KPI changes as follow:
  - VM_OBJECT_LOCK() -&gt; VM_OBJECT_WLOCK()
  - VM_OBJECT_TRYLOCK() -&gt; VM_OBJECT_TRYWLOCK()
  - VM_OBJECT_UNLOCK() -&gt; VM_OBJECT_WUNLOCK()
  - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -&gt; VM_OBJECT_ASSERT_WLOCKED()
    (in order to avoid visibility of implementation details)
  - The read-mode operations are added:
    VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(),
    VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED()
* The vm/vm_pager.h namespace pollution avoidance (forcing requiring
  sys/mutex.h in consumers directly to cater its inlining functions
  using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h
  consumers now must include also sys/rwlock.h.
* zfs requires a quite convoluted fix to include FreeBSD rwlocks into
  the compat layer because the name clash between FreeBSD and solaris
  versions must be avoided.
  At this purpose zfs redefines the vm_object locking functions
  directly, isolating the FreeBSD components in specific compat stubs.

The KPI results heavilly broken by this commit.  Thirdy part ports must
be updated accordingly (I can think off-hand of VirtualBox, for example).

Sponsored by:	EMC / Isilon storage division
Reviewed by:	jeff
Reviewed by:	pjd (ZFS specific review)
Discussed with:	alc
Tested by:	pho
</content>
</entry>
</feed>
