diff --git a/en/releases/5.2R/todo.sgml b/en/releases/5.2R/todo.sgml index a5a44b5261..282dbf013d 100644 --- a/en/releases/5.2R/todo.sgml +++ b/en/releases/5.2R/todo.sgml @@ -1,450 +1,262 @@ - + %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.2. If you have any updates for this list, please e-mail re@FreeBSD.org.

Show stopper defects for 5.2-RELEASE

IssueStatusResponsibleDescription
Turnstile assertion failure &status.wip &a.jhb; panic: Assertion td->td_turnstile != NULL failed at ../../../kern/subr_turnstile.c:427 has been affecting several users on multiple platforms. Note: further research indicates that these panics tend to be "double panics" that are a side effect of the turnstile code in the context of an existing panic. Reporters of this panic should make sure to include a full stack trace so that it's clear if a second panic is also present.

Required features for 5.2-RELEASE

- - - - - - - - - - - - - -
IssueStatusResponsibleDescription
KSE support for sparc64&status.wip;&a.jake;Kernel and userland bits are implemented but untested and known to - be incomplete. Required for 5.2-RELEASE.
KSE support for alpha&status.wip;&a.marcel;Userland bits implemented, kernel bits not implemented. Required for - 5.2-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. 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.

Desired features for 5.2-RELEASE

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IssueStatusResponsibleDescription
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.
KAME Synchronization &status.wip; &a.ume; The FreeBSD KAME IPv6 code is now substantially dated with respect to the KAME vendor source. The FreeBSD Project needs to take initiative in driving the merge of new bug fixes, features, et al.
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.
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.
Tier-1 Support for AMD64 Hammer&status.wip;&a.peter;, &a.obrien;Productionable support for the AMD64 platform. It currently - meets most of the requirements for the Tier-1 classification, - but a formal ruling must be made in time for 5.2-RELEASE.
Revised kld build infrastructure&status.new;--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.
Light-weight interrupt threads, context switches &status.new; -- 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.
Run-time autoconfiguration of GBDE and related transforms &status.new; -- Currently, gbde must be manually configured at run-time each time an encrypted disk device is mounted. This prevents easy integration into /etc/fstab and easy automated deployment. Improved integration with the configuration, mounting, and boot process is required to make this feature more easily accessible.
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.
Race conditions in trussErrata 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.
gdb -k support for alpha &status.new; &a.mp; gdb -k doesn't work on alpha
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.
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.
GDB thread support&status.wip;Glenn GombertWith 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.
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.

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.
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.
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.

Documentation items desired for 5.2

IssueStatusResponsibleDescription
Revise EAG &status.wip; &a.bmah; The Early Adopters Guide needs to be revised, hopefully for the last time, to reflect the state of 5.2.
Trim Hardware Notes &status.wip; &a.bmah; Ongoing project to remove redundancy in documentation by removing lists of specific devices from the hardware notes and pointing readers to driver manpages.

Testing focuses for 5.2-RELEASE

IssueStatusResponsibleDescription
PCM locking and performance issues &status.untested; -- The PCM audio framework and device drivers have been locked and free of Giant for quite a while, but LOR problems persist along with reports of poor audio performance under load. These problems are believed to have been corrected, but more testing is desired.
ATA driver structural improvements, MPsafety &status.untested; &a.sos; New ATA model has arrived, supporting fine-grained locking, and more. Much testing is needed to ensure no regressions.
GPT support for sysinstall &status.untested; &a.marcel; Sysinstall and libdisk has been overhauled to support the GPT partition scheme used on ia64.
Complete the APIC PCI interrupt routing support &status.untested; &a.jhb Interrupt routing on ia32 has been completely re-written to support ACPI hints for PCI interrupt routing, along with ACPI hints for CPU enumeration. There have been reports of interrupt storms or a failure for interrupts to deliver, possibly a result of bad ACPI information. These problems need to be tracked down and resolved.
ATAng crashdump causes disk corruption &status.untested; &a.sos;, &a.tegge; Performing a crashdump on an ATA device can result in a corrupted MBR record. Tor has a possible patch for this.
SMP users report acpi_cpu panic during shutdown &status.untested; &a.njl; The ACPI code registers eventhandlers that are not unregistered when ACPI shuts down during system shutdown. The result can be a panic during shutdown. Nate is circulating a patch that is believed to correct this problem.
random_harvest panic &status.untested; &a.markm; There are reports of witness panics in random_harvest_internal() due to last minute changes in interrupt entropy harvesting code. Systems running with INVARIANTS will rapidly panic. Update: a workaround has been committed, but the original change must either be backed out or revised before we can cut the first beta.
Vinum data corruption and memory allocation problems &status.untested; &a.grog; In the last week, reports of two new (and possibly related) Vinum failures have come to light: a warning message of vinum: exiting with malloc table inconsistency at 0xc2053c00 from vinumio.c:755 has been experienced when Vinum auto-configuration fails. Also, even simple test cases for Vinum I/O appear to result in incorrect data being returned from disk, rendering Vinum unusable in several reproduceable configurations.
ACPI kernel module &status.untested; &a.jhb; The new i386 inpterrupt code should work whether the acpi driver is compiled into the kernel or loaded as a module. The loader should automatically load the module if it's not already compiled in.
Reported NFS failures &status.unknown;   There have been a number of reports of NFS clients and server hangs. Unfortunately, these are difficult to reproduce, and have not yet been traced back to a particular change or reliable reproduction scenario.
&footer;