diff --git a/en/releases/5.3R/todo.sgml b/en/releases/5.3R/todo.sgml index 84589223b7..841f014fa0 100644 --- a/en/releases/5.3R/todo.sgml +++ b/en/releases/5.3R/todo.sgml @@ -1,563 +1,588 @@ - + %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
PREEMPTION-related hangs involving threads &status.wip; &a.scottl;, &a.julian; PREEMPTION appears to increase the chances of triggering a race condition in the thread context management and scheduling code. Patches to mitigate the problem have been developed, with on-going work to come up with the correct solution prior to 5.3.
NFS over IPv6 problems &status.new; - &a.kuriyama; has reported problems with NFS over IPv6 not functioning correctly as of the improved NFS support for disconnection changes.
poll()/select() application wedge reports with debug.mpsafenet=1 &status.wip; &a.rwatson; There are reports of applications wedging in poll() and select() while running the network stack without the Giant lock. A recent sleepq change appears to have caused some of the observed problems to go away (others are difficult to test for due to recent SMP instability). uipc_socket.c:1.211 appears to correct this race in the CVS HEAD (6.x), but the fix is currently in a waiting period to be merged back to RELENG_5.
ether_input() may harvest entropy from free()'d mbuf &status.wip; &a.markm; ether_input() calls random_harvest() on the mbuf after it has been handed off to ether_demux(), at which point it may have been free()'d back to the mbuf allocator. It also passes in a pointer to the mbuf itself, rather than ethernet frame header.
ATA panics under sparc64 &status.wip; &a.sos;, &a.scottl; Recent changes to the ATA driver trigger a bug on sparc64 that causes a panic on boot. A work-around has been developed but needs to be committed.
boot time panic &status.new; - &a.kris; has reported problems with boot time panic's, mutex Giant not owned at kern/vfs_subr.c:1365. See "Re: 5.3-RELEASE TODO" thread in -current@.

Required features for 5.3-RELEASE

IssueStatusResponsibleDescription
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.
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.
Synaptics touchpad problems &status.wip; &a.philip; Synaptics updates to the psm(4) driver have resulted in poor interactivity for taps and button press events for some users.
Entropy harvesting optimizations &status.wip; &a.rwatson;, &a.markm; Entropy harvesting in the interrupt and incoming packet paths currently involves a large number of mutex operations. In order to improve performance, it is desirable to reduce the number of mutex operations substantially. Work is in progress to improve the harvesting code along these lines, but has not yet been properly measured, and therefore not yet merged to CVS.

Desired features for 5.3-RELEASE

IssueStatusResponsibleDescription
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().
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.
More truss problems &status.new; -- Truss appears to have another problem. It is repeatable by running "truss -f fsck -p /", suspending it with ^Z, and then killing truss. It will leave behind the fsck processes which will be unkillable.
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.
syscons not working on Sparc64 Ultra-30 &status.new; -- When running syscons on an Ultra-30 with Creator-3D typing characters on the keyboard produces garbage. Problem reported by &a.kris;. Debugging difficult due to lack of this particular configuration among developers and problem isn't present on similar hardware (e.g. no problem on Ultra-60 w/Creator-3D).

Documentation items that must be resolved for 5.3

+ disks). This should be updated.
+ References: + docs/70485 (closed) + + updated.
+ References: + Manpage for snd_solo on -doc@
+ + and difficult to be maintained.
+ References: + doc/70485 (closed)
+ + server.
+ References: + books/handbook/config/chapter.sgml rev.1.147
+ + configuration.
+ References: + books/handbook/config/chapter.sgml rev.1.170
+ - + + for 5.X systems.
+ References: + ipsec on -doc@
+
IssueStatusResponsibleDescription
i386 Floppy Installation Docs &status.done; Gavin Atkinson, &a.bmah; The installation documentation doesn't take into account the new floppy images (with a full kernel split across multiple - disks). This should be updated.
Finish hardware notes trimming &status.wip; &a.simon;, &a.brueffer; Finish removing mention of individual devices in the hardware notes and use auto-generated lists, based on driver manual pages, instead.
sound(4) related manual pages &status.wip; &a.ru;, &a.simon; The snd(4) and pcm(4) drivers have been renamed but their manual pages are still outdated. sound(4) has to be added and pcm(4), csa(4), gusc(4), sbc(4), and uaudio(4) should be revised. Other manual pages which refer to pcm(4) (if any) should possibly be revised, too. In addition, supported cards list needs to be - updated.
Sound section in the Handbook &status.wip; &a.blackend; This section is outdated, some rewrites are needed for 5.3-RELEASE.
FDP documentations related pcm(4) &status.new; -- With the snd(4) and pcm(4) drivers changes, documentations (FAQ) regarding the use of these drivers need an update.
Early Adopter's Guide &status.wip; &a.bmah;, &a.trhodes; Xin LI pointed out that FreeBSD 5.3-RELEASE is the first stable release on 5.X and it is (hopefully) not for early adopters. Early Adopter's Guide is still useful, but contains a bit old information. Some parts of this guide need a rewrite, and this document should be published as "4.X to 5.X Migration Guide", which focuses difference between 4.X and 5.X.
Installation Notes &status.new; &a.trhodes; Some parts are outdated. doc/70485 has been committed, but more work is needed to reflect the realities. bmah@ pointed out that we should have "quick-start" installation guide for each platform instead of the current ones because they become too long - and difficult to be maintained.
Xorg &status.done; Ken Tom, &a.blackend; Update the X11 chapter of the Handbook for X.Org's X11 - server.
rc.d scripts &status.wip; &a.trhodes; Ch.11.4 and 11.5 of the Handbook must be updated to mention the new rc.d scripts and some ports use /etc/rc.conf for their - configuration.
Handbook's kernel configuration chapter &status.wip; &a.ceri;Chapter 8 must be updated to match 5.3-RELEASE.Chapter 8 must be updated to match 5.3-RELEASE.
+ References: + docs/70674 (open)
+
Handbook's IPsec section &status.new; -- Some parts of Section 14.10 are outdated and are not correct - for 5.X systems.
Handbook's Vinum chapter &status.new; -- Vinum chapter needs to be revised for 5.X systems.

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.
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.
in6_pcbnotify() panic with TCP &status.untested; &a.rwatson; &a.kuriyama; has reportged a failed locking assertion with IPv6 TCP notifications. A patch has been committed to the CVS HEAD and RELENG_5 and needs further testing.
Per-platform Thread-Local Storage &status.untested; &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.
SMP instability under load &status.untested; &a.dwhite;, &a.alc; High load on SMP systems appears to result in a hard hang related to VM IPI. &a.dwhite; has prepared a candidate patch that appears to resolve this instability, which is currently in testing for merge to the CVS HEAD.
Fine-grained network stack locking without Giant &status.untested; &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.
Increased and configurable netisr queue max depth for routing sockets &status.untested; &a.rwatson; As part of the MPSAFE network stack work, delivery of routing socket messages was moved to queued dispatch via netisr rather than direct dispatch from the routing code. However, the risks of lost routing messages for routing daemons are high; respond by increasing the max depth beyond a default interface max depth of 50 to 128, and allow it to be user-configured. This change is now present in CVS HEAD and RELENG_5.
kld support for amd64 &status.untested; &a.obrien;, &a.iedowse; KLDs work when loaded from userland, but not from the loader. kldxref and loader support has been committed to HEAD and RELENG_5 and needs final testing.
&footer;