Category: Committed Code

GCC 4.4.5 now


Sascha Wildner has moved gcc in DragonFly to a slightly newer version: 4.4.5.  It mostly seems to make things easier to compile, going by the reports I’ve heard.  This is the version that will be in DragonFly 2.10.

Posted by     Categories: Committed Code, DragonFly, Goings-on     1 Comment

Double buffering in Hammer usually useful


Enabling the vfs.hammer.double_buffer=1 sysctl will greatly improve Hammer performance when you’ve exceeded your memory cache (at a possible slight penalty when you have not) and also speed things up when using live deduplication.

Update: Venkatesh Srinivas says:

“double_buffer makes sense when: 1) you want all CRCs to be checked on reads. 2) you’re running live dedup and care about dedup performance rather than say read-heavy performance; 3) you have swapcache but are often running into the  vnode limit in what you can cache.”

So, not always useful.

Posted by     Categories: Committed Code, DragonFly, Hammer     0 Comments

binutils, Hammer updates


Sascha Wildner has updated the default version of binutils in DragonFly from 2.17 to 2.21.  You’ll want to do a full buildworld on your next upgrade, if you’re running DragonFly 2.9.

Also, Matthew Dillon has made version 6 the default version of Hammer in DragonFly 2.9.   Version 6 has improved handling of directory names in some circumstances.  Just don’t ask me which, cause I lost track.  It’s been a hard day!

Posted by     Categories: Committed Code, DragonFly, Heads Up!     0 Comments

Fairq enhancements


If you’re using pf to control how your bandwidth is used, you may want to look at the recent fairq updates from Matthew Dillon.  It should perform better now in situations where one traffic group is saturating its available bandwidth.  Here’s a handy link that explains this sort of problem, yoinked from IRC.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Native binutils support for DragonFly


John Marino’s work on getting support for DragonFly ‘natively’ into binutils, upstream, has been successful.  Thanks, John!

Posted by     Categories: Committed Code, DragonFly, Goings-on     0 Comments

Binutils 2.21 added, still optional


Sascha Wildner has added in binutils version 2.21, replacing 2.20.  Note that both 2.20 and 2.21 are ‘optional’, so you have to set BINUTILSVER to use them.  Otherwise the system defaults to the also-installed binutils 2.17.

Posted by     Categories: Committed Code, DragonFly     0 Comments

More memoryallocators manpage material


Venkatesh Srinivas has added a new memoryallocators(9) man page, to describe the various memory allocation schemes in DragonFly.  It gives descriptions of each and leads off to more man pages.

libiberty goes byebye


This is the BSD-licensed version of libiberty, which was removed because it didn’t ever actually make it to being a replacement.

Posted by     Categories: Committed Code, DragonFly     0 Comments

pkgsrc current and 2.9, plus shallow pulls


There’s two recent changes for pkgsrc and DragonFly:

Posted by     Categories: Committed Code, DragonFly, pkgsrc     0 Comments

gcc 4.4 now default


Sascha Wildner has changed the default compiler to gcc 4.4.  See his commit notes for some details.  To my knowledge, we’re the only BSD using this recent a version.

A full buildworld/buildkernel is probably the best strategy.  I’ll be rebuilding all the pkgsrc packages for 2.9 using gcc 4.4…  This will take at least a week.

Posted by     Categories: Committed Code, DragonFly, Heads Up!     3 Comments

Bridge building better


Matthew Dillon’s improved bridging to the point where you can now modify the MAC address of the bridge and most everything, including ARP, will come from it correctly.   It’s even possible to bond 2 or more interfaces together, with the side effect of dragonflybsd.org having a lot more bandwidth.

Update: the config for his bonded interfaces has been posted as an example.

Update 2: More notes here.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Better bridge built


Matthew Dillon has continued his bridge work, with another commit adding various features.  Go, read.

Posted by     Categories: Committed Code, DragonFly     3 Comments

Transparent bridging added


