diff --git a/en/releases/5.3R/todo.sgml b/en/releases/5.3R/todo.sgml
index 61a485dcaa..1e718ce480 100644
--- a/en/releases/5.3R/todo.sgml
+++ b/en/releases/5.3R/todo.sgml
@@ -1,387 +1,376 @@
-
+
%includes;
%developers;
N/A">
Done">
In progress">
Needs testing">
Not done">
Unknown">
]>
&header;
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.
| Issue | Status | Responsible | Description |
-
- | /dev/random stalls single user and sysinstall |
- &status.wip; |
- &a.markm; |
- The kernel random number generator's requirement of needing to be
- fed entropy early on has been disabled so that sysinstall and single-user
- mode apps don't block with strange messages. Work is still needed in
- rc.d to enable the higher-quality entropy before critical startup scripts
- start and the system reaches multiuser mode. |
-
-
| General instability and lockups under high load |
&status.new; |
&a.scottl;, &a.julian; |
Problems persist with crashes and hangs under heavy load, especially
- under SMP. The recent introduction of full-scale preemption exasperated
+ under SMP. The recent introduction of full-scale preemption exacerbated
the problem, though preemption has been turned off temporarily while
this problem is debugged. Speculation on the source of the problem
seems to center around problems in the scheduler and appear to be common
to both the 4BSD and ULE schedulers. This needs to be driven to root
cause and fixed in order for 5.3 to be considered STABLE. |
| Source upgrade incompatibility |
&status.new; |
&a.das; |
Symbols that have moved between libc and libm have made source upgrades
problematic. The 5.3 world sources must be buildable and installable
from a 5.2.1 system. |
| Issue | Status | Responsible | Description |
| GDB 6.1 kernel debugging support |
&status.wip |
&a.marcel; |
GDB 6.1.1 import does not include FreeBSD kernel debugging support. |
| BIND9 import into 5-CURRENT |
&status.wip; |
&a.dougb; |
BIND9 must be imported for 5.3-RELEASE. |
| KSE support for sparc64 |
-- |
-- |
Kernel bits implemented, userland not implemented. Required for
5.3-RELEASE. |
| Fine-grained network stack locking without Giant |
&status.wip; |
&a.rwatson; |
Significant parts of the network stack (especially IPv4, UNIX
domain IPC, and sockets) now have fine-grained locking of their data
structures. It's possible to run many common network subsystems and
services without the Giant lock. However, a number of device drivers
and less mainstream network subsystems are currently not MPSAFE.
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. |
| kld support for amd64 |
&status.wip; |
&a.obrien; &a.peter; |
KLDs work when loaded from userland, but not from the loader. kldxref
might also need work. Required for amd64 to be promoted to tier-1
status. |
| GDB thread support |
&status.wip; |
&a.davidxu;,&a.marcel; |
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. |
| Scheduler cleanup and resolution |
&status.wip; |
-- |
Currently, two schedulers are present: SCHED_ULE (default), an
SMP-optimized scheduler created as part of SMPng, and SCHED_4BSD,
an SMP-adapted version of the original 4BSD scheduler. They have
quite different performance properties, with ULE providing strong
interactivity characteristics, and performing quite well in a
number of benchmarks, and 4BSD showing greater strength in IPC
intensive user space benchmarks, such as databases. One of these
schedulers must be the default for 5.3, and whichever one it is,
it requires careful measurement, analysis, and optimization before
the release in order to address its deficiencies. |
| Reports of UFS2 "large disk" problems |
&status.wip |
&a.scottl; |
There have been several reports that growfs(8) works improperly
with large disk sizes, and other size-related nits in the current
disk and label management tool set. These must be resolved for
5.3-RELEASE. |
| Issue | Status | Responsible | Description |
| truss support for ptrace |
-- |
-- |
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(). |
| Per-platform Thread-Local Storage |
&status.wip; |
&a.dfr;, &a.marcel; |
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 |
-- |
-- |
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.new; |
&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 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. |
| KSE support for alpha |
&status.wip; |
&a.marcel; |
Userland bits implemented, kernel bits not implemented. |
| CAM locking |
&status.wip; |
&a.scottl;, &a.gibbs; |
For kernel API/ABI compatibility reasons, it would be desirable to
have the CAM locking strategy determined and loosely implemented for
5.3. |
| Issue | Status | Responsible | Description |
| 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. |
| make -DUSE_KQUEUE causes lockup with buildworld -jBIGNUM |
&status.untested; |
&a.green;, &a.jmg; |
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. |
| KSE as the default threads library |
&status.untested; |
&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 |
&status.untested; |
&a.obrien; |
Binutils needs updating in order to support new platforms, newer GDB
versions, and Thread Local Storage. |
| gcc 3.3 floating point alignment regression |
&status.untested; |
|
The previous GCC 3.3 snapshot included regressions in alignment of
floating point arguments, resulting in a substantial performance
degradation. The recent GCC 3.4.2 import should fix this, but more
testing is needed. |
&footer;