5.3-RELEASE TODO

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Thu, 15 Jul 2004 10:24:39 -0400 (EDT)
This is an automated bi-weekly mailing of the FreeBSD 5.3 open issues list.
The live version of this list is available at:

    http://www.FreeBSD.org/releases/5.3R/todo.html

Automated mailing of this list will continue through the release of
FreeBSD 5.3.

NOTE: This is the first such mailing for 5.3, and this task list will
inevitably contain errors, omissions, and other sorts of inaccuracies.  If
you see something that makes you panic, it could well be incorrect.  Please
contact the release engineering team for any modifications.


                          FreeBSD 5.3 Open Issues

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

Show stopper defects for 5.3-RELEASE

 +------------------------------------------------------------------------+
 |     Issue      |  Status  | Responsible  |         Description         |
 |----------------+----------+--------------+-----------------------------|
 |                |          |              | The kernel random number    |
 |                |          |              | generator requires either   |
 |                |          |              | the yarrow subsystem to     |
 |                |          |              | start or the user to tap on |
 | /dev/random    |          |              | the keyboard before it will |
 | stalls single  |          |              | deliver data to             |
 | user and       | Unknown  | Mark Murray  | /dev/random. This results   |
 | sysinstall     |          |              | in confusing behavior and   |
 |                |          |              | strange messages when in    |
 |                |          |              | single user mode, and makes |
 |                |          |              | sysinstall stall.           |
 |                |          |              | Non-blocking behavior must  |
 |                |          |              | be restored for 5.3.        |
 |----------------+----------+--------------+-----------------------------|
 |                |          |              | The current gcc snapshot    |
 |                |          |              | includes regressions in     |
 |                |          |              | alignment of floating point |
 |                |          |              | arguments, resulting in a   |
 | gcc 3.3        |          |              | substantial performance     |
 | floating point | Not done |              | degradation. Newer gcc      |
 | alignment      |          |              | 3.3.3 snapshots fix this,   |
 | regression     |          |              | and must be imported before |
 |                |          |              | 5.3-RELEASE. If gcc-3.4 is  |
 |                |          |              | imported instead, it must   |
 |                |          |              | be checked for this         |
 |                |          |              | regression.                 |
 |----------------+----------+--------------+-----------------------------|
 |                |          |              | Recent re-introduction of   |
 |                |          |              | PREEMPTION has resulted in  |
 |                |          |              | reports of frequent hangs.  |
 |                |          |              | This may be a combination   |
 | PREEMPTION     |          |              | of bugs in scheduling and   |
 | triggers       | Not done | John Baldwin | context switching, as well  |
 | frequent hangs |          |              | as existing bugs triggered  |
 |                |          |              | by preemption. These        |
 |                |          |              | problems must be corrected  |
 |                |          |              | for 5.3-RELEASE (and        |
 |                |          |              | ideally long before).       |
 +------------------------------------------------------------------------+

