Category: Committed Code

Preinit, init, and fini arrays added


John Marino has added support for preinit, init, and fini arrays.  DragonFly is the first BSD to do so, apparently.  What are they for?  I’m not sure.  The commit message points to more documentation, but not simple enough for me.

Posted by     Categories: Committed Code, DragonFly     0 Comments

PUFFS now in DragonFly


Nick Prokharau’s project for Google Summer of Code last year was “Port PUFFS from NetBSD/FreeBSD”.  Sascha Wildner has now committed that to DragonFly.  It’s experimental, so the normal caveats apply.

GCC 4.6 now possible


John Marino has made it possible to build world and kernel on DragonFly using GCC 4.6 in the form of gnat-aux.  (We’re currently on GCC version 4.4)  Note that version 4.6 isn’t included with DragonFly, so you would need to download and compile GCC 4.6 a very recent version of lang/gnat-aux, and set CCVER=gcc46 before building world and kernel to try this out.

Update: John Marino points out in comments that you need to set WORLD_CCVER, not CCVER as his original message said.

Posted by     Categories: Committed Code, DragonFly     3 Comments

ISDN really gone


ISDN support has been removed from DragonFly.  It was not useful at this point, because it’s rarely used any more.  It does make me feel a little sad; this was the technology everyone said was the future before cable modems and DSL were figured out.

Posted by     Categories: Committed Code, DragonFly     1 Comment

Libpcap, tcpdump updated


Peter Avalos updated libpcap and tcpdump.  This is on master, not the 3.0 branch.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Old ATA also out


A bit of symmetry in that title, there.  Old ATA, which was replaced years ago, is finally gone.  This should affect nobody…

Posted by     Categories: Committed Code, DragonFly     0 Comments

RELRO in a BSD


John Marino has added support for RELRO in DragonFly, which makes it the first BSD to have it.  That’s great news!  What is it?  Apparently a guard against memory corruption or overflow in the linker.  His commit message gives better details.

Posted by     Categories: Committed Code, DragonFly     1 Comment

Security problem and a fix


Matthias Schmidt found a discussion about DragonFly’s password encryption.  The result, if I am reading it correctly, is that brute-forcing the password from available hashes is quicker than it should be.  Matthias also found a contributed fix.  Samuel Greear updated to match the reference SHA implementation also in Linux, with this very pertinent warning.


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

How low can you go? (with RAM and Hammer)


Matthew Dillon has a very detailed commit message with changes to make sure Hammer will run overnight cleanups in situations as low as 256M of RAM.  I think you can find that much RAM in breakfast cereal boxes these days.

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

Have problems, become immortalized


What happens when you break enough things in DragonFly that you become a source of test cases?  As Antonio Huete Jimenez (AKA “tuxillo” on IRC) found out, you get a stress test named after you.

Posted by     Categories: Committed Code, DragonFly     2 Comments

Netgraph update


Nuno Antunes has committed a large quantity of work on updating netgraph to version 7.  His goal is to be able to run mpd5, though it’s not there yet.  If you want to look at it, go to the monthly page and look around the 10th; there’s too much to link to individually.

Posted by     Categories: Committed Code, DragonFly     0 Comments

OpenSSL update


Peter Avalos has updated OpenSSL to 1.0.0f; this is to fix 6 security issues identified in the OpenSSL changelog.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Something for re(4) users


You may want to update for this – a lockup bug with the re(4) (RealTek 8xxx series) driver has been fixed.

Posted by     Categories: Committed Code, DragonFly     0 Comments

dma(8) update


dma, which originated on DragonFly, is now at version 0.7, and so is the version in DragonFly.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Libm updates, plus a free security fix


John Marino updated libm, bringing a large quantity of functions.  This may be a stopgap measure for now.  As a positive side effect, buffer overflow attacks are a bit harder now.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Telnetd update, and history


