Windows 7 RC on ThinkPad W500

Today I replaced Vista (32-bit) on my Thinkpad W500* with shiny new Windows 7 RC (64-bit). Now just waiting for Fedora 11 to be released for dual boot with Windows – yeah, sometimes Virtual Machine is not enough! In summary, Win7 is just awesome! Installation went smooth. Post-install some problems I faced: Switchable graphics didn’t work. However, ATI card works normally with switchable graphics driver (for Vista64) from Lenovo site. But since switchable graphics does not work, you have to set BIOS to use Discrete Graphics as default. [Read More]

ccache to speed-up Linux kernel compile

In case you are unfamiliar with ccache, its a “compiler cache”. Compiling is primarily CPU intensive task. So, ccache caches compiled objects - so next time we compile same code, it reuses these objects thereby significantly speeding-up compilation. I need to recompile Linux kernel usually several times a day, with different permutations of config settings. This almost forces a ‘make clean’ or ‘make mrproper’ which deletes all compiled objects in build tree and then we have to rebuild everything all over again. [Read More]
linux 

SLOB memory allocator

Linux kernel has few SLAB allocator variants included: SLAB, SLUB and SLOB. Of these, SLOB is especially meant to be used on embedded devices – it tries to be more memory space efficient than other SLAB variants. Yesterday, I had a detailed look at SLOB allocator for possible use in compcache poject and found it unacceptable for the purpose. I did it in response to feedback on xvmalloc allocator – as part of compcache patches posted of inclusion in mainline Linux kernel: http://lkml. [Read More]
linux 

Tag files on windows

All GMail addicts know power of tags! Surprisingly, today’s systems have none/limited tag functionality for files. Fortunately I found this freeware for windows which lets you tag almost any filetype. Interface is really good with shell integration and search based on tags is fast too. A real life saver!

You can get it from: http://www.tag2find.com/

Anti-tip of the month

Very old but still as relevant… and very interesting too! Directly go to “anti-tip” section of this article. “The moral of the story is: don’t get tricky. C programmers often try to minimize the number of lines of C in their program without consideration for what the compiler will generate. When in doubt, write clear code and give the optimizer a chance to maximize performance. Look at the compiler output. Your code will be easier to debug and probably faster too. [Read More]

Fedora 10 instability issue solved!

One of my Fedora 10 systems used to freeze very frequently. After lot of looking around I found its because of “KWin Composing” which gives OpenGL driven special effects for desktop. Unfortunately, Linux has always been bad at radeon drivers, so it better to disable these effects especially if you have radeon video cards.

in ~/.kde/share/config/kwinrc:

in [Compositing] section change Enabled=true to Enabled=false.

Reboot after this change. Now I never get any system freeze - as is expected from solid Linux system :)

linux 

Difference Engine - Harnessing Memory Redundancy in Virtual Machines

Here is link to paper (pdf) (MP3) Recently I came across this paper published in OSDI ‘08. Its an extension to VMware’s page-sharing and shows some amazing and hard to believe results. VMware page-sharing mechanism scans memory for all VMs and maps pages with same contents to a single page. This achieves memory savings if multiple VMs are hosted running same OS. However, with technique discussed in this paper, we find pages that are nearly same. [Read More]

RAM is not enough - Memory Compression!

This is my first post and what else I could start with! Memory compression has been my pet project since last 2 years. It adds a compression layer to swap path – whatever OS swaps out will be compressed and stored in memory itself. This is huge win over swapping to slow hard-disks which are typically used for swapping. Biggest challenges are what to compress? how much to compress? how to manage compressed blocks? [Read More]