<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/sys/kern/subr_lock.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2020-09-01T22:12:32Z</updated>
<entry>
<title>kern: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T22:12:32Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T22:12:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=6fed89b17970606e6b9562d8f9dc7ffee732839c'/>
<id>urn:sha1:6fed89b17970606e6b9562d8f9dc7ffee732839c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)</title>
<updated>2020-02-26T14:26:36Z</updated>
<author>
<name>Pawel Biernacki</name>
<email>kaktus@FreeBSD.org</email>
</author>
<published>2020-02-26T14:26:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=7029da5c36f2d3cf6bb6c81bf551229f416399e8'/>
<id>urn:sha1:7029da5c36f2d3cf6bb6c81bf551229f416399e8</id>
<content type='text'>
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are
still not MPSAFE (or already are but aren’t properly marked).
Use it in preparation for a general review of all nodes.

This is non-functional change that adds annotations to SYSCTL_NODE and
SYSCTL_PROC nodes using one of the soon-to-be-required flags.

Mark all obvious cases as MPSAFE.  All entries that haven't been marked
as MPSAFE before are by default marked as NEEDGIANT

Approved by:	kib (mentor, blanket)
Commented by:	kib, gallatin, melifaro
Differential Revision:	https://reviews.freebsd.org/D23718
</content>
</entry>
<entry>
<title>locks: add default delay struct</title>
<updated>2020-01-05T12:48:19Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-01-05T12:48:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2e77cad11dc5ec9c14c074dfc127f8420075aa7c'/>
<id>urn:sha1:2e77cad11dc5ec9c14c074dfc127f8420075aa7c</id>
<content type='text'>
Use it for all primitives. This makes everything fit in 8 bytes.
</content>
</entry>
<entry>
<title>locks: convert delay times to u_short</title>
<updated>2020-01-05T12:47:29Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-01-05T12:47:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=6b8dd26e7c5f2caf9e5094d6fa15d8edcace65a0'/>
<id>urn:sha1:6b8dd26e7c5f2caf9e5094d6fa15d8edcace65a0</id>
<content type='text'>
int is just a waste of space for this purpose.
</content>
</entry>
<entry>
<title>lockprof: use IPI-injecetd fences to fix hangs on stat dump and reset</title>
<updated>2019-11-30T17:24:42Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2019-11-30T17:24:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=3ac2ac2e085ac3be61caddc3ec9982443e641c4b'/>
<id>urn:sha1:3ac2ac2e085ac3be61caddc3ec9982443e641c4b</id>
<content type='text'>
The previously used quiesce_all_cpus walks all CPUs and waits until curthread
can run on them. Even on contemporary machines this becomes a significant
problem under load when it can literally take minutes for the operation to
complete. With the patch the stall is normally less than 1 second.

Reviewed by:	kib, jeff (previous version)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D21740
</content>
</entry>
<entry>
<title>lockprof: move per-cpu data to dpcpu</title>
<updated>2019-09-22T20:44:24Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2019-09-22T20:44:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=d2be3ef05c1fbcd66e9554f513e9f6816f56de6e'/>
<id>urn:sha1:d2be3ef05c1fbcd66e9554f513e9f6816f56de6e</id>
<content type='text'>
Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D21747
</content>
</entry>
<entry>
<title>lockprof: use CPUFOREACH and drop always false lp_cpu NULL checks</title>
<updated>2019-09-21T19:05:38Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2019-09-21T19:05:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=cbba2cb367c2e8ebbf99b9e74a96fa1501f70093'/>
<id>urn:sha1:cbba2cb367c2e8ebbf99b9e74a96fa1501f70093</id>
<content type='text'>
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>Drop "All rights reserved" from my copyright statements.</title>
<updated>2019-03-06T22:11:45Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2019-03-06T22:11:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2e43efd0bb1e9cd780f02fa5b888f9264e66e37b'/>
<id>urn:sha1:2e43efd0bb1e9cd780f02fa5b888f9264e66e37b</id>
<content type='text'>
Reviewed by:	rgrimes
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D19485
</content>
</entry>
<entry>
<title>locks: tweak backoff a little bit</title>
<updated>2018-04-08T16:34:10Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2018-04-08T16:34:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=a045941bd2a73aafd6755461e61cd6a6e963f670'/>
<id>urn:sha1:a045941bd2a73aafd6755461e61cd6a6e963f670</id>
<content type='text'>
Previous limits were chosen when locking primitives had spurious lock
accesses.

Flipping the starting point to 1 (or rather 2 as the first call shifts it)
provides a modest win when mild contention is seen while not hurting worse
cases. Tested on a bunch of one, two and four socket old and new systems
(Westmere, Skylake, Threadreaper and others) by doing concurrent page faults,
buildkernel/buildworld and other stuff (although not all systems got all the
tests).

Another thing is the upper limit. It is semi-arbitrarily chosen as it was
getting out of hand for slightly less small systems (e.g. a 128-thread one).

Note that backoff is fundamentally a speculative bandaid and this change just
makes it fit a little bit better. It remains completely oblivious to the
hardware topology or the contention pattern. This is being experimented with.
</content>
</entry>
<entry>
<title>sys/kern: adoption of SPDX licensing ID tags.</title>
<updated>2017-11-27T15:20:12Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2017-11-27T15:20:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=8a36da99deb0e19363ec04e4d3facd869c1028f5'/>
<id>urn:sha1:8a36da99deb0e19363ec04e4d3facd869c1028f5</id>
<content type='text'>
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
</content>
</entry>
</feed>