The recently discovered telnetd vulnerability has been fixed in DragonFly, thanks to Peter Avalos.  Apparently it’s been around everywhere forever.  (last link via xhr)  Hopefully there aren’t that many people that still need a telnet daemon; SSH has run it out of town for the most part.

Posted by     Categories: Committed Code, DragonFly     0 Comments

NFS fixes, too


Since I’m already talking about imports, several changes from FreeBSD and OpenBSD for NFS, plus more original material, have been brought in by Venkatesh Srinivas.  Those changes from FreeBSD apparently improve NFS write performance, though I don’t have numbers to show.

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

A pile of sh and pam fixes


Peter Avalos added an avalanche of updates for PAM and sh, so I’ll link to a few of themThe changes are mostly sourced from FreeBSD.  The PAM changes remove pam_krb5 and pam_ksu, for which there’s an alternative.

Merry Christmas, here’s an incredibly involved bugfix


There’s been a rare segfault present in DragonFly for quite some time.  It’s been difficult to reproduce, and the 2.12 release due some months ago was held up specifically to fix it.  Matthew Dillon was, after many days (months?) of work, able to replicate it reliably and eventually find a way around what appears to be a new AMD-specific bug.  Read his very detailed explanation of what he did to get to this point.

Posted by     Categories: Committed Code, DragonFly     0 Comments

VFS accounting benchmarks


Francois Tigeot benchmarked his accounting work with blogbench, and posted a PDF with the results.  Dmitrij D. Czarkoff made a simpler graph, which can be used to draw the conclusion: blogbench didn’t work well for estimating the impact of VFS accounting. If you want to try accounting yourself, put vfs.accounting_enabled="1" in your /boot/loader.conf.

(The normal DragonFly mailarchive isn’t updating because it feeds from DragonFly NNTP, and that’s not updating, so I’m using Gmane for post links.)

Posted by     Categories: Committed Code, DragonFly     0 Comments

Keeping binutils out of the build


There is now a NO_BINUTILS221 option, added by Sascha Wildner, that will keep your system from building binutils 2.21 during a buildworld.  The system will still build binutils 2.22, so there will still be a functioning ld on the system.  Use this along with NO_GCC41 (so only gcc 4.4 gets built) to speed up your buildworlds, if you like.

Loader changes for IPMI


If you’re looking to use IPMI and remotely watch the console of another system, Matthew Dillon has made some changes to help with that.

More high-speed optimizations


I’ve had a bunch of posts like this so far, but that’s not a bad thing.  Sepherosa Ziehau has a pair of optimizations that appear to make performance with big pipes (1G) and tiny packets (18b, if I read correctly) reach near the physical maximum for 1000-base-T Ethernet.

Posted by     Categories: Committed Code, DragonFly     0 Comments

vquota(8) now available


Francois Tigeot has been working for quite a while on a VFS accounting system.  It doesn’t restrict to a quota (yet), but it will give you byte totals for each mounted filesystem.  It has been committed, so it looks like a good way to tell which PFS is eating your disk.

Update: Francois pointed out he’s still adding parts for this.  So it’s not quite done yet, but soon.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Parallelized buildworld now possible


Buildworlds are now much faster, because they can run themselves in parallel.  Invoke it using the -j option to make.  Matthew Dillon saw a 25% reduction in time when using ‘make -j 12 buildworld’ on a 4-core system.  You may need to manually update xinstall and mkdir:

        cd /usr/src/usr.bin/xinstall
        make clean; make obj; make all install
        cd /usr/src/bin/mkdir
        make clean; make obj; make all install

It’ll also use more memory than a non-parallel build, but heck, that’s cheap these days.

Posted by     Categories: Committed Code, DragonFly     0 Comments

A minor debugging change worth noting


Venkatesh Srinivas made a minor change to a ddb backtrace – it now prints the raw instruction pointers.  On x86_64, a backtrace would not print the correct objects out, so this is better.  It’s a minor change, but I’m pointing it out because it totally helped solve a problem for me on a package-building machine.

