5.2-RELEASE TODO

Robert Watson rwatson at FreeBSD.org
Sat Nov 1 07:01:43 PST 2003


This is an automated bi-weekly mailing of the FreeBSD 5.2 open issues list.
The live version of this list is available at:

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

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


                          FreeBSD 5.2 Open Issues

                                Open Issues

 This is a list of open issues that need to be resolved for FreeBSD 5.2. If
 you have any updates for this list, please e-mail re at FreeBSD.org.

Show stopper defects for 5.2-RELEASE

 +------------------------------------------------------------------------+
 |      Issue      |   Status    |  Responsible   |      Description      |
 |-----------------+-------------+----------------+-----------------------|
 | Panic when      |             |                | The panic reported in |
 | rebuilding      | --          | --             | PR kern/58228 must be |
 | ata-raid arrays |             |                | fixed.                |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | Performing a          |
 |                 |             |                | crashdump on an ATA   |
 | ATAng crashdump |             | So/ren Schmidt | device can result in  |
 | causes disk     | In Progress | Tor Egge       | a corrupted MBR       |
 | corruption      |             |                | record. Tor has a     |
 |                 |             |                | possible patch for    |
 |                 |             |                | this.                 |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | Kris Kennaway reports |
 |                 |             |                | that Alpha packages   |
 | pipe/VM         |             |                | builds are being      |
 | corruption on   | --          | --             | silently corrupted    |
 | Alpha           |             |                | and suspects pipe and |
 |                 |             |                | vm issues. This must  |
 |                 |             |                | be investigated and   |
 |                 |             |                | resolved.             |
 |-----------------+-------------+----------------+-----------------------|
 |                 |             |                | The panic reported in |
 | Lingering PSE   |             |                | PR kern/58787 is      |
 | instability     | --          | --             | likely related to PSE |
 |                 |             |                | problems and must be  |
 |                 |             |                | fixed.                |
 +------------------------------------------------------------------------+

Required features for 5.2-RELEASE

 +------------------------------------------------------------------------+
 |      Issue      |    Status    |  Responsible  |      Description      |
 |-----------------+--------------+---------------+-----------------------|
 |                 |              |               | Kernel and userland   |
 |                 |              |               | bits are implemented  |
 | KSE support for | In progress  | Jake          | but untested and      |
 | sparc64         |              | Burkholder    | known to be           |
 |                 |              |               | incomplete. Required  |
 |                 |              |               | for 5.2-RELEASE.      |
 |-----------------+--------------+---------------+-----------------------|
 |                 |              |               | Userland bits         |
 | KSE support for |              | Marcel        | implemented, kernel   |
 | alpha           | In progress. | Moolenaar     | bits not implemented. |
 |                 |              |               | Required for          |
 |                 |              |               | 5.2-RELEASE.          |
 |-----------------+--------------+---------------+-----------------------|
 |                 |              |               | Significant parts of  |
 |                 |              |               | the network stack     |
 |                 |              |               | (especially IPv4 and  |
 |                 |              |               | IPv6) now have        |
 |                 |              |               | fine-grained locking  |
 |                 |              |               | of their data         |
 |                 |              |               | structures. However,  |
 |                 |              |               | it is not yet         |
 |                 |              |               | possible for the      |
 |                 |              |               | netisr threads to run |
 | Fine-grained    |              |               | without Giant, due to |
 | network stack   |              |               | dependencies on       |
 | locking without | In progress  | Sam Leffler   | sockets, routing,     |
 | Giant           |              |               | etc. A 5.2-RELEASE    |
 |                 |              |               | goal is to have the   |
 |                 |              |               | network stack running |
 |                 |              |               | largely without       |
 |                 |              |               | Giant, which should   |
 |                 |              |               | substantially improve |
 |                 |              |               | performance of the    |
 |                 |              |               | stack, as well as     |
 |                 |              |               | other system          |
 |                 |              |               | components by         |
 |                 |              |               | reducing contention   |
 |                 |              |               | on Giant.             |
 |-----------------+--------------+---------------+-----------------------|
 |                 |              |               | Brian Feldman has     |
 |                 |              |               | submitted patches to  |
 |                 |              |               | improve the           |
 |                 |              |               | consistency of the    |
 | MAC Framework   |              |               | pathnames passed into |
 | devfs path      | In progress  | Robert Watson | the MAC Framework     |
 | fixes           |              |               | devfs labeling entry  |
 |                 |              |               | points. These patches |
 |                 |              |               | need to be thoroughly |
 |                 |              |               | reviewed and tested,  |
 |                 |              |               | then merged.          |
 |-----------------+--------------+---------------+-----------------------|
 |                 |              |               | 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     | In progress  | 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.   |
 +------------------------------------------------------------------------+

