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:
parent
44aea82edb
commit
acc74713c3
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=19091
1 changed files with 216 additions and 7 deletions
|
@ -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 progress</font>">
|
||||
<!ENTITY status.untested "<font color=orange>Needs testing</font>">
|
||||
<!ENTITY status.new "<font color=red>Not 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> </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>
|
||||
|
|
Loading…
Reference in a new issue