Matthew Dillon has added transparent bridging, mostly to overcome issues with the AT&T DSL modem he’s using.  With this non-default feature, IP packets retain the original MAC address when retransmitted through a new interface.

Posted by     Categories: Committed Code, DragonFly     2 Comments

tmpfs loses the locks


The tmpfs(5) filesystem now runs without multiprocessor locks.  Yay!  Another hurdle down.

Posted by     Categories: Committed Code, DragonFly     0 Comments

New ps option


ps now has a new option: -R.  This lists processes in order by parent/child status, and indents to make it visually clear.  It looks like this.  I wish someone had done this 15 years ago.

Posted by     Categories: Committed Code, DragonFly     2 Comments

Assume it’s multiprocessor-safe


As Matthew Dillon notes in a recent post, procedures are now assumed to be MPSAFE (i.e. without the Giant Lock) by default.  Any new work should follow this idea, and it doesn’t have to be documented specially.  The inverse used to be true, where the code that happened to work without the Lock was rare, and therefore needed to be pointed out.   Now, the good result is the norm.

Posted by     Categories: Committed Code, DragonFly, Goings-on     0 Comments

fork and exit more mpsafe


Matthew Dillon’s made fork() and exit() (mostly) multiprocessor-safe.  It’s only two calls, but both are very frequently used.  One more step closer to removing the Giant Lock…

Posted by     Categories: Committed Code, DragonFly     0 Comments

Scheduler updates


Matthew Dillon’s made some scheduler changes, which blogbench tests are showing give the default scheduler better performance under heavy load.  It’s a pretty technical writeup, so I’ll just point you at it rather than attempt to summarize.

Posted by     Categories: Committed Code, DragonFly     0 Comments

More Google Code-In work arrives


Samuel J. Greear committed some more code that happened to come from DragonFly/Google Code-In projects.  There’s a surprising large amount of code that came from those projects…

Posted by     Categories: Committed Code, DragonFly, Google Code-In     0 Comments

Good news for people with excess memory


Matthew Dillon’s made some changes that will speed up the booting process for people with a ridiculous amount of memory, like 64G.  This is x86_64 only, but that should not be a surprise if you think about it.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Fixes for rxvt, milter-greylist


In case you are using either of those programs, there’s fixes for building/using them.

Posted by     Categories: Committed Code, DragonFly, pkgsrc     1 Comment

More interrupt work


Sepherosa Ziehau has been continuing his work on improved interrupt support.  I have no one central commit to point to, but rather a zillion bits of work on this and other stuff.  I feel it’s always good to recognize when someone’s volunteering a lot of work – Thanks, sephe!

Posted by     Categories: Committed Code, DragonFly     0 Comments

Update for file(1)


‘file’ has been updated to version 5.05 by Peter Avalos.  file(1) is one of those utilities that I forget is a contributed, external piece of software, even though it’s been in Unix since 1973.

(file is one year older than me!)

Posted by     Categories: BSD, Committed Code, DragonFly, UNIXish     0 Comments

More mpsafe material


Global tokens are now running without the giant lock in DragonFly.  Neat!  There’s still plenty more to remove, but this is a big step.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Kill your filesystem on x86_64 too


Matthew Dillon’s updated fsstress for x86_64, so if you have a 64-bit machine that needs a workout – here you go.

Posted by     Categories: Committed Code, DragonFly     0 Comments

tmpfs improvements


While we’re talking about file system improvments, Venkatesh Srinivas has been removing the Giant Lock from tmpfs.

Posted by     Categories: Committed Code, DragonFly     0 Comments

New Hammer version


The default Hammer version in DragonFly is now version 5, which is the one that includes deduplication.  Enjoy, bleeding-edge users!  Otherwise, wait for the next release.

Version 6 is there, but don’t upgrade to it yet; there aren’t significant user-visible changes, and the usual disclaimers for new versions apply.

Posted by     Categories: Committed Code, DragonFly, Hammer     0 Comments

