Monday, May 22, 2006

Please don't me-too on bugs I blog

On one of the Launchpad bugs I blogged, there have been a few me-too posts saying Yeah, this problem sucks. Let's fix it. Please do not do this. When I blog about a bug, I have two goals. First, it allows people reading my blog to get an idea of what issues are being looked into in the performance front. If you are interested in our progress, you should feel free to subscribe to the bugs. Subscribing can be viewed as a vote for the bug. Second, I'd like to highlight some of the easy wins to the developer community. Commenting on a bug saying I wish you would fix this helps nobody, and increases the time people have to spend on bugzilla. Please don't do it, or else I'll have to stop blogging bugs.

Sunday, May 21, 2006

Performance: The Good, The Bad, And The Ugly

The Good

  • The latest Dapper betas are starting up GNOME with less than 95 MB of ram. This is really impressive. Everyone involved in this should feel really good about it.
  • I think we're making good progress in terms of startup memory usage in general. In the next round of distros, I'm willing to bet we can bring the GNOME startup cost to about 85 MB. This will result in startup time reductions for everyone (even those with 1 GB of ram) and will be very important for low-memory users

The Bad

  • My box wastes 3.4 mb of private dirty ram to load hpssd, some sort of HP printing thing. I don't have a HP printer. Even if I did, why does 3.4 mb of stuff need to be loaded? This piece of software simply needs fixing. There's already a bug on this in launchpad.
  • Evolution sees it fit to launch evolution-exchange-storage just because the Exchange plugin is installed. This wasts 1.6 mb of private dirty ram. I personally think distributions should remove evolution-exchange from the default install set until this is fixed. Exchange users are likely using managed distros. Those people can install the plugin along with their other configurations. I filed a bug for Ubuntu to remove this from the default install. I also filed a Evolution bug.
  • The way Ubuntu uses gettext to translate gnome-panel items caused 1.2 MB of memory to be used

The Ugly

  • We load way too many processes at startup. nm-applet, gnome-volume-manager, gnome-power-manager, etc. All of these are loading must of the same stuff in their address space. I think we need to have some shared infrastructure for desktop plugins that listen for some sort of event and then take action on it. These are all small, simple tasks that should be in one process.
  • Firefox, Evolution, and OpenOffice are still taking much more memory than they should. We may be reaching the point of diminishing returns in desktop startup memory. We will need to turn our focus to these apps.

Saturday, May 20, 2006

Life as a Noogler

It's the end of my first week at Google. It was a fairly mundane week. The first day I set a password, got a Google badge, and filled out forms (they have a very nice automated system that made filling out 16 forms a quick job). The food is, simply put, fantastic. A typical Google lunch would be a $20 dinner. The menu at Charlies, Google's primary eating establishment, has a wide varity of selections. The snacks are just as good. It's like I'm living in Whole Foods.

There are a few things I'm getting used to at Google. It's really different than the world I'm used to. The oddest thing is how hush hush everything is. Every meeting starts out with "this is confidential". Sure, at Novell I had to deal with some things that were under NDA. In Google, you presume all knowledge is under NDA by default. Second, everyone at Google is new, or so it seems. When a social event is done, it seems like a common exercise is for people to raise their hand if they are new. A large number of people do this. The introductory training sessions are huge. Google is growing at a rapid rate, it's really exciting.

One of the most exciting parts of being at Google is the fun stuff to explore. Interns have access to almost all of the Google code base (interns fall into a bucket called nonconfs who have a few restrictions, such as not being able to see the pagerank code). It's hard to resist the urge to explore code when there is work to be done.

In other news: GStreamer was loading too many plugins in each process. This caused a few extra MB of private dirty memory for gstreamer using programs, like the settings daemon and mixer_applet2. This should be fixed now.

ps noogler == new googler

Friday, May 12, 2006

Google Trends

Google Trends is a really cool service. In case you don't read Slashdot, it gives you stats on who searches for what. Some are rather interesting, for example, you can find out what the popular Linux distros are in different parts of the world.

suse   fedora   ubuntu   debian   
Around the World

In the US

In Germany

Google Trends also has great tastes in education.

Carnegie Mellon University   Massachusetts Institute of Technology

Tuesday, May 09, 2006

Track down your first leak!

Now that gnome-system-monitor gives useful information, I've been keeping it open quite a while. There is pretty clearly a slow memory leak. The heap grows by just keeping it open (i've been having it in the process view). You need it open over a period of a few hours to notice the leak. I first saw it after leaving it on over night.

Want an easy way to get your hands dirty with performance? This is your chance. I've filed the bug as #341175. Here is the plan of action:

  1. Reproduce the bug, make sure you can see it. I'm using GNOME 2.14, as it is packaged on Dapper.
  2. Run G-S-M under valgrind. I like to use the following flags valgrind --num-callers=20 --leak-check=yes --show-reachable=yes --leak-resolution=high gnome-system-monitor. This will generate a large dump file, because it showes stuff that's still reachable. However, this will help you if gsm retains pointers to memory, but just doesn't use it.
  3. Figure out who's to blame
  4. Patch it

If you complete any of these steps, please update your progress in the bug report. Again, this is a great chance for somebody new to performance work to get involved. If you need help, go to #performance on IRC, and one of the performance hackers will help you.

Talking of performance masters, Ubuntu users should thank Sebastien Bacher. The fair seb128 checked in a patch that puts many of the gnome-panel applets in process. This saves a good amount of ram. Thanks Sebastien!

USB Wireless Help

If you have experience using a USB wireless adapter on Linux, I'd really appreciate an email (bmaurer+usbwifi@andrew.cmu.edu). I've been having quite a bit of trouble finding something supported. Many thanks!

Thanks to those who responded. Responses I got, by chipset: prism, atmel (reported to require some hacking to get working), Ralink rt2570. One person recommened SWEEX Usb WLAN LC100010, saying it worked out of the box. Again, thanks for the quick help!

Monday, May 08, 2006

Breaking news: g-s-m now gives useful information

Tired of guessing what 20 MB of RSS really means? Want numbers that give you statistics that aren't lies. Wait no longer. With a simple patch gnome-system-monitor version 2.14.2 gives useful information when combined with a modern kernel (in FC5, Ubuntu Dapper, or SUSE 10.1).

This new statistic is the Writable Memory column in gnome-system-monitor. You may have to modify your preferences to expose this. This column gives you the private dirty RSS, the memory statistic which I've talked about in previous posts. This is the amount of memory that is private to your process, modified from the on disk version, and loaded into memory. The number is a very good indication of how much memory you are using.

Note how the Writable Memory column is less than the traditionally used RSS. This is becaused shared rss is not taken in to account.

I'd like to propose that we make One True Statistic for g-s-m: writable memory + X memory. This is an very accurate accounting of memory usage. I think it's as good as we can get without further kernel patches.