<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/alpha/include/cpufunc.h, branch release/5.5.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F5.5.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F5.5.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2002-04-01T23:51:23Z</updated>
<entry>
<title>Stage-2 commit of the critical*() code.  This re-inlines cpu_critical_enter()</title>
<updated>2002-04-01T23:51:23Z</updated>
<author>
<name>Matthew Dillon</name>
<email>dillon@FreeBSD.org</email>
</author>
<published>2002-04-01T23:51:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=182da8209d4cda12e2d510e06f9e4b516171f9b6'/>
<id>urn:sha1:182da8209d4cda12e2d510e06f9e4b516171f9b6</id>
<content type='text'>
and cpu_critical_exit() and moves associated critical prototypes into their
own header file, &lt;arch&gt;/&lt;arch&gt;/critical.h, which is only included by the
three MI source files that need it.

Backout and re-apply improperly comitted syntactical cleanups made to files
that were still under active development.  Backout improperly comitted program
structure changes that moved localized declarations to the top of two
procedures.  Partially re-apply one of the program structure changes to
move 'mask' into an intermediate block rather then in three separate
sub-blocks to make the code more readable.  Re-integrate bug fixes that Jake
made to the sparc64 code.

Note: In general, developers should not gratuitously move declarations out
of sub-blocks.  They are where they are for reasons of structure, grouping,
readability, compiler-localizability, and to avoid developer-introduced bugs
similar to several found in recent years in the VFS and VM code.

Reviewed by:	jake
</content>
</entry>
<entry>
<title>Compromise for critical*()/cpu_critical*() recommit.  Cleanup the interrupt</title>
<updated>2002-03-27T05:39:23Z</updated>
<author>
<name>Matthew Dillon</name>
<email>dillon@FreeBSD.org</email>
</author>
<published>2002-03-27T05:39:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d74ac6819b2cc8e5c18a099a97ffc16616b4e94d'/>
<id>urn:sha1:d74ac6819b2cc8e5c18a099a97ffc16616b4e94d</id>
<content type='text'>
disablement assumptions in kern_fork.c by adding another API call,
cpu_critical_fork_exit().  Cleanup the td_savecrit field by moving it
from MI to MD.  Temporarily move cpu_critical*() from &lt;arch&gt;/include/cpufunc.h
to &lt;arch&gt;/&lt;arch&gt;/critical.c (stage-2 will clean this up).

Implement interrupt deferral for i386 that allows interrupts to remain
enabled inside critical sections.  This also fixes an IPI interlock bug,
and requires uses of icu_lock to be enclosed in a true interrupt disablement.

This is the stage-1 commit.  Stage-2 will occur after stage-1 has stabilized,
and will move cpu_critical*() into its own header file(s) + other things.
This commit may break non-i386 architectures in trivial ways.  This should
be temporary.

Reviewed by:	core
Approved by:	core
</content>
</entry>
<entry>
<title>Fix abuses of cpu_critical_{enter,exit} by converting to</title>
<updated>2002-03-21T06:14:58Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2002-03-21T06:14:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=b70c0e8b0066218e4f4977bafe646e5e41747901'/>
<id>urn:sha1:b70c0e8b0066218e4f4977bafe646e5e41747901</id>
<content type='text'>
intr_{disable,restore} as well as providing an implemenation of
intr_{disable,restore}.
</content>
</entry>
<entry>
<title>Modify the critical section API as follows:</title>
<updated>2001-12-18T00:27:18Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2001-12-18T00:27:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=7e1f6dfe9d7ac65419d57b36dee19cd1a3e996f5'/>
<id>urn:sha1:7e1f6dfe9d7ac65419d57b36dee19cd1a3e996f5</id>
<content type='text'>
- The MD functions critical_enter/exit are renamed to start with a cpu_
  prefix.
- MI wrapper functions critical_enter/exit maintain a per-thread nesting
  count and a per-thread critical section saved state set when entering
  a critical section while at nesting level 0 and restored when exiting
  to nesting level 0.  This moves the saved state out of spin mutexes so
  that interlocking spin mutexes works properly.
- Most low-level MD code that used critical_enter/exit now use
  cpu_critical_enter/exit.  MI code such as device drivers and spin
  mutexes use the MI wrappers.  Note that since the MI wrappers store
  the state in the current thread, they do not have any return values or
  arguments.
