Problems with BFS 0.422

The latest version of BFS has a strange effect on my box here. The first time i got aware of it was when i ran apt-get update (debian way of sync’ing package lists) which worked normal up to the point of reading local package lists from disk. It was horribly slow. Normally, it needs ~5 seconds to complete, this time it ran for several minutes but I/O-utilization was 100% (using top/iotop). And the sound of the disk was different too.

A more repeatable test: dd if=/dev/zero of=dd_disk_test bs=123K count=5000 needed 112 seconds which sums up to 5.6 MB/s – way to slow. The same test with a different disk, a 128 GB SSD had twice the rate, 9.7 MB/s, but way to slow too. No other sign of wrong-doing, everything else was fine. Changing the kernel did the trick. Same Version, linux-3.4.1, but without BFS runs fine: same test completed in 5 seconds (124 MB/s). At the moment i have no glue how to dig into the problem to find the root of it.

/edit: nope, it’s back. After a certain amount of uptime i saw the problem with a vanilla kernel too. (10.6.12)

SSDs, ext4 und BigAlloc

Einige Fundstücke, die sich mit dem Themenkomplex Dateisysteme und SSD beschäftigen. Aufhänger war hier BigAlloc, ein neues Feature für ext4, dass oberflächlich gesagt mehrere kleine Blöcke zusammenfasst und so Verwaltungsaufwand beim Schreiben (deutlich) minimieren kann. Bedauerlicherweise kann es nur mit neu anzulegenden ext4-Partitionen verwendet werden und nicht in bereits existierenden. Erfreulicherweise erhellen die Kommentare bei lwn.net die Funktionsweise von ext4 soweit, dass klar wurde, dass ein ähnlicher Mechanismus bereits eingebaut ist: extents.

Der zweite Artikel vergleicht SSDs und Journaling-Dateisysteme anhand ihrer funktionellen Mechanismen und stellt die Behauptung auf, dass eigentlich SSDs schon genau das tun, was journaling bei Dateisystemen wie xfs, ext3/4 oder btrfs bwirken soll. Interessanter Gedanke in den Kommentaren (sinngemäß): SSDs sind quasi als Ersatz für rotierende Festplatten entworfen worden und werden aktuell auch so gebaut, obwohl die zugrundeliegende Technik völlig anders funktioniert. Mittels des Controllers und der Firmware werden sie aber so gesteuert, dass sie für das Betriebssystem wie eine normaler ATA-sprechender, rotierender Datenträger aussehen. Die Konsequenz daraus ist, dass sie eigentlich eine viel schlechtere Performance liefern als sie eigentlich könnten und dass das zu einem Großteil der Marktdominanz von M$-basierten Desktop-Systemen geschuldet ist.

radeon: cooler and cheaper! (finally)

Woohoo! Since 3 or 4 days ago the radeon (RV770) in my computer runs much cooler, if one switches power_profile from default to low. I don’t know where the change happened, maybe somewhere in the last stable-kernel updates, but i didn’t read anything about it in the release information. From the day AMD announced to release documentation helping kernel/xorg developers producing a working open source driver many people waited for such events. Despite my card is a bit older (in terms of graphic card lifetime) that change will let the card run on lower temperatures and saves me a dollar^wEuro because that means a huge drop in energy consumption too. +20 watt less is a number i’ll see on my annual energy bill. And noise level dropped too. The driver already had *some* power management functions but for a long time voltage/frequency lowering only worked in dpms standby/off (means: monitor in standby or off) and not during normal operation. So, to me it seems like a late Christmas Gift.

BFS raus der Warteschleife

Es hat also doch nicht so lange gedauert bis zur Veröffentlichung der BFS-Version, die mit dem 2.6.38er Kernel eingesetzt werden kann. Natürlich läuft der lokale Rechner hier schon mit so einem und tut das sehr gut. Interessanterweise gibt es im oben verlinktem Verzeichnis auch einige weitere Patches, die zeigen, wie das eigene System noch etwas mehr auf Desktop-Bedürfnisse angepasst werden kann. Es gibt schliesslich im Standard-Kernel nicht wenige Annahmen oder Kompromisse, die für embedded-Systeme genauso gelten wie für dicke Mainframe-Kisten oder Cluster.

BFS für 2.6.38 in Warteschleife

Alle letzten Kernel-Versionen liefen hier mit dem BFS, weil einfach der reine Eindruck von Interaktivität immer spürbar besser war. So erscheint es logisch, mit dem Release eines neuen Kernels bzw. einer neuen Version auch nach einem Update des Schedulers zu kucken. Der lässt allerdings auf sich warten. Wie jetzt in Kolivas‘ Blog nachzulesen ist, war er etwas überrascht vom schnellen Release und auch anderweitig mit weiterer Software beschäftigt, weswegen noch keine neue Version auf dem Tisch liegt. Das wird auch noch eine Weile so bleiben, will Kolivas doch erstmal die Auswirkungen des autogroup-Patches beobachten.

Problem mit Schreiben auf externe USB-Platte

Hmm, immer noch keinen Hinweis auf den Verursacher des usb-Schreibraten-Einbruchs hier. Die erste Vermutung mit Laufzeit und Speicherauslastung ist falsch stellt nur einen Teil des Problems dar. Allerdings macht der Prozess-Scheduler einen (riesigen) Unterschied: mit dem speed-king BFS bricht die Schreibrate auf ca. 1 MB/s ein, mit dem Standard-Scheduler CFS geht es „nur“ bis auf 10-20 MB/s zurück. Mittlerweile such ich in die Richtung devkit-disks und gvfsd. Ersterer stürzt hier nach dem Starten (ich hab keine Ahnung, wer den überhaupt startet :/) mit Getöse ab.
Der Artikel lag jetzt schon eine Weile in der Kiste, aber mittlerweile hat sich ein besseres Bild ergeben. Einerseits spielt der Prozess-Scheduler keine wirkliche Rolle, da der Fehler auch mit dem Standard-Scheduler auftaucht. Der Einbruch der Schreibrate muss eine zentralere Ursache haben. Ein kleiner Thread auf der Mailingliste der Kernel-Entwickler deutet darauf hin, dass es mehrere Leute mit diesem Problem gibt. Leider endet die Diskussion dort auch sehr schnell wieder ohne einen Hinweis auf eine mögliche Lösung.