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 firstname.lastname@example.org, 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)
If you are using bleeding-edge DragonFly (4.3) on a machine with Intel video, the i915 module has been renamed. This means you will probably need to rebuild xf86-video-intel from source to have it match. There should be a matching binary package soon.
If you are on DragonFly 4.2, this does not affect you.
Sascha Wildner has brought over support for the Realtek 8168H. This may be useful because at least one low-cost server provider – Kimsufi, I think? – uses them by default in their product line.
If you are using clang with DragonFly, and you want to always run the newest version, you can set options in compilers.conf, and use ‘clangnext‘.
John Marino’s made a number of updates to contributed software in DragonFly recently, and here’s the list:
libelf (not contrib as John pointed out), libexecinfo, xz, libedit, binutils, grep, tcsh, libdialog, and (tn)ftp.
If for some reason you are seeing messages about your CPU overheating – and you know it is not, there’s a solution. Disable coretemp messages.
Note that if your CPU is actually overheating, turning these messages off won’t help. Don’t want anyone to be surprised when their computer melts…
Remember what I was saying about Sepherosa Ziehau and improving performance? Well, here he goes again, three times.
For those of you with DragonFly and an Intel i915 chipset, Francois Tigeot has moved support up another notch, to match Linux 3.18. This will help Cherryview and Broadwell chipset users the most.
I think at this point, Sepherosa Ziehau is able to improve the DragonFly network stack by just standing near his computer and concentrating for a few minutes. For example, he’s unearthed another improvement to connect rate/reduction of CPU usage.
Imre Vadász has put together an initial port of Wayland / Weston for DragonFly. You can look at his pull request for dports to see how to install, though I’d imagine this is only for people who like to experiment at this point. It’s still work in progress, as is Wayland itself.
Tomohiro Kusumi has added a dm-delay target, which means you can simulate poor disk performance, without having to have poor disks. His commit message includes some benchmarks that shows it doing a good job creating a bad job.
The Tanzanian Digital Library Initiative is using DragonFly (and FreeBSD) as part of their library setup, and Michael Wilson, the project coordinator sent a note to users@ describing this. They are looking to spread through the continent, so get in contact if you want to be part of the project.
There’s a new version of the Intel video driver in dports – xf86-video-intel-2.99.2015.09.09. If you update to this and you experience an xorg-server crash, Matthew Dillon found that changing the acceleration method from SNA to XAA fixes the problem. Don’t change it unless you actually see the problem, of course.
The package x11-themes/dragonfly-wallpapers exists, thanks to John Marino, and gives you DragonFly-themed backgrounds in KDE. Or probably any other window manager, if you install it and point your wm at the directory.
Update: John Marino helpfully posted a link to the images. It’s not yet built as a binary, but it’s not exactly time-consuming to build from source.
MIDI support has been (re) added in DragonFly, if I read this recent commit correctly. You may have supported hardware and not even realize it.
There’s been a lot of improvements to DragonFly and graphics support recently, and Francois Tigeot gave a talk at the 2015 X.Org Developer’s Conference outlining just how much has changed. He’s posted the slides.