Desired features for 5.2-RELEASE

 +------------------------------------------------------------------------+
 |       Issue        |  Status   |  Responsible   |     Description      |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Sysinstall and       |
 |                    |           |                | libdisk need to be   |
 |                    |           |                | overhauled to        |
 | GPT support for    | --        | --             | support the GPT      |
 | sysinstall         |           |                | partition scheme.    |
 |                    |           |                | This is required for |
 |                    |           |                | installing ia64 with |
 |                    |           |                | sysinstall.          |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | The PCM audio        |
 |                    |           |                | framework and device |
 |                    |           |                | drivers have been    |
 |                    |           |                | locked and free of   |
 |                    |           |                | Giant for quite a    |
 | PCM locking and    |           |                | while, but LOR       |
 | performance issues | --        | --             | problems persist     |
 |                    |           |                | along with reports   |
 |                    |           |                | of poor audio        |
 |                    |           |                | performance under    |
 |                    |           |                | load. The locking    |
 |                    |           |                | needs to be reviewed |
 |                    |           |                | and corrected.       |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | 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  |
 | FAST_IPSEC and     | --        | --             | crypto acceleration. |
 | KAME compatibility |           |                | 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.      |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | The FreeBSD KAME     |
 |                    |           |                | IPv6 code is now     |
 |                    |           |                | substantially dated  |
 |                    |           |                | with respect to the  |
 | KAME               | In        |                | KAME vendor source.  |
 | Synchronization    | progress  | Hajimu UMEMOTO | The FreeBSD Project  |
 |                    |           |                | needs to take        |
 |                    |           |                | initiative in        |
 |                    |           |                | driving the merge of |
 |                    |           |                | new bug fixes,       |
 |                    |           |                | features, et al.     |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | 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    |
 | truss support for  | In        |                | its inherent         |
 | ptrace             | progress  | Robert Drehmel | security risks, it   |
 |                    |           |                | is highly 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. |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Apple's Darwin       |
 |                    |           |                | operating system has |
 |                    |           |                | fairly extensive     |
 | Merge of Darwin    |           |                | improvements to      |
 | msdosfs, other     | --        | --             | msdosfs and other    |
 | fixes              |           |                | kernel services;     |
 |                    |           |                | these fixes must be  |
 |                    |           |                | reviewed and merged  |
 |                    |           |                | to the FreeBSD tree. |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Productionable       |
 |                    |           |                | support for the      |
 |                    |           |                | AMD64 platform. It   |
 |                    |           |                | currently meets most |
 | Tier-1 Support for | In        | Peter Wemm,    | of the requirements  |
 | AMD64 Hammer       | progress  | David O'Brien  | for the Tier-1       |
 |                    |           |                | classification, but  |
 |                    |           |                | a formal ruling must |
 |                    |           |                | be made in time for  |
 |                    |           |                | 5.2-RELEASE.         |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | 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 build  | --        | --             | (such as MAC, PAE,   |
 | infrastructure     |           |                | 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.      |
 |                    |           |                | Peter Wemm has done  |
 |                    |           |                | some initial         |
 |                    |           |                | prototyping, and     |
 |                    |           |                | should be contacted  |
 |                    |           |                | before starting on   |
 |                    |           |                | this work.           |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Currently, there are |
 |                    |           |                | two classes of       |
 |                    |           |                | interrupt handlers   |
 |                    |           |                | in 5.x: fast         |
 |                    |           |                | interrupt handlers   |
 |                    |           |                | which run entirely   |
 |                    |           |                | in interrupt         |
 |                    |           |                | context, and         |
 |                    |           |                | heavy-weight         |
 |                    |           |                | handlers which       |
 |                    |           |                | execute in a         |
 |                    |           |                | full-weight kernel   |
 |                    |           |                | interrupt thread. It |
 |                    |           |                | is possible to       |
 |                    |           |                | optimize interrupt   |
 |                    |           |                | thread context       |
 |                    |           |                | management such that |
 |                    |           |                | a light-weight       |
 |                    |           |                | context switch is    |
 |                    |           |                | performed to begin   |
 |                    |           |                | execution of the     |
 |                    |           |                | interrupt thread in  |
 |                    |           |                | the handler context, |
 | Light-weight       |           |                | and only when a      |
 | interrupt threads, | --        | --             | full-weight context  |
 | context switches   |           |                | is required (such as |
 |                    |           |                | sleeping on a lock)  |
 |                    |           |                | is that cost         |
 |                    |           |                | required. This       |
 |                    |           |                | optimization should  |
 |                    |           |                | substantially        |
 |                    |           |                | improve interrupt    |
 |                    |           |                | latency. There are   |
 |                    |           |                | also additional      |
 |                    |           |                | kernel thread        |
 |                    |           |                | context switch       |
 |                    |           |                | optimizations that   |
 |                    |           |                | can be made to       |
 |                    |           |                | improve the          |
 |                    |           |                | performance of       |
 |                    |           |                | thread workers in    |
 |                    |           |                | the kernel, such as  |
 |                    |           |                | found in the network |
 |                    |           |                | stack, crypto worker |
 |                    |           |                | threads, and GEOM.   |
 |                    |           |                | Bosko Milekic has    |
 |                    |           |                | done substantial     |
 |                    |           |                | prototyping work,    |
 |                    |           |                | and should be        |
 |                    |           |                | coordinated with.    |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | The existing APIC    |
 |                    |           |                | interrupt code does  |
 |                    |           |                | not support PCI      |
 | Complete the APIC  |           |                | interrupt routing    |
 | PCI interrupt      | In        | John Baldwin   | properly. As a       |
 | routing support    | progress  |                | result, PCI          |
 |                    |           |                | interrupts cannot be |
 |                    |           |                | routed either via    |
 |                    |           |                | ACPI or across       |
 |                    |           |                | PCI-PCI bridges.     |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Currently, gbde must |
 |                    |           |                | be manually          |
 |                    |           |                | configured at        |
 |                    |           |                | run-time each time   |
 |                    |           |                | an encrypted disk    |
 |                    |           |                | device is mounted.   |
 |                    |           |                | This prevents easy   |
 | Run-time           |           |                | integration into     |
 | autoconfiguration  | --        | --             | /etc/fstab and easy  |
 | of GBDE and        |           |                | automated            |
 | related transforms |           |                | deployment. Improved |
 |                    |           |                | integration with the |
 |                    |           |                | configuration,       |
 |                    |           |                | mounting, and boot   |
 |                    |           |                | process is required  |
 |                    |           |                | to make this feature |
 |                    |           |                | more easily          |
 |                    |           |                | accessible.          |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | A process cannot be  |
 |                    |           |                | interrupted while    |
 |                    |           |                | waiting on a lock.   |
 | rpc.lockd(8)       | In        |                | Fixing this requires |
 | stability          | progress  | Robert Watson  | that the RPC code be |
 |                    |           |                | taught how to deal   |
 |                    |           |                | with lock            |
 |                    |           |                | cancellation and     |
 |                    |           |                | interruption events. |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | 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 in | Errata    | Robert Drehmel | appears to exist     |
 | truss              | candidate |                | where in truss will  |
 |                    |           |                | hang if execve()     |
 |                    |           |                | returns ENOENT. A    |
 |                    |           |                | further race appears |
 |                    |           |                | to exist in which    |
 |                    |           |                | truss will return    |
 |                    |           |                | "PIOCWAIT:           |
 |                    |           |                | Input/output error"  |
 |                    |           |                | occasionally on      |
 |                    |           |                | startup. The fix for |
 |                    |           |                | this sufficiently    |
 |                    |           |                | changes process      |
 |                    |           |                | execution handling   |
 |                    |           |                | that we will defer   |
 |                    |           |                | the fix to post-5.0  |
 |                    |           |                | and consider this    |
 |                    |           |                | errata.              |
 |--------------------+-----------+----------------+----------------------|
 | gdb -k support for | --        | Mark Peek      | gdb -k doesn't work  |
 | alpha              |           |                | on alpha             |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Currently, MAC       |
 |                    |           |                | protections are      |
 |                    |           |                | enforced only on     |
 |                    |           |                | locally originated   |
 |                    |           |                | file system          |
 |                    |           |                | operations (VOPs),   |
 |                    |           |                | and not on RPCs      |
 |                    |           |                | generated via the    |
 |                    |           |                | NFS server.          |
 | MAC support for    |           |                | Improvements in NFS  |
 | NFS Server         | --        | Robert Watson  | 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;  |
 |                    |           |                | no use of vtophys()  |
 | busdma in all PCI  | --        | --             | will be permitted    |
 | drivers            |           |                | for any recent       |
 |                    |           |                | device driver. ISA   |
 |                    |           |                | drivers may be       |
 |                    |           |                | exempt.              |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | With improved        |
 |                    |           |                | support for          |
 |                    |           |                | threading            |
 |                    |           |                | primitives, support  |
 |                    |           |                | is now required to   |
 |                    |           |                | ease debugging of    |
 | GDB thread support | --        | --             | threaded             |
 |                    |           |                | applications.        |
 |                    |           |                | Ideally, this        |
 |                    |           |                | support will work    |
 |                    |           |                | for both libthr and  |
 |                    |           |                | libkse threading     |
 |                    |           |                | models.              |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | Prebinding reduces   |
 |                    |           |                | executable startup   |
 |                    |           |                | time by lowering the |
 |                    |           |                | expense of symbol    |
 |                    |           |                | lookup, binding and  |
 |                    |           |                | relocation. This is  |
 |                    |           |                | accomplished by a    |
 |                    |           |                | prebinding data file |
 |                    |           |                | or ELF segment that  |
 |                    |           |                | contains             |
 |                    |           |                | intermediate lookup  |
 |                    |           |                | results allowing     |
 |                    |           |                | fast symbol binding  |
 |                    |           |                | and relocation,      |
 |                    |           |                | provided that        |
 | Per object ELF     | In        |                | dependent objects    |
 | Prebinding support | progress  | Matthew Dodd   | remain unchanged     |
 |                    |           |                | since the prebinding |
 |                    |           |                | information was      |
 |                    |           |                | generated.           |
 |                    |           |                |                      |
 |                    |           |                | The benefits of      |
 |                    |           |                | prebinding are       |
 |                    |           |                | realized when        |
 |                    |           |                | running executables  |
 |                    |           |                | that use a large     |
 |                    |           |                | (>10) number of      |
 |                    |           |                | shared libraries.    |
 |                    |           |                | C++ applications     |
 |                    |           |                | also benefit as they |
 |                    |           |                | contain a large      |
 |                    |           |                | number of            |
 |                    |           |                | relocations.         |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | The LOR reported in  |
 |                    |           |                | PR kern/55175 needs  |
 | filedesc LOR       | --        | --             | to be fixed.         |
 |                    |           |                | Filedesc locking     |
 |                    |           |                | needs to be heavily  |
 |                    |           |                | reviewed in general. |
 +------------------------------------------------------------------------+

Documentation items that must be resolved for 5.2

 +------------------------------------------------------------------------+
 |     Issue     | Status |  Responsible  |          Description          |
 |---------------+--------+---------------+-------------------------------|
 | Bluetooth     |        |               | It'd be nice to have some     |
 | documentation | --     | Pav Lucistnik | Bluetooth documentation for   |
 |               |        |               | the Handbook.                 |
 +------------------------------------------------------------------------+

Testing focuses for 5.2-RELEASE

 +------------------------------------------------------------------------+
 |     Issue     |  Status  |  Responsible   |        Description         |
 |---------------+----------+----------------+----------------------------|
 | ATA driver    |          |                | New ATA model has arrived, |
 | structural    |          |                | supporting fine-grained    |
 | improvements, | Complete | So/ren Schmidt | locking, and more. Much    |
 | MPsafety      |          |                | testing is needed to       |
 |               |          |                | ensure no regressions.     |
 +------------------------------------------------------------------------+

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

  home   |   contact   |   legal   |   (c) 1995-2003 The FreeBSD Project.
  All rights reserved.
  Last modified: 2003/11/01 05:39:10


More information about the freebsd-current mailing list