BSD Panel
USENIX ATC 2004

June 29, 2004

Robert Watson

rwatson@FreeBSD.org

Introduction

Brief introduction to FreeBSD

FreeBSD status (4.x, 5.3)

Introduction to FreeBSD

FreeBSD is a production-quality operating system derived from BSD UNIX

Deployed as a component, and in its own right

Workstation, server, and high-end embedded markets

Liberal Berkeley license permits broad commercial re-use in open and closed source products

I386, amd64, ia64, sparc64, (decreasingly) alpha

Exploring support for PowerPC, ARM

Where to Find FreeBSD

Widely used in network providers/ISPs

Yahoo!, NTT/Verio, NY Internet, ...

Technology provider for commercial general-purpose operating systems

Mac OS X, IRIX, Solaris, ...

Technology source for embedded and
high-end embedded

JunOS, Nokia IPSO, Panasas, VXWorks, ...

FreeBSD Development Tree

4.x-STABLE

5.x-CURRENT

5.x-STABLE

6.x-CURRENT

Recent Releases

FreeBSD 4.x-STABLE continues incremental feature, performance, stability development

FreeBSD 4.9	(2003/11)

FreeBSD 4.10 (2004/6)

FreeBSD 5.x-CURRENT continues higher risk development, approaches -STABLE

FreeBSD 5.2.1	(2004/2)

FreeBSD 5.3 (2004/Q3)

FreeBSD 4.10

Incremental Release

Security Fixes

Updated OpenSSL

Latest BIND8

RFC 2385 TCP-MD5 (output only)

New Drivers (twa, USB, firewire dcons, ...)

FreeBSD 5.x

Provide additional performance, stability, functionality on 5.x branch

First 5-STABLE release

Cumulative work over past 5 years

SMPng – move towards parallel execution of kernel on multiple CPUs

KSE – M:N threading improves parallelism, latency in threaded applications

Broad range of other changes (described later)

FreeBSD 5.3 Features (1)

Enhanced stability, performance

KSE “M:N” threading the default

SCHED_ULE scheduler available

IPv4 Giant-free

UDS Giant-free

VM Giant-free

ATA Giant-free

NDISulator

ALTQ

'pf' packet filter

GEOM Vinum

PCI enhancements

Gcc 3.4, Binutils

X.org X11

FreeBSD 5.0

First cut off of the 5.x Technology Branch

SMPng, sparc64, ia64, UFS extended attributes, ACLs, Mandatory Access Control, GEOM, GBDE, OpenPAM, ACPI, TIRPC, IPFW2, Firewire, UFS2, bgfsck, ufs snapshots, bluetooth, atapicam, devd, FAST_IPSEC, gcc 3.2, CardBus, devfs, ...

Motivate stability, performance improvements

Provide early access to consumers, product developers, etc.

FreeBSD 5.1

Features

PAE, NSS, libkse, libthr, HTT, amd64, NFS locking, jail management, lazy context switch, SCHED_ULE, no major numbers, EHCI, various USB network drivers, reduced tcp state on connection close, volume labels on UFS and UFS2, / on vinum, DIRECTIO, dump snapshots, thread-safe rtld, ACPI updates, ...

More stability, performance

Lock pushdowns

Much broader exposure, testing

FreeBSD 5.2

Features

Acpi idle states, DRI update, dcons, crypto acceleration drivers, uart driver, watchdog, SMP kernels on UP systems, APIC overhaul, mysterious P4 fixes, BIOS HTT, ip_fastforward, PFIL_HOOKS, bluetooth updates, PIM, more GEOM, GEOM_FOX, ICONV file systems, NFSv4 client, dump snapshots, ACPI update,

Many device drivers (re, bfe, ...)

Additional stability, performance

KSE Status

KSE: M:N, 1:1 threading implementation similar to Scheduler Activations

libthr: experimental 1:1 threading using KSE kernel primitives

Default in -CURRENT (ships in 5.3)

Runs KDE, OpenOffice, MySQL, ...

SCHED_ULE offers thread affinity, especially in HTT context, per-cpu queues

SMPng Status

Process locking

File descriptor locking

Pipe locking

VM

GEOM storage

IPv4 largely done

IPv6 in progress

Kernel allocator

Support for HTT

SMP scheduler (SCHED_ULE)

MAC Framework

Buffer cache ¾

VFS cleanups

Many device
drivers

SMPng Continued

Locking work continues, but focus now on optimization

Performance tuning is the next big task

Adaptive mutexes make a big difference

Exploring impact of scheduler

Optimizing interrupt performance

Big performance gains in the last month

Initial network/other benchmarks on SMP show dramatic improvment

Performance

Performance of 5.x branch is very important

Important selection criteria for FreeBSD users

SMP networking performance must exceed 4.x

Measurement/improvement of granular locking

5.x on UP still sometimes slower than 4.x

5.x on SMP is often much faster than 4.x

Workload selection impacts scheduler choice

Remember to turn off default debugging options!

Currently building a 5.x performance cluster

FreeBSD Foundation

FreeBSD Foundation is a 501(c)3 non-profit

Founded 2000

Accept and concentrate donations for under-provided activities

Current expenditure areas

Java development, licensing

Network stack locking, SMP performance

Developer summits, travel

Hardware purchases (test clusters, etc)

FreeBSD Foundation

Is your company making millions of dollars with FreeBSD every year?

Perhaps you could send a small donation!

Consortium approach to development

Allow companies to jointly invest in pre-competitive technologies

Reduced cost of development; reduced cost of maintenance

Non-commercial funding of new FreeBSD work extremely important

Conclusion

Things are very exciting

5.x branch is maturing well

Aggressive feature set

SMPng work progressing; optimization, stability

M:N/1:1 threading support increasing in quality

4.x branch continues to offer high performance and stability

Will continue to see incremental improvements, optimizations; will remain most widely deployed

Q&A

Questions?

Robert Watson

2003-06-12T01:26:00