Live deduplication support added


Ilya Dryomov has added live deduplication, or as he titles it, “efficient cp”.  It’s experimental and turned on with a sysctl, so approach with caution.

Posted by     Categories: Committed Code, DragonFly     0 Comments

XNS gone, nobody say anything


Xerox Network Services is gone from DragonFly.   Does anyone, anywhere, use this protocol?  Ironically, I don’t recall this even being visible on the Xerox hardware products I have at work.

Posted by     Categories: Committed Code, DragonFly     11 Comments

Updates for the new year


Sascha Wildner has updated twe(4), Jan Lentfer has updated ldns to version 1.6.7 (changelog), and also updated pf to match the OpenBSD 4.4 version.  Phew!

Happy new year!

Posted by     Categories: Committed Code, Device support, DragonFly     0 Comments

No more EISA


Another bus bites the dust: EISA is no more on DragonFly.  I don’t know if there’s even any system that DragonFly could boot on and would use this.  Still, remove your hats and enjoy a moment of silence.

Posted by     Categories: Committed Code, Device support, DragonFly     3 Comments

Crazy x86-64 crash fixed


Matthew Dillon fixed a rare and difficult-to-find bug on x86-64 Dragonfly.  This means much more of the system can be run ‘MPSAFE’, or without the Giant Lock.  Watch for this soon if you’re running 2.9.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Google Code-In, and sysctls too


Ed Smith was thinking of working on sysctl documentation, but as it turns out, a lot of it has already been done via Google Code-In; Samuel Greear recently committed a lot of it. (Though there’s more sysctl work possible.)

While on that topic, Samuel Greear also posted a lengthy summary of all the Code-In work done so far.  We need more code-related tasks!  The existing ones have been so popular that they’re all getting done, quickly.

Posted by     Categories: Committed Code, DragonFly, Google Code-In     0 Comments

New reference count – it’s super!


Venkatesh Srinivas has created what he calls “Super Light Weight Reference Counting”, which he describes in a recent post, plus followup. He’s already converted sfbuf to use it.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Miscellaneous 48-core details


As Matthew Dillon works on supporting his new 48-core system, he’s written some notes on power usage and scheduling/drivers that may be worth a read.

Posted by     Categories: Committed Code, Device support, DragonFly     2 Comments

libarchive updated


Peter Avalos has updated libarchive to version 2.8.4.  The commit message has details on what’s changed (for us).  This is good, since the libarchive site release notes seems to not be up to date.

Update: Peter helpfully pointed at contrib/libarchive/NEWS.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Updates for zlib, tnftp


Peter Avalos has updated zlib to version 1.25, and appears to have done some work with tnftp, though this is the only message I saw.

Ironically, I get a “this site is using an unsupported form of compression” error when browsing to the zlib web site.

Posted by     Categories: Committed Code, DragonFly     0 Comments

libfsid created


Another Google Code-In project arrives: libfsid.  It’s used to get the volume label for a given file system.  (see man page)  It makes me happy to see more Google Code-In projects coming to fruition and getting committed – suggest more, if you have them!

Posted by     Categories: Committed Code, DragonFly, Google Code-In     0 Comments

Vkernel speedup


As part of the ongoing work to support a lot of CPUs, Matthew Dillon has made some changes that have the side effect of benefiting virtual kernels.  How much?  I don’t have a benchmark, yet.

Posted by     Categories: Committed Code, DragonFly     0 Comments

OpenSSL update


Peter Avalos has updated OpenSSL to 1.0.0c, to fix a recent security problem.  The problem doesn’t sound too catastrophic to my untrained ear, at least.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Even more CPUs and RAM


Matthew Dillon has moved CPU support to 63 processors and 512G of RAM.  This may cause issues, he warns.  It’s also just barely working, so don’t expect to go into production with half a terabyte of RAM in the next few days.

Posted by     Categories: Committed Code, DragonFly     0 Comments

24 spare CPUs, anyone?