Posted by     Categories: Committed Code, DragonFly     0 Comments

ldns update to 1.6.11


Jan Lentfer has updated ldns in DragonFly to version 1.6.11.  This brings in a bunch of bugfixes, which can be viewed at the ldns site’s changelog.

Posted by     Categories: Committed Code, DragonFly     0 Comments

An unexpected way to do strlen()


The general rule of thumb is that if you have a function written in an interpreted language (Perl, Python, etc.), it’ll be faster in C.  If you need it faster than that, you go to assembly.  Prepare to have your world rocked: Venkatesh Srinivas found that strlen() in libc was actually slower written in assembly than in C.  His commit message has numbers to back that up.

Posted by     Categories: Committed Code, DragonFly     8 Comments

Fast soaccept added


It’s another throughput tweak from Sepherosa Ziehau: soaccept is run differently when pulling in network data from a socket.  The commit message once again shows the results of the change using httperf.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Binutils update to 2.22


Binutils in DragonFly is now up to version 2.22 – the commit linked is one of several.

Posted by     Categories: Committed Code, DragonFly     0 Comments

fastbulk now added


Some time ago, Matthew Dillon worked on a bulk build system that built as much of pkgsrc in parallel as possible.  It’s in the tree now as ‘fastbulk‘, for anyone wanting to try it out.  I used it a bit; I didn’t measure the degree of speed increase, but was able to get about 70% of the packages built.

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

More network speed improvements as reported by netperf


Sepherosa Ziehau has implemented another networking speedup.  Read the commit message for details on what he changed, since it’s rather in-depth.  He shows an 18% improvement in netperf results.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Sendfile speedup


Sepherosa Ziehau has implemented an asynchronous pru_send in sendfile.  The results are a 70-90% increase in performance, as shown in his netperf localhost test.

Posted by     Categories: Committed Code, DragonFly     0 Comments

How to make those regression tests


The man page for dfregress has been put together, and you can read it and find out how to contribute, right now.

(That man page should be up by the time this is posted…)

Posted by     Categories: Committed Code, DragonFly     0 Comments

route(8) changes require buildworld


If you’re tracking DragonFly current, you will need to do a full buildworld on your next update.  Sepherosa Ziehau made some changes in route(8) that a quickworld will not catch.

Posted by     Categories: Committed Code, DragonFly     0 Comments

dfregress, a new test framework


Alex Hornung has created ‘dfregress’, a test framework designed to be as simple as possible for adding tests to DragonFly.  This would make it easier to verify an upcoming release is correct, for instance.  See his commit note for extensive details, and add a trivial test for anything you value.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Appletalk goes away


This is another one of those features that I bet goes away, and nobody would notice because nobody uses it any more.  Sascha Wildner has removed AppleTalk from DragonFly.

Posted by     Categories: Committed Code, DragonFly     0 Comments

A new memory allocator


DragonFly has a new memory allocator, called (not surprisingly) “dmalloc“.  It’s only present on x86_64, not i386, because it could eat up more VSZ (virtual memory) than an i386 kernel may  have available.

Posted by     Categories: Committed Code, DragonFly     1 Comment

HEADS UP: package recompilation needed


The presence of /usr/include/crypt.h in DragonFly (starting in December 2010) meant that some programs compiled during that time will expect that file to always be there.  It was recently removed, so any programs compiled in that timeframe will also need to be recompiled.  Right now, this affects you only if you are running DragonFly 2.13 , since that’s the only place crypt.h was removed.  This may be an issue for the release, but we’ll worry about that when we get there…  I’m kicking off new 2.13 bulk builds now.

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

Do you have a lot of RAM? I mean, a LOT!?


You can now have, in theory, up to 32 terabytes of RAM on your 64-bit DragonFly system, from a change made by Matthew Dillon.  I’m curious to see if anyone has even 1 terabyte, as that’s at least feasible.

