The DragonFly 4.4.3 point release is out. There’s a commit page listing the changes between 4.4.2 and 4.4.3. Nobody will be surprised that there’s an OpenSSL update in there.
If you want a complete image, it’s available for download at your nearest mirror. If you want to upgrade an existing install:
cd /usr; make src-update
(or src-create-shallow if you don't already have source)
make buildworld && make buildkernel
make installkernel && make installworld
This is one of those weeks where a bunch of release all tumble together by chance.
Tomohiro Kusumi would like to port Hammer (1) to FreeBSD, as noted in this bug discussion. It’s not even begun to happen, but if you can contribute, please do.
Tomohiro Kusumi has been creating a near-constant stream of bugfixes and cleanups to Hammer for quite some time. I don’t often link to it, because they are incremental improvements and hard to linkblog, so to speak. In an effort to make up for this deficit, I do want to draw attention to his two recent commits: “Make hammer commands print root volume path“, and “Print volume list after volume-add|del“. Small changes, but this is what makes complex systems usable.
If you remember this Baytrail problem, Daniel Bilik has gone and found a fix, as this appears to be a cross-platform bug, and he has patches for DragonFly. If it’s affecting you, you don’t have to wait for the patches to be added in; he’s made them available directly.
Update: it’s committed to DragonFly now.
I keep posting about Sepherosa Ziehau’s work on sustaining extremely high traffic loads in DragonFly. Now I’m posting about a tool to create that load: kq_sendrecv. It creates tens of thousands of TCP connections, without creating a process for each, and uses kqueue, as you might guess from the name. This may be useful if you really want to tax another system.
Do you have a Cherry Trail SoC? For example, a HP x2 210? Imre Vadasz’s recent commit may be useful for you, if you are running DragonFly on this detachable … thing?
Tim Darby is looking for motherboard recommendations. Specifically, mini-ITX with 4 SATA ports and at least one decent network link. Who’s got hardware to recommend? There’s already one set of suggestions.
By the time you read this, I will have already been at my second job for 5 hours.
If you have a Radeon video card in your DragonFly system, and are running bleeding-edge, there’s an update for you. This is a partial sync with Radeon code for Linux 3.18, with no additional notes in the commit but you can always check elsewhere.
unzip has been added to DragonFly, making it present in every BSD but I think OpenBSD.
Imre Vadasz has added the ability to create a UEFI bootloader in DragonFly. Can you use it? I don’t know; I haven’t tried it yet and I can’t tell from the commit.
John Marino has added the starting framework to use clang as the alternate base compiler in DragonFly. Note that it’s not hooked into the build yet. This is the first non-GCC compiler added into DragonFly, so there’s some work yet before you can have an all-clang system. This should replace GCC 4.7, which is the current alternate compiler. GCC 5.0 is the default, if you didn’t know.
Note that clang is present in dports, so it’s already been available for general use, for some time. This framework is for building DragonFly itself.
If you somehow have a device with multiple SD/MMC card slots, you can now access all of them under DragonFly. (Apparently done to make a tablet run DragonFly better, going by IRC conversation)
If you are running bleeding-edge DragonFly, Sepherosa Ziehau has made some networking changes that both reduce CPU usage in high-traffic situations and change some underlying network structures. This means a full buildworld is needed on your next update.
If you’re using DragonFly 4.4.x or older, you are unaffected.
If you find yourself using gpt and disklabel64 for a new disk, and aren’t quite sure what order to type everything in to create a disk slice, why not crib from Tim Darby’s notes? (note that the archive has added some line breaks to it.)
The ‘hammer show’ command can be used to dump the B-Tree structure of a Hammer volume, and CRC errors can be spotted. It’s rare that anyone would need it, but if you do, this dumped information will include file hierarchy information.
If that makes you a bit nervous to repost any of that information when talking about it in public, Tomohiro Kusumi has added an ‘obfuscate’ option to ‘hammer show’ that does just that – it hides path information from the debug output.
Sepherosa Ziehau has continued his quest of making large-scale data transmission on DragonFly effortless; his latest change has cut the kqueue contention rate by two-thirds when dealing with a connection rate of nearly 400,000 connections per second. Note that’s number of connections, without even tracking the bandwidth used by each.
John Marino rearranged how GCC5 handles CPUTYPE settings. If you are specifically setting the target CPU when compiling, his commit will give you an exact list of what to target.
Note that I am not saying another architecture – this is all x86_64. I also don’t recommend doing this unless you have a specific use for it – compiler overoptimizations often create more problems than they fix.
Daniel Bilik has found there’s an issue with i915 acceleration, Baytrail CPUs, and some AUTODEEP low-power states. This will only affect you if you are using that specific hardware combo and setting certain low power modes. Interestingly, it affects other platforms, too, as it appears to be a symptom of how the video is addressed, not a DragonFly-specific bug.
Bill Yuan has added ‘ipfwsync’ to ipfw3 in DragonFly. As you may expect from the name, it’s a way to sync ipfw3 configurations across multiple devices.
I see this bite people irregularly over the years: if your default shell on login can’t run, what do you do? I’ve seen it happen because of a missing /usr/lib, and it can happen with out-of-date library references, too. There’s several different ways to deal with it:
That last one may be useful if your dports setup gets mangled, somehow – though ‘pkg upgrade’ has always worked for me.
Francois Tigeot has again updated Intel i915 video support in DragonFly, bringing it even with what’s in Linux 4.2. This will be very useful for Broadwell and Skylake users, and even Broxton, apparently the newest Atom platform.
Welcome the newest DragonFly committer: Bill Yuan. His ipfw3 work has been going on for a while.
BSDNow 129 is available. Along with the normal news summary, it has an interview with John Marino, the fellow behind DragonFly’s dports system, and author of recently-noted-here synth, which has reached version 1.0.
DragonFly 4.4.2, a bugfix release to 4.4.1, is out. This was mostly prompted by the recent OpenSSL update, but other little fixes have made it in, too. It’s available for download and is probably available at your nearest mirror by now, if you want an image. The release page is updated, and there’s always the Git tag summary for 4.4.2 for the most exact details.
I have DragonFly shirts, helpfully printed up by Sepherosa Ziehau in China. I have a list of people that are interested in shirts, most of whom remembered to give a shirt size. I don’t have anyone’s email address or mailing address on that list.
If you are on that list, send me your mailing address.
The shirts are marked L/XL/XXL/XXXL, but they run smaller than U.S. versions of those sizes. I usually find a U.S. XL shirt baggy, but “XXXL” is the one that fit me, for instance. I’ll do my best to place the appropriate one. This is just an advance apology, since it’s too late to change anything if it turns out tight.
I’ll mail these out as I have the spare cash and time on hand. (I hope most of you live in the continental U.S.)
If you have a Broadwell system, the drm.i915.enable_execlists tunable added by Imre Vadász may keep your system stable. (thanks, zach on EFNet #dragonflybsd)
It would help with Burp, which is being ported to a number of BSDs.
Rimvydas Jasinskas has consolidated/restored/updated a large number of papers into share/doc on DragonFly. I’m not going to link to his large number of commits, but instead point you at the directory where they all went. There’s a number of design documents in there that date back to 4.4BSD and beyond (and some much newer), which may interest or educate you. Of special note: The Guide to the Dungeons of Doom, for rogue, or the KAME IPv6 implementation notes.
If you’re building from dports, and you want to include debugging information, you’ll want to put ‘WITH_DEBUG=yes’ in /etc/make.conf. Note that this affects anything you build at that point, including world, which you’d want to rebuild anyway.
These probably apply cross-BSD, but in this case, it’s DragonFly tips for printing with CUPS.
If you have a Core2 processor in a DragonFly system, it may not work with accelerated video. If that happens to you with this (admittedly old) processor, switch to VESA for now.
For those of you running DragonFly-current, the already-mentioned library privatization going on means that ports have to be rebuilt. You will want to do it yourself, or wait a little bit before upgrading if you want to install binaries.
BSDNow 126 has an interview with Ken Moore and Kris Moore of PC-BSD, along with the usual news roundup. There’s a DragonFly mention in the “open source work helps your career” news item that I did not know about but am happy to see.
That’s a pretty cryptic headline, isn’t it? John Marino has ‘privatized’ several libraries in DragonFly, so that they can’t get included involuntarily as part of a port build. That may mean you will need to perform a full rebuild of your system if you are tracking DragonFly-current.
(This is the way to fix ‘system’ languages like Perl was in FreeBSD 4.x – keep them clearly separate from the port version. It’s about a decade too late for that idea to work out, though.)
This has no effect on the actual operation of DragonFly, but it makes me feel better that it’s done: Rimvydas Jasinskas has gone through DragonFly source and removed the unnecessary 3rd BSD license clause, which is no longer needed.
For those of you with i915 video on your DragonFly system, there’s another update bringing DragonFly support to match what’s in the Linux 4.1 kernel. ValleyView and Skylake processor owners will benefit, along with a slew of other bugfixes and improvements.
If you are looking to validate the data on your HAMMER volume, there’s several ways to do so, with one common-sense caveat.
Are you using a i915 video chipset? Are you using the DisplayPort? Imre Vadasz has added a tunable that may make it work better.
DMA, the DragonFly Mail Agent, is available in dports and FreeBSD ports, and is now available for NetBSD through pkgsrc-wip. (Thanks, Christian Koch)
Sepherosa Ziehau has an update to the em/emx(4) (or other Intel NICs) driver, for testing. Hey, remember what I said the other day about Skylake support?
There’s two important security updates for SSH. DragonFly release and development have been updated for it, and you can correct for it on your running system using the one-liner at Undeadly.
Note: keep in mind this is a client bug – it’s an information leak when you as a client connect out to somewhere else. A server, as an endpoint, is not affected.
New CPU support in DragonFly is continuing, and Matthew Dillon will be testing one of the newer Intel ‘Skylake‘ processors soon. That may mean even more accelerated graphics support at some point, too.
I’ve never heard of ‘McCabe Complexity‘ before now. It’s a description of how complicated software can be, measured by the number of possible paths through it. Pierre Abbat used that measure on Hammer code and not surprisingly, got a high number.
John Marino has opened up his new utility for testing: Synth. It’s made for building custom package repositories, similar to poudriere, but much less setup work. If you’ve ever said “I like binary installs, but I want my own build options”, this is for you. The README includes screenshots to show all the things it can do.
This is a little thing, but so useful: the Wi-Fi indicator light on your iwm(4)-using device will now show its status under DragonFly.
Please welcome DragonFly’s newest committer: Rimvydas Jasinskas. He’s already done some adding and removing, and he’s been making a ton of dports changes for some time.
Even though DragonFly is not incorporated as a non-profit, there’s been a rash of unsolicited donations in the last few weeks, all of which are appreciated. For end-of-year – or start-of-new-year donations – there’s also the 501(c)3 organizations behind FreeBSD, NetBSD, and OpenBSD, too.
Francois Tigeot has updated DragonFly to match the video support found in the Linux 4.0 kernel. This will benefit you most if you are running Skylake, Cherryview, or Valleyview chipsets. Don’t ask me how to tell; the improvement has been so rapid I’ve lost track of which model codename is which.
There’s some DragonFly links I snuck in here because why not?
A number of people have reported problems with qemu and DragonFly, both running locally and on a host. It turns out to be a problem with the getcontext(), setcontext(), and swapcontext() functions, but Matthew Dillon fixed it in a way that doesn’t affect performance very much.
That apparently wasn’t good enough, so he added _quick versions of those same functions, so it became not just a fix, but an improvement.
In related qemu news: qemu-devel can use vknetd similar to a vkernel, now.
I was going to point at a new igb(4) update for testing, but Sepherosa Ziehau has already merged it. Try it if you have the right Intel networking hardware.
For those of you that are very bandwidth-constrained, or just impatient, there are xz-compressed images of DragonFly 4.4 available. (see ‘download live image’ area) The mirrors should have them too.
The DragonFly installer has been modified to produce disk arrangements that will generally match between UFS and Hammer installs, plus directories where you usually don’t want Hammer history or backups (like /tmp or /usr/obj) are now under /build and null-mounted to where you’d expect, since null-mounting works transparently well on DragonFly. Matthew Dillon has a note explaining the whole thing.
Sepherosa Ziehau has a new version of drivers for em/emx(4) and igb(4). The initial versions had trouble, but testing is ongoing. Try it if you have the correct hardware.
Update: never mind.
For those of you looking to rent a place to run DragonFly, Nuno Antunes has very helpfully written out his procedure for installing DragonFly on a Digital Ocean ‘droplet’.
If you have a em(4), emx(4), or igb(4), Sepherosa Ziehau would like you to try out his Intel NIC driver update. He’s already updated the ix(4) driver to support more hardware.
As mentioned previously, Sepherosa Ziehau is printing up some DragonFly T-shirts for WeChat users. He’s going to have a few left over, so he is sending them to me to hand to non-China people. If you want one, leave a note saying so in the comments. Here’s the front and back.
You need to provide some way for me to contact you – preferably email, and the size you’d want. (Use the Land’s End Men’s Shirts chart for sizing, because why not.) I’ll only have a few, so no guarantees.
Update: I have more responses than probable shirts at this point – sorry! I’ll get in contact with each of you once the shirts come in and arrange delivery.
Hammer now defaults to ‘noatime’, meaning the date and time of last access are not updated on every file action. Note that creation and modification date and time are still recorded. This will help with speed and disk activity.
This may cause a problem with any software expecting this to change – mutt, possibly? We will find out. This change was done after the 4.4 branch, so it’s not in the current release of DragonFly.
If you are a WeChat user and want a DragonFly BSD shirt, send your Chinese address and mobile number to email@example.com, or scan this image to join the WeChat DragonFly BSD group.
This is exclusive to China right now, as it’s being done by DragonFly developer Sepherosa Ziehau – who, as you might guess by now, is based in China.
John Marino has created two custom make variables – .MAKE.DF.OSREL and .MAKE.DF.VERSION. (They return the current DragonFly versioning, if you can’t tell from the name.) Apparently, if you build all 22,000 or so ports together, about 15% of the total time is just awk looking up the system version, and this removes that repeated task.
Matthew Dillon has added two Hammer2 directives – ‘info’ and ‘mountall’. See his commit message for a explanation of each. This predates the 4.4 branch, so it’s available in the current release. The usual caveat applies: Hammer2 is for development only; don’t use this to store data you want to use.
I am taking this moment away from my significant backlog of things to post to note that there have been a lot of games fixes in DPorts lately. Thanks to Rimvydas, many small bugs that kept games from compiling on DragonFly are now fixed. The easiest way to see is to look at the commits from December 8th and back, but the best way is to pick one and play.
DragonFly 4.4 is released! The release page has the information, and your nearest mirror should have the images by now. To update an existing 4.2 system, see my users@ post.
Sharp-eyed users will note that release is happening with version 4.4.1, rather than the 4.4.0 you’d expect. That’s because I tagged 4.4.0, built the images, and then OpenSSL 1.0.1q was released. Rather than make everyone who installs DragonFly need to immediately update, Sascha Wildner brought in the OpenSSL update to the 4.4 branch, and I built 4.4.1 instead.
I’m combining two items because news happens faster than I can post: Tomohiro Kusumi has added a ‘dm-flakey’ target to the disk mapper, so you can simulate an unreliable disk, reliably.
Also, the DRM support for radeon chipsets has been updated to match the Linux 3.18 kernel, same as i915. Remember, you can control backlight brightness with it now.
If you are running DragonFly-master (i.e. 4.5), and you have a system between these two updates (roughly between November 27th and now), please rebuild your kernel to avoid a TCP bug.
DragonFly has historically performed very well with NFS. I don’t have hard numbers to point at (an interesting exercise if someone wanted it), but in any case: DragonFly now can tune up to a much larger iosize, which means better NFS performance. DragonFly <-> DragonFly NFS performance can now max out a GigE link, or with anything else that can handle the larger iosize. That plus additional readahead, also in that commit, means easier netboots.
I have a huge backlog of things to post, so this is originating from the 17th: Matthew Dillon has been working for some time on hardlinks and Hammer 2. Hardlinks are the same file, presented in multiple places. This can be a problem when your filesystem keeps infinite, writable snapshots. The solution he just commited is called ‘xlink’ and the commit message has details.
Since DragonFly 4.4 has been branched, bleeding-edge DragonFly is now at version 4.5. As John Marino detailed in his post, that means pkg on 4.5 systems will look in a new place for downloads. (“dragonfly:4.6:x86:64”, since it always uses even numbers)
To cover for this, set ABI to point at DragonFly 4.4 packages in pkg.conf for now. They’re freshly built and functionally the same, anyway. Once there’s a 4.6 download path, that ABI setting can be removed. Packages for DragonFly-current are available now and probably at the mirrors by the time this posts.
Update: as John Marino pointed out to me, anyone on DragonFly-master who upgrades now will be at version 4.5. This means pkg will get the new (4.5) packages on the next pkg upgrade. That means a mix of old and new packages unless you either reinstall anything (pkg update -f) or hardcode the 4.4 download path until you are ready to switch everything.
So: DragonFly-current users should either hardcode the 4.4 path for now or force an pkg upgrade for everything. DragonFly 4.2-release users are unaffected.
Did you need to use SLIP on DragonFly? Do you remember what SLIP is? Well, it’ll work with a USB modem on DragonFly, even if you are making a face right now and saying, “SLIP? Who uses that?”
The release candidate for DragonFly 4.4 is built and available for download. The main site has it as an ISO or IMG file, and the mirrors should have it soon if not already.
Here’s a question I need feedback on: if we compressed these images using xz instead of bzip2 – would that inconvenience you?
The default linker in DragonFly has been switched to gold, the newer version of ld. (get it, go-ld?) It’s faster, cleaner, going by the commit message. It’s possible to switch back to the old one if needed. This predates the recent branch for 4.4, so it will be default in the release, too.
The next release of DragonFly is coming due, since it’s been 6 months. I just tagged 4.4RC, and I’ll have an image built soon. Current estimate is that we’ll have the 4.4-RELEASE at the end of the month.
Imre Vadász fixed top so that hitting ‘c’ filters displayed processes by command name. I am mentioning this not because it’s a huge change, but because I forget about all the interactive elements that are possible with top.
Does that count as alliteration? Anyway, Matthew Dillon has increased the size of the starting window in TCP. If you are on a higher-latency link and/or fetching lots of small files, you should notice better performance.
If you are on bleeding-edge DragonFly (4.3), you will need to rebuild both kernel and world to keep them in sync, after Sepherosa Ziehau’s commit. This won’t affect you at all if you are on 4.2.x.
I don’t think I linked to this anywhere else: Why did I choose the DragonFlyBSD Operating System? By Siju George, at BSD Magazine.
The disk scheduler apparatus in DragonFly has been removed. This may not affect you much, since alternate scheduling setups were never utilized much with it. It may fix some rare Hammer cleanup issues, though, and you may need to adjust your custom kernel config, if you have one.
John Marino sent a helpful link to show the cross-platform work he’s been involved in: He brought the locale work from Illumos into DragonFly over the summer (look for his name on commits), and now it has been brought from DragonFly into FreeBSD, with Baptiste Daroussin reporting on the process. If there’s any OpenBSD/NetBSD developers reading, with an interest in locales, this may be useful..
(someone correct me if that’s not the right Illumos link)