Required features for 5.3-RELEASE

 +------------------------------------------------------------------------+
 |     Issue      |   Status    | Responsible |      Description      |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | GCC 3.4 is needed to  |   |
 |                |             |             | support TLS on all    |   |
 |                |             |             | our our Tier-1        |   |
 | GCC 3.4 for    |             | Alexander   | platforms. It also is |   |
 | all platforms  | In progress | Kabaev      | likely to be better   |   |
 |                |             |             | maintained by the FSF |   |
 |                |             |             | during the lifespan   |   |
 |                |             |             | on 5.x than GCC 3.3   |   |
 |                |             |             | is.                   |   |
 |----------------+-------------+-------------+-----------------------|   |
 | GDB 6.1 kernel |             |             | GDB 6.1.1 import does |   |
 | debugging      | In progress | Marcel      | not include FreeBSD   |   |
 | support        |             | Moolenaar   | kernel debugging      |   |
 |                |             |             | support.              |   |
 |----------------+-------------+-------------+-----------------------|   |
 | BIND9 import   |             |             | BIND9 must be         |   |
 | into 5-CURRENT | In progress | Doug Barton | imported for          |   |
 |                |             |             | 5.3-RELEASE.          |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | Kernel bits           |   |
 | KSE support    |             |             | implemented, userland |   |
 | for sparc64    | --          | --          | not implemented.      |   |
 |                |             |             | Required for          |   |
 |                |             |             | 5.3-RELEASE.          |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | 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  |   |
 | Fine-grained   |             |             | Giant lock. However,  |   |
 | network stack  | In progress | Robert      | a number of device    |   |
 | locking        |             | Watson      | drivers and less      |   |
 | without Giant  |             |             | 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.       |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | KLDs work when loaded |   |
 |                |             |             | from userland, but    |   |
 |                |             | David       | not from the loader.  |   |
 | kld support    | In progress | O'Brien     | kldxref might also    |   |
 | for amd64      |             | Peter Wemm  | need work. Required   |   |
 |                |             |             | for amd64 to be       |   |
 |                |             |             | promoted to tier-1    |   |
 |                |             |             | status.               |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | With improved support |   |
 |                |             |             | for threading         |   |
 |                |             |             | primitives, support   |   |
 |                |             |             | is now required to    |   |
 | GDB thread     |             | David       | ease debugging of     |   |
 | support        | In progress | Xu,Marcel   | threaded              |   |
 |                |             | Moolenaar   | applications.         |   |
 |                |             |             | Ideally, this support |   |
 |                |             |             | will work for both    |   |
 |                |             |             | libthr and libkse     |   |
 |                |             |             | threading models.     |   |
 |----------------+-------------+-------------+-----------------------|   |
 |                |             |             | 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         |   |
 | Scheduler      |             |             | characteristics, and  |   |
 | cleanup and    | In progress | --          | performing quite well |   |
 | resolution     |             |             | 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        |   |
 |                |             |             | defficiences.         |   |
 |----------------+-------------+-------------+-----------------------+---|
 |                |             |             | There have been       |   |
 |                |             |             | several reports that  |   |
 |                |             |             | growfs(8) works       |   |
 |                |             |             | improperly with large |   |
 | Reports of     |             |             | disk sizes, and other |   |
 | UFS2 "large    | In progress | Scott Long  | size-related nits in  | > |
 | disk" problems |             |             | the current disk and  |   |
 |                |             |             | label management tool |   |
 |                |             |             | set. These must be    |   |
 |                |             |             | resolved for          |   |
 |                |             |             | 5.3-RELEASE.          |   |
 +------------------------------------------------------------------------+

