5.3-RELEASE TODO

From: Scott Long <scottl_at_FreeBSD.org>
Date: Wed, 4 Aug 2004 01:43:54 -0600 (MDT)
This is an automated 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


                          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's  |
 |                    |             |               | requirement of      |
 |                    |             |               | needing to be fed   |
 |                    |             |               | entropy early on    |
 |                    |             |               | has been disabled   |
 |                    |             |               | so that sysinstall  |
 |                    |             |               | and single-user     |
 | /dev/random stalls |             |               | mode apps don't     |
 | single user and    | In progress | Mark Murray   | block with strange  |
 | sysinstall         |             |               | 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.     |
 |--------------------+-------------+---------------+---------------------|
 |                    |             |               | Problems persist    |
 |                    |             |               | with crashes and    |
 |                    |             |               | hangs under heavy   |
 |                    |             |               | load, especially    |
 |                    |             |               | under SMP. The      |
 |                    |             |               | recent introduction |
 |                    |             |               | of full-scale       |
 |                    |             |               | preemption          |
 |                    |             |               | exasperated the     |
 |                    |             |               | problem, though     |
 |                    |             |               | preemption has been |
 |                    |             |               | turned off          |
 | General            |             |               | temporarily while   |
 | instability and    |             | Scott Long,   | this problem is     |
 | lockups under high | Not done    | Julian        | debugged.           |
 | load               |             | Elischer      | 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.  |
 |--------------------+-------------+---------------+---------------------|
 |                    |             |               | Symbols that have   |
 |                    |             |               | moved between libc  |
 |                    |             |               | and libm have made  |
 |                    |             |               | source upgrades     |
 | Source upgrade     | Not done    | David Schultz | problematic. The    |
 | incompatibility    |             |               | 5.3 world sources   |
 |                    |             |               | must be buildable   |
 |                    |             |               | and installable     |
 |                    |             |               | from a 5.2.1        |
 |                    |             |               | system.             |
 +------------------------------------------------------------------------+

Required features for 5.3-RELEASE

 +------------------------------------------------------------------------+
 |      Issue      |   Status    |  Responsible  |      Description       |
 |-----------------+-------------+---------------+------------------------|
 | GDB 6.1 kernel  |             |               | GDB 6.1.1 import does  |
 | debugging       | In progress | Marcel        | not include FreeBSD    |
 | support         |             | Moolenaar     | kernel debugging       |
 |                 |             |               | support.               |
 |-----------------+-------------+---------------+------------------------|
 | BIND9 import    | In progress | Doug Barton   | BIND9 must be imported |
 | into 5-CURRENT  |             |               | for 5.3-RELEASE.       |
 |-----------------+-------------+---------------+------------------------|
 |                 |             |               | Kernel bits            |
 | KSE support for |             |               | implemented, userland  |
 | 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, a |
 | network stack   | In progress | Robert Watson | number of device       |
 | locking without |             |               | drivers and less       |
 | 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 not |
 |                 |             |               | from the loader.       |
 | kld support for | In progress | David O'Brien | kldxref might also     |
 | amd64           |             | Peter Wemm    | need work. Required    |
 |                 |             |               | for amd64 to be        |
 |                 |             |               | promoted to tier-1     |
 |                 |             |               | status.                |
 |-----------------+-------------+---------------+------------------------|
 |                 |             |               | With improved support  |
 |                 |             |               | for threading          |
 |                 |             |               | primitives, support is |
 |                 |             | David         | now required to ease   |
 | GDB thread      | In progress | Xu,Marcel     | debugging of threaded  |
 | support         |             | 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         |
 |                 |             |               | deficiencies.          |
 |-----------------+-------------+---------------+------------------------|
 |                 |             |               | There have been        |
 |                 |             |               | several reports that   |
 |                 |             |               | growfs(8) works        |
 |                 |             |               | improperly with large  |
 | Reports of UFS2 |             |               | disk sizes, and other  |
 | "large disk"    | In progress | Scott Long    | size-related nits in   |
 | 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      |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | 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 |
 |                 |             | Justin Gibbs   | 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  |
 | i386 Floppy     |             |               | take into account the  |
 | Installation    | Not done    | --            | new floppy images      |
 | Docs            |             |               | (with a full kernel    |
 |                 |             |               | split across multiple  |
 |                 |             |               | disks). This should be |
 |                 |             |               | updated.               |
 |-----------------+-------------+---------------+------------------------|
 |                 |             |               | Finish removing        |
 |                 |             |               | mention of individual  |
 | Finish hardware |             |               | devices in the         |
 | notes trimming  | In progress | Simon Nielsen | hardware notes and use |
 |                 |             |               | auto-generated lists,  |
 |                 |             |               | based on driver manual |
 |                 |             |               | pages, instead.        |
 +------------------------------------------------------------------------+

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.       |
 |-----------------+---------------+---------------+----------------------|
 |                 |               |               | The previous GCC 3.3 |
 |                 |               |               | snapshot included    |
 |                 |               |               | regressions in       |
 |                 |               |               | alignment of         |
 | gcc 3.3         |               |               | floating point       |
 | floating point  |               |               | arguments, resulting |
 | alignment       | Needs testing |               | in a substantial     |
 | regression      |               |               | performance          |
 |                 |               |               | degradation. The     |
 |                 |               |               | recent GCC 3.4.2     |
 |                 |               |               | import should fix    |
 |                 |               |               | this, but more       |
 |                 |               |               | testing is needed.   |
 +------------------------------------------------------------------------+

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

  home   |   contact   |   legal   |   (c) 1995-2004 The FreeBSD Project.
  All rights reserved.
  Last modified: 2004/08/04 02:33:13
Received on Wed Aug 04 2004 - 05:45:07 UTC

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