<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY email 'freebsd-qa'>
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD 5.4 Open Issues">
<!ENTITY % navinclude.download "INCLUDE">
<!ENTITY % developers PUBLIC "-//FreeBSD//ENTITIES FreeBSD Developers Entities//EN"> %developers;
<!-- Status levels -->
<!ENTITY status.na "<font color=green>N/A</font>">
<!ENTITY status.done "<font color=green>Done</font>">
<!ENTITY status.wip "<font color=blue>In&nbsp;progress</font>">
<!ENTITY status.untested "<font color=orange>Needs&nbsp;testing</font>">
<!ENTITY status.new "<font color=red>Not&nbsp;done</font>">
<!ENTITY status.unknown "<font color=red>Unknown</font>">

<!ENTITY url.cvsweb "http://www.freebsd.org/cgi/cvsweb.cgi">
<!ENTITY url.mid "http://docs.freebsd.org/cgi/mid.cgi?">
<!ENTITY url.pr "http://www.freebsd.org/cgi/query-pr.cgi?">
]>

<!--

  Changes to this list MUST NOT be committed without approval of
  Release Engineering Team (re@FreeBSD.org) (for general items) or
  Documentation Engineering Team (doceng@FreeBSD.org) (for doc-related
  items).

-->

<html>
&header;

<h1>Open Issues</h1>

<p>This is the beginning of a list of open issues that need to be worked on
  or resolved for FreeBSD 5.4.  If you have any updates for this list, please
  e-mail re@FreeBSD.org.  The feature list for 5.4 is still a work in
  progress, so items may be added, removed, or modified before we're done.
  </p>

<h3>Show stopper defects for 5.4-RELEASE</h3>

<table class="tblbasic">
  <tr>
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>
</table>

<h3>Required features for 5.4-RELEASE</h3>

<table class="tblbasic">
  <tr>
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>
</table>

<h3>Desired features for 5.4-RELEASE</h3>

<table class="tblbasic">
  <tr>
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>KAME IPSEC without the Giant Lock</td>
    <td>&status.wip;</td>
    <td>&a.gnn;</td>
    <td>Currently, the KAME IPSEC implementation contains inadequate locking
      to operate without the Giant lock over the network stack, forcing
      kernels compiled with the KAME IPSEC implementation (not FAST_IPSEC)
      to run the network stack with the Giant lock, reducing parallelism,
      increasing lock contention, and increasing latency by preventing
      preemption.  For 5.4-RELEASE, it is desirable to complete the locking
      work for KAME IPSEC so that it can run without the Giant lock.</td>
  </tr>

  <tr>
    <td>All Network Interface Drivers MPSAFE</td>
    <td>&status.wip;</td>
    <td>--</td>
    <td>Currently, some network interface drivers are not safe without the
      Giant lock due to missing synchronization.  These drivers are protected
      by running non-INTR_MPSAFE and with the IFF_NEEDSGIANT flag set, which
      cause interrupt threads to acquire the Giant lock before executing the
      driver's interrupt handler, and to perform if_start (interface
      transmit start) asynchronously once the Giant lock can be acquired.
      This results in these drivers performing less well due to increased
      lock contention, decreased ability to preempt, and latency associated
      with asynchronous launching of latency-critical events.  For 5.4, all
      network drivers should be able to operate without the Giant lock.</td>
  </tr>

  <tr>
    <td>NetIPX without the Giant Lock</td>
    <td>&status.wip;</td>
    <td>&a.rwatson;</td>
    <td>Currently, the IPX/SPX (netipx) implementation contains inadequate
      locking to operate without the Giant lock over the network stack,
      forcing kernels compiled with IPX support to run the network stack
      with the Giant lock, reducing parallelism, increasing lock contention,
      and increasing latency by preventing preemption.  For 5.4-RELEASE, it
      is desirable to complete the locking work for IPX so that it can run
      without the Giant lock.</td>
  </tr>

  <tr>
    <td>Fix regression in file(1)</td>
    <td>--</td>
    <td>--</td>
    <td>The new version of file(1) does not cross-build properly.  If
      sparc64 executables are built on i386 the compiled magic numbers
      file that gets installed is wrong and file(1) doesn't work
      properly.</td>
  </tr>

  <tr>
    <td>SIGABRT under load</td>
    <td>&status.wip;</td>
    <td>&a.alc;</td>
    <td>Under very high load (Kris sees this on the package builders) a
      limitation of 16 sumultaneous exec's may be hit in exec_map().
      A workaround has been implemented with a fix planned for 5.5.</td>
  </tr>

  <tr>
    <td>DDB_UNATTENDED may not work</td>
    <td>&status.new;</td>
    <td>--</td>
    <td>There are reports of problems getting dumps after panics.</td>
  </tr>

  <tr>
    <td>fix for ttywakeup panic</td>
    <td>&status.wip;</td>
    <td>&a.dwhite;</td>
    <td>There appears to be a race condition opening/closing ttys.</td>
  </tr>