Matthew Dillon has made it possible to boot DragonFly on 24-CPU systems.  Also, we’re currently limited to 32G of RAM.  Oh, to have such limitations; I was considering myself lucky to have 4 CPUs.

Posted by     Categories: Committed Code, Device support, DragonFly     1 Comment

GCI work continues: sysctls


There’s now descriptions for a number of the net.inet.* sysctls, thanks to Taras Klaskovsky as part of Google Code-In.

Posted by     Categories: Committed Code, DragonFly, Google Code-In     1 Comment

SHA256 for passwords


Another Google Code-In task completed: passwords are now created using SHA256 (PDF link) by default, and libcrypt also now supports SHA512.

Posted by     Categories: Committed Code, DragonFly, Google Code-In     0 Comments

dmirror: the idea


Alex Hornung has added the basic work for dmirror, a software RAID-1 implementation into the tree, along with a concept description from Matthew Dillon.  It’s not ready for use yet; ready for development, though.

Posted by     Categories: Committed Code, DragonFly, Goings-on     0 Comments

The return of APIC_IO


APIC_IO is back as a kernel config option, though it just toggles the sysctl loader tunable default.  This is so a kernel config file with that option still set won’t cause an error.

Posted by     Categories: Committed Code, DragonFly     2 Comments

OpenSSL updated, more stats


Peter Avalos has committed his speedups for OpenSSL encryption (using assembly), along with a lot of numbers to show performance changes.  It’s definitely sped up, but the quantity of values is so large that you’d have to visualize it differently to get a summary I could show here.

Posted by     Categories: Committed Code, DragonFly     0 Comments

OpenSSL update, vn update


Peter Avalos is bringing in OpenSSL 1.0.0b.  I’m not sure what the difference between 1.0.0b and 1.0.1 would be.  Also, Alex Hornung has updated vn(4) – there’s more updates than the one I linked.

Posted by     Categories: Committed Code, DragonFly     0 Comments

APIC_IO changes


For a long time, APIC_IO was an option that you usually had to enable for multiprocessor capability in your kernel config.  Michael Neumann fixed up and changed this so it’s no longer a kernel config option for i386 or x86_64, but rather a loader tunable: hw.apic_io_enable.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Deduplication arrives


Ilya Dryomov’s work on deduplication for Hammer has been committed to the tree in an early test form.  I guess I need to pay up as part of the code bounty.  If you’re wondering how much space it will save, but don’t want to try non-production code yet, there’s a ‘hammer dedup-simulate’ command that will estimate the saving ratio.

This is great news – deduplication is so valuable it adds an extra zero onto the price of any storage device that can do it.

Posted by     Categories: Committed Code, DragonFly, Hammer     0 Comments

UP or SMP choices for booting


DragonFly has shipped with a uniprocessor kernel by default forever.  Shipping with a SMP kernel may not work as well for all possible combinations.  With some recent changes by Matthew Dillon, both types of kernel are present and can be picked from at boot time – with the LiveCD!

Posted by     Categories: Committed Code, DragonFly     1 Comment

More reading


Venkatesh Srinivas has a large writeup describing just how the memory allocator in DragonFly changed from 2.6 to the upcoming 2.8 version.   In all that text, you may notice the cheering statistic that it gave a 20% improvement in sysbench results.

Posted by     Categories: Committed Code, DragonFly     2 Comments

vkernels: now with less disk!


Rumko came up with some changes for vkernel(7) that, among other things, made it possible to run them diskless; almost like booting a thin workstation.

Posted by     Categories: Committed Code, DragonFly     0 Comments

OpenSSL and DSO support


OpenSSL on DragonFly can now dynamically load engines (cryptographic support modules) at runtime, thanks to Peter Avalos.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Firefox really, finally, actually fixed


Matt Dillon and Venkatesh Srinivas conspired to fix another nmalloc issue, which should resolve any remaining problems people were having with Firefox, and possibly other applications as well. Due to an oversight of sorts, all locking operations on nmalloc’s depot were ineffective, as if there were no locking at all. Curiously, it worked remarkably well considering such a large race condition was present.

