Samuel Greear graphed the performance differences for Postgres and MySQL on DragonFly, before and after the recent VM changes. Note that 1: this was done a little while ago, so I think the performance difference would be even greater now, and 2: this was graphed versus the already-performing-better 2.12, not the current stable release of 2.10.
Not a lot of links this week, for some reason.
- The best obituary I’ve seen yet for Dennis Ritchie, where he’s contrasted with Steve Jobs.
- The best paper abstract ever.
- Michael Lucas documents his DragonFly update.
- Our tcplay TrueCrypt implementation is getting noticed.
- pkgin-0.51 is available in pkgsrc-current, though it’s not in the most recent quarterly release.
Your unrelated comics link for the week: Oglaf. This week’s OK, but it’s frequently NSFW, and frequently hilarious.
Google’s running the Code-In project again for 2011, where open source projects mentor 13-17-year-olds on a variety of small projects. DragonFly participated last year and had lots of good work done. However, we need ideas, the more the better. Please add whatever comes to mind.
That would be a recent ATI card, though I don’t know exactly which model name. Samuel Greear has imported David Shao’s DRM work, originally for Summer of Code, last year. Most newer Radeons should work (?).
There’s a rare crash in DragonFly 2.10, where applications would segfault. The system would run find. This is apparently more likely to happen in 2.12, though reports on this vary. It’s real, though.
Matthew Dillon went looking for this bug, and happened to roll back vm_token, the last lock in DragonFly that presented a serious impediment to multiprocessing. It’s a big patch. It fixes the problem, which is great! It also happens to make DragonFly buildworlds almost twice as fast depending on the number of cores in the system.
Holy crap we want to get that out… but it makes some significant changes to the system and needs to be tested. So, the next release probably won’t be for a few weeks.
If you want to help, build master and do something with it – move data, run server programs, whatever. Report crashes. This performance improvement is worth working for.
I know this happens normally, but I like to point out that it exists. From the recent pkgsrc-2011Q3 bulk build reports I posted, Samuel Greear found two problems to fix, and thanks to him and OBATA Akio, net/net-snmp and devel/poco are fixed for DragonFly.
I have some pkgsrc-2011Q3 builds done, for x86_64 and i386. I performed them on DragonFly 2.11, but they should work fine for 2.12/2.13. They’re uploading to the pkgsrc-2011Q3 folder on mirror-master, so you’ll need to set PKG_PATH correctly to use them via pkg_radd.
PKG_PATH=http://mirror-master.dragonflybsd.org/packages/x86_64/DragonFly-2.13/stable/
The x86_64 package upload is done, and I anticipate the i386 one will be done within the next 24 hours.
I did not realize this, but MMC/SD cards are not supported in the default DragonFly kernel. Or at least, they weren’t until now. (also committed to 2.12)
Update: PCI-based MMC/SD readers, specifically. USB ones were already recognized as umass devices.
They aren’t really release candidates per se, just “images I built from the 2.12 branch”, but they are available for testing.
There’s only two commits, already in DragonFly-current, to add to 2.12 before it’s clear of all listed release requirements. And maybe binary package builds… which I’m about 2/3 of the way through.
It looks like Sepherosa Ziehau is working on hardware support being split up per-CPU, judging by this commit – one of many, recently.
Tim Bisson’s work on TRIM support has been committed. I don’t know if it will show in 2.12, but it’s off by default so it would seem a safe move.
There’s only one multiprocessing bottleneck left in DragonFly: vm_token. Matthew Dillon’s working on removing it, and he’s been testing his initial results on a 4-core machine and a 48-core machine, using heavily parallelized buildworlds to test concurrency. He’s posted the results, showing an initial speedup of up to 30%. This definitely isn’t going to make it into 2.12, but it’s looking good already. Keep in mind these are improvements on top of the performance graphed here yesterday.
Venkatesh Srinivas sent along a graph of his nmalloc testing that shows mysql threading performance on DragonFly, from slightly over a year ago. Both graphs were done on a 4-core system, though I don’t know if the specs are comparable, so the curve is important. Look at the just-posted curve for comparison. That’s how much things have improved.
In fact, here’s a cheesy overlay, cropping the more recent results and laying the old ones on top of it. The black lines are the year-ago performance, and the colored lines are the performance now.
Samuel Greear has graphed out the performance of both MySQL and Postgres on DragonFly 2.12 as you add threads. There’s a very nice correlation on performance and number of cores. For comparison, there’s this old test from 2007 which shows uniprocessor performance to be good but not improved by adding cores. The tests were on completely different hardware, so the actual curve of the graph is the telling point.
As he points out in his post, excellent multiprocessor performance is arriving on DragonFly, without any catastrophic shifts or destabilizing changes.
The 2.12 branching generated a list of every DragonFly commit since 2.10, grouped by committer. Good to browse through. Try to ignore the part where it shows the measly 4 things I did, with poorly constructed commit messages.
It’s not the 2.12 release yet – just the initial branch of 2.12. This will become the release version of 2.12 in a few weeks.
Did you notice zgrep went missing? Well, it’s available again, thanks to YONETANI Tomokazu.
Michael W. Lucas is setting up two DragonFly machines, to try out Hammer. I linked to his tweet about this in the last Lazy Reading post, but this is a more in-depth explanation of what he’s doing. So far, it just works. (as seen on Reddit, too.)