Monthly Archive for May, 2009

Eric Anholt: anholt @ 2009-05-29T09:18:00

Things are continuing to settle down in the Intel graphics driver. We're in the ~5th month of driver stabilization, and I think it's starting to really show.

One of the key things we've done recently is remove the old options in the 2D driver. We had proliferation problems before where everybody was running a different configuration (XAA or EXA or UXA, DRI1 or DRI2, KMS or not) to get their particular usage working well. So we'd fix someone's configuration, and break someone else's. The moment I cleaned out all that, we suddenly fixed a bunch of bugs with the path you should be using (UXA, DRI2, KMS) that had been obscured by the mess all over the driver. But the 2D driver's actually been pretty quiet -- the cool stuff is in:


commit 3da9e9d34ed7d2f5c33fd194d9dd09e15f4e51c0
Merge: 44ada1a 07f4f3e
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Fri May 29 08:48:13 2009 -0700

Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel


We've been making continual incremental improvement to the kernel code. The driver quality hit a low point around January when we were landing our last features we'd been developing over the previous year -- KMS and DRI2 in particular. A lot of it was deadline driven, and we had to land things sooner than we probably would have otherwise. But every week since then we've been turning around nice fixes and I'd like to mention just what happened this week in the kernel here:

krh fixed the swap-related corruption
This turned out to be a bug with our GTT mapping where we got some cache domain management wrong. GTT mapping is a great performance feature -- when you're uploading data to the GPU, instead of writing it to memory, flushing the CPU cache, and having the GPU access the buffer, just write it through the GPU's aperture. The streaming write performance is basically the same (it's a 50% win to a 50% loss in microbenchmarks, in the noise at a macro level), but the important thing is that it avoids sucking up your CPU's cache space for data you no longer want in the CPU's cache. If it means that your app starts fitting in L2 or L1 when it didn't before, the results can be huge.

Only, we made a mistake. When an object wasn't in the GTT aperture, touching your GTT mapping would fault the object in. We would forget to set the cache domain of the object to the GTT. If the CPU hadn't touched the pages, it worked out, or if the object had been bound to the GTT before userland started down the faulting path it worked out since userland asked to do the domain transition. But in the case of swapping of GEM objects, the CPU has the object in its cache since it was just DMAed from disk, and we silently dropped the user's GTT domain transition request because the object wasn't in the GTT domain yet. So we faulted it in, wrote some data uncached into the object, and later on down the line the CPU cache lines got flushed out to it. You ended up with old glyph data on top of your new glyph data. The solution was to do domain setting at the right time -- when the object gets bound to the GTT in the fault handler.

I fixed 8xx 3D rendering
Since around January, 8xx 3D's been in bad shape, most of it related to tiling. Daniel Vetter came along in March and fixed it up pretty significantly -- the untested port of userland stuff to the kernel had been quite wrong. Only, it turned out that Daniel's stuff was also a mis-translation of the working userland code to the kernel, and since he didn't have the docs it wasn't as easy to debug as it should be. I did have the docs, so after a day of sitting down and investigating this model bug report comment by Daniel, I had a fix for the kernel for stride issues, and a fix for a Mesa regression for resizing issues.

We're still working on getting docs for these old chipsets out, so that people don't need to get blocked on us. Sadly, it's slow going -- our group doesn't have the authority to do release the docs, so we have to convince other groups (who have other business to be doing) to spend their time going through the process to get the docs released.

I applied a big workaround for 865 cache flushing.
There's something weird about the 865. People that have been following our development probably know a bit about how we do weird cache management things. In particular, for getting an object in the CPU cache accessible by the GPU, we map each page of the object to the CPU, clflush each cache line of the page, then write to a magic register to flush the chipset's cache of flushed CPU cachelines out to memory, at which point the GPU can actually see them. This works beautifully (and much faster than using kernel mechanisms to manage PTE cachability flags) on all the other hardware we have. But on the 865, if you started up X -retro, it would show that some of the little blits drawing the root weave wouldn't appear. The blits are 32 bytes each, or half a cache line, and generally they'd be missing in groups of two. It's as if cache lines didn't get flushed, and the GPU saw zeroes (the original contents of the page) instead of the new values containing blit commands.

krh did a bunch of experimenting, and nothing else we came up with helped except for wbinvd. So when we're CPU cache flushing the objects on 865, we now do wbinvd instead of mapping pages and clflushing them, and the desktop appears to be stable again.

After some more investigation of docs, I've got a couple more experiments to try, but at least 2.6.30 should have working 865 support.

So, that's it, folks. One week of kernel fixes, and we've got rendering and stability improvements across the board. I'm hoping next week I get do do work, I can sit down and figure out the memory leak with GL compositing -- we just got a simple testcase posted on the mailing list that's supposed to show an actual leak, and I want to take a look at it soon.

John Baldwin: Using svk and svn to Maintain a FooBSD

Several of the companies I have worked for have used a modified version of FreeBSD for various tasks. Generally these modified versions of FreeBSD are given their own name. Hence “FooBSD”. My first attempt at doing this consisted of leaving local patches in a CVS checkout and dealing with conflicts when updating from one branch [...]

Giorgios Keramidas: BEST Patras: ΔιημεÏ?ίδα Τεχνολογίας στο Πανεπιστήμιο ΠάτÏ?ας

Το BEST ΠάτÏ?ας είναι ένας από τους πιο εντυπωσιακά οÏ?γανωμένους πανευÏ?ωπαϊκοÏ?Ï‚ συλλόγους φοιτητών. Ο σÏ?λλογος είναι μη κεÏ?δοσκοπικός, μη πολιτικός και εθελοντικός οÏ?γανισμός με μέλη 64 πανεπιστήμια της ΕυÏ?ώπης.

Οι δÏ?αστηÏ?ιότητες του συλλόγου έχουν ως στόχο, μεταξÏ? άλλων, τη γνωÏ?ιμία και την Ï€Ï?οώθηση της συνεÏ?γασίας μεταξÏ? των φοιτητών στα Πολυτεχνεία της ΕυÏ?ώπης, και πεÏ?ιλαμβάνουν ανταλλαγές φοιτητών, σεμινάÏ?ια, πολιτιστικές και τεχνολογικές εκδηλώσεις, και πολλά άλλα Ï€Ï?άγματα, τα οποία σίγουÏ?α δε με φτάνει ένα blog post να τα γÏ?άψω όλα.

ΣήμεÏ?α και αÏ?Ï?ιο, λοιπόν, το τοπικό τμήμα του BEST στην ΠάτÏ?α διοÏ?γανώνει μια διημεÏ?ίδα με θέμα την τεχνολογία των υπολογιστών. Στο Ï€Ï?όγÏ?αμμα πεÏ?ιλαμβάνονται ομιλίες για Ï€Ï?ωτοποÏ?ιακές και ενδιαφέÏ?ουσες χÏ?ήσεις της τεχνολογίας, τόσο μέσα στο Πανεπιστήμιο της ΠάτÏ?ας όσο και έξω από αυτό, παÏ?ουσιάσεις σχετικά με την ασφάλεια των υπολογιστών, το ανοιχτό και ελεÏ?θεÏ?ο λογισμικό, και ένα workshop με Ï€Ï?ακτικό χαÏ?ακτήÏ?α, σχεδιασμένο για να δώσει την ευκαιÏ?ία στους φοιτητές του Πανεπιστημίου της ΠάτÏ?ας να αποκτήσουν “hands on” εμπειÏ?ία με μοντέÏ?νες τεχνολογικές εφαÏ?μογές.

Μία από τις σημεÏ?ινές παÏ?ουσιάσεις θα γίνει από εμένα και τον Κωνσταντίνο Τόγια, με θέμα το ανοιχτό και ελεÏ?θεÏ?ο λογισμικό. Ο Κωνσταντίνος είναι από τους πιο ενεÏ?γοÏ?Ï‚ υποστηÏ?ικτές του Ubuntu Linux στην ΠάτÏ?α και ετοιμάσαμε μαζί μια παÏ?ουσίαση με κεντÏ?ικοÏ?Ï‚ άξονες 2-3 βασικά Ï€Ï?άγματα τα οποία πιστεÏ?ουμε ότι είναι ενδιαφέÏ?οντα για κάποιον που είναι φοιτητής στο Πανεπιστήμιο ΠάτÏ?ας, έχει ÏŒÏ?εξη να ασχοληθεί είτε σαν απλός χÏ?ήστης ή ακόμα και σαν Ï€Ï?ογÏ?αμματιστής σε έÏ?γα ανοιχτοÏ? και ελεÏ?θεÏ?ου λογισμικοÏ?, και θέλει να μάθει πώς, πότε, που και με ποιόν μποÏ?εί να ξεκινήσει κάτι τέτοιο.

Η διημεÏ?ίδα, και κατά συνέπεια όλες οι παÏ?ουσιάσεις, είναι ανοιχτή στο κοινό και θα φιλοξενηθεί στο ΣυνεδÏ?ιακό ΚέντÏ?ο του Πανεπιστημίου ΠάτÏ?ας σήμεÏ?α, ΔευτέÏ?α 25 ΜαÎ?ου, και αÏ?Ï?ιο, ΤÏ?ίτη.

Αν σας φέÏ?ει ο δÏ?όμος σας από την ΠάτÏ?α, και έχετε ÏŒÏ?εξη να δείτε μία από τις πιο ενεÏ?γές, ζωντανές και ενθουσιώδεις ομάδες του Πανεπιστημίου, την ομάδα του BEST, να μάθετε ή να συζητήσετε για το ανοιχτό και ελεÏ?θεÏ?ο λογισμικό ή για κάποιο από τα άλλα ενδιαφέÏ?οντα θέματα, σας πεÏ?ιμένουμε όλους εκεί :-)


