diff --git a/en/releases/5.3R/todo.sgml b/en/releases/5.3R/todo.sgml index cbd2bc2f53..00d92b04bc 100644 --- a/en/releases/5.3R/todo.sgml +++ b/en/releases/5.3R/todo.sgml @@ -1,328 +1,328 @@ - + %includes; %developers; N/A"> Done"> In progress"> Needs testing"> Not done"> Unknown"> ]> &header;

Open Issues

This is a list of open issues that need to be resolved for FreeBSD 5.3. If you have any updates for this list, please e-mail re@FreeBSD.org.

Show stopper defects for 5.3-RELEASE

IssueStatusResponsibleDescription
make -DUSE_KQUEUE causes lockup with buildworld -jBIGNUM &status.untested;   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.3.

Required features for 5.3-RELEASE

- - - - - - -
IssueStatusResponsibleDescription
SCHED_ULE as the default scheduler--&a.jeff;SCHED_ULE provides better interactivity, higher performance, and the - ability to support pinning and affinity. Basic HTT scheduling policies - should be in place for 5.3 also.
KSE as the default threads library -- &a.davidxu;, &a.deischen; KSE has matured to the point of being more stable and POSIX-compliant than the traditional libc_r. All Tier-1 platforms MUST have stable KSE support for 5.3 in order to support a consistent transition. Additionally, all ports that depend on the pthreads API must be modified to properly detect and support the default threading library.
Updated binutils for all platforms -- &a.obrien; Binutils needs updating in order to support new platforms, newer GDB versions, and Thread Local Storage.
BIND9 import into 5-CURRENT -- &a.dougb; BIND9 must be imported for 5.3-RELEASE.
Completed compiler support for dynamic -- &a.obrien; All platforms but IA64 have modifications to support /libexec/ld.so in the gcc base source tree; these changes must be merged back into the FSF tree and brought into FreeBSD on the vendor branch for 5.3-RELEASE.
GDB thread support &status.wip; Glenn Gombert 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.
busdma in all PCI drivers &status.wip; -- 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.
truss support for ptrace &status.wip; &a.robert; 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().
KSE support for alpha &status.wip; &a.marcel; Userland bits implemented, kernel bits not implemented. Required for 5.3-RELEASE.
KSE support for sparc64 &status.wip; &a.marcel; Userland bits implemented, kernel bits not implemented. Required for 5.3-RELEASE.
Fine-grained network stack locking without Giant &status.wip; &a.sam; Significant parts of the network stack (especially IPv4 and IPv6) now have fine-grained locking of their data structures. By 5.3-RELEASE, it is necessary to have the vast majority of network code running without Giant, including sockets, permitting complete local<->remote delivery without grabbing Giant.
LINT build on amd64 &status.wip; &a.obrien;, &a.peter; LINT must build for amd64, since it's a Tier-1 platform.
kld support for amd64 &status.new; &a.obrien; &a.peter; KLDs cannot currently be used on amd64, which must be fixed for amd64 as a Tier-1 platform.

Desired features for 5.3-RELEASE

IssueStatusResponsibleDescription
Per object ELF Prebinding support &status.wip; &a.mdodd;

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.

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.

Per-platform Thread-Local Storage -- -- 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.
FAST_IPSEC and KAME compatibility &status.new; -- 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.
rpc.lockd(8) stability &status.wip; &a.rwatson; 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.
Revised kld build infrastructure &status.new; &a.peter; 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.
Merge of Darwin msdosfs, other fixes &status.new; -- 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.
Race conditions in truss Errata candidate &a.robert; 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.
ACL_MASK override of umask support in UFS &status.wip; &a.rwatson; 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.
filedesc LOR &status.new; -- The LOR reported in PR kern/55175 needs to be fixed. Filedesc locking needs to be heavily reviewed in general.
MAC Framework devfs path fixes &status.wip; &a.rwatson; &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.
MAC support for NFS Server &status.new; &a.rwatson; 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.

Documentation items that must be resolved for 5.3

IssueStatusResponsibleDescription

Testing focuses for 5.3-RELEASE

+ + + + + + +
IssueStatusResponsibleDescription
SCHED_ULE as the default scheduler&status.untested;&a.jeff;SCHED_ULE provides better interactivity, higher performance, and the + ability to support pinning and affinity. Basic HTT scheduling policies + should be in place for 5.3 also.
&footer;