<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/sys/cddl/dev/dtrace/dtrace_load.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>2017-05-01T17:01:00Z</updated>
<entry>
<title>Fix a harmless LOR in dtrace_load().</title>
<updated>2017-05-01T17:01:00Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2017-05-01T17:01:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=23bff6073bc34c644ab2f30aa2a90ff556aa01a5'/>
<id>urn:sha1:23bff6073bc34c644ab2f30aa2a90ff556aa01a5</id>
<content type='text'>
MFC after:	1 week
</content>
</entry>
<entry>
<title>Add tunable to disable destructive dtrace</title>
<updated>2016-11-23T22:50:20Z</updated>
<author>
<name>George V. Neville-Neil</name>
<email>gnn@FreeBSD.org</email>
</author>
<published>2016-11-23T22:50:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=cdaa8777f78d514b0770ade51df778716425672f'/>
<id>urn:sha1:cdaa8777f78d514b0770ade51df778716425672f</id>
<content type='text'>
Submitted by:	Joerg Pernfuss &lt;code.jpe@gmail.com&gt;
Reviewed by:	rstone, markj
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D8624
</content>
</entry>
<entry>
<title>Add an EARLY_AP_STARTUP option to start APs earlier during boot.</title>
<updated>2016-05-14T18:22:52Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2016-05-14T18:22:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=fdce57a04219d7a36c6646950fde6c8bcd97c044'/>
<id>urn:sha1:fdce57a04219d7a36c6646950fde6c8bcd97c044</id>
<content type='text'>
Currently, Application Processors (non-boot CPUs) are started by
MD code at SI_SUB_CPU, but they are kept waiting in a "pen" until
SI_SUB_SMP at which point they are released to run kernel threads.
SI_SUB_SMP is one of the last SYSINIT levels, so APs don't enter
the scheduler and start running threads until fairly late in the
boot.

This change moves SI_SUB_SMP up to just before software interrupt
threads are created allowing the APs to start executing kernel
threads much sooner (before any devices are probed).  This allows
several initialization routines that need to perform initialization
on all CPUs to now perform that initialization in one step rather
than having to defer the AP initialization to a second SYSINIT run
at SI_SUB_SMP.  It also permits all CPUs to be available for
handling interrupts before any devices are probed.

This last feature fixes a problem on with interrupt vector exhaustion.
Specifically, in the old model all device interrupts were routed
onto the boot CPU during boot.  Later after the APs were released at
SI_SUB_SMP, interrupts were redistributed across all CPUs.

However, several drivers for multiqueue hardware allocate N interrupts
per CPU in the system.  In a system with many CPUs, just a few drivers
doing this could exhaust the available pool of interrupt vectors on
the boot CPU as each driver was allocating N * mp_ncpu vectors on the
boot CPU.  Now, drivers will allocate interrupts on their desired CPUs
during boot meaning that only N interrupts are allocated from the boot
CPU instead of N * mp_ncpu.

Some other bits of code can also be simplified as smp_started is
now true much earlier and will now always be true for these bits of
code.  This removes the need to treat the single-CPU boot environment
as a special case.

As a transition aid, the new behavior is available under a new kernel
option (EARLY_AP_STARTUP).  This will allow the option to be turned off
if need be during initial testing.  I plan to enable this on x86 by
default in a followup commit in the next few days and to have all
platforms moved over before 11.0.  Once the transition is complete,
the option will be removed along with the !EARLY_AP_STARTUP code.

These changes have only been tested on x86.  Other platform maintainers
are encouraged to port their architectures over as well.  The main
things to check for are any uses of smp_started in MD code that can be
simplified and SI_SUB_SMP SYSINITs in MD code that can be removed in
the EARLY_AP_STARTUP case (e.g. the interrupt shuffling).

PR:		kern/199321
Reviewed by:	markj, gnn, kib
Sponsored by:	Netflix
</content>
</entry>
<entry>
<title>MFV	r266993:</title>
<updated>2015-02-03T19:39:53Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2015-02-03T19:39:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=eadcd0fadf94e04a873c9ca9dcb1d373150ddad1'/>
<id>urn:sha1:eadcd0fadf94e04a873c9ca9dcb1d373150ddad1</id>
<content type='text'>
4469 DTrace helper tracing should be dynamic

