The arrow of time

Ivan Voras' blog

FreeBSD 7.1

The long expected new version has just been released! Why should you care?

If you remember how awesome the 4.x branch was, you'll know what I mean when I say 7.1 is approaching that aweseomness. Not that the old versions were garbage, but if 7.1 is 0.98 on the awsome scale, 7.0 is 0.95, 6.x is something like 0.75 and 5.x is better not mentioned.

FreeBSD 7.1 updates the technologies present in 7.0 and brings previews of several new ones. From the performance point of view, users will be glad that the ULE scheduler is now the default. Though it's a significant update it's not a magic bullet and some application-specific tuning may still be needed. For those who wonder why wasn't ULE enabled before, especially since an early form was available in 6.x, the answers are that it was buggy in 6.x and besides that, the rest of the system couldn't really benefit from the advanced scheduler since it was still too tied up with the Giant lock.

Related to the ULE scheduler, CPU binding for userland threads and IRQs is finally available, and so is per-CPU system status with top (using the "-P" switch). This will finally enable users to experiment with binding specific processes to specific CPUs (the interface for IRQ binding isn't curently available to administrators), which could help performance in some edge cases. In all normal cases, the scheduler does an excellent job of, well, scheduling.

The DTrace import was integrated into 7.1, but it it's still disabled by default and covers only the kernel. The user part coverage od DTrace is still not finished. Even such, it will greatly help in getting insight into the day-to-day working and performance profile of the kernel. Remember, DTrace was designed to be "always on" by default, and have minimal impact on performance when it's not actually used.

FreeBSD 7.0 had some trouble booting from "exotic" devices (well, they were exotic once upon a time) which should be fixed by the new boot loader. There's also a new loader for GPT partitions but it's not especially useful right now without additional support for GPT and ZFS which are available in 8-CURRENT (gpart).

Textdumps are a neat way of extracting the commonly needed information from kernel crashes for sending to developers for review. It's great because instead of full kernel dumps, which may include sensitive information like passwords in transit, there's a neat tar package of text files that's generated automatically (no need to type in debugger commands) It will be of most use when it gets enabled by default - currently it requires manual enabling.

There are also many smaller improvements: NFS locking got overhauled,  the network stack should be a bit faster now, there are also several API additions to libc and many drivers are updated. One of the things that will surprise many is that atacontrol got the ability to set hard drive spin-down timeout - the reason why it wasn't implemented before is prosaic - not many server users wanted their drives stopped (the functionality was available in ports, just not in the base system).

Unfortunately there was no time to bring in support for new ZFS (v13) from 8-CURRENT - which would bump FreeBSD to 0.99 in the silly awesome scale, but there has to be something for future releases :)

In any case, 7.1 is looking excellent so far!

Before using, read the release notes and the errata. Read the announcement for information on upgrades.

Post your comment here!

Your name:
Comment title:
Text:
Type "xxx" here:

Comments are subject to moderation and will be deleted if deemed inappropriate. All content is © Ivan Voras. Comments are owned by their authors (who agree to basically surrender all rights by publishing them :) )..