Posted by     Categories: Committed Code, DragonFly     1 Comment

libgmp, libmpfr updated


John Marino has updated two libraries needed for gcc 4.4: GMP and MPFR.  They are, as far as I can tell, both designed for mathematical functions.

Posted by     Categories: Committed Code, DragonFly     1 Comment

More multi-core improvements


Matthew Dillon wrote up an explanation of how performance on systems with a lot of CPU cores has been significantly improved – up to 300%!  (He says 200%, but I think he’s treating it as a percentage of a whole rather than percent changed.)  Apparently finally getting rid of lock contention is the trick.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Libhammer added


Antonio Huete Jimenez’s ‘libhammer‘, a library to make various Hammer functions available to userland programs, has been added.  It implements ‘hammer info’ only at this point, if I understand correctly.

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

GCC updated


John Marino’s moved GCC from 4.4.6 to 4.4.7, but you’ll have to see the changelog for details.  Except it’s so new it isn’t listed… yet.

Posted by     Categories: Committed Code, DragonFly     1 Comment

Got 10G Ethernet? Here’s an improvement


Sepherosa Ziehau made some changes that led to a 10% and then 20% gain (don’t know if that was cumulative or separate) in network speed for DragonFly.  That’s great!  It only has a noticeable effect if you’re on 10G Ethernet, though.  The obvious answer to that: upgrade your network.

Posted by     Categories: Committed Code, DragonFly     1 Comment

TRIM arrives for DragonFly


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.

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

A whole lot of VM fixes


Matthew Dillon and Venkatesh Srinivas have committed several fixes for some elusive problems.  If you’ve had an unexplained crash, this may keep it from repeating.  If you haven’t had a wierd crash (like me)… great!

Posted by     Categories: Committed Code, DragonFly     0 Comments

The return of zgrep


Did you notice zgrep went missing?  Well, it’s available again, thanks to YONETANI Tomokazu.

Posted by     Categories: Committed Code, DragonFly     0 Comments

OpenSSH update to 5.9p1


Peter Avalos has updated OpenSSH to version 5.9p1.  This might be the last thing before the next DragonFly release.

Update on the update: he updated OpenSSL (1.0.0e) and file (5.09) too.

Posted by     Categories: Committed Code, DragonFly     0 Comments

TCP changes I think


From what I can tell, Sepherosa Ziehau’s made some changes where you can control TCP timeout and keepalive timing on a per-tcpcb basis, or at least that’s what I gleaned from the docs.  He’s been doing a lot of work lately, but it’s hard to link to because so much of it is at a basic level that makes it difficult to summarize in terms of how the features affect the user.

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

Time travel in Samoa. Also, time zone updates


Sascha Wildner updated time zone files again.  It’s a regular thing, but I wanted to draw attention to this little change:

Samoa moves from east to west of the international date line (changes from UTC-11 to UTC+13). It will skip December 30, 2011.

2011/12/30 in Samoa will never exist or have existed, which is entirely odd.

Posted by     Categories: Committed Code, DragonFly     0 Comments

More Summer of Code results


Another batch of code has arrived from Google Summer of Code student work.  In this case, it’s code from Adam Hoka’s “Implementing a mirror target for device mapper” project, committed by Alex Hornung.  I think there’s potentially more to come.

Summer of Code results already


Google Summer of Code for 2011 just finished, and there’s already source code from it showing up in DragonFly.  In this case,  scheduler work, including multiple schedulers.  I’ll have a more detailed report soon…

A zillion sh updates


Peter Avalos brought in a vast quantity of sh(1) updates, all from FreeBSD as far as I can tell.  There’s a whole bunch more commits all on 8/21, but I’m tired of linking.  Thank you, Peter!

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

x86_64: Rebuild!


