Take a first pass at capturing the need for light weight interrupt

thread and kernel thread context switch optimization.  Point at
Bosko as having done some useful work here, but don't assign an
owner.  I suspect we'll need to refine the wording here, assign
owners for platforms, and break this into a couple of items -- perhaps
breaking out the interrupt issue vs. the general context switch
issue.  Feedback welcomed.

This is a 5.2-RELEASE "must have" since this work will be required
to further restore performance from RELENG_4.
This commit is contained in:
Robert Watson 2003-05-15 16:21:52 +00:00
parent 7bbba37db3
commit 2110019a77
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=16910

View file

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY email 'freebsd-qa'>
<!ENTITY date "$FreeBSD: www/en/releases/5.2R/todo.sgml,v 1.11 2003/05/15 16:01:07 rwatson Exp $">
<!ENTITY date "$FreeBSD: www/en/releases/5.2R/todo.sgml,v 1.12 2003/05/15 16:06:14 rwatson Exp $">
<!ENTITY title "FreeBSD 5.2 Open Issues">
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
@ -157,6 +157,26 @@
starting on this work.</td>
</tr>
<tr>
<td>Light-weight interrupt threads, context switches</td>
<td>--</td>
<td>--</td>
<td>Currently, there are two classes of interrupt handlers in 5.x:
fast interrupt handlers which run entirely in interrupt context,
and heavy-weight handlers which execute in a full-weight kernel
interrupt thread. It is possible to optimize interrupt thread
context management such that a light-weight context switch is
performed to begin execution of the interrupt thread in the
handler context, and only when a full-weight context is required
(such as sleeping on a lock) is that cost required. This
optimization should substantially improve interrupt latency.
There are also additional kernel thread context switch optimizations
that can be made to improve the performance of thread workers in
the kernel, such as found in the network stack, crypto worker
threads, and GEOM. &a.bmilekic; has done substantial prototyping
work, and should be coordinated with.</td>
</tr>
</table>
<h3>Desired Features for 5.2-RELEASE</h3>