Desired features for 5.3-RELEASE

 +------------------------------------------------------------------------+
 |      Issue      |   Status    |  Responsible   |      Description      |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | All platforms but     |
 |                 |             |                | IA64 have             |
 |                 |             |                | modifications to      |
 |                 |             |                | support               |
 |                 |             |                | /libexec/ld.so in the |
 | Completed       |             |                | gcc base source tree; |
 | compiler        |             | Alexander      | changes for all       |
 | support for     | --          | Kabaev and     | FreeBSD platforms     |
 | dynamic root    |             | David O'Brien  | have been merged back |
 |                 |             |                | into the FSF 3.4      |
 |                 |             |                | tree. They should be  |
 |                 |             |                | brought into FreeBSD  |
 |                 |             |                | on the vendor branch  |
 |                 |             |                | with a 3.4 import for |
 |                 |             |                | 5.3-RELEASE.          |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | 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     |
 | truss support   |             |                | risks, it is highly   |
 | for ptrace      | --          | --             | desirable to update   |
 |                 |             |                | truss to operate in a |
 |                 |             |                | post-procfs world.    |
 |                 |             |                | Dag-Erling Smorgrav   |
 |                 |             |                | had prototype         |
 |                 |             |                | patches;              |
 |                 |             |                | Robert Drehmel is     |
 |                 |             |                | developing and        |
 |                 |             |                | testing patches now.  |
 |                 |             |                | Support for system    |
 |                 |             |                | call tracing has been |
 |                 |             |                | added to ptrace().    |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | To complete support   |
 |                 |             |                | for thread-local      |
 |                 |             |                | storage on FreeBSD,   |
 | Per-platform    |             | Doug Rabson,   | per-architecture      |
 | Thread-Local    | In progress | Marcel         | changes must be made. |
 | Storage         |             | Moolenaar      | Currently pending     |
 |                 |             |                | platforms are amd64,  |
 |                 |             |                | alpha, ia64, i386,    |
 |                 |             |                | sparc64, and powerpc. |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | 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    |
 | FAST_IPSEC and  |             |                | hardware crypto       |
 | KAME            | Not done    | --             | acceleration. This    |
 | compatibility   |             |                | 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.       |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | A process cannot be   |
 |                 |             |                | interrupted while     |
 |                 |             |                | waiting on a lock.    |
 | rpc.lockd(8)    |             |                | Fixing this requires  |
 | stability       | --          | --             | that the RPC code be  |
 |                 |             |                | taught how to deal    |
 |                 |             |                | with lock             |
 |                 |             |                | cancellation and      |
 |                 |             |                | interruption events.  |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | 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    |
 | Revised kld     |             |                | (such as MAC, PAE,    |
 | build           | Not done    | Peter Wemm     | etc) that may require |
 | infrastructure  |             |                | 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. Peter |
 |                 |             |                | Wemm has done some    |
 |                 |             |                | initial prototyping,  |
 |                 |             |                | and should be         |
 |                 |             |                | contacted before      |
 |                 |             |                | starting on this      |
 |                 |             |                | work.                 |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | Apple's Darwin        |
 |                 |             |                | operating system has  |
 |                 |             |                | fairly extensive      |
 | Merge of Darwin |             |                | improvements to       |
 | msdosfs, other  | Not done    | --             | msdosfs and other     |
 | fixes           |             |                | kernel services;      |
 |                 |             |                | these fixes must be   |
 |                 |             |                | reviewed and merged   |
 |                 |             |                | to the FreeBSD tree.  |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | 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  |
 | Race conditions | Errata      |                | appears to exist      |
 | in truss        | candidate   | Robert Drehmel | 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.               |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | Many systems          |
 |                 |             |                | supporting POSIX.1e   |
 |                 |             |                | ACLs permit a minor   |
 |                 |             |                | violation to that     |
 |                 |             |                | specification, in     |
 |                 |             |                | which the ACL_MASK    |
 | ACL_MASK        |             |                | entry overrides the   |
 | override of     | Not done    | Robert Watson  | umask, rather than    |
 | umask support   |             |                | being intersected     |
 | in UFS          |             |                | with it. The          |
 |                 |             |                | resulting semantics   |
 |                 |             |                | can be useful in      |
 |                 |             |                | group-oriented        |
 |                 |             |                | environments, and as  |
 |                 |             |                | such would be very    |
 |                 |             |                | helpful on FreeBSD.   |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | The LOR reported in   |
 |                 |             |                | PR kern/55175 needs   |
 | filedesc LOR    | Not done    | --             | to be fixed. Filedesc |
 |                 |             |                | locking needs to be   |
 |                 |             |                | heavily reviewed in   |
 |                 |             |                | general.              |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | Currently, MAC        |
 |                 |             |                | protections are       |
 |                 |             |                | enforced only on      |
 |                 |             |                | locally originated    |
 |                 |             |                | file system           |
 |                 |             |                | operations (VOPs),    |
 |                 |             |                | and not on RPCs       |
 |                 |             |                | generated via the NFS |
 |                 |             |                | server. Improvements  |
 | MAC support for | Not done    | Robert Watson  | in NFS server         |
 | 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.             |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | All PCI drivers must  |
 |                 |             |                | use busdma for DMA;   |
 | busdma in all   |             |                | no use of vtophys()   |
 | PCI drivers     | In progress | --             | will be permitted for |
 |                 |             |                | any recent device     |
 |                 |             |                | driver. ISA drivers   |
 |                 |             |                | may be exempt.        |
 |-----------------+-------------+----------------+-----------------------|
 | KSE support for |             | Marcel         | Userland bits         |
 | alpha           | In progress | Moolenaar      | implemented, kernel   |
 |                 |             |                | bits not implemented. |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | For kernel API/ABI    |
 |                 |             |                | compatibility         |
 |                 |             |                | reasons, it would be  |
 | CAM locking     | In progress | Scott Long     | desirable to have the |
 |                 |             |                | CAM locking strategy  |
 |                 |             |                | determined and        |
 |                 |             |                | loosely implemented   |
 |                 |             |                | for 5.3.              |
 +------------------------------------------------------------------------+