- mtx_intr_enable() is replaced with a constant CRITICAL_FORK which is
  assigned to curthread-&gt;td_savecrit during fork_exit().

Tested on:	i386, alpha
</content>
</entry>
<entry>
<title>Block out all interrupts, even machine checks, for critical_enter()</title>
<updated>2001-04-21T21:44:39Z</updated>
<author>
<name>Andrew Gallatin</name>
<email>gallatin@FreeBSD.org</email>
</author>
<published>2001-04-21T21:44:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=62dbd2f29e477f75689dd38d006ab0578254bfb6'/>
<id>urn:sha1:62dbd2f29e477f75689dd38d006ab0578254bfb6</id>
<content type='text'>
This is will be required to prevent lowering the ipl when a critical_enter()
is present in the interrupt path when handling a machine check.

reviewed by: jhb
</content>
</entry>
<entry>
<title>- Add the new critical_t type used to save state inside of critical</title>
<updated>2001-03-28T02:31:54Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2001-03-28T02:31:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=034dc442ad1898c8211261bb7596faa03eacff02'/>
<id>urn:sha1:034dc442ad1898c8211261bb7596faa03eacff02</id>
<content type='text'>
  sections.
- Add implementations of the critical_enter() and critical_exit() functions
  and remove restore_intr() and save_intr().
- Remove the somewhat bogus disable_intr() and enable_intr() functions on
  the alpha as the alpha actually uses a priority level and not simple bit
  flag on the CPU.
</content>
</entry>
<entry>
<title>Major update to the way synchronization is done in the kernel.  Highlights</title>
<updated>2000-09-07T01:33:02Z</updated>
<author>
<name>Jason Evans</name>
<email>jasone@FreeBSD.org</email>
</author>
<published>2000-09-07T01:33:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=0384fff8c5b098545c3db311b0e0aa1ec4c9ae7e'/>
<id>urn:sha1:0384fff8c5b098545c3db311b0e0aa1ec4c9ae7e</id>
<content type='text'>
include:

* Mutual exclusion is used instead of spl*().  See mutex(9).  (Note: The
  alpha port is still in transition and currently uses both.)

* Per-CPU idle processes.

* Interrupts are run in their own separate kernel threads and can be
  preempted (i386 only).

Partially contributed by:	BSDi (BSD/OS)
Submissions by (at least):	cp, dfr, dillon, grog, jake, jhb, sheldonh
</content>
</entry>
<entry>
<title>* Completely rewrite the alpha busspace to hide the implementation from</title>
<updated>2000-08-28T21:48:13Z</updated>
<author>
<name>Doug Rabson</name>
<email>dfr@FreeBSD.org</email>
</author>
<published>2000-08-28T21:48:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=21c3015a2483a7dd798e1baab65786a5abe7ed0a'/>
<id>urn:sha1:21c3015a2483a7dd798e1baab65786a5abe7ed0a</id>
<content type='text'>
  the drivers.
* Remove legacy inx/outx support from chipset and replace with macros
  which call busspace.
* Rework pci config accesses to route through the pcib device instead of
  calling a MD function directly.

With these changes it is possible to cleanly support machines which have
more than one independantly numbered PCI busses. As a bonus, the new
busspace implementation should be measurably faster than the old one.
</content>
</entry>
<entry>
<title>Port ppc driver to alpha.</title>
<updated>2000-05-14T13:47:57Z</updated>
<author>
<name>Doug Rabson</name>
<email>dfr@FreeBSD.org</email>
</author>
<published>2000-05-14T13:47:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=5c885c3f838d38af5d199a4fcf4e25ca32515950'/>
<id>urn:sha1:5c885c3f838d38af5d199a4fcf4e25ca32515950</id>
<content type='text'>
Submitted by: Andrew M. Miklic &lt;miklic@ibm.net&gt;
</content>
</entry>
<entry>
<title>Change #ifdef KERNEL to #ifdef _KERNEL in the public headers.  "KERNEL"</title>
<updated>1999-12-29T04:46:21Z</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>1999-12-29T04:46:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=664a31e4967a61ec61870f45adc2f1400617993e'/>
<id>urn:sha1:664a31e4967a61ec61870f45adc2f1400617993e</id>
<content type='text'>
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
</content>
</entry>
</feed>