Posted in Computers, Conferences, Events, Free software, FreeBSD, GNU/Linux, Linux, Open source, Software Tagged: Computers, Conferences, Events, Free software, FreeBSD, GNU/Linux, Linux, Open source, Software

Gleb Kurtsou: Updated l2filter patches

Patches include fix for ether-only address handling in pf and should apply cleanly to recent sources (7-STABLE and 8-CURRENT)

l2filter-current-2009-05-15

l2filter-stable-2009-05-15

Florent Thoumie: Something that’s annoying

... losing your passwd/group files when you don’t have a (recent) backup.

Well, it is especially annoying when you’re connected remotely and don’t have a root shell. When you have root privileges, here’s your solution:

cd /var/db/pkg
for i in `grep useradd */+INSTALL | cut -d: -f1`; do
    env PKG_PREFIX=/usr/local/ sh $i ${i%%/*} PRE-INSTALL;
    env PKG_PREFIX=/usr/local/ sh $i ${i%%/*} POST-INSTALL;
done

Obviously that can be done in one line, I just wrapped it to make it easier to read.

You’re welcome.

Share and Enjoy: Digg del.icio.us Facebook Google Bookmarks Twitter

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Will Backman: bsdtalk173 – A Few FreeBSD Core Team Members

Interview with a few of the FreeBSD Core Team members at BSDCan 2009: Robert Watson, Brooks Davis, Hiroki Sato, Philip Paeps, and George V. Neville-Neil. We talk about the recent 7.2 release, and what is coming for 8.

File Info: 38Min, 18MB.

Ogg Link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk173.ogg

Florent Thoumie: Moonshine enters FreeBSD Ports

I’ve had the port locally for some time, but since the tree was frozen and there was no rush to commit it, I forgot about it. Anyway, here it is!

Also, I added the pulseaudio option (on by default) to the moonlight port, which makes the moonshine experience much more interesting.

When everybody’s talking about Moonlight 2.0 Preview, we’re finally getting somewhere with 1.0 :-)

Share and Enjoy: Digg del.icio.us Facebook Google Bookmarks Twitter

Related posts:

  1. Moonlight 1.0 coming to a ports tree near you I was blogging about it the other day, and...
  2. Moonlight on FreeBSD, bling bling, whizzzz The title may be a bit too exciting, but...
  3. X.org 7.4 merged in the ports tree There. Hopefully the upgrade should be a breeze. As...

Related posts brought to you by Yet Another Related Posts Plugin.

Florent Thoumie: FreeBSD(ish) blogs get some TLC

Quick summary of the changes:

  • WordPress MU updated to 2.7.1

  • Automatic upgrade is fixed now, so hopefully I’ll be upgrading wpmu and the plugins faster from now on

  • K2 theme updated: if you’re planning on using it, I recommend activating Advanced Navigation in K2 options and also use Widgets (both in Appearance menu) or your sidebar will look funny.

  • New plugins: All in One SEO (search engine optimization), Sociable (share on social websites), WPhone (iphone friendly css), Akismet (anti-spam), Twitter (display twitter feeds)

  • Removed plugins: Iwphone (superseded by WPhone)

  • Plugins considered for removal (shout if you want to keep them): Sol-Digg and Sol-Delicious (superseded by Sociable), Spam Karma 2 (superseded by Akismet)

Also I’m having issues with bundled OpenID delegation support, so I’ll keep the third-party plugin for now. As usual, send me an email if you would like new themes/plugins, or if something got broken.

Share and Enjoy: Digg del.icio.us Facebook Google Bookmarks Twitter

Related posts:

  1. Waiting for WordPress-MU 2.7 With WordPress 2.7 out of the door for a...
  2. blogs.freebsdish.org updated to WordPress-MU 2.7 Apparently I missed the release last week, but it...
  3. blogs.freebsdish.org updated to wordpress-mu 2.8.2 WordPress-MU 2.8.2 fixes a XSS vulnerability and a few...

Related posts brought to you by Yet Another Related Posts Plugin.

Philippe Audeoud: Ampache 3.5

Since I discovered ampache, I can't live without. It's really a great tool to listening music everywhere.
On 5th May, it was 8th Birthday of Ampache. So... Happy Birthday Ampache and thanks Karl!
You can have a look to new features on Ampache :: Developer Blog. Try it and enjoy it!

Oleksandr Tymoshenko: ohloh and FreeBSD

ohloh seems to be unable to grind FreeBSD's svn repo. I've been watching for its efforts for several days now and commits progress meter resets from time to time:
https://www.ohloh.net/p/freebsd/enlistments

FreeBSD Java Project News: OpenJDKâ„¢ 6 updated to Build 16.

Brian Gardner has released an update of the OpenJDKâ„¢ 6 port to Build 16. See the JDK 1.6.x page for more details.

Jose Alonso Cardenas Marquez: freepascal 2.2.4 and lazarus 0.9.26.2

Today (May 4th), I updated freepascal and lazarus to newer version (2.2.4 and 0.9.26.2).

Now, The Lazarus RAD can be compiled using QT4 interface instead of GTK1 or GTK2. The QT4 interface depends of QT4 bindings for freepascal (x11-toolkits/qt4pas) available on ports tree too ( I comitted it time ago ).

See a Lazarus/QT4 screenshot on FreeBSD at :

http://people.freebsd.org/~acm/screen/lazarus-freebsd.png

Next, I’ll add some lazarus-based apps available on the internet, maybe I’ll need to create a bsd.lazarus.mk file for it.

Enjoy it :)

Jose Alonso Cardenas Marquez: Gambas2 port on FreeBSD

Last weekend,  I was working in gambas2 port for FreeBSD and I have good news about that. I have finished to make  around of 29 ports excluding v4l (video4linux)  and qte (QT embedded) components. The list of gambas2 ports will be the following:

archivers/gambas2-gb-compress-bzlib2
archivers/gambas2-gb-compress-zlib
audio/gambas2-gb-sdl-sound
databases/gambas2-gb-db-firebird
databases/gambas2-gb-db-mysql
databases/gambas2-gb-db-postgresql
databases/gambas2-gb-db-odbc
databases/gambas2-gb-db-sqlite2
databases/gambas2-gb-db-sqlite3
devel/gambas2-gb-pcre
devel/gambas2-gb-corba
devel/gambas2-gb-sdl
editors/gambas2-ide
ftp/gambas2-gb-net-curl
graphics/gambas2-gb-opengl
graphics/gambas2-gb-image
graphics/gambas2-gb-gtk-svg
graphics/gambas2-gb-pdf
lang/gambas2
lang/gambas2-base
lang/gambas2-components
mail/gambas2-gb-net-smtp
net/gambas2-gb-net
security/gambas2-gb-crypt
textproc/gambas2-gb-xml
x11/gambas2-qt-kde
x11/gambas2-gb-desktop
x11-toolkits/gambas2-gb-gtk
x11-toolkits/gambas2-gb-qt

I expect add it to ports tree as soon as possible, but I need to finish some things before to commit them (tests on tinderbox). I put a screenshot of my desktop running gambas2 at:

http://people.freebsd.org/~acm/screen/gambas2-freebsd.png

Gambas2 website

http://gambas.sf.net

FreeBSD website

http ://www.freebsd.org

Enjoy it :)

FreeBSD in the Press: FreeBSD 7.2 released, now with Superpages, The H, djwm

An brief article on FreeBSD 7.2.

Giorgios Keramidas: Announcement: FreeBSD 7.2 release

The FreeBSD 7.2 release is out!

Ken Smith has posted the official email announcement of 7.2-RELEASE earlier today:

http://lists.freebsd.org/pipermail/freebsd-announce/2009-May/001253.html

This is the third minor release in the 7.X branch of FreeBSD development, and it includes many bug fixes, improvements, and a few nice new features:

  • Support for fully transparent use of superpages for application memory
  • The kernel virtual address space has been bumped to 6 GB on amd64 systems. This improves performance for large kmem consumers, i.e. the zfs(8) adaptive replacement cache (arc)
  • Support for multiple IPv4 and IPv6 addresses for jails
  • The integrated csup(1) source update utility now support CVSmode, making it possible to ftech full CVS mirrors of remote CVS repositories
  • GNOME has been updated to version 2.26 and KDE to version 4.2.2
  • The sparc64 build now supports UltraSPARC-III processors

Many other updates to userland tools have been backported from the CURRENT branch. For a full list of the improvements and bug fixes see the 7.2 release notes

The full release notes and last minute errata are available online at:

The 7.2 release marks another important milestone in the 7.X release series. It is the continuation of the excellent 7.1 release. We hope that the improvements of the 7.2 release, especially the jail and superpage support, will make it an even more attractive platform for our userbase.

Happy upgrading and enjoy the latest FreeBSD 7.X release!


Posted in Computers, Free software, FreeBSD, Open source, Software Tagged: Computers, Free software, FreeBSD, Open source, Software

Giorgios Keramidas: Spawning Fetchmail with a Minimal Environment

I often ran fetchmail in the background, in “daemon mode”, to keep fetching my email from multiple accounts and piping it all through the Sendmail instance running as the local MTA of my laptop.

But I don’t always remember to run fetchmail before launching GNOME or before “polluting” my shell’s environment with dozens of environment variables that may be either useless or even mildly dangerous for a long running process like fetchmail.

So I started making a habit out of starting fetchmail under a relatively minimalistic env(1) invocation like this one:

% env -i LANG='C' LC_ALL='C' \
    HOME="${HOME}" TERM='dumb' \
    MAIL="${MAIL}" TMPDIR="${TMPDIR:-/tmp}" \
    PATH='/bin:/usr/bin:/usr/local/bin' fetchmail -a -K -d 101

The env -i start of this command clears all environment variables from the current shell, and then I copy only a small set of environment values from the current shell to the env-subprocess that fetchmail will run under.

Now I feel much safer about a fetchmail process running hours or even days in the background. Even if I restart my desktop session a few times, or I decide to experiment a bit with alternate environments, I know that fetchmail will be running with a working and very minimal set of environment options.


Posted in Computers, Email, Free software, FreeBSD, GNU/Linux, Linux, Open source, Security, Software Tagged: Computers, Email, Free software, FreeBSD, GNU/Linux, Linux, Open source, Security, Software

FreeBSD in the Press: FreeBSD 7.2 Review: Improved Virtualization, nixCraft, Vivek Gite

Coverage of the new jail features in FreeBSD 7.2.

Oleksandr Tymoshenko: singleuser on routerstation

http://people.freebsd.org/~gonzo/mips/routerstation.log

Some issues still pending though. Cache management is major one. Things seemed to work fine in emulation but backfired into face with real hardware. I ran into several "random" bugs that were narrowed down to caches. More to go :( Also ethernet driver performance is low but it's easier then hunting down ethereal cache matters. Or so I think.

This weekend will be dedicated to making openocd work with routerstation, learning debugging and profiling techniques for MIPS hardware and improving FreeBSD/MIPS pieces of DDB.