diff --git a/en/releases/5.2R/todo.sgml b/en/releases/5.2R/todo.sgml
index 1832d1a9af..a5ae31c893 100644
--- a/en/releases/5.2R/todo.sgml
+++ b/en/releases/5.2R/todo.sgml
@@ -1,357 +1,366 @@
-
+
%includes;
%developers;
]>
&header;
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.
Issue | Status | Responsible | Description |
Production-quality M:N threading |
In progress |
&a.julian;, &a.davidxu;, &a.deischen; |
KSE M:N threading support is reaching experimental yet usable
status on i386 for 5.1-RELEASE. M:N threading should be
productionable and usable on all platforms by 5.2-RELEASE. |
KSE support for sparc64, alpha, ia64 |
-- |
&a.jake;, --, -- |
Currently, the MD elements of KSE are present only for the i386
platform, limiting use of KSE to the i386 platform. It is highly
desirable to make KSE available on non-i386 platforms for
5.2-RELEASE so that KSE can see more broad exposure, and the
performance benefits of KSE can be visible to users of the
64-bit FreeBSD architectures. |
ia64 stability |
In Progress |
&a.marcel; |
&a.kris; reports high instability of 5-CURRENT on ia64
machines, such as the pluto* machines. These problems need to be
fixed in order to get a successful package build. |
ia64 sio support |
In progress |
&a.marcel;, &a.imp; |
ia64 serial console support is reported to not be functional
on HP Itanium2 platforms. A reworking of the sio driver to
improve platform independence and bus handling is likely needed. |
FAST_IPSEC and KAME compatibility |
-- |
-- |
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 |
-- |
-- |
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 |
In progress |
&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 |
-- |
-- |
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. |
sparc64 adaptation of syscons |
In progress |
&a.jake; |
Port syscons to sparc64. Add device drivers for sun mice
and keyboards. Allow for more than 3 bits of background
colour in syscons. Creator frame buffer device driver. In
the process, generally improve the MI-ness of syscons. |
ACL_MASK override of umask support in UFS |
In progress |
&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. |
Fine-grained network stack locking without Giant |
In progress |
&a.hsu;, &a.tanimura; |
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. |
ATA driver structural improvements, MPsafety |
In progress |
&a.sos; |
Move ATA commands into requests, so that they can be linked
together, centralize request queue management permitting direct
DMA of ATA commands. These architectural changes will also
facilitate complete MP-safety of the ATA driver suite, and
dramatically improve support for Promise RAID controllers. |
Tier-1 Support for AMD64 Hammer |
In progress |
&a.peter;, &a.obrien; |
Productionable support for the AMD64 platform. Currently,
AMD64 runs fully in 32-bit emulation mode, and boots to
single-user in 64-bit mode. We expect full production
support for the AMD64 architecture in 5.2-RELEASE. |
Revised kld build infrastructure |
-- |
-- |
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 |
-- |
-- |
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. |
Support for a fully dynamic system |
In progress |
&a.gordon; |
With the introduction of extensive PAM and NSS support in 5.0-RELEASE
and 5.1-RELEASE, support for a fully dynamically linked system
is desired. &a.gordon; has in-progress patches to post for review
following the 5.1 release cycle. |
Complete the APIC PCI interrupt routing support |
-- |
-- |
Existing interrupt routing code is not able to correctly determine
the interrupt routing of PCI devices that are behind PCI-to-PCI
bridges when using APIC Full Table routing (with non-legacy interrupts
above 15). |
Run-time autoconfiguration of GBDE and related transforms |
-- |
-- |
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. |
MAC Framework devfs path fixes |
In progress |
&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. |
rpc.lockd(8) stability |
In progress |
&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. |
+
+ panic with ida(4) controllers on boot |
+ -- |
+ -- |
+ PR 53245 includes a number of confirmed reports of panics with
+ ida(4) controllers under 5.1, which is used in a number of Compaq
+ systems. |
+
+
Issue | Status | Responsible | Description |
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. |
gdb -k support for alpha |
-- |
&a.mp; |
gdb -k doesn't work on alpha |
MAC support for NFS Server |
-- |
&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 |
-- |
-- |
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 |
-- |
-- |
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. |
Per object ELF Prebinding support |
In progress |
&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. |