FreeBSD 9 Brainstorming / Wishlist
This page is of historical interest only.
This is a rough list of ideas / goals / tasks to work on for FreeBSD 9.0 release. Nothing here is guaranteed. Many of these items have been long-term goals for many prior releases as well.
In the lists below, (E) means the suggestion came from the EuroBSDCon 200909, and (C) means it came from the BSDCan 201005.
A new page based on brainstorming for FreeBSD 10 is at FreeBSD10.
Timescale
The following timescale was suggested at 201005:
7.4-RELEASE, then
8.2-RELEASE, then
9.0-RELEASE (aiming roughly for May 2011)
Kernel
Networking Stack
(E) Ability to compile INET6 Only kernel
-
(E) Remove if(4) send queue
(EC) Dispatch sets of packets (Packet batching) (
JeffRoberson has some patches)
(EC) PCPU packet dispatch / Net taskq
-
(E) Pass input queue info up from device
(E) Fixing carp(4)
(EC) Multiq transmit support (if_transmit)
(EC) TCP Connection groups locking paradigm (
RobertWatson) - Expected ~June/July 2010
(EC) CPU cache analysis, should we prefetch parts of mbufs (headers), etc.
(E) IEEE 802.1p (this may be already implemented?)
(C) mbuf performance optimisations (
JeffRoberson) (~December 2010)
(C) Software TSO
(C) SIFTR (complete)
(C) TCP reassembly
-
Wireless networking
(EC) 802.11n - High Throughput (
RuiPaulo)
Device Driver Issues
(E) Parallel device attach
The idea here is running device probe and attach routines concurrently to reduce boot time.
Some tricky questions here are that non-deterministic device names across boots would be a substantial POLA violation and that many bus drivers may not be ready for this complexity.
(EC) USB video device support (including webcamd)
(E) Express Card
(E) External hardware integration
-
(EC) Further ATA/CAM work
(EC) Device I/O resource management (PnP
OS support) (
JohnBaldwin)
(E) Starting the scheduler sooner for most of device attach (
JohnBaldwin)
(E) Power management
-
(C) ATAoE?
(C) FPU save/restore for kernel use (kib@) (complete)
-
Other Kernel
(EC) Virtualize more subsystems (VIMAGE) (
BjoernZeeb)
(EC) More embedded platform support
(EC) avr32
(EC) mips SMP, mips n64
(C) PPC64 + SMP
(EC) Further work on improving scaling to large numbers of cores (e.g. 128)
(EC) Dynamic CPU configuration (allowing CPUs to go offline/online) (
AttilioRao)
-
-
(E) Unmapped disk I/O buffers (sglist in bio)
(C) Memory descripter for unmapped IO (good if it was in by 9)
-
(E) Per-mount syncer threads
(E) Modularity Hygiene (ask phk@ for more details)
(E) MAC for ZFS
(E) Flash FS support / NAND filesystem?
(E) TRIM support
(EC) tickless kernel / deadline scheduling
-
-
-
(E) Performance monitoring counters (hwpmc(4)) support for embedded platforms
(E) 64-bit quotas for UFS (
KirkMcKusick and DagErlingSmørgrav)
(E) Hibernate support (S4)
(E) VOP_OPLOCK support for allowing shared locking state between SMB / NFS, etc. (
ZachLoafman)
(E) Shared page data to allow pure userland implementations of certain system calls
-
-
(E) Clock / power domain management
(E) Address space randomization
(E) Start using disk labels to mount filesystems more aggressively / by default
(E) Enable some sort of kernel debugging by default in release kernels
(E) Better config(8)
(E) Xen DOM0
(E) ZFS as default?
(E) sysinstall support
(E) Licensing?
(E) Linux 64-bit binary support in FreeBSD/amd64
-
(E) Move to disklabels
(E) Faster reboot (kernel part):
-
-
(C) EFI booting
-
-
-
-
-
(C) Clock stuff
(C) Enhanced redzones
-
User-space and Ports
-
(EC) Userland DTrace (complete)
-
(E) A library to provide multi-platform support for backtraces in userland applications
(E) Witness for pthreads (Warner)
(E) Better support for debugging tools: pstack/ltrace/strace
(E) Compiling 32-bit i386 binaries on amd64
(E) Improved support for running i386 binaries on amd64
(E) Better VirtualBOX support
(E) Always put 64-bit kernel on amd64-capable hardware
(E) Common install DVD for i386/amd64
(E) Better support for binary only systems
(E) Faster reboot
(E) Manual IPv6 support in sysinstall
(C) binutils update (2.17.50) (dim@) (By 9.0, barring disaster)
-
(C) Ship FreeBSD VM images
(C) Remove texinfo (not possible for 9.0 due to GNU code, but hopefully for 10.0?)
Ports and Packages
(E) “Ports STABLE”
(E) Better Binary Support
(E) Parallel pkg_add (fetching and adding packages concurrently)
(E) Switch pkg_add to using http instead of ftp by default due to firewalls, etc.
(E) Provide more package variants (e.g. -nox11 package builds)
(E) Cross building ports infrastructure
(E) Signed packages
(E) Building packages for a subset of ports/ tree (useful for embedded)
(E) Better jail management
(E) Connection manager-like facilities (more info needed about this one)
(C) chromium in ports? (decision ~July 2010)
Support for switching between different self-consistent package sets
Decisions needed before 9.0-RELEASE
(C) SU+J as default?
(C) Which NFS implementation? (~December 2010) (
RickMacklem?)
(C) Clang?
Testing Foci
EuroBSDCon Whiteboard Photos