Documentation items that must be resolved for 5.3

 +------------------------------------------------------------------------+
 |       Issue       |   Status    | Responsible |      Description       |
 |-------------------+-------------+-------------+------------------------|
 |                   |             |             | The installation       |
 |                   |             |             | documentation doesn't  |
 |                   |             |             | take into account the  |
 | i386 Floppy       | Not done    | --          | new floppy images      |
 | Installation Docs |             |             | (with a full kernel    |
 |                   |             |             | split across multiple  |
 |                   |             |             | disks). This should be |
 |                   |             |             | updated.               |
 |-------------------+-------------+-------------+------------------------|
 |                   |             |             | Finish removing        |
 |                   |             |             | mention of individual  |
 |                   |             |             | devices in the         |
 | Finish hardware   |             |             | hardware notes;        |
 | notes trimming    | In progress | --          | hardware notes         |
 |                   |             |             | listings should refer  |
 |                   |             |             | to device listings in  |
 |                   |             |             | individual manual      |
 |                   |             |             | pages.                 |
 +------------------------------------------------------------------------+

Testing focuses for 5.3-RELEASE

 +------------------------------------------------------------------------+
 |      Issue      |    Status     |  Responsible  |     Description      |
 |-----------------+---------------+---------------+----------------------|
 |                 |               |               | SCHED_ULE provides   |
 |                 |               |               | better               |
 |                 |               |               | interactivity,       |
 | SCHED_ULE as    |               |               | higher performance,  |
 | the default     | Needs testing | Jeff Roberson | and the ability to   |
 | scheduler       |               |               | support pinning and  |
 |                 |               |               | affinity. Basic HTT  |
 |                 |               |               | scheduling policies  |
 |                 |               |               | should be in place   |
 |                 |               |               | for 5.3 also.        |
 |-----------------+---------------+---------------+----------------------|
 |                 |               |               | 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  |
 | make            |               |               | quickly as a         |
 | -DUSE_KQUEUE    |               | Brian         | developer, but also  |
 | causes lockup   | Needs testing | Feldman,      | because it's an      |
 | with buildworld |               | John-Mark     | instability that     |
 | -jBIGNUM        |               | Gurney        | 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 has matured to   |
 |                 |               |               | the point of being   |
 |                 |               |               | more stable and      |
 |                 |               |               | POSIX-compliant than |
 |                 |               |               | the traditional      |
 |                 |               |               | libc_r. All Tier-1   |
 |                 |               |               | platforms MUST have  |
 | KSE as the      |               | David Xu,     | stable KSE support   |
 | default threads | Needs testing | Daniel        | for 5.3 in order to  |
 | library         |               | Eischen       | 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.   |
 |-----------------+---------------+---------------+----------------------|
 |                 |               |               | Binutils needs       |
 | Updated         |               |               | updating in order to |
 | binutils for    | Needs testing | David O'Brien | support new          |
 | all platforms   |               |               | platforms, newer GDB |
 |                 |               |               | versions, and Thread |
 |                 |               |               | Local Storage.       |
 +------------------------------------------------------------------------+

   ----------------------------------------------------------------------

  home   |   contact   |   legal   |   (c) 1995-2004 The FreeBSD Project.
  All rights reserved.
  Last modified: 2004/07/15 13:26:38
Received on Thu Jul 15 2004 - 12:24:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:01 UTC