ISO639 update, of all things

I knew about files like /etc/services, for common IP port usages, and /usr/share/zoneinfo, for time zones, but I didn’t know that DragonFly (along with other systems) keeps a list of agreed names for various human languages defined by ISO639 in /share/misc/iso639, and it’s maintained at least in part by the Library of Congress.  At least I didn’t know until Sascha Wildner updated it.

Updated: Birthstones and flowers.  Don’t know why.

Two very specific tools, upgraded

If you are one of the few people still wanting to read an OS/2 HPFS drive, support for it in DragonFly has been updated by Antonio Huete Jimenez.  It’s read-only, but writing didn’t work well, and I’d be surprised if there’s any hpfs disks that aren’t archival, out there.

Also, Sepherosa Ziehau has updated the pktgen program to generate even more packets, even at relatively low CPU clock speeds.

Holy crap, look at those numbers

Remember the new scheduler work?  Well, it continued, and now Francois Tigeot has posted pgbench benchmarks of the progress and benchmarks of DragonFly vs. other operating systems.  The links are to PDFs; scroll down as each have multiple pages.

The summary result: If you’re running Postgres, you probably want to do it on DragonFly.  The numbers are the best results for any BSD,  even better to some extent than Linux, which has had its own issues with schedulers and Postgres.  DragonFly 3.2 will include these improvements.

gcc 4.7 in, gcc 4.1 out

John Marino has accomplished the difficult task of putting gcc 4.7 into DragonFly.  Version 4.4 is still the default, and the older 4.1 version has been disabled.  If you want to try this newer version, setting WORLD_CCVER=gcc47 will build kernel and world that way too.  If you’re curious about what’s different in this version of gcc, there’s a 4.7 changelog.

Are we the only BSD with this new a version in base?  I think so.

P.S.: You’ll want to do a full buildworld if you’re running DragonFly 3.1

P.P.S.: you may need to put ‘NO_GCC47=true’ in make.conf, going from IRC comments.

P.P.P.S.: Nope, now it’s fine.

 

A flurry of fixes and scheduler improvements

The combination of Mihai Carabas’s successful Summer of Code work on the scheduler and the recent Postgres benchmarking got Matthew Dillon to start thinking about making UNIX domain sockets work better, a shortcut around the buffer cache, scheduler improvements and then a new default scheduler, along with a change in idle CPU behavior.  The best place to understand all the changes is in his long post to users@.

We should have benchmarks soon to show the performance improvements from all this.

Experimental pmap optimizations

Matthew Dillon has created an experiment: shared page table mappings.  It’s controlled by a sysctl, since it’s still experimental.  The real-world effect is reducing the number of memory faults as a process uses up memory, and decreasing the overall memory usage.  The obvious benchmark is Postgres speed; this makes the initial expansion of memory usage much less of an drag on speed due to a high memory fault rate.

If all this mention of faulting sounds like a problem, remember memory faults on BSD are normal; that’s how programs indicate they need more memory space by causing a fault.  This is in contrast to Linux, where memory is allocated a different way.  Or at least, that’s my understanding.  (If you know better, please comment.)

Hammer 2 status report

Matthew Dillon recent posted a status report for Hammer 2.  Of interest is the spanning tree protocol being built to handle messages between Hammer volumes.  As he says in the message:

For example, we want to be able to have millions of diskless or cache-only clients be able to connect into a cluster and have it actually work…

(No, it doesn’t do this, yet.)