Chown BIND9 issue to dougb.

Move from 5.2 to 5.3 required:
  Busdma for all PCI drivers.
  Truss support for ptrace.
  KSE support for alpha.
  Fine-grained network stack locking without Giant (to be updated).
  Fix make -DUSE_KQUEUE, which may be a locking problem with KQueue.
  LINT on amd64.
  kld support for amd64.

Move from 5.2 to 5.3 desired:
  Prebinding.
  FAST_IPSEC KAME support.
  rpc.lockd stability.
  Revised kld build infrastructure.
  Darwin msdosfs fixes.
  Race conditions in truss.
  ACL_MASK semantic changes.
  filedesc lockorder.
  MAC Framework devfs path fixes.
  MAC Framework NFS server support.

Move from 5.3 required to 5.3 desired:
  Per-architecture TLS support to avoid gating release.

Discussed with:	scottl
This commit is contained in:
Robert Watson 2003-12-07 17:12:45 +00:00
parent 44aea82edb
commit acc74713c3
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=19091

View file

@ -1,10 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY email 'freebsd-qa'>
<!ENTITY date "$FreeBSD: www/en/releases/5.3R/todo.sgml,v 1.3 2003/12/07 16:30:57 rwatson Exp $">
<!ENTITY date "$FreeBSD: www/en/releases/5.3R/todo.sgml,v 1.4 2003/12/07 16:34:38 rwatson Exp $">
<!ENTITY title "FreeBSD 5.3 Open Issues">
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
<!-- Status levels -->
<!ENTITY status.na "<font color=green>N/A</font>">
<!ENTITY status.done "<font color=green>Done</font>">
<!ENTITY status.wip "<font color=blue>In&nbsp;progress</font>">
<!ENTITY status.untested "<font color=orange>Needs&nbsp;testing</font>">
<!ENTITY status.new "<font color=red>Not&nbsp;done</font>">
<!ENTITY status.unknown "<font color=red>Unknown</font>">
]>
<html>
@ -59,7 +66,7 @@
<tr>
<td>BIND9 import into 5-CURRENT</td>
<td>--</td>
<td>--</td>
<td>&a.dougb;</td>
<td>BIND9 must be imported for 5.3-RELEASE.</td>
</tr>
@ -74,12 +81,85 @@
</tr>
<tr>
<td>Per-platform Thread-Local Storage</td>
<td>GDB thread support</td>
<td>&status.wip;</td>
<td>Glenn Gombert</td>
<td>With improved support for threading primitives, support is now
required to ease debugging of threaded applications. Ideally,
this support will work for both libthr and libkse threading
models.</td>
</tr>
<tr>
<td>busdma in all PCI drivers</td>
<td>&status.wip;</td>
<td>--</td>
<td>--</td>
<td>To complete support for thread-local storage on FreeBSD,
per-architecture changes must be made. Currently pending
platforms are amd64, alpha, ia64, i386, sparc64, and powerpc.</td>
<td>All PCI drivers must use busdma for DMA; no use of vtophys() will
be permitted for any recent device driver. ISA drivers may be
exempt.</td>
</tr>
<tr>
<td>truss support for ptrace</td>
<td>&status.wip;</td>
<td>&a.robert;</td>
<td>Almost all process debugging tools have been updated to use
non-procfs kernel primitives, with the exception of truss(1).
As procfs is considered deprecated due to its inherent security
risks, it is highly desirable to update truss to operate in
a post-procfs world. &a.des; had prototype patches; &a.robert;
is developing and testing patches now. Support for system
call tracing has been added to ptrace().</td>
</tr>
<tr>
<td>KSE support for alpha</td>
<td>&status.wip;</td>
<td>&a.marcel;</td>
<td>Userland bits implemented, kernel bits not implemented. Required for
5.2-RELEASE.</td>
</tr>
<tr>
<td>Fine-grained network stack locking without Giant</td>
<td>&status.wip;</td>
<td>&a.sam;</td>
<td>Significant parts of the network stack (especially IPv4 and
IPv6) now have fine-grained locking of their data structures.
However, it is not yet possible for the netisr threads to run
without Giant, due to dependencies on sockets, routing, etc.
A 5.2-RELEASE goal is to have the network stack running largely
without Giant, which should substantially improve performance
of the stack, as well as other system components by reducing
contention on Giant.</td>
</tr>
<tr>
<td>make -DUSE_KQUEUE causes lockup with buildworld -jBIGNUM</td>
<td>&status.untested;</td>
<td>&nbsp;</td>
<td>Attempts to use make(1) with KQueues appears to result in a kernel
hang under "heavy load". It would be desirable to fix this
both from the perspective of building FreeBSD quickly as a
developer, but also because it's an instability that could show
up under other high load and heavy use of KQueues. See PR
kern/57945 for a proposed patch and details. This appear to be
the product of a locking problem, and must be fixed for 5.2.</td>
</tr>
<tr>
<td>LINT build on amd64</td>
<td>&status.wip;</td>
<td>&a.obrien;, &a.peter;</td>
<td>LINT must build for amd64, since it's a Tier-1 platform.</td>
</tr>
<tr>
<td>kld support for amd64</td>
<td>&status.new;</td>
<td>&a.obrien; &a.peter;</td>
<td>KLDs cannot currently be used on amd64, which must be fixed for
amd64 as a Tier-1 platform.</td>
</tr>
</table>
@ -90,6 +170,135 @@
<tr><th>Issue</th><th>Status</th><th>Responsible</th><th>Description</th>
</tr>
<tr>
<td>Per object ELF Prebinding support</td>
<td>&status.wip;</td>
<td>&a.mdodd;</td>
<td><p>Prebinding reduces executable startup time by lowering the
expense of symbol lookup, binding and relocation. This is
accomplished by a prebinding data file or ELF segment that
contains intermediate lookup results allowing fast symbol binding
and relocation, provided that dependent objects remain unchanged
since the prebinding information was generated.</p>
<p>The benefits of prebinding are realized when running executables
that use a large (>10) number of shared libraries. C++
applications also benefit as they contain a large number of
relocations.</p></td>
</tr>
<tr>
<td>Per-platform Thread-Local Storage</td>
<td>--</td>
<td>--</td>
<td>To complete support for thread-local storage on FreeBSD,
per-architecture changes must be made. Currently pending
platforms are amd64, alpha, ia64, i386, sparc64, and powerpc.</td>
</tr>
<tr>
<td>FAST_IPSEC and KAME compatibility</td>
<td>&status.new;</td>
<td>--</td>
<td>FAST_IPSEC currently cannot be used directly with the KAME IPv6
implementation, requiring an additional level of IP tunnel
indirection to protect IPv6 packets when using hardware crypto
acceleration. This issue must be resolved so that the two
services may more easily be used together. Among other things,
this will require a careful review of the handling of mbuf
header copying and m_tag support in the KAME IPv6 code.</td>
</tr>
<tr>
<td>rpc.lockd(8) stability</td>
<td>&status.wip;</td>
<td>&a.rwatson;</td>
<td>A process cannot be interrupted while waiting on a lock. Fixing
this requires that the RPC code be taught how to deal with lock
cancellation and interruption events.</td>
</tr>
<tr>
<td>Revised kld build infrastructure</td>
<td>&status.new;</td>
<td>&.peter;</td>
<td>Kernel modules are currently built independently from a kernel
configuration, and independently from one another, resulting in
substantially redundant compilation of objects, as well as the
inability to easily manage compile-time options for kernel
objects (such as MAC, PAE, etc) that may require conditional
compilation in the kernel modules. In order to improve build
performance and better support options of this sort, the
KLD build infrastructure needs to be revamped. &a.peter; has
done some initial prototyping, and should be contacted before
starting on this work.</td>
</tr>
<tr>
<td>Merge of Darwin msdosfs, other fixes</td>
<td>&status.new;</td>
<td>--</td>
<td>Apple's Darwin operating system has fairly extensive improvements
to msdosfs and other kernel services; these fixes must be reviewed
and merged to the FreeBSD tree.</td>
</tr>
<tr>
<td>Race conditions in truss</td>
<td>Errata candidate</td>
<td>&a.robert;</td>
<td>Truss appears to contain a race condition during the start-up of
debugging, which can result in truss failing to attach to the process
before it exits. The symptom is that truss reports that it cannot
open the procfs node supporting the process being debugged. A bug
also appears to exist where in truss will hang if execve() returns
ENOENT. A further race appears to exist in which truss will return
"PIOCWAIT: Input/output error" occasionally on startup. The fix
for this sufficiently changes process execution handling that we
will defer the fix to post-5.0 and consider this errata.</td>
</tr>
<tr>
<td>ACL_MASK override of umask support in UFS</td>
<td>&status.wip;</td>
<td>&a.rwatson;</td>
<td>Many systems supporting POSIX.1e ACLs permit a minor violation
to that specification, in which the ACL_MASK entry overrides the
umask, rather than being intersected with it. The resulting
semantics can be useful in group-oriented environments, and as
such would be very helpful on FreeBSD.</td>
</tr>
<tr>
<td>filedesc LOR</td>
<td>&status.new;</td>
<td>--</td>
<td>The LOR reported in PR kern/55175 needs to be fixed. Filedesc locking
needs to be heavily reviewed in general.</td>
</tr>
<tr>
<td>MAC Framework devfs path fixes</td>
<td>&status.wip;</td>
<td>&a.rwatson;</td>
<td>&a.green; has submitted patches to improve the consistency
of the pathnames passed into the MAC Framework devfs labeling
entry points. These patches need to be thoroughly reviewed
and tested, then merged.</td>
</tr>
<tr>
<td>MAC support for NFS Server</td>
<td>&status.new;</td>
<td>&a.rwatson;</td>
<td>Currently, MAC protections are enforced only on locally originated
file system operations (VOPs), and not on RPCs generated via the
NFS server. Improvements in NFS server credential handling are
required to correct this problem, as well as the introduction of
new entry points to properly label NFS credentials and perform
enforcement properly.</td>
</tr>
</table>
<h3>Documentation items that must be resolved for 5.3</h3>