Posted by     Categories: Committed Code, DragonFly, Goings-on, Heads Up!     0 Comments

Hey, project pages do work


Here’s something: Pratyush Kshirsagar came along, saw the proportional RSS project idea, and did it.  It’s nice to have a completed project just sort of fall out of the sky.

Posted by     Categories: Committed Code, DragonFly     1 Comment

Installing a vkernel


I’m linking to this commit message from Matthias Schmidt simply because it has the correct invocation for installing a vkernel, and I know this will come in handy, someday.

Firefox fix found


If you’re running DragonFly 2.7 and you’ve noticed Firefox crashing on you, Matthew Dillon has some potential fixes.  Update/rebuild to see if it helps.

Posted by     Categories: Committed Code, DragonFly, pkgsrc     0 Comments

x86_64 bootable help, revisited


It looks like my prior article was incorrect: it was a different issue than MADT causing problems with booting x86_64.  Scrambled memory report appears to be at the heart of the issue; in any case, it’s fixed now.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Don’t upgrade, do recompile


A bump in shared library version for libssl/libcrypto means that any programs dependent on it will require a rebuild – including any pkgsrc programs.

This only affects you if you are running 2.7, for now.  It means that on upgrading from 2.6 to 2.8, any libssl-using programs will need to be updated.  This may not be a big thing, since pkgsrc-2010Q3 will also be out and people will want to upgrade anyway.

Posted by     Categories: Committed Code, DragonFly, pkgsrc     0 Comments

The return of Fred


Did you know Fred is the name for the DragonFly mascot?  Well, you do now.  He’s also back in the bootloader, thanks to Joe Talbott.

Posted by     Categories: Committed Code, DragonFly     0 Comments

AHCI update with new chipset support


In an effort to support a new system with an AMD 880G chipset, Matthew Dillon has updated the AHCI driver.  If you have SATA drives using AHCI, please test.  (with any chipset, not just 880G.)

Posted by     Categories: Committed Code, Device support, DragonFly     0 Comments

Vkernels now start faster, run faster


Two recent changes in the way virtual kernels are constructed should make a speed difference.  The startup time is reduced (and more memory can be given to the vkernel), and the overall running speed should be quicker, too.

Posted by     Categories: Committed Code, DragonFly     0 Comments

pf MPSAFE, mostly


DragonFly’s version of pf (corresponding with OpenBSD’s 4.2 version) is now multiprocessor safe, to match the network stack.  pf itself isn’t using multiple processors; it’s just able to work without causing problems in an otherwise MPSAFE environment, thanks again to Jan Lentfer.  Note that there’s one minor caveat.

Posted by     Categories: Committed Code, DragonFly     1 Comment

Swapoff is on


Swapoff has been added to DragonFly.  This was a potential Summer of Code project, and also happened to have a bounty offered for it.  $300 goes to Ilya Dryomov.  If money for code like this interests you, check the Code Bounties page for more projects…

Dear universe: improved interrupt routing, or deduplication in HAMMER would make me happy.  I’m not picky.

Posted by     Categories: Committed Code, DragonFly, Goings-on     6 Comments

Even more network changes


A little work has snowballed into even more of the network systems in DragonFly being pulled apart in order to get rid of the Giant Lock.   It may delay the 2.8 release by a week or two, but it’s already paying dividends, such as NFSv3 now performing at maximum physically possible speeds on gigabit Ethernet.

Posted by     Categories: Committed Code, DragonFly, Heads Up!     2 Comments

More magazines make many mimprovements


(I ran out of alliterative words, sorry.) Venkatesh Srinivas has committed his work on memory allocation; his commit message has details.  He’s kindly provided a link to the article that inspired the per-thread magazine work.  He’s also provided graphs to show comparative performance benefits of his new memory allocator on DragonFly and on FreeBSD.