Reference:
https://illumos.org/issues/4469

Obtained from:	Illumos
Phabric:	D1551
Reviewed by:	markj
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Continue the crusade towards a dev_clone()-free kernel, removing its</title>
<updated>2014-06-25T03:54:02Z</updated>
<author>
<name>Davide Italiano</name>
<email>davide@FreeBSD.org</email>
</author>
<published>2014-06-25T03:54:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=a99098e2ba18e9c0c9ec80a98ea703d290a56cf2'/>
<id>urn:sha1:a99098e2ba18e9c0c9ec80a98ea703d290a56cf2</id>
<content type='text'>
usage from dtrace. The dtrace code already uses cdevpriv(9) since FreeBSD
8, so this change should be quite harmless.

Reviewed by:	markj
Approved by:	markj
MFC after:	never
</content>
</entry>
<entry>
<title>Allocate the probe ID unrhdr before the DTrace kld_* event handlers are</title>
<updated>2013-12-31T15:41:16Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2013-12-31T15:41:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=b69b2ff588344382c3c3a725310d261b7fd2f997'/>
<id>urn:sha1:b69b2ff588344382c3c3a725310d261b7fd2f997</id>
<content type='text'>
registered. Otherwise there is a small window during which probe IDs may be
allocated before the unrhdr is allocated.

MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Revert r260091. The vmem calls seem to be slower than the *_unr() calls that</title>
<updated>2013-12-31T15:37:51Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2013-12-31T15:37:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=a333376bba1d947fa21031ed883aae1e93b753d9'/>
<id>urn:sha1:a333376bba1d947fa21031ed883aae1e93b753d9</id>
<content type='text'>
they replaced, which is important considering that probe IDs are allocated
during process startup for USDT probes.
</content>
</entry>
<entry>
<title>Now that vmem(9) is available, use vmem arenas to allocate probe and</title>
<updated>2013-12-30T17:37:32Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2013-12-30T17:37:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=b9c04b396ac59dae8ba70753cd4822c8fb494a6e'/>
<id>urn:sha1:b9c04b396ac59dae8ba70753cd4822c8fb494a6e</id>
<content type='text'>
aggregation IDs, as is done in the upstream illumos code. This still
requires some FreeBSD-specific code, as our vmem API is not identical to the
one in illumos.

Submitted by:	Mike Ma &lt;mikemandarine@gmail.com&gt;
</content>
</entry>
<entry>
<title>Initialize and free the DTrace taskqueue in the dtrace module load/unload</title>
<updated>2013-10-08T12:56:46Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2013-10-08T12:56:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=cb7320ce7b3841f6cfaac18b0a2f857cedadfe5f'/>
<id>urn:sha1:cb7320ce7b3841f6cfaac18b0a2f857cedadfe5f</id>
<content type='text'>
handlers rather than in the dtrace device open/close methods. The current
approach can cause a panic if the device is closed which the taskqueue
thread is active, or if a kernel module containing a provider is unloaded
while retained enablings are present and the dtrace device isn't opened.

Submitted by:	gibbs (original version)
Reviewed by:	gibbs
Approved by:	re (glebius)
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Rename the kld_unload event handler to kld_unload_try, and add a new</title>
<updated>2013-08-24T21:13:38Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2013-08-24T21:13:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=29f4e216f22f69380f86029fc282bf8b9002330c'/>
<id>urn:sha1:29f4e216f22f69380f86029fc282bf8b9002330c</id>
<content type='text'>
kld_unload event handler which gets invoked after a linker file has been
successfully unloaded. The kld_unload and kld_load event handlers are now
invoked with the shared linker lock held, while kld_unload_try is invoked
with the lock exclusively held.

Convert hwpmc(4) to use these event handlers instead of having
kern_kldload() and kern_kldunload() invoke hwpmc(4) hooks whenever files are
loaded or unloaded. This has no functional effect, but simplifes the linker
code somewhat.

Reviewed by:	jhb
</content>
</entry>
</feed>
