Index: head/en_US.ISO8859-1/books/developers-handbook/testing/chapter.xml =================================================================== --- head/en_US.ISO8859-1/books/developers-handbook/testing/chapter.xml (revision 54088) +++ head/en_US.ISO8859-1/books/developers-handbook/testing/chapter.xml (revision 54089) @@ -1,489 +1,488 @@ Regression and Performance Testing Regression tests are used to exercise a particular bit of the system to check that it works as expected, and to make sure that old bugs are not reintroduced. The &os; regression testing tools can be found in the &os; source tree in the directory src/tools/regression.
Micro Benchmark Checklist This section contains hints for doing proper micro-benchmarking on &os; or of &os; itself. It is not possible to use all of the suggestions below every single time, but the more used, the better the benchmark's ability to test small differences will be. Disable APM and any other kind of clock fiddling (ACPI ?). Run in single user mode. E.g., &man.cron.8;, and other daemons only add noise. The &man.sshd.8; daemon can also cause problems. If ssh access is required during testing either disable the SSHv1 key regeneration, or kill the parent sshd daemon during the tests. Do not run &man.ntpd.8;. If &man.syslog.3; events are generated, run &man.syslogd.8; with an empty /etc/syslogd.conf, otherwise, do not run it. Minimize disk-I/O, avoid it entirely if possible. Do not mount file systems that are not needed. Mount /, /usr, and any other file system as read-only if possible. This removes atime updates to disk (etc.) from the I/O picture. Reinitialize the read/write test file system with &man.newfs.8; and populate it from a &man.tar.1; or &man.dump.8; file before every run. Unmount and mount it before starting the test. This results in a consistent file system layout. For a worldstone test this would apply to /usr/obj (just reinitialize with newfs and mount). To get 100% reproducibility, populate the file system from a &man.dd.1; file (i.e.: dd if=myimage of=/dev/ad0s1h bs=1m) Use malloc backed or preloaded &man.md.4; partitions. Reboot between individual iterations of the test, this gives a more consistent state. Remove all non-essential device drivers from the kernel. For instance if USB is not needed for the test, do not put USB in the kernel. Drivers which attach often have timeouts ticking away. Unconfigure hardware that are not in use. Detach disks with &man.atacontrol.8; and &man.camcontrol.8; if the disks are not used for the test. Do not configure the network unless it is being tested, or wait until after the test has been performed to ship the results off to another computer. If the system must be connected to a public network, watch out for spikes of broadcast traffic. Even though it is hardly noticeable, it will take up CPU cycles. Multicast has similar caveats. Put each file system on its own disk. This minimizes jitter from head-seek optimizations. Minimize output to serial or VGA consoles. Running output into files gives less jitter. (Serial consoles easily become a bottleneck.) Do not touch keyboard while the test is running, even space or back-space shows up in the numbers. Make sure the test is long enough, but not too long. If the test is too short, timestamping is a problem. If it is too long temperature changes and drift will affect the frequency of the quartz crystals in the computer. Rule of thumb: more than a minute, less than an hour. Try to keep the temperature as stable as possible around the machine. This affects both quartz crystals and disk drive algorithms. To get real stable clock, consider stabilized clock injection. E.g., get a OCXO + PLL, inject output into clock circuits instead of motherboard xtal. Contact &a.phk.email; for more information about this. Run the test at least 3 times but it is better to run more than 20 times both for before and after code. Try to interleave if possible (i.e.: do not run 20 times before then 20 times after), this makes it possible to spot environmental effects. Do not interleave 1:1, but 3:3, this makes it possible to spot interaction effects. A good pattern is: bababa{bbbaaa}*. This gives hint after the first 1+1 runs (so it is possible to stop the test if it goes entirely the wrong way), a standard deviation after the first 3+3 (gives a good indication if it is going to be worth a long run) and trending and interaction numbers later on. Use &man.ministat.1; to see if the numbers are significant. Consider buying Cartoon guide to statistics ISBN: 0062731025, highly recommended, if you have forgotten or never learned about standard deviation and Student's T. Do not use background &man.fsck.8; unless the test is a benchmark of background fsck. Also, disable background_fsck in /etc/rc.conf unless the benchmark is not started at least 60+fsck runtime seconds after the boot, as &man.rc.8; wakes up and checks if fsck needs to run on any file systems when background fsck is enabled. Likewise, make sure there are no snapshots lying around unless the benchmark is a test with snapshots. If the benchmark show unexpected bad performance, check for things like high interrupt volume from an unexpected source. Some versions of ACPI have been reported to misbehave and generate excess interrupts. To help diagnose odd test results, take a few snapshots of vmstat -i and look for anything unusual. Make sure to be careful about optimization parameters for kernel and userspace, likewise debugging. It is easy to let something slip through and realize later the test was not comparing the same thing. Do not ever benchmark with the WITNESS and INVARIANTS kernel options enabled unless the test is interested to benchmarking those features. WITNESS can cause 400%+ drops in performance. Likewise, userspace &man.malloc.3; parameters default differently in -CURRENT from the way they ship in production releases.
The &os; Source Tinderbox The source Tinderbox consists of: A build script, tinderbox, that automates checking out a specific version of the &os; source tree and building it. A supervisor script, tbmaster, that monitors individual Tinderbox instances, logs their output, and emails failure notices. A CGI script named index.cgi that reads a set of tbmaster logs and presents an easy-to-read HTML summary of them. A set of build servers that continually test the tip of the most important &os; code branches. A webserver that keeps a complete set of Tinderbox logs and displays an up-to-date summary. The scripts are maintained and were developed by &a.des.email;, and are now written in Perl, a move on from their original incarnation as shell scripts. All scripts and configuration files are kept in /projects/tinderbox/. For more information about the tinderbox and tbmaster scripts at this stage, see their respective man pages: tinderbox(1) and tbmaster(1).
The <filename>index.cgi</filename> Script The index.cgi script generates the HTML summary of tinderbox and tbmaster logs. Although originally intended to be used as a CGI script, as indicated by its name, this script can also be run from the command line or from a &man.cron.8; job, in which case it will look for logs in the directory where the script is located. It will automatically detect context, generating HTTP headers when it is run as a CGI script. It conforms to XHTML standards and is styled using CSS. The script starts in the main() block by attempting to verify that it is running on the official Tinderbox website. If it is not, a page indicating it is not an official website is produced, and a URL to the official site is provided. Next, it scans the log directory to get an inventory of configurations, branches and architectures for which log files exist, to avoid hard-coding a list into the script and potentially ending up with blank rows or columns. This information is derived from the names of the log files matching the following pattern: tinderbox-$config-$branch-$arch-$machine.{brief,full} The configurations used on the official Tinderbox build servers are named for the branches they build. For example, the releng_8 configuration is used to build RELENG_8 as well as all still-supported release branches. Once all of this startup procedure has been successfully completed, do_config() is called for each configuration. The do_config() function generates HTML for a single Tinderbox configuration. It works by first generating a header row, then iterating over each branch build with the specified configuration, producing a single row of results for each in the following manner: For each item: For each machine within that architecture: If a brief log file exists, then: Call success() to determine the outcome of the build. Output the modification size. Output the size of the brief log file with a link to the log file itself. If a full log file also exists, then: Output the size of the full log file with a link to the log file itself. Otherwise: No output. The success() function mentioned above scans a brief log file for the string tinderbox run completed in order to determine whether the build was successful. Configurations and branches are sorted according to their branch rank. This is computed as follows: HEAD and CURRENT have rank 9999. RELENG_x has rank xx99. RELENG_x_y has rank xxyy. This means that HEAD always ranks highest, and RELENG branches are ranked in numerical order, with each STABLE branch ranking higher than the release branches forked off of it. For instance, for &os; 8, the order from highest to lowest would be: RELENG_8 (branch rank 899). RELENG_8_3 (branch rank 803). RELENG_8_2 (branch rank 802). RELENG_8_1 (branch rank 801). RELENG_8_0 (branch rank 800). The colors that Tinderbox uses for each cell in the table are defined by CSS. Successful builds are displayed with green text; unsuccessful builds are displayed with red text. The color fades as time passes since the corresponding build, with every half an hour bringing the color closer to grey.
Official Build Servers The official Tinderbox build servers are hosted by Sentex Data - Communications, who also host the &os; + Communications, who also host the &os; Netperf Cluster. Three build servers currently exist: freebsd-current.sentex.ca builds: HEAD for amd64, arm, i386, i386/pc98, ia64, mips, powerpc, powerpc64, and sparc64. RELENG_9 and supported 9.X branches for amd64, arm, i386, i386/pc98, ia64, mips, powerpc, powerpc64, and sparc64. freebsd-stable.sentex.ca builds: RELENG_8 and supported 8.X branches for amd64, i386, i386/pc98, ia64, mips, powerpc and sparc64. freebsd-legacy.sentex.ca builds: RELENG_7 and supported 7.X branches for amd64, i386, i386/pc98, ia64, powerpc, and sparc64.
Official Summary Site Summaries and logs from the official build servers are available online at http://tinderbox.FreeBSD.org, hosted by &a.des.email; and set up as follows: A &man.cron.8; job checks the build servers at regular intervals and downloads any new log files using &man.rsync.1;. Apache is set up to use index.cgi as DirectoryIndex.
Index: head/en_US.ISO8859-1/htdocs/projects/netperf/style.css =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/netperf/style.css (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/netperf/style.css (nonexistent) @@ -1,38 +0,0 @@ -BODY { -} - -BODY TD { - font-size: 13px; -} - -BODY SMALL { - width: 615px; - font-size: 11px; -} - -.heading { - font-size: 15px; - background-color: #cbd2ec; -} - -.section { - font-size: 15px; - font-weight: bold; - background-color: #e7e9f7; -} - -.notes { - font-size: 13px; - font-weight: normal; -} - -.main { - width: 615px; - height: auto; - text-align: justify; -} - -.list { - width: 550px; - height: auto; -} Property changes on: head/en_US.ISO8859-1/htdocs/projects/netperf/style.css ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/netperf/cluster.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/netperf/cluster.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/netperf/cluster.xml (nonexistent) @@ -1,141 +0,0 @@ - - - - - -]> - - - - &title; - - $FreeBSD$ - - - - -

Contents

- - - -

Introduction

- -

The netperf cluster provides a multi-node, SMP-capable, network - functionality and performance test capability for the FreeBSD Project, supporting a variety of on-going - sub-projects including the netperf project, - and on-going work on - high performance threading. The cluster is available on a check out - basis for developers, who must request accounts be created by - contacting one of the netperf cluster admins. - The cluster includes both 1gbps and 10gbps test segments, with - network hardware from a number of vendors.

- - -

Donors

- -

The netperf cluster was made possible through the generous donation - of a number of organizations, including:

- - - -

Donations to support the netperf cluster have an immediate and - substantial impact on the success of a number of on-going performance - projects, providing access to high-end hardware to a large number of - developers. If you or your company are interested in helping to - support continued development of the netperf cluster as a resource for - FreeBSD development, please contact the netperf - cluster admins.

- - -

Netperf Cluster Admins

- -

The FreeBSD netperf cluster is managed by a small team of - developer/administrators to support SMP development and performance - testing on high-end hardware. If you have any questions, including - questions about access to the cluster as a developer, or about possible - future donations of testing hardware, please feel free to contact them - via netperf-admin at FreeBSD.org.

- - -

Netperf Cluster Resources

- -

The Netperf cluster consists of several systems interconnected using a - management network, as well as individual back-to-back gigabit ethernet - links for a test network. Please refer to the Test - Cluster One Reservations page on the &os; wiki for the - current allocations.

- - -

Netperf Cluster Procedures

- -

As the netperf cluster is a centrally managed and shared resource, - understanding and consistent following of its procedures is important. - In particular, following of the procedures makes it easier for - developers to have reasonable expectations about the configuration of - systems in the cluster, as well as to avoid treading on each others - toes.

- -

Pointers and documentation on Netperf Cluster procedures can be found - on the Test - Cluster One Pointers page on the FreeBSD wiki.

- - Property changes on: head/en_US.ISO8859-1/htdocs/projects/netperf/cluster.xml ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/sgml \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/netperf/index.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/netperf/index.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/netperf/index.xml (nonexistent) @@ -1,386 +0,0 @@ - - - - -N/A"> -Done"> -Prototyped"> -Merged to HEAD; RELENG_5 candidate"> -Not done"> -Unknown"> -]> - - - - &title; - - $FreeBSD$ - - - - -

Contents

- - - -

Project Goal

- -

The netperf project is working to enhance the performance of the - FreeBSD network stack. This work grew out of the - SMPng Project, which moved the FreeBSD kernel from - a "Giant Lock" to more fine-grained locking and multi-threading. SMPng - offered both performance improvement and degradation for the network - stack, improving parallelism and preemption, but substantially - increasing per-packet processing costs. The netperf project is - primarily focussed on further improving parallelism in network - processing while reducing the SMP synchronization overhead. This in - turn will lead to higher processing throughput and lower processing - latency.

- - -

Project Strategies

-

Robert Watson

- -

The two primary focuses of this work are to increase parallelism - while decreasing overhead. Several activities are being performed that - will work toward these goals:

- - - - -

Project Tasks

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Task Responsible Last updated Status Notes
Prefer file descriptor reference counts to socket reference - counts for system calls. &a.rwatson; 20041124 &status.done; Sockets and file descriptors both have reference counts in order - to prevent these objects from being free'd while in use. However, - if a file descriptor is used to reach the socket, the reference - counts are somewhat interchangeable, as either will prevent - undesired garbage collection. For socket system calls, overhead - can be reduced by relying on the file descriptor reference count, - thus avoiding the synchronized operations necessary to modify the - socket reference count, an approach also taken in the VFS code. - This change has been made for most socket system calls, and has - been committed to HEAD (6.x). It has also been merged to RELENG_5 - for inclusion in 5.4.
Mbuf queue library &a.rwatson; 20041124 &status.prototyped; In order to facilitate passing off queues of packets between - network stack components, create an mbuf queue primitive, struct - mbufqueue. The initial implementation is complete, and the - primitive is now being applied in several sample cases to determine - whether it offers the desired semantics and benefits. The - implementation can be found in the rwatson_dispatch Perforce - branch. Additional work must also be done to explore the - performance impact of "queues" vs arrays of mbuf pointers, which - are likely to behave better from a caching perspective.
Employ queued dispatch in interface send API &a.rwatson; 20041106 &status.prototyped; An experimental if_start_mbufqueue() interface to struct ifnet - has been added, which passes an mbuf queue to the device driver for - processing, avoiding redundant synchronization against the - interface queue, even in the event that additional queueing is - required. This has not yet been benchmarked. A subset change to - dispatch a single mbuf to a driver has also been prototyped, and - benchmarked at a several percentage point improvement in packet send - rates from user space.
Employ queued dispatch in the interface receive API &a.rwatson; 20041106 &status.new; Similar to if_start_mbufqueue, allow input of a queue of mbufs - from the device driver into the lowest protocol layers, such as - ether_input_mbufqueue.
Employ queued dispatch across netisr dispatch API &a.rwatson; 20090601 &status.done; Pull all of the mbufs in the netisr queue into a thread-local - mbuf queue to avoid repeated lock operations to access the queue. - This work was completed as part of the netisr2 project, and will - ship with 8.0-RELEASE.
Modify UMA allocator to use critical sections not mutexes for - per-CPU caches. &a.rwatson; 20050429 &status.done; The mutexes protecting per-CPU caches require atomic operations - on SMP systems; as they are per-CPU objects, the cost of - synchronizing access to the caches can be reduced by combining - CPU pinning and/or critical sections instead. This change has now - been committed and will appear in 6.0-RELEASE; it results in a - several percentage performance in UDP send from user space, and - there have been reports of 20%+ improvements in allocation - intensive code within the kernel. In micro-benchmarks, the cost - of allocation on SMP is dramatically reduced.
Modify malloc(9) allocator to use per-CPU statistics with - critical sections to protect malloc_type statistics rather than - global statistics with a mutex. &a.rwatson; 20050529 &status.done; Previously, malloc(9) used a single statistics structure - protected by a mutex to hold global malloc statistics for each - malloc type. This change moves to per-CPU statistics structures, - which are coalesced when reporting memory allocation statistics to - the user, and protects them using critical sections. This reduces - cache line contention for common allocation types by avoiding - shared lines, and also reduces synchronization costs by using - critical sections to synchronize access instead of a mutex. While - malloc(9) is less frequently used in the network stack than uma(9), - it is used for socket address data, so is on performance critical - paths for datagram operations. This has been committed and appeared - 6.0-RELEASE.
Optimize critical section performance &a.jhb; 20050404 &status.done; Critical sections prevent preemption of a thread on a CPU, as - well as preventing migration of that thread to another CPU, and - maybe used for synchronizing access to per-CPU data structures, as - well as preventing recursion in interrupt processing. Currently, - critical sections disable interrupts on the CPU. In previous - versions of FreeBSD (4.x and before), optimizations were present - that allowed for software interrupt disabling, which lowers the - cost of critical sections in the common case by avoiding expensive - microcode operations on the CPU. By restoring this model, or a - variation on it, critical sections can be made substantially - cheaper to enter. In particular, this change lowers the cost - of critical sections on UP such that it is approximately the same - cost as a mutex, meaning that optimizations on SMP to use critical - sections instead of mutexes will not harm UP performance. This - change has now been committed, and appeared in 6.0-RELEASE.
Normalize socket and protocol control block reference model &a.rwatson; 20060401 &status.done; The socket/protocol boundary is characterized by a set of data - structures and API interfaces, where the socket code acts as both - a consumer and a service library for protocols. This task is to - normalize the reference model by which protocol state is attached - to and detached from socket state in order to strengthen - invariants, allowing the removal of countless unused code paths - (especially error handling), the removal of unnecessary locking - in TCP, and a general improve the structure of the code. This - serves both the immediate purpose of improving the quality and - performance of this code, as well as being necessary for future - optimization work. These changes have been prototyped in - Perforce, and now merged to 7-CURRENT. They will be merged into - RELENG_6 once they have been thoroughly tested.
Add true inpcb reference count support &a.mohans;, &a.rwatson;, &a.peter; 20081208 &status.done; Historically, the in-bound TCP and UDP socket paths relied on - global pcbinfo info locks to prevent PCBs being delivered to from - being garbage collected by another thread while in use. This set - of changes introduces a true reference model for PCBs so that the - global lock can be released during in-bound process, and appear - in 8.0-RELEASE.
Fine-grained locking for UNIX domain sockets &a.rwatson; 20070226 &status.done; UNIX domain sockets in FreeBSD 5.x and 6.x use a single global - subsystem lock. This is sufficient to allow it to run without - Giant, but results in contention with large numbers of processors - simultaneously operating on UNIX domain sockets. This task - introduced per-protocol control block locks in order to reduce - contention on a larger subsystem lock, and the results appeared in - 7.0-RELEASE.
Multiple netisr threads &a.rwatson; 20090601 &status.done; Historically, the BSD network stack has used a single network - software interrupt context, for deferred network processing. With - the introduction of multi-processing, this became a single - software interrupt thread. In FreeBSD 8.0, multiple netisr - threads are now supported, up to the number of CPUs present in the - system.
- - -

Netperf Cluster

- -

Through the generous donations and investment of Sentex Data - Communications, FreeBSD Systems, IronPort Systems, and the FreeBSD - Foundation, a network performance testbed has been created in Ontario, - Canada for use by FreeBSD developers working in the area of network - performance. A similar cluster, made possible through the generous - donation of Verio, is being prepared for use in more general SMP - performance work in Virginia, US. Each cluster consists of several SMP - systems inter-connected with giga-bit ethernet such that relatively - arbitrary topologies can be constructed in order to test host-host, IP - forwarding, and bridging performance scenarios. Systems are network - booted, have serial console, and remote power, in order to maximize - availability and minimize configuration overhead. These systems are - available on a check-out basis for experimentation and performance - measurement to FreeBSD developers working on the Netperf project, and - in related areas.

- -

More detailed information on the netperf - cluster can be found by following this link.

- - -

Papers and Reports

- -

The following paper(s) have been produced by or are related to the - Netperf Project:

- - - - -

Links

- -

Some useful links relating to the netperf work:

- - - - - Property changes on: head/en_US.ISO8859-1/htdocs/projects/netperf/index.xml ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/sgml \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/netperf/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/netperf/Makefile (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/netperf/Makefile (nonexistent) @@ -1,18 +0,0 @@ -# Summary for busdma project status -# -# $FreeBSD$ - -MAINTAINER= rwatson - -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif -.if exists(../Makefile.inc) -.include "../Makefile.inc" -.endif - -DOCS= index.xml -DOCS+= cluster.xml -DATA= style.css - -.include "${DOC_PREFIX}/share/mk/web.site.mk" Property changes on: head/en_US.ISO8859-1/htdocs/projects/netperf/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/busdma/style.css =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/busdma/style.css (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/busdma/style.css (nonexistent) @@ -1,38 +0,0 @@ -BODY { -} - -BODY TD { - font-size: 13px; -} - -BODY SMALL { - width: 615px; - font-size: 11px; -} - -.heading { - font-size: 15px; - background-color: #cbd2ec; -} - -.section { - font-size: 15px; - font-weight: bold; - background-color: #e7e9f7; -} - -.notes { - font-size: 13px; - font-weight: normal; -} - -.main { - width: 615px; - height: auto; - text-align: justify; -} - -.list { - width: 550px; - height: auto; -} Property changes on: head/en_US.ISO8859-1/htdocs/projects/busdma/style.css ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/busdma/index.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/busdma/index.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/busdma/index.xml (nonexistent) @@ -1,1540 +0,0 @@ - - - - - -N/A"> -Done"> -In progress"> -Needs testing"> -Not done"> -Unknown"> - - -]> - - - - &title; - - $FreeBSD$ - - - - -

Contents

- - - -

Project Goal

- -

busdma

-

The busdma interfaces permit hardware device drivers to operate - on a variety of platforms avoiding the encoding of platform-specific - access methods into drivers. This lowers the maintenance costs - for drivers across platforms, and improves the chances that a driver - will "just work" on a new platform. Modifying a driver to make use - of busdma is relatively straight forward, but does require - familiarity with both the device driver and busdma primitives. - For busdma to be used in FreeBSD, two sets of changes are generally - required: adaptation of the busdma implementation to run on all - platforms, and adaptation of drivers to use the framework. As such, - status information on this project is broken down into platform - support, and driver support (sorted by category). Completing - this work requires a thorough audit of the system device drivers, - then prioritized conversion of drivers. Drivers are also - expected to use bus_space functions, and this column is - sometimes used to denote a driver in need of conversion to - bus_space as well.

- -

INTR_MPSAFE

-

Hardware drivers register their interrupt handler with the - bus_setup_intr() function. Setting the flag - INTR_MPSAFE tells the system interrupt code - to call the interrupt routine without holding the Giant - mutex. This can give a significant performance gain on SMP - systems.

-

Drivers can set this flag even if they are not fully locked - down as long as their interrupt routine is careful about not - touching other data structures in the driver. An easy way to - do this is to check and clear the hardware interrupt status - registers and then schedule the interrupt processing for a - taskqueue or kernel thread.

- -

SMPng locked

-

Drivers should employ mutexes and sx locks to protect their - data structures and hardware registers from competing threads. - Mutex operations are somewhat expensive, so a good strategy is - combine as many atomic operations into a single mutex acquisition - as possible.

- -

p!=a safety

-

Intel PAE support requires that pointers and physical address - representations be of differing sizes. This means that drivers - must be written to use vm_paddr_t or bus_addr_t rather than - assuming that physical addresses can be represented using a - void *. In addition, format strings and casts must be - carefully handled.

- -

The task list below is not intended to be complete, but does - represent a set of relevant and/or important components of the - overall work. The "Responsible" field identifies a developer who - has expressed willingness to be responsible for completing the - identified task; this doesn't preclude others working on it, - but suggests that coordination with the responsible party might - be appropriate so as to avoid unnecessary duplication of work, - and to maximize forward progress. If beginning work on a new - area of substantial size, or one that appears unclaimed, it may - be worth dropping an e-mail to &a.mux; to see if any progress - has been made.

- -

The definition of the date field varies depending on the status - of a task. For completed tasks, it refers to the date completed - or reported completed. For in-progress tasks, it refers to the - date of the last update of the entry. For stalled tasks, it - refers to the date that the task was declared stalled. For - new tasks, it refers to the date the task was added to the list.

- -

Tasks are sorted first by status, then by date.

- - -

Resources and Links

-

A series of manual pages related to this project can be found - here:

- - - - -

Platform Support Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Task Responsible Last updated Status Details
amd64&a.peter;July 1, 2003&status.done;Fully supported.
arm&a.cognet;December 23, 2005&status.done;Fully supported.
ia64&a.marcel;December 10, 2002&status.done;There may be problems for systems with large amounts - of memory.
i386&a.sam;December 9, 2002&status.done;Fully supported.
powerpc&a.grehan;January 15, 2003&status.done;Fully supported.
sparc64&a.tmm;January 6, 2003&status.done;Fully supported.
- - -

Network Interface Driver Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Driver Responsible Last updated busdma INTR_MPSAFE SMPng locked a!=p Notes
if_an   December 23, 2005 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_ar     &status.new; &status.new; &status.new; &status.new; kvtop()
if_arl   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_ath   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_aue   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_awi   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_axe   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_bce   August 25, 2006 &status.done; &status.done; &status.done; &status.done;  
if_bfe &a.silby; August 23, 2006 &status.done; &status.wip; &status.wip; &status.wip;  
if_bge &a.wpaul; April 13, 2004 &status.done; &status.done; &status.done; &status.done;  
if_cdce   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_cnw   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_cp &a.rik; October 31, 2005 &status.done; &status.done; &status.done; &status.new;  
if_cs &a.imp; December 23, 2005 &status.new; &status.new; &status.new; &status.unknown; Needs bus_space conversion
if_ct &a.rik; October 31, 2005 &status.done; &status.done; &status.done; &status.new;  
if_cue   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_cx &a.rik; June 24, 2004 &status.done; &status.wip; &status.wip; &status.new;  
if_dc &a.mux; August 19, 2005 &status.done; &status.done; &status.done; &status.done;  
if_de &a.mux; August 17, 2005 &status.done; &status.done; &status.done; &status.new;  
if_ed &a.imp; December 23, 2005 &status.done; &status.done; &status.done; &status.done;  
if_em &a.pdeuskar; April 13, 2004 &status.done; &status.done; &status.done; &status.done;  
if_en &a.harti; November 2, 2005 &status.done; &status.new; &status.new; &status.done; Locking present; not yet marked INTR_MPSAFE?
if_ep &a.mdodd;,&a.imp; April 13, 2004 &status.done; &status.done; &status.done; &status.done;  
if_ex &a.imp; Dcember 23, 2005 &status.done; &status.new; &status.new; &status.done;  
if_fatm &a.harti; November 2, 2005 &status.done; &status.done; &status.done; &status.done;  
if_fwe     &status.new; &status.new; &status.new; &status.new;  
if_fxp &a.mux; April 13, 2004 &status.done; &status.done; &status.done; &status.done;  
if_gem &a.tmm; July 31, 2005 &status.done; &status.done; &status.done; &status.new;  
if_hatm &a.harti; November 2, 2005 &status.done; &status.done; &status.done; &status.done;  
if_hme &a.tmm; January 30, 2005 &status.done; &status.done; &status.done; &status.done;  
if_idt     &status.new; &status.new; &status.new; &status.new; vtophys()
if_ipw   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_iwi   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_ixgb   August 21, 2006 &status.untested; &status.new; &status.new; &status.new;  
if_kue   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_le &a.marius; January 31, 2006 &status.done; &status.done; &status.done; &status.done;  
if_lge   November 23, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_lmc   February 11, 2006 &status.done; &status.done; &status.done; &status.unknown; Untested on PAE
if_mn     &status.new; &status.new; &status.new; &status.new; vtophys(). Please contact &a.phk; for info/hardware.
if_mxge &a.gallatin; August 23, 2006 &status.done; &status.done; &status.done; &status.done;  
if_my   August 17, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_nfe   August 23, 2006 &status.done; &status.done; &status.done; &status.new;  
if_nge   August 17, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_nve   November 23, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_pcn &a.obrien; August 19, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_pdq     &status.new; &status.new; &status.new; &status.new; Mostly busdma, except for vtophys().
if_ral   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_ray   August 27, 2006 &status.unknown; &status.unknown; &status.unknown; &status.unknown;  
if_re   May 30, 2005 &status.done; &status.done; &status.done; &status.done;  
if_rl &a.wpaul; April 13, 2004 &status.done; &status.done; &status.done; &status.new;  
if_rue   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_sf   August 19, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_sis &a.wpaul; April 13, 2004 &status.done; &status.done; &status.done; &status.new;  
if_sk   August 24, 2006 &status.done; &status.done; &status.done; &status.done;  
if_sn &a.imp; December 23, 2005 &status.done; &status.done; &status.done; &status.done;  
if_snc   December 23, 2005 &status.unknown; &status.unknown; &status.unknown; &status.unknown; pc98 only device (although it could work with many - cardbus bridges)
if_sr     &status.new; &status.new; &status.new; &status.new; vtophys()
if_ste   August 31, 2005 &status.new; &status.done; &status.done; &status.new; vtophys()
if_stge &a.yongari; August 23, 2006 &status.done; &status.done; &status.done; &status.done;  
if_ti   December 13, 2005 &status.done; &status.done; &status.done; &status.done;  
if_tl   September 15, 2005 &status.new; &status.done; &status.done; &status.new;  
if_tx &a.mux; April 19, 2003 &status.done; &status.new; &status.new; &status.untested;  
if_txp   September 22, 2005 &status.wip; &status.done; &status.done; &status.new;  
if_udav   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_ural   September 3, 2006 &status.na; &status.new; &status.unknown; &status.unknown;  
if_vge   August 23, 2006 &status.done; &status.done; &status.done; &status.done;  
if_vr   April 23, 2004 &status.new; &status.done; &status.done; &status.new;  
if_vx   September 22, 2005 &status.na; &status.done; &status.done; &status.new; Uses PIO to copy mbufs to and from hardware.
if_wb   September 22, 2005 &status.new; &status.done; &status.done; &status.new;  
if_wi &a.sam;, &a.imp; November 4, 2003 &status.unknown; &status.done; &status.unknown; &status.unknown; This driver needs lots of help
if_xe &a.imp; December 23, 2005 &status.done; &status.done; &status.done; &status.done;  
if_xl &a.mux; April 13, 2004 &status.done; &status.done; &status.done; &status.done;  
- - -

Storage Device Driver Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Driver Responsible Last updated busdma INTR_MPSAFE SMPng locked a!=p Notes
aac   January 31, 2005 &status.done; &status.done; &status.done; &status.done; Not endian clean.
adv   December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
aha   April 13, 2004 &status.done; &status.wip; &status.wip; &status.new; Uses BUSDMA, but may pun bus address with host address.
ahb   December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
ahc &a.gibbs; January 31, 2005 &status.done; &status.new; &status.new; &status.done;  
ahd &a.gibbs; January 31, 2005 &status.done; &status.new; &status.new; &status.done;  
aic   December 23, 2005 &status.unknown; &status.unknown; &status.unknown; &status.unknown; Neeeds evaluation
amd   December 14, 2002 &status.done; &status.new; &status.new; &status.new;  
amr   January 30, 2005 &status.done; &status.done; &status.done; &status.done;  
asr   January 4, 2003 &status.new; &status.new; &status.new; &status.new; vtophys(). Requires major work. A new I2O framework would be desirable.
ata &a.sos; December 9, 2002 &status.done; &status.done; &status.done; &status.done;  
buslogic     &status.new; &status.new; &status.new; &status.new; vtophys()
ciss   December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
ct     &status.new; &status.new; &status.new; &status.new;  
dpt     &status.new; &status.new; &status.new; &status.new; vtophys()
fdc   December 23, 2005 &status.unknown; &status.unknown; &status.unknown; &status.unknown; Needs evaluation
ida   December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
iir   March 1, 2006 &status.done; &status.done; &status.done; &status.done; 64-bit DMA without bouncing is possible, but needs work.
isp   February 8, 2003 &status.done; &status.done; &status.new; &status.new;  
ips   January 30, 2005 &status.done; &status.done; &status.done; &status.done;  
mlx   February 8, 2003 &status.done; &status.wip; &status.wip; &status.new;  
mly   February 8, 2003 &status.done; &status.wip; &status.wip; &status.new;  
mpt   December 9, 2002 &status.done; &status.done; &status.new; &status.new;  
ncr     &status.new; &status.new; &status.new; &status.new; vtophys(). Please contact &a.phk; for a possible source - of hardware.
ncv     &status.unknown; &status.unknown; &status.unknown; &status.unknown; Needs evaluation
nsp     &status.unknown; &status.unknown; &status.unknown; &status.unknown; Needs evaluation
pst   April 11, 2003 &status.new; &status.done; &status.new; &status.new; vtophys()
stg   December 9, 2002 &status.done; &status.new; &status.new; &status.new; At least, it looks like it may well be.
sym   December 19, 2002 &status.done; &status.new; &status.new; &status.new;  
trm &a.cognet; December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
twe   December 9, 2002 &status.done; &status.new; &status.new; &status.new;  
wds   February 2, 2005 &status.done; &status.new; &status.new; &status.new;  
- -

Miscellaneous Device Driver Status

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Driver Responsible Last updated busdma INTR_MPSAFE SMPng locked a!=p Notes
agp   October 31, 2005 &status.new; &status.new; &status.new; &status.new; vtophys()
bktr &a.cognet; January 15, 2003 &status.wip; &status.new; &status.new; &status.new; vtophys()
digi     &status.new; &status.new; &status.new; &status.new; vtophys()
drm &a.anholt; October 27, 2003 &status.wip; &status.done; &status.done; &status.wip; vtophys(). The locking could use some review.
fb     &status.new; &status.new; &status.new; &status.new; vtophys()
firewire &a.simokawa; April 17, 2003 &status.done; &status.new; &status.new; &status.done; vtophys()
hfa     &status.new; &status.new; &status.new; &status.new; vtophys()
hifn &a.sam; April 13, 2004 &status.done; &status.done; &status.done; &status.new;  
musycc     &status.new; &status.new; &status.new; &status.new; vtophys(). Please contact &a.phk; for info/hardware.
pcm &a.cognet; February 20, 2003 &status.done; &status.done; &status.new; &status.new;  
ubsec &a.sam; April 13, 2004 &status.done; &status.done; &status.done; &status.new; vtophys() is used in debugging printf.
usb &a.jmg; July 24, 2003 &status.done; &status.new; &status.new; &status.untested; a!=p should be clean, but requires further testing.
- - -

Documentation Status

- - - - - - - - - - - - - - - - - -
Task Responsible Last updated Status Notes
Manual pages for the busdma API &a.hmp; January 15, 2003 &status.done;  
- - - Property changes on: head/en_US.ISO8859-1/htdocs/projects/busdma/index.xml ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/sgml \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/busdma/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/busdma/Makefile (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/busdma/Makefile (nonexistent) @@ -1,17 +0,0 @@ -# Summary for busdma project status -# -# $FreeBSD$ - -MAINTAINER= rwatson - -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif -.if exists(../Makefile.inc) -.include "../Makefile.inc" -.endif - -DOCS= index.xml -DATA= style.css - -.include "${DOC_PREFIX}/share/mk/web.site.mk" Property changes on: head/en_US.ISO8859-1/htdocs/projects/busdma/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/ideas/ideas.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/ideas/ideas.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/ideas/ideas.xml (nonexistent) @@ -1,21 +0,0 @@ - - - -]> - - - - &title; - - $FreeBSD$ - - - - -

The ideas page has moved to the FreeBSD wiki.

- - - Property changes on: head/en_US.ISO8859-1/htdocs/projects/ideas/ideas.xml ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/ideas/style.css =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/ideas/style.css (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/ideas/style.css (nonexistent) @@ -1,38 +0,0 @@ -BODY { -} - -BODY TD { - font-size: 13px; -} - -BODY SMALL { - width: 615px; - font-size: 11px; -} - -.heading { - font-size: 15px; - background-color: #cbd2ec; -} - -.section { - font-size: 15px; - font-weight: bold; - background-color: #e7e9f7; -} - -.notes { - font-size: 13px; - font-weight: normal; -} - -.main { - width: 615px; - height: auto; - text-align: justify; -} - -.list { - width: 550px; - height: auto; -} Property changes on: head/en_US.ISO8859-1/htdocs/projects/ideas/style.css ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/ideas/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/ideas/Makefile (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/ideas/Makefile (nonexistent) @@ -1,18 +0,0 @@ -# FreeBSD list of projects and ideas for volunteers -# -# $FreeBSD$ - -MAINTAINER= joel - -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif -.if exists(../Makefile.inc) -.include "../Makefile.inc" -.endif - -DATA= style.css - -DOCS= ideas.xml - -.include "${DOC_PREFIX}/share/mk/web.site.mk" Property changes on: head/en_US.ISO8859-1/htdocs/projects/ideas/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/projects/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/Makefile (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/Makefile (revision 54089) @@ -1,25 +1,25 @@ # $FreeBSD$ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif DOCS= projects.xml DOCS+= newbies.xml DOCS+= summerofcode.xml DOCS+= summerofcode-2005.xml DOCS+= summerofcode-2006.xml DOCS+= summerofcode-2007.xml DOCS+= summerofcode-2008.xml DATA= 2018-freebsd-gsoc-thumbnail.png DATA+= 2018-freebsd-gsoc.pdf INDEXLINK= projects.html -SUBDIR= busdma ideas mips netperf +SUBDIR= mips .include "${DOC_PREFIX}/share/mk/web.site.mk" Index: head/en_US.ISO8859-1/htdocs/projects/projects.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/projects.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/projects/projects.xml (revision 54089) @@ -1,238 +1,230 @@ ]> &title; $FreeBSD$

In addition to the mainstream development path of FreeBSD, a number of developer groups are working on the cutting edge to expand FreeBSD's range of applications in new directions. Follow the links below to learn more about these exciting projects.

If you feel that a project is missing, please send the URL and a short description (3-10 lines) to www@FreeBSD.org.

In addition, some of these projects regularly submit status reports, which can be viewed on the status reports page.

Documentation

Applications

Storage

Kernel, security

Device drivers

Architecture

Misc

Index: head/en_US.ISO8859-1/htdocs/search/sitemap.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/search/sitemap.xml (revision 54088) +++ head/en_US.ISO8859-1/htdocs/search/sitemap.xml (revision 54089) @@ -1,1476 +1,1456 @@ $FreeBSD$ Applications &base;/applications.html Hittinger, Mark &base;/applications.html WinNet Communications &base;/applications.html Internet services &base;/applications.html X Windows workstation &base;/applications.html Networking &base;/applications.html Software development &base;/applications.html Net surfing &base;/applications.html Education and research &base;/applications.html FreeBSD Art &base;/art.html Art, FreeBSD &base;/art.html Commercial Vendors &base;/commercial/commercial.html Vendors, commercial &base;/commercial/commercial.html Commercial Vendors, Consulting &base;/commercial/consult_bycat.html Consulting, Commercial Vendors &base;/commercial/consult_bycat.html Commercial Vendors, Hardware &base;/commercial/hardware.html Hardware, Commercial Vendors &base;/commercial/hardware.html Commercial Vendors, Software &base;/commercial/software.html Software, Commercial Vendors &base;/commercial/software.html Commercial Vendors, Miscellaneous &base;/commercial/misc.html Miscellaneous, Commercial Vendors &base;/commercial/misc.html Mailing lists &base;/community/mailinglists.html non-English mailing lists &base;/community/mailinglists.html Mailing lists, Brazilian Portuguese &base;/community/mailinglists.html Mailing lists, Simplified Chinese &base;/community/mailinglists.html Mailing lists, Czech &base;/community/mailinglists.html Mailing lists, German &base;/community/mailinglists.html Mailing lists, French &base;/community/mailinglists.html Mailing lists, Hungarian &base;/community/mailinglists.html Mailing lists, Indonesian &base;/community/mailinglists.html Mailing lists, Italian &base;/community/mailinglists.html Mailing lists, Japanese &base;/community/mailinglists.html Mailing lists, Korean &base;/community/mailinglists.html Mailing lists, Netherlands &base;/community/mailinglists.html Mailing lists, Polish &base;/community/mailinglists.html Mailing lists, Portuguese &base;/community/mailinglists.html Mailing lists, Russian &base;/community/mailinglists.html Mailing lists, Slovakian &base;/community/mailinglists.html Mailing lists, Spanish &base;/community/mailinglists.html Mailing lists, Swedish &base;/community/mailinglists.html Mailing lists, Turkish &base;/community/mailinglists.html Simplified Chinese mailing lists &base;/community/mailinglists.html Czech mailing lists &base;/community/mailinglists.html German mailing lists &base;/community/mailinglists.html French mailing lists &base;/community/mailinglists.html Hungarian mailing lists &base;/community/mailinglists.html Polish mailing lists &base;/community/mailinglists.html Portuguese mailing lists &base;/community/mailinglists.html Japanese mailing lists &base;/community/mailinglists.html Hungarian mailing lists &base;/community/mailinglists.html Indonesian mailing lists &base;/community/mailinglists.html Russian mailing lists &base;/community/mailinglists.html Indonesian mailing lists &base;/community/mailinglists.html Italian mailing lists &base;/community/mailinglists.html Japanese mailing lists &base;/community/mailinglists.html Dutch mailing lists &base;/community/mailinglists.html Polish mailing lists &base;/community/mailinglists.html Portuguese mailing lists &base;/community/mailinglists.html Russian mailing lists &base;/community/mailinglists.html Slovakian mailing lists &base;/community/mailinglists.html Spanish mailing lists &base;/community/mailinglists.html Swedish mailing lists &base;/community/mailinglists.html Turkish mailing lists &base;/community/mailinglists.html Newsgroups &base;/community/newsgroups.html Web Resources, mirrors &base;/community/webresources.html BSD Daemon &base;/copyright/daemon.html Daemon, BSD &base;/copyright/daemon.html Nemeth, Evi &base;/copyright/daemon.html Lassiter, John &base;/copyright/daemon.html Hosokawa, Tatsumi &base;/copyright/daemon.html McKusick, Marshall Kirk &base;/copyright/daemon.html Copyright &base;/copyright/license.html License &base;/copyright/license.html Trademark legend &base;/copyright/trademarks.html Source Code Repository &base;/developers/cvs.html CTM &base;/developers/cvs.html CVSup &base;/developers/cvs.html Subversion Repository &base;/developers/cvs.html anoncvs &base;/developers/cvs.html Japanese Handbook &base;/doc/ja_JP.eucJP/books/handbook/index.html Handbook, Japanese &base;/doc/ja_JP.eucJP/books/handbook/index.html Frequently Asked Questions (FAQ) &base;/doc/en_US.ISO8859-1/books/faq/index.html FAQ &base;/doc/en_US.ISO8859-1/books/faq/index.html Documentation Project &base;/docproj/docproj.html Project, Documentation &base;/docproj/docproj.html Goals, documentation &base;/docproj/docproj.html FAQ, Documentation Project &base;/docproj/docproj.html Handbook, Documentation Project &base;/docproj/docproj.html Contributing, Documentation Project &base;/docproj/docproj.html Submitting corrections, Documentation Project &base;/docproj/docproj.html Submitting new material, Documentation Project &base;/docproj/docproj.html SGML, Documentation Project &base;/docproj/docproj.html Linuxdoc, Documentation Project &base;/docproj/docproj.html Docbook, Documentation Project &base;/docproj/docproj.html Guidelines, Documentation Project &base;/docproj/docproj.html Documentation &base;/docs.html Handbook &base;/docs.html Books &base;/docs/books.html Manual Pages &cgibase;/man.cgi Donations &base;/donations/index.html Events &base;/events/events.html Features &base;/features.html 4.4BSD, A complete operating system &base;/features.html Berkeley, University of California &base;/features.html UCB &base;/features.html Computer Systems Research Group &base;/features.html CSRG &base;/features.html Compatibility, System V Release 4 &base;/features.html Compatibility, Linux &base;/features.html Linux, Compatibility &base;/features.html Fieber, John &base;/internal/about.html Apache http server &base;/internal/about.html http server &base;/internal/about.html WWW server www.FreeBSD.org &base;/internal/about.html BSDi, network connection &base;/internal/about.html Network connection, BSDi &base;/internal/about.html Core Bylaws &base;/internal/bylaws.html Bylaws, Core &base;/internal/bylaws.html Charter, Doceng Team &base;/internal/doceng.html Doceng Team Charter &base;/internal/doceng.html Documentation Project, doceng &base;/internal/doceng.html Mirroring the FreeBSD Web Pages &base;/internal/mirror.html rsync &base;/internal/mirror.html IPv6 in FreeBSD &base;/ipv6/index.html World IPv6 Day &base;/ipv6/w6d.html IPv6 Day, World &base;/ipv6/w6d.html Contact us &base;/mailto.html Questions about this WWW server &base;/mailto.html Questions about the contents of this WWW server &base;/mailto.html Questions about FreeBSD &base;/mailto.html News flash &base;/news/newsflash.html Press releases, News &base;/news/newsflash.html Bi-monthly status reports &base;/news/status/status.html FreeBSD Status Reports &base;/news/status/status.html Status Reports &base;/news/status/status.html AMD64 &base;/platforms/amd64.html Athlon64 &base;/platforms/amd64.html FreeBSD/amd64 &base;/platforms/amd64.html Opteron &base;/platforms/amd64.html x86-64 &base;/platforms/amd64.html ARM &base;/platforms/arm.html FreeBSD/ARM &base;/platforms/arm.html StrongARM &base;/platforms/arm.html FreeBSD/ia64 &base;/platforms/ia64/index.html IA-64 &base;/platforms/ia64/index.html Itanium &base;/platforms/ia64/index.html FreeBSD/MIPS &base;/platforms/mips.html MIPS, FreeBSD &base;/platforms/mips.html SGI MIPS, FreeBSD &base;/platforms/mips.html FreeBSD/pc98 &base;/platforms/pc98.html NEC PC-98x1 &base;/platforms/pc98.html PC-98 &base;/platforms/pc98.html FreeBSD/PowerPC &base;/platforms/ppc.html FreeBSD/ppc &base;/platforms/ppc.html PowerPC &base;/platforms/ppc.html FreeBSD/sparc64 &base;/platforms/sparc.html Sparc64 &base;/platforms/sparc.html Sparc &base;/platforms/sparc.html UltraSparc &base;/platforms/sparc.html FreeBSD/sun4v &base;/platforms/sun4v.html sun4v &base;/platforms/sun4v.html UltraSparc-T1 &base;/platforms/sun4v.html xbox &base;/platforms/xbox.html FreeBSD/xbox &base;/platforms/xbox.html Ports Collection &base;/ports/index.html Press, in the &base;/news/press.html Press Releases, Official &base;/news/pressreleases.html Privacy Policy &base;/privacy.html Java &base;/java/index.html GNOME &base;/gnome/index.html Newbies Project &base;/projects/newbies.html Retail Outlets for FreeBSD &base;/doc/en_US.ISO8859-1/books/handbook/mirrors.html Project ideas https://wiki.FreeBSD.org/IdeasPage - busdma and SMPng driver conversion project - &base;/projects/busdma/index.html - - - - SMPng driver conversion - &base;/projects/busdma/index.html - - - C99 & POSIX Conformance Project &base;/projects/c99/index.html POSIX Conformance &base;/projects/c99/index.html Related Publications &base;/publish.html Publications, Related &base;/publish.html Covers, Publications &base;/publish.html Daemon, Covers &base;/publish.html Recent announcements about FreeBSD Releases &base;/releases/index.html Release Information &base;/releases/index.html Release Engineering Information &base;/releng/index.html Charter, Release Engineering Team &base;/releng/charter.html Release Engineering Team Charter &base;/releng/charter.html Release Documentation &base;/relnotes.html Search Services search.html Ports Changes, Search search.html Search, Ports Changes search.html Message-ID, Search search.html Search, Message-ID search.html Usenet News, Search search.html Newsgroups, Search search.html Search, Usenet News search.html Cross reference of the FreeBSD kernel search.html XR, Cross reference of the FreeBSD kernel search.html Kernel, Cross reference search.html Searching Hints searchhints.html Security Guide &base;/security/security.html Submit a FreeBSD problem report https://bugs.freebsd.org/bugzilla/enter_bug.cgi Bug report, submit https://bugs.freebsd.org/bugzilla/enter_bug.cgi Support &base;/support.html Problem Report Database &base;/support/bugreports.html Bug reports, view &base;/support/bugreports.html Bug reports, search &base;/support/bugreports.html User Groups &base;/usergroups.html Getting FreeBSD &base;/where.html Commercial software &base;/where.html 4.4BSD Documents https://docs.freebsd.org/44doc/ BSD Documents https://docs.freebsd.org/44doc/ Documents, 4.4BSD https://docs.freebsd.org/44doc/ Info Documents https://docs.freebsd.org/info/ GNU Info Documents https://docs.freebsd.org/info/ Logo &base;/logo.html Security Advisories https://security.freebsd.org Advisories, security https://security.freebsd.org SA https://security.freebsd.org Source Code http://fxr.watson.org/ German web pages &base;/de/index.html Spanish web pages &base;/es/index.html Russian web pages &base;/ru/index.html French web pages &base;/fr/index.html Italian web pages &base;/it/index.html Japanese web pages &base;/ja/index.html Project Staff &base;/administration.html Staff, Project &base;/administration.html Who's Who &base;/administration.html Officers, Project &base;/administration.html Features &base;/features.html Releases &base;/releases/index.html Installation &base;/doc/en_US.ISO8859-1/books/handbook/install.html Supported Hardware &u.rel.hardware; Mirrors &base;/doc/en_US.ISO8859-1/books/handbook/mirrors.html Applications &base;/applications.html Java &base;/java/index.html GNOME &base;/gnome/index.html Ports &base;/ports/index.html Commercial Vendors &base;/commercial/commercial.html Administration &base;/administration.html Get FreeBSD &base;/where.html Release Information &base;/releases/index.html Snapshot Releases &base;/snapshots/index.html Ported Applications &base;/ports/index.html Books &base;/docs/books.html Handbook &base;/doc/en_US.ISO8859-1/books/handbook/index.html FAQ &base;/doc/en_US.ISO8859-1/books/faq/index.html Manual Pages &cgibase;/man.cgi Other Documentation https://docs.freebsd.org/ Publications &base;/publish.html Translations &base;/docproj/translations.html Bibliography &base;/doc/en_US.ISO8859-1/books/handbook/bibliography.html Mailing Lists &base;/community/mailinglists.html IRC &base;/community/irc.html Newsgroups &base;/community/newsgroups.html User Groups &base;/usergroups.html Web Resources &base;/community/webresources.html Developers' Handbook &base;/doc/en_US.ISO8859-1/books/developers-handbook/index.html Porter's Handbook &base;/doc/en_US.ISO8859-1/books/porters-handbook/ Source Code Repository &base;/developers/cvs.html Release Engineering &base;/releng/index.html Platforms &base;/platforms/index.html Project Ideas https://wiki.freebsd.org/IdeasPage Contributing &base;/doc/en_US.ISO8859-1/articles/contributing/index.html Commercial Vendors &base;/commercial/commercial.html Security Information &base;/security/security.html Bug Reports &base;/support/bugreports.html Web Resources &base;/support/webresources.html The FreeBSD Foundation https://www.freebsdfoundation.org/ News And Events https://www.freebsdfoundation.org/news-and-events/ Newsflash &base;/news/newsflash.html Official Press Releases &base;/news/pressreleases.html FreeBSD in the press &base;/news/press.html Events &base;/events/events.html Status Reports &base;/news/status/status.html FreeBSD/amd64 &base;/platforms/amd64.html FreeBSD/ARM &base;/platforms/arm.html FreeBSD/i386 &base;/platforms/i386.html FreeBSD/ia64 &base;/platforms/ia64/index.html FreeBSD/MIPS &base;/platforms/mips.html FreeBSD/pc98 &base;/platforms/pc98.html FreeBSD/ppc &base;/platforms/ppc.html FreeBSD/sparc64 &base;/platforms/sparc.html FreeBSD/sunv4 &base;/platforms/sun4v.html FreeBSD/xbox &base;/platforms/xbox.html ACPI https://wiki.freebsd.org/ACPI - Busdma and SMPng driver conversion - &base;/projects/busdma/index.html - - - FreeBSD Project Ideas https://wiki.freebsd.org/IdeasPage FreeBSD/MIPS &base;/projects/mips/index.html - - - - Network Performance (netperf) - &base;/projects/netperf/index.html