Posted by     Categories: Committed Code, DragonFly, FreeBSD     0 Comments

pf updated again to 4.2


Jan Lentfer has now updated pf in DragonFly to version 4.2, on top of his earlier work to get to 4.1.  This upgrade apparently doubles speed from 4.1, plus he’s brought in some other, later fixes.  Thanks for doing a superhuman amount of work, Jan!

Posted by     Categories: Committed Code, DragonFly     0 Comments

Boot loader replaced


A familiar procedure in any open source project: irritation causes improvement.  In this case, the Forth-based boot loader irritated Matthew Dillon into writing a new replacement C-based one.  (See the commit too, and it may slightly affect the upgrade process for 2.7 users.)

All these recent locking changes seem to be adding up to a much more responsive system, incidentally.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Just continue with buildkernel for now


Full buildworlds again, as there’s more commits that make it necessary.  If you’re running 2.7, you should probably just plan on using buildworld, and not quickworld for rebuilding.

Posted by     Categories: Committed Code, DragonFly, Heads Up!     3 Comments

Another recompile


System data structures have changed again, so make sure your next rebuild is a full buildworld/buildkernel if you’re running 2.7.  There’s been a lot of changes to pull more and more out from under the Giant Lock.

Posted by     Categories: Committed Code, DragonFly, Heads Up!     0 Comments

Giant Lock on the way out


Good news: the upcoming 2.8 release (that’s next month!) of DragonFly will be missing the Big Giant Lock from a significant part of its structure, and will be removed completely somewhere in 2.9.  Recent commits bear this out.

Posted by     Categories: Committed Code, DragonFly     1 Comment

tmpfs gets tougher


Thanks to the efforts of Venkatesh Srinivas, tmpfs file systems on DragonFly can now withstand fsstress testing.  Thanks, Venkatesh!

(One of the benefits of posting about people’s work is that the names are fun to type.)

Posted by     Categories: Committed Code, DragonFly     0 Comments

Updates and improvements for HAMMER, crypto


Matthew Dillon posted a summary of recent bugfixes in HAMMER and kqueue, which means if you are running a version of bleeding edge DragonFly build in the last few weeks, you should update.

He also mentions a “significant improvement in performance” in disk encryption.  How significant?  Over three times as fast.

Posted by     Categories: Committed Code, DragonFly, Hammer     0 Comments

Softcrypto work in master


Matthew Dillon sent an email to the kernel list detailing the performance improvements that he and Alex Hornung have recently made to dm_crypt and opencrypto. The disk encryption work does still come with a warning, however.

Posted by     Categories: Committed Code, DragonFly     2 Comments

New HAMMER catastrophic recovery tool


Matthew Dillon reports that DragonFly now has a catastrophic recovery tool for HAMMER filesystems, with pertinent details.

Posted by     Categories: Committed Code, DragonFly, Hammer     0 Comments

Summary of recent kernel work


Matthew Dillon has provided some details about recent kernel work, along with a release forecast.

Posted by     Categories: Committed Code, DragonFly, Goings-on, Hammer     0 Comments

fairq disk scheduling now default


DSCHED_FQ was added to GENERIC, making it the default disk scheduling policy for master. You might want to refresh your memory of dsched and the fairq policy with some prior details and benchmarks.

Update: As Venkatesh Srinivas pointed out in the comments, adding DSCHED_FQ to GENERIC does not make it the default, but you no longer have to load the fairq module. Which raises the question, should fairq be the default?

Posted by     Categories: Committed Code, DragonFly, Goings-on     1 Comment

More kqueue fixes in master


A few more fixes were committed to master improving the standards conformance of the new poll implementation and fixing a couple of bugs.

Posted by     Categories: Committed Code, DragonFly     0 Comments

No more libevent


The libevent library has been removed from the repository to ease the maintenance burden. There is some additional rationale in this tracker issue.

Posted by     Categories: Committed Code, DragonFly, Goings-on     0 Comments