If you’re running 64-bit DragonFly, and you’re on version 2.11, you will want to rebuild with the latest sources.  Peter Avalos found a bug with file descriptor passing, and Venkatesh Srinivas fixed it.  It will require a quickworld/kernel build – maybe a full buildworld and kernel?  I’m not sure.   Some pkgsrc packages might need recompilation, too if they also passed file descriptors around.

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

Deduplication now eats less RAM


Well, if you tell it to do so.  Matthew Dillon has added a user-settable limit to the amount of memory used during deduplication, so if your Hammer-using system is low on RAM, you can conserve.  This is probably most useful if you are running DragonFly in an extremely small VM, or if your name is Venkatesh.

(inside joke; Venkatesh has a crazy old desktop for DragonFly.)

 

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

ACPI and interrupt routing update


Sepherosa Ziehau has, over the last few months, effectively completed the “Update ACPI and interrupt routing” code bounty on the DragonFly code bounties page.  Yay!  I’m on the hook for the $50 I pledged towards that…  (it’s already off the page; here’s the change if you want to see it.)

Posted by     Categories: Committed Code, DragonFly     0 Comments

Pulse-width modulated time-domain multiplexer!


I really just like that phrase and the action movie feeling of using it, like “Watch out!  The pulse-width modulated time-domain multiplexer is targeting us!”  Sorta like a PU-36 space modulator.  It’s actually a recently-committed mechanism to improve write performance in Hammer, but my idea sounds more exciting.

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

Binutils updated


John Marino has made binutils 2.21.1 the default binutils in DragonFly, and gprof is now built but not in the default path.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Disk encryption updates


Alex Hornung has made a pile of changes for disk encryption, including adding libdm, a “simple BSD-licensed libdevmapper“,and adding tcplay, a 100% compatible implementation of TrueCrypt.   This should make you very happy if you like running from an encrypted disk.

Update: Alex has written an in-depth explanation of this work.  It’s a huge change!

Update update: Hey, it’s showing on Hacker News too!

Posted by     Categories: Committed Code, DragonFly     0 Comments

TCP update for 2.11


If you’re running a recent version of DragonFly 2.11, it’s worth updating.  Matthew Dillon fixed a networking bug that I’ve seen cause problems.  It was introduced within 2.11’s lifetime, so as far as I know, this won’t affect anyone on 2.10.

Posted by     Categories: Committed Code, DragonFly     0 Comments

EST for x86_64


Sascha Wildner has enabled the CPU_ENABLE_EST option for x86_64 kernels.  If you’re on x86_64, you can now use Enhanced Speedstep Technology.  (i386 users already could.)

Posted by     Categories: Committed Code, DragonFly     0 Comments

Twofish and serpent in crypto


Alex Hornung has added Twofish and Serpent support to crypto(9) / (4).

Posted by     Categories: Committed Code, DragonFly     2 Comments

AHCI/SSD issue fixed


Matthew Dillon has made some changes to AHCI support; if you have an Intel motherboard with an SSD drive that occasionally doesn’t want to co-operate on a cold boot, this recent update may fix it.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Padlock warning


Do you have a Via CPU?  Do you use padlock(4)?  (The driver for cryptographic functions, which Via processors support with hardware acceleration)  Alex Hornung made some untested changes to support the hardware random number generator, but he needs people to test it.

Posted by     Categories: Committed Code, DragonFly     3 Comments

Watch out for VM work


Venkatesh Srinivas is making vmobj_token and vm_token much more fine-grained.  That’s great, but watch out over the next few weeks as this work goes into 2.11.  (i.e. don’t upgrade your DragonFly 2.11 unless you are ready for surprises.)  Venkatesh has already found some.

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

i386, LAPIC, IOAPIC


The i386 architecture now supports LAPIC and I/O APIC.  If you had weird interrupt problems when installing DragonFly before, now might be a good time to try the latest bleeding-edge version of DragonFly and see if the problem vanished.

Posted by     Categories: Committed Code, DragonFly     0 Comments

New gold linker


