Monthly Archive for May, 2009
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.
Το 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
Patches include fix for ether-only address handling in pf and should apply cleanly to recent sources (7-STABLE and 8-CURRENT)
... 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:
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
File Info: 38Min, 18MB.
Ogg Link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk173.ogg
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
Related posts:
- Moonlight 1.0 coming to a ports tree near you I was blogging about it the other day, and...
- Moonlight on FreeBSD, bling bling, whizzzz The title may be a bit too exciting, but...
- 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.
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:
Related posts:
- Waiting for WordPress-MU 2.7 With WordPress 2.7 out of the door for a...
- blogs.freebsdish.org updated to WordPress-MU 2.7 Apparently I missed the release last week, but it...
- 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.
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!
https://www.ohloh.net/p/freebsd/enlistments
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
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
FreeBSD website
Enjoy it
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
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
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.