5.2-RELEASE TODO

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Wed, 29 Oct 2003 10:00:22 -0500 (EST)
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       |             |                | fixed.                 |
 | arrays         |             |                |                        |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | The LOR reported in PR |
 | filedesc LOR   | --          | --             | kern/55175 must be     |
 |                |             |                | fixed.                 |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | Performing a crashdump |
 | ATAng          |             |                | on an ATA device can   |
 | crashdump      | In Progress | So/ren Schmidt | result in a corrupted  |
 | causes disk    |             | Tor Egge       | MBR record. Tor has a  |
 | corruption     |             |                | possible patch for     |
 |                |             |                | this.                  |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | ATAng driver looses    |
 |                |             |                | device interrupts in   |
 | ATAng lost     |             |                | certain scenarios,     |
 | interrupts     | In Progress | So/ren Schmidt | leading to hangs and   |
 |                |             |                | poor performance.      |
 |                |             |                | Possibly related to    |
 |                |             |                | timing problems.       |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | Kris Kennaway reports  |
 |                |             |                | that Alpha packages    |
 | pipe/VM        |             |                | builds are being       |
 | corruption on  | --          | --             | silently corrupted and |
 | Alpha          |             |                | suspects pipe and vm   |
 |                |             |                | issues. This must be   |
 |                |             |                | investigated and       |
 |                |             |                | resolved.              |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | Kris Kennaway reports  |
 |                |             |                | high instability of    |
 |                |             |                | 5-CURRENT on ia64      |
 |                |             | Marcel         | machines, such as the  |
 | ia64 stability | In Progress | Moolenaar      | pluto* machines. These |
 |                |             |                | problems need to be    |
 |                |             |                | fixed in order to get  |
 |                |             |                | a successful package   |
 |                |             |                | build.                 |
 |----------------+-------------+----------------+------------------------|
 |                |             |                | 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 with |
 | in UFS         |             |                | it. The resulting      |
 |                |             |                | semantics can be       |
 |                |             |                | useful in              |
 |                |             |                | group-oriented         |
 |                |             |                | environments, and as   |
 |                |             |                | such would be very     |
 |                |             |                | helpful on FreeBSD.    |
 +------------------------------------------------------------------------+

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 known  |
 | sparc64         |              | Burkholder  | 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 without  |
 | Fine-grained    |              |             | Giant, due to           |
 | network stack   | In progress  | Sam Leffler | dependencies on         |
 | locking without |              |             | sockets, routing, etc.  |
 | Giant           |              |             | 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.               |
 +------------------------------------------------------------------------+

Desired features for 5.2-RELEASE

 +------------------------------------------------------------------------+
 |       Issue        |  Status   |  Responsible   |     Description      |
 |--------------------+-----------+----------------+----------------------|
 |                    |           |                | The PCM autdio       |
 |                    |           |                | 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.         |
 +------------------------------------------------------------------------+

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/10/19 16:24:37
Received on Wed Oct 29 2003 - 06:01:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:26 UTC