John Marino has made it possible to use ‘gold‘, the new linker in binutils 2.21, on DragonFly.  His explanatory post outlines the benefits (much faster C++ compiling), and caveats (does not work yet for building world/kernel).

Posted by     Categories: Committed Code, DragonFly     0 Comments

SMP kernels on uniprocessor systems


It looks like Sepherosa Ziehau is working on getting multiprocessor kernels able to boot on single-processor systems.  This makes life a bit easier, since there’s only one kernel needed for any given processor.  I don’t know if it’s in a finished state yet.

Posted by     Categories: Committed Code, DragonFly     2 Comments

libgnuregex goes away


Thanks to John Marino, the one dependency needing libgnuregex is gone, as is the software itself.  I didn’t even know libgnuregex was there.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Really old systems and libpthread


If you have a really old DragonFly system, meaning you’ve been upgrading it since version… 1.8 (I think?), you may have libpthread linked to libc_r instead of libxu.  This means that if you have a system that old, you will now need to set THREAD_LIB or just recompile your pkgsrc programs on your next upgrade to something after DragonFly 2.10.   I don’t think this is going to apply to a lot of people.

(I hope I got the lib details right…)

Posted by     Categories: Committed Code, DragonFly     0 Comments

ipf goes away


ipfilter has now been removed from DragonFly, by Sascha Wildner.  We now have “only” ipfw2 and pf for software firewalls.

Posted by     Categories: Committed Code, DragonFly     2 Comments

GDB update


John Marino has updated the GNU Debugger (GDB) from version 7.0 to version 7.2.  The lengthy commit message describes how surprisingly complex the upgrade proved to be.

Posted by     Categories: Committed Code, DragonFly     0 Comments

gcc, textinfo, and diffutils updates


John Marino’s gone on a tear and updated GCC to version 4.4.6, diffutils from 2.87 to 3.0, and texinfo from 4.8 to 4.13.  Each commit message that I linked to has plenty of notes on what’s different, so they’re worth following.  This is the first update for texinfo in 6 years, so the quantity of updates is not surprising.

Posted by     Categories: Committed Code, DragonFly     3 Comments

Want your kernel build to fail?


Then use the new LINT64 config added by Sascha Wildner.  LINT kernels have every option turned on, so it’s pretty easy to have problems due to conflicts or untested parts and so on.  You probably won’t get a kernel out of it, but now there’s a comprehensive list of your 64-bit kernel options for when you’re building a kernel that works.

 

Posted by     Categories: Committed Code, DragonFly     0 Comments

Grep still GNU, sort is not. Plus, file.


GNU grep on DragonFly has been updated from version 2.4d to 2.7. Other BSDs have switched/will switch to bsdgrep, but as John Marino points out in his commit message, GNU grep’s still faster.  He’s also brought in NetBSD’s version of sort, to replace the GNU flavor.  I don’t know why on that one.

Peter Avalos also updated file to 5.06.

Posted by     Categories: Committed Code, DragonFly     4 Comments

More Hammer documentation


Thomas Nikolajsen has put together more information on Hammer, including formatting and the new deduplication features, conveniently located in the man pages and some other spots.

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

ACPI SCI changes


Sepherosa Ziehau has made some changes to default SCI settings in ACPI.  This may make it possible to boot a computer, or to boot a computer with ACPI, that did not boot before.  If it causes problems, he lists some various tunables to set.  Just don’t ask me what SCI does.

Posted by     Categories: Committed Code, DragonFly     0 Comments

One extra thing: OpenSSH


Peter Avalos squeezed in one more thing before the DragonFly2.10 branch: an update of OpenSSH to version 5.8-p1.  This is mostly a security fix upgrade to 5.7 – see the OpenSSH release notes for details.

Posted by     Categories: Committed Code, DragonFly     0 Comments

Our newest committer: John Marino


Welcome John Marino, who has been working on some rather difficult updates for gcc and other toolchain items.

Posted by     Categories: Committed Code, DragonFly     2 Comments