</table>

<h3>Documentation items that must be resolved for 5.4</h3>

<table class="tblbasic">
  <tr>
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>
</table>

<h3>Testing focuses for 5.4-RELEASE</h3>

<table class="tblbasic">
  <tr>
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>File descriptor locking</td>
    <td>&status.done;</td>
    <td>&a.jeff;</td>
    <td>File descriptor locking needs to be merged back from HEAD.</td>
  </tr>

  <tr>
    <td>IPFilter mpsafe fixes</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>IPFilter is currently not mpsafe but doesn't run with Giant.</td>
  </tr>

  <tr>
    <td>Update sysinstall to handle separate packages CD</td>
    <td>&status.done;</td>
    <td>&a.jhb;</td>
    <td>Avoid the need for a disc1-gnome/disc1-kde as was done for 4.11</td>
  </tr>

  <tr>
    <td>busdma fixes</td>
    <td>&status.done;</td>
    <td>&a.scottl;</td>
    <td>More work is needed on busdma to fix bounce buffer problems.</td>
  </tr>

  <tr>
    <td>AMR driver MPSAFE</td>
    <td>&status.done;</td>
    <td>&a.scottl;</td>
    <td>Making the AMR driver MPSAFE will greatly increase its performance.</td>
  </tr>

  <tr>
    <td>CARP support</td>
    <td>&status.done;</td>
    <td>&a.glebius;</td>
    <td>Common Address Redundancy Protocol allows multiple hosts on the same
      local network to share a set of IP addresses.</td>
  </tr>

  <tr>
    <td>kstack overflows in softupdates</td>
    <td>&status.done;</td>
    <td>--</td>
    <td>There had been reports of kernel stack overflows in softupdates code
      that caused filesystem problems on reboot.  This was fixed during the
      early stage of code freeze but should be tested.</td>
  </tr>

  <tr>
    <td>ATAPI CDROMs in PIO mode during install</td>
    <td>&status.done;</td>
    <td>&a.kensmith;</td>
    <td>People are having difficulties with various ATAPI CDROMs on
	various architectures.  We need to either do all installs
	in PIO mode or provide a boot menu method of selecting it.</td>
  </tr>

  <tr>
    <td>truss not working</td>
    <td>&status.done;</td>
    <td>&a.jeff;</td>
    <td>See PR kern/78664.</td>
  </tr>

  <tr>
    <td>Deadlock under heavy interrupt load on MP Opteron systems</td>
    <td>&status.done;</td>
    <td>&a.dwhite;</td>
    <td>A deadlock related to delivering IPIs on AMD 64-bit processors has
      been identified.</td>
  </tr>

  <tr>
    <td>SCHED_ULE update</td>
    <td>&status.done;</td>
    <td>&a.jeff;</td>
    <td>Many improvements have been made to the ULE scheduler in 6-CURRENT.
      These should be merged back to 5.4.  The merging is done but ULE is
      still known to cause panics for some people, especially on SMP
      systems.  Try it with extreme caution.</td>
  </tr>
</table>

    &footer;

  </body>
</html>
