<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7976757727537262041</id><updated>2012-02-16T03:59:14.557-08:00</updated><category term='Ext4'/><category term='systemtap'/><title type='text'>Random Scribbling</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default?start-index=101&amp;max-results=100'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>156</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3040200552068488263</id><published>2010-09-28T02:48:00.000-07:00</published><updated>2010-09-28T02:48:45.953-07:00</updated><title type='text'>Tools</title><content type='html'>Here is the list of the tools that I use on a daily basis. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
a) awesome Window Manager  http://awesome.naquadah.org/ &lt;br /&gt;
&lt;br /&gt;
b) GNU Emacs editor http://www.gnu.org/software/emacs/ &lt;br /&gt;
&lt;br /&gt;
c) notmuch Mail client http://notmuchmail.org/ &lt;br /&gt;
&lt;br /&gt;
d) iceweasel/google chrom. I would completely switch to google chrome if i can find a replacement to iceweasel scrapbook addon &lt;br /&gt;
&lt;br /&gt;
e) GNU Screen http://www.gnu.org/software/screen/ &lt;br /&gt;
&lt;br /&gt;
f) Gnome-do http://do.davebsd.com/ &lt;br /&gt;
&lt;br /&gt;
g) hamster-applet http://projecthamster.wordpress.com/ (planning to switch to emacs org-mode)&lt;br /&gt;
&lt;br /&gt;
h) gtg http://live.gnome.org/gtg (planning to switch to emacs org-mode)&lt;br /&gt;
&lt;br /&gt;
i) GNU global http://www.gnu.org/software/global/ &lt;br /&gt;
&lt;br /&gt;
j) Git version control http://git-scm.com/ &lt;br /&gt;
&lt;br /&gt;
k) stgit http://www.procode.org/stgit/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3040200552068488263?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3040200552068488263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3040200552068488263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3040200552068488263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3040200552068488263'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2010/09/tools.html' title='Tools'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6795096975844108507</id><published>2010-02-04T10:07:00.000-08:00</published><updated>2010-02-04T10:07:12.619-08:00</updated><title type='text'>debug-btrfs (btrfs file system debugger)</title><content type='html'>One of the easiest way to learn any specific file system layout is to write tools that can read the layout in user space. I started with &lt;a href="http://lwn.net/Articles/226671/"&gt;ext4migrate&lt;/a&gt; for ext4. Now I am writing &lt;a href="http://article.gmane.org/gmane.comp.file-systems.btrfs/4730"&gt;debug-btrfs&lt;/a&gt; for btrfs file system. Hope this will be useful for others too. &lt;a href="http://btrfs.wiki.kernel.org/index.php/Main_Page"&gt;Btrfs&lt;/a&gt; is a new copy on write filesystem for Linux and it makes extensive use of &lt;a href="http://en.wikipedia.org/wiki/Btrfs"&gt;btrees&lt;/a&gt;. Luckily Chris Mason had done all the hard work of writing the library for getting different file system objects. So writing tools is just a matter of figuring out what you should look for in the tree.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6795096975844108507?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6795096975844108507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6795096975844108507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6795096975844108507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6795096975844108507'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2010/02/debug-btrfs-btrfs-file-system-debugger.html' title='debug-btrfs (btrfs file system debugger)'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2552279937346193327</id><published>2010-02-04T08:55:00.000-08:00</published><updated>2010-02-04T08:55:50.174-08:00</updated><title type='text'>Rich-acl patches posted</title><content type='html'>You can find the patches &lt;a href="http://lwn.net/Articles/372092/"&gt;here &lt;/a&gt;. &lt;br /&gt;
&lt;br&gt;&lt;br /&gt;
Patches implements a new acl format for linux so that we can have better acl interoperability with CIFS and NFSv4 acl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2552279937346193327?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2552279937346193327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2552279937346193327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2552279937346193327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2552279937346193327'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2010/02/rich-acl-patches-posted.html' title='Rich-acl patches posted'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3790307264340880153</id><published>2010-01-14T23:33:00.000-08:00</published><updated>2010-03-06T03:28:45.713-08:00</updated><title type='text'>channel select plugin for xchat</title><content type='html'>This works with xchat. I was not able to get the /gui focus command to work on xchat-gnome.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:python"&gt;__module_name__ = "chan"
__module_version__ = "0.1"
__module_description__ = "Channel select plugin"

import xchat

def chan_select(word, word_eol, userdata):
    if len(word) &amp;lt; 2:
        print "Second argument must be the channel name"
        return xchat.EAT_ALL
    else:
        context = xchat.find_context(channel=word[1])
        if context:
            context.command("gui focus")
        else:
            print "Channel not found " + word[1]

    return xchat.EAT_ALL

xchat.hook_command("chan", chan_select, help="/chan channel-name")
print "Channel select plugin loaded"
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Update: Found this&lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=600548"&gt; https://bugzilla.gnome.org/show_bug.cgi?id=600548&lt;/a&gt; . So should work with the next release of xchat-gnome&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3790307264340880153?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3790307264340880153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3790307264340880153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3790307264340880153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3790307264340880153'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2010/01/channel-select-plugin-for-xchat.html' title='channel select plugin for xchat'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2546717790028353535</id><published>2009-11-13T00:27:00.000-08:00</published><updated>2009-11-13T00:32:57.264-08:00</updated><title type='text'>linux kernel jbd2 notes</title><content type='html'>Sharing some of the notes taken by me while looking at fs/jbd2 code earlier.

&lt;pre class="brush :plain"&gt;
Journal commit
==============

1) We start with the running transaction. (journal-&gt;j_running_transaction)

2) We change the transaction state to T_LOCKED so that nobody gets a handle
   to this transaction when we are committing the transaction.

    When we do a jbd2_journal_start we look at the transaction t_state
 and if found T_LOCKED we do wait on j_wait_transaction_locked wait
  queue.

3) If somebody already have got a handle on this transaction wait for that
   transaction to do a journal_stop.  (j_wait_updates wait queue).
  
 jbd2_journal_stop does a wakeup on j_wait_updates.

4) Discard the contents of t_reserved_list. FIXME Not sure how we
   can have something in the reserved list. We generally add items to reserved
   list when we are trying to get write access to meta data buffers. ie, via
   jbd2_journal_get_write_access. But since we are preventing a journal_start
   above not sure how we can something on reserved list. The code comment mention
   truncate. 

5) Now switch the revoke table. That means any new revoke action will add to the
   new table. The old table will be written to the journal and we want to make
   sure nobody update the old table.

6) Change the journal state to T_FLUSH

7) mark the transaction as committing  transaction 
    journal-&gt;j_committing_transaction = current_transaction

8) Mark the running transaction as NULL 
    journal-&gt;j_running_transaction = NULL;
 This would create a new transaction during the next journal_start. So at any
 time we can have one running transaction and one committing  transaction.

9) Wake up anybody waiting on the j_wait_transaction_locked wait queue. (See step 2).

10) Write the dependent data blocks of this transaction.
    Dependent data blocks are added during file system write. For example ext4_ordered_write_end
    does ext4_jbd2_file_inode which will file the inode in the transactions inode list.This implies
    in order to commit this transaction we need to ensure that all dirty pages of the inode need
    to be written to disk. That ensure that we don't have meta data on disk that point to blocks
    carrying old data.

11) Write revoke records. This will allocate a journal block of JBD2_REVOKE_BLOCK type and add
    revoke records in the journal. After writing the revoke block we add the revoke block details
    to BJ_LogCtl list. The revoke record are used during replay so that we don't replay recorded
    journal changes for specific blocks. These records are created when file system do free a blocks.
    For example ext4 calls ext4_forget on the meta data blocks freed and that does jbd2_journal_revoke.
    

12) Change the journal state to T_COMMIT

13) Loop through the meta data blocks added to the journal. We look at transaction-&gt;t_buffers. That is
    the BJ_Metadata list. The meta data blocks get added to the list after the file system have modified
    the meta data. For example ext4 calls ext4_handle_dirty_metadata after updating meta data values.
    It does jbd2_journal_dirty_metadata  which marks the journal_head-&gt;b_modified = 1  and then adds it
    to the current transaction's BJ_Metadata list, thereby removing it from the BJ_Reserved list.

14) Allocate a descriptor block (block type JBD2_DESCRIPTOR_BLOCK) if we don't have one. A descriptor block
    contain a journal_header followed by journal block tag. There can be as many journal block tag that
    can fit in a journal descriptor block. Each journal block tag will carry the block number of the file
    system that is being put into the journal. So What we have is something below.

    | journal_header_t | journal_block_tag_t 1 | journal_block_tag_t 2|......| metata data block 1 | meta data block 2|

    journal_block_tag 1 will contain information which file system block number maps to meta data block 1.

    All the descriptor blocks are added to BJ_LogCtl list of the transaction. 

15) Get a journal block for writing meta data. ( See step 14)

16) Make a copy of the meta data content into the journal block. We use frozen data if present.
    Frozen data is used when we try to modify the meta data which is already part of a committing  transaction.
    For ex: ext4_get_write_access we check whether the buffer_head already part of committing transaction.
    In detail, during do_get_write_access if we find the journal_head mapping buffer_head to be in BJ_Shadow
    list (we put buffer_heads in BJ_Shadow list when we having started the I/O to disk). We wait for the
    IO to be over. We do that by waiting  for the buffer_head flag to set BH_Unshadow. If we are not on
    BJ_Shadow list and also not on BJ_Forget list. (We are on BJ_Forget list when we have finished IO
    and are going to be added to checkpoint list) we make a copy of the existing buffer_head data to forzen
    data. This make sure what we write to the disk doesn't get modified beneath us. We also update the 
    journal_head next transaction to be the transaction in which we are making the update. This make sure
    once we are done with the I/O instead of removing the meta data block from the journal we add it back
    to the next transaction.

       We also need to make sure we update the journal metata data content in such a way that we don't
       have data matching JBD2_MAGIC_NUMBER which would make it consider as a journal internal block.So
       we do necessary data modification and capture that information in journal block tag.

17) Add the meta data buffer to BJ_Shadow list

18) Add the journal block to the BJ_IO list 

19) Start writing the journal block 

20) Wait for the dependent data block to finish writing. (See step 10)

21) Wait for the t_io_buf_list  IO to finish. These are buffers in BJ_IO list.
    they are added in step 18

22) Remove the journal blocks from the BJ_IO list

23) Remove the mapping meta data blocks from the BJ_Shadow list (t_shadow_list)

24) Add the metadata to BJ_Forget list for tracking checkpoint

25) Wake up anybody waiting on the shadow list (see step 16) 
      wake_up_bit(&amp;bh-&gt;b_state, BH_Unshadow);

26) Wait for t_log_list (BJ_logCtl) to finish IO (see step 11 and 14)

27) Now that we know that we have written everything to the journal write the commit record.
    commit record have block type JBD2_COMMIT_BLOCK.

28) Wait on commit record to finish IO.

29) Loop through the t_forget_list (BJ_Forget) and if the journal head is found dirty add to
    checkpoint list of transaction.
     
 We add meta data blocks which mapping journal blocks are already written to
 the journal to the BJ_Forget list.

30) If the meta data buffer is part of next transaction (see step 16) refile the buffer in
    either BJ_Reserved or BJ_Meta depending on whether the data is already modified or not
    (step 13)

31) If not mark the meta data block as dirty thereby exposing the data to VM (__jbd2_journal_unfile_buffer)

32) If the transaction have checkpoint list add it to the journal checkpoint transaction list.

33) As we request for space from the journal and if we find no space we write the blocks in the
    checkpoint list thereby freeing the journal space for reuse.


Journal Recovery
==============

1) Starts with commit id in journal superblock-&gt;s_sequence and with start block in journal
   superblock-&gt;s_start.

2) Read the start blocks which is the logical block number of the journal inode

3) Look at the header and find out what block type.

4) if block type is descriptor block look at the journal block tag and find the file system
   block number. (see step 14)

5) replay the journal block which is immediately following the descriptor block. Consult the
   revoke records to check whether the block should be replayed or not.

6) Do this till commit record is hit

   The layout is:
[revoke record block][ descriptor block ][data][data][descriptor block][data]..[commit]
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2546717790028353535?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2546717790028353535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2546717790028353535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2546717790028353535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2546717790028353535'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/11/linux-kernel-jbd2-notes.html' title='linux kernel jbd2 notes'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4500147406147142605</id><published>2009-09-02T09:48:00.000-07:00</published><updated>2009-09-02T09:51:47.132-07:00</updated><title type='text'>Second attempt at POSIX NFSv4 acl</title><content type='html'>Posted the RFC patch that did POSIX ACL NFSv4 client side support using sideband protocol.
&lt;br&gt;
&lt;a href="http://linux-nfs.org/pipermail/nfsv4/2009-September/011142.html"&gt;http://linux-nfs.org/pipermail/nfsv4/2009-September/011142.html&lt;/a&gt;
&lt;br&gt;
previous one which mapped the v4 acl to posix acl on the client side can be found 
&lt;br&gt;
&lt;a href="http://linux-nfs.org/pipermail/nfsv4/2009-July/010768.html"&gt;http://linux-nfs.org/pipermail/nfsv4/2009-July/010768.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4500147406147142605?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4500147406147142605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4500147406147142605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4500147406147142605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4500147406147142605'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/09/second-attempt-at-posix-nfsv4-acl.html' title='Second attempt at POSIX NFSv4 acl'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4664391412578583653</id><published>2009-09-02T08:21:00.000-07:00</published><updated>2009-09-02T08:25:06.970-07:00</updated><title type='text'>onashamsakal</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/Sp6NvkiM6RI/AAAAAAAACg0/nYhTC21HL00/s1600-h/IMG_0384.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_9fshitzU8a4/Sp6NvkiM6RI/AAAAAAAACg0/nYhTC21HL00/s320/IMG_0384.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5376890853527447826" /&gt;&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
Happy &lt;a href="http://en.wikipedia.org/wiki/Onam"&gt;onam&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4664391412578583653?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4664391412578583653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4664391412578583653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4664391412578583653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4664391412578583653'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/09/onashamsakal.html' title='onashamsakal'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/Sp6NvkiM6RI/AAAAAAAACg0/nYhTC21HL00/s72-c/IMG_0384.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1817251695093005560</id><published>2009-07-28T12:05:00.000-07:00</published><updated>2009-07-28T22:17:59.895-07:00</updated><title type='text'>emacs auto-complete and ispell integration</title><content type='html'>&lt;pre class="brush :plain"&gt;
(require 'auto-complete)
(require 'ispell)

(defvar ac-ispell-modes
  '(text-mode))

(defun ac-ispell-candidate ()
(if (memq major-mode ac-ispell-modes)
(let ((word (ispell-get-word nil "\\*")))
     (setq word (car word))
     (lookup-words (concat word "*") ispell-complete-word-dict))))

(defvar ac-source-ispell
  '((candidates . ac-ispell-candidate)
    (requires . 3))
  "Source for ispell.")

(provide 'auto-complete-ispell)

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1817251695093005560?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1817251695093005560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1817251695093005560' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1817251695093005560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1817251695093005560'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/07/emacs-auto-complete-and-ispell.html' title='emacs auto-complete and ispell integration'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6653153091636607813</id><published>2009-06-30T00:17:00.000-07:00</published><updated>2009-06-30T00:33:49.847-07:00</updated><title type='text'>emacs frame made easy in no-window mode</title><content type='html'>Now that we have separate tag stack for each frame, I wanted to have the something similar to vim tab support. Emacs &lt;a href="http://www.emacswiki.org/"&gt;wiki&lt;/a&gt; is an excellent resource for finding new emacs extensions. For tab support i found
&lt;br&gt;&lt;br&gt;
o &lt;a href="http://www.emacswiki.org/emacs/TabBarMode"&gt;tabbar mode&lt;/a&gt; &lt;br&gt;
o &lt;a href="http://www.emacswiki.org/emacs/EmacsLispScreen"&gt;elscreen&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Of the above what I wanted was elscreen. I liked elscreen because of its similarity to &lt;a href="http://www.gnu.org/software/screen/"&gt;screen&lt;/a&gt;. But getting separate tag stack for multiple elscreen window turned out to be complex. &lt;br&gt; &lt;br&gt;

The solution was to see how easy to get the emacs frame support do what i wanted. Emacs no-window-mode already allowed creating multiple frames. So what remained is to have a sane key binding that allowed creating new frames and moving between multiple frames easily. Here is what i ended up writing.

&lt;pre class="brush :plain"&gt;


(defvar frame-browse-mode-map (make-sparse-keymap)
  "Keymap used in frame-browse mode.")

(defun select-frame-1 ()
(interactive)
(select-frame-by-name "F1"))

(defun select-frame-2 ()
(interactive)
(select-frame-by-name "F2"))

(defun select-frame-3 ()
(interactive)
(select-frame-by-name "F3"))

(defun select-frame-4 ()
(interactive)
(select-frame-by-name "F4"))

(defun select-next-frame ()
(interactive)
(other-frame -1))

(defun select-previous-frame ()
(interactive)
(other-frame 1))


(define-key frame-browse-mode-map "c" 'make-frame-command)
(define-key frame-browse-mode-map "1" 'select-frame-1)
(define-key frame-browse-mode-map "2" 'select-frame-2)
(define-key frame-browse-mode-map "3" 'select-frame-3)
(define-key frame-browse-mode-map "4" 'select-frame-4)
(define-key frame-browse-mode-map "n" 'select-next-frame)
(define-key frame-browse-mode-map "p" 'select-previous-frame)

(global-set-key "\C-t" frame-browse-mode-map)
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6653153091636607813?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6653153091636607813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6653153091636607813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6653153091636607813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6653153091636607813'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/emacs-frame-made-easy-in-no-window-mode.html' title='emacs frame made easy in no-window mode'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7904453781165713350</id><published>2009-06-23T11:45:00.000-07:00</published><updated>2009-06-23T11:50:40.191-07:00</updated><title type='text'>Linux kernel and gtags changes</title><content type='html'>Linux kernel have these complex syscall indirection using macros like 
&lt;pre class="brush: plain"&gt;
SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode) 
SYSCALL_DEFINE(fallocate)(int fd, int mode, loff_t offset, loff_t len)
&lt;/pre&gt;

Getting the source code tag system to understand them is going to be difficult. ctags support regex based substitution that help to translate the above definition to sys_open and sys_fallocate. To achieve the same in global i had to patch global.

&lt;pre class="brush: diff"&gt;

diff --git a/gtags-parser/C.c b/gtags-parser/C.c
index c5653aa..635e8bd 100644
--- a/gtags-parser/C.c
+++ b/gtags-parser/C.c
@@ -143,6 +143,7 @@ C_family(const char *file, int type)
     } else if (level == 0 &amp;&amp; !startmacro &amp;&amp; !startsharp) {
      char arg1[MAXTOKEN], savetok[MAXTOKEN], *saveline;
      int savelineno = lineno;
+     char *linux_kernel;
 
      strlimcpy(savetok, token, sizeof(savetok));
      strbuf_reset(sb);
@@ -166,6 +167,12 @@ C_family(const char *file, int type)
      if (function_definition(target, arg1)) {
       if (!strcmp(savetok, "SCM_DEFINE") &amp;&amp; *arg1)
        strlimcpy(savetok, arg1, sizeof(savetok));
+      linux_kernel = getenv("LINUX_KERNEL_SOURCE");
+      if (linux_kernel &amp;&amp; !strcmp(linux_kernel, "yes") &amp;&amp;
+       !strncmp(savetok, "SYSCALL_DEFINE", 14 ) &amp;&amp; *arg1) {
+       strcpy(savetok, "sys_");
+       strncat(savetok, arg1, sizeof(savetok) - 4);
+      }
       if (target == DEF)
        PUT(savetok, savelineno, saveline);
      } else {
@@ -611,7 +618,7 @@ function_definition(int target, char arg1[MAXTOKEN])
  if (c == EOF)
   return 0;
  brace_level = 0;
- while ((c = nexttoken(",;[](){}=", c_reserved_word)) != EOF) {
+ while ((c = nexttoken(";[](){}=", c_reserved_word)) != EOF) {
   switch (c) {
   case SHARP_IFDEF:
   case SHARP_IFNDEF:
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7904453781165713350?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7904453781165713350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7904453781165713350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7904453781165713350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7904453781165713350'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/linux-kernel-and-gtags-changes.html' title='Linux kernel and gtags changes'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4744800957964907813</id><published>2009-06-23T00:31:00.001-07:00</published><updated>2009-06-23T01:44:55.462-07:00</updated><title type='text'>global/gtags support for per frame tag stack</title><content type='html'>The below patch should get you per frame tag stack.

 &lt;pre class="brush: diff"&gt;
diff --git a/gtags.el b/gtags.el
index bbe4e8a..1eb3f23 100644
--- a/gtags.el
+++ b/gtags.el
@@ -69,12 +69,6 @@
   :group 'gtags)
 
 ;; Variables
-(defvar gtags-current-buffer nil
-  "Current buffer.")
-(defvar gtags-buffer-stack nil
-  "Stack for tag browsing.")
-(defvar gtags-point-stack nil
-  "Stack for tag browsing.")
 (defvar gtags-history-list nil
   "Gtags history list.")
 (defconst gtags-symbol-regexp "[A-Za-z_][A-Za-z_0-9]*"
@@ -165,22 +159,34 @@
 
 ;; push current context to stack
 (defun gtags-push-context ()
-  (setq gtags-buffer-stack (cons (current-buffer) gtags-buffer-stack))
-  (setq gtags-point-stack (cons (point) gtags-point-stack)))
+  (let (cur-frame (selected-frame))
+  (setq gtags-buffer-stack (cons (current-buffer) (frame-parameter cur-frame 'buffer-stack)))
+  (modify-frame-parameters cur-frame `((buffer-stack . ,gtags-buffer-stack)))
+  (setq gtags-point-stack (cons (point) (frame-parameter cur-frame 'point-stack)))
+  (modify-frame-parameters cur-frame `((point-stack . ,gtags-point-stack)))))
 
 ;; pop context from stack
 (defun gtags-pop-context ()
-  (if (not gtags-buffer-stack) nil
-    (let (buffer point)
-      (setq buffer (car gtags-buffer-stack))
-      (setq gtags-buffer-stack (cdr gtags-buffer-stack))
-      (setq point (car gtags-point-stack))
-      (setq gtags-point-stack (cdr gtags-point-stack))
+  (if (not (frame-parameter (selected-frame) 'buffer-stack)) nil
+    (let (buffer point (cur-frame (selected-frame)))
+      (setq buffer (car (frame-parameter cur-frame 'buffer-stack)))
+      (setq gtags-buffer-stack (cdr (frame-parameter cur-frame 'buffer-stack)))
+      (modify-frame-parameters cur-frame `((buffer-stack . ,gtags-buffer-stack)))
+      (setq point (car (frame-parameter cur-frame 'point-stack)))
+      (setq gtags-point-stack (cdr (frame-parameter cur-frame 'point-stack)))
+      (modify-frame-parameters cur-frame `((point-stack . ,gtags-point-stack)))
       (list buffer point))))
 
+(defun gtags-get-current-buffer ()
+  (frame-parameter (selected-frame) 'g-current-buffer))
+
+(defun gtags-set-current-buffer (buffer)
+  (modify-frame-parameters (selected-frame) `((g-current-buffer . ,buffer))))
+
+
 ;; if the buffer exist in the stack
 (defun gtags-exist-in-stack (buffer)
-  (memq buffer gtags-buffer-stack))
+  (memq buffer (frame-parameter (selected-frame) 'buffer-stack)))
 
 ;; get current line number
 (defun gtags-current-lineno ()
@@ -396,9 +402,9 @@
   "Move to previous point on the stack."
   (interactive)
   (let (delete context buffer)
-    (if (and (not (equal gtags-current-buffer nil))
-             (not (equal gtags-current-buffer (current-buffer))))
-         (switch-to-buffer gtags-current-buffer)
+    (if (and (not (equal (gtags-get-current-buffer) nil))
+             (not (equal (gtags-get-current-buffer) (current-buffer))))
+         (switch-to-buffer (gtags-get-current-buffer))
       (if (not (gtags-exist-in-stack (current-buffer)))
    (setq delete t))
       (setq context (gtags-pop-context))
@@ -407,7 +413,7 @@
         (if delete
      (kill-buffer (current-buffer)))
         (switch-to-buffer (nth 0 context))
-        (setq gtags-current-buffer (current-buffer))
+        (gtags-set-current-buffer (current-buffer))
         (goto-char (nth 1 context))))))
 
 ;;
@@ -520,7 +526,7 @@
         ;; move to the context
         (if gtags-read-only (find-file-read-only file) (find-file file))
         (if delete (kill-buffer prev-buffer)))
-      (setq gtags-current-buffer (current-buffer))
+      (gtags-set-current-buffer (current-buffer))
       (goto-line line)
       (gtags-mode 1))))
 
@@ -592,7 +598,7 @@ Turning on Gtags-Select mode calls the value of the variable
  truncate-lines t
         major-mode 'gtags-select-mode
         mode-name "Gtags-Select")
-  (setq gtags-current-buffer (current-buffer))
+  (gtags-set-current-buffer (current-buffer))
   (goto-char (point-min))
   (message "[GTAGS SELECT MODE] %d lines" (count-lines (point-min) (point-max)))
   (run-hooks 'gtags-select-mode-hook))

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4744800957964907813?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4744800957964907813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4744800957964907813' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4744800957964907813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4744800957964907813'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/globalgtags-support-for-per-frame-tag.html' title='global/gtags support for per frame tag stack'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3361228340644298972</id><published>2009-06-21T09:59:00.000-07:00</published><updated>2009-06-23T01:46:17.645-07:00</updated><title type='text'>vim like -t support in emacs</title><content type='html'>&lt;pre class="brush: plain"&gt;
(defun arg-find-tag(dummy)
  (gtags-goto-tag (car command-line-args-left) "")
  (setq command-line-args-left (cdr command-line-args-left)))

(add-to-list 'command-switch-alist '( "--tag". arg-find-tag))
&lt;/pre&gt;

That would get you emacs --tag &lt;function-name&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3361228340644298972?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3361228340644298972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3361228340644298972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3361228340644298972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3361228340644298972'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/vim-like-t-support-in-emacs.html' title='vim like -t support in emacs'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2079534656997666824</id><published>2009-06-21T09:50:00.000-07:00</published><updated>2009-06-21T10:21:18.388-07:00</updated><title type='text'>She is keeping me really busy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/Sj5l1zXD9cI/AAAAAAAACck/RG7P_XNSP5A/s1600-h/DSC02476.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_9fshitzU8a4/Sj5l1zXD9cI/AAAAAAAACck/RG7P_XNSP5A/s320/DSC02476.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5349825382357136834" /&gt;&lt;/a&gt;
Primary reason you haven't seen much blog update from me for a long time was because of her. She is sooooooo cute that I always want to be around her. Arya is now 6 months old.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2079534656997666824?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2079534656997666824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2079534656997666824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2079534656997666824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2079534656997666824'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/she-is-keeping-me-really-busy.html' title='She is keeping me really busy'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/Sj5l1zXD9cI/AAAAAAAACck/RG7P_XNSP5A/s72-c/DSC02476.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7377221372532333864</id><published>2009-06-21T09:24:00.000-07:00</published><updated>2009-06-23T01:45:35.438-07:00</updated><title type='text'>Switching from vim to emacs</title><content type='html'>I decided to try emacs as the editor for all development work primarily because i was not able to find a proper source code taging system that worked with vim properly. ctags supported tag completion but lacked function reference support. Whereas cscope lacked tag completion. What motivated me to switch to emacs was the &lt;a href="http://www.gnu.org/software/global/"&gt;global&lt;/a&gt; source code tag system. vim editor's support for global is partial. vim editor needs source code changes to add a new tag file format. Another motivating factor was the ability to debug the code in the editor. That helps to use the source tag system to read code while you are in a debug session. 
&lt;br&gt; &lt;br&gt;
Now about the good and bad part of the switch. emacs key binding is really really painful. Literally, it hurts your arm if you keep using the default keybinding. I was also comfortable with vim like key binding where i had the ESC mode to give editor command and insert mode to edit. The solution was to use &lt;a href="http://www.emacswiki.org/emacs/ViperMode"&gt;viper&lt;/a&gt;. Good part, I really like the integration with global. Being able to search with normal editor commands in the search result window is really nice. Also I now have tag completion and function reference support. (But i had to patch global to get some of the required features. Will do another blog post on that). Integration with gdb is really great. In the graphics mode i can have multiple windows showing different debugger details like register dump, stack frame etc.
&lt;br&gt; &lt;br&gt;
Another thing that came in as a bonus is ability to extend editor features with a proper programming language. Though that was not a motivating factor for the switch, i now really like the fact that i can extend emacs using elisp.
&lt;br&gt;&lt;br&gt;
So all in all i am happy with the switch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7377221372532333864?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7377221372532333864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7377221372532333864' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7377221372532333864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7377221372532333864'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/06/switching-from-vim-to-emacs.html' title='Switching from vim to emacs'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5641032947992501208</id><published>2009-04-07T07:05:00.000-07:00</published><updated>2009-04-07T07:17:28.407-07:00</updated><title type='text'>Tuz  in Blue</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/SdtffnOjcyI/AAAAAAAACWo/jZJr7-97tOc/s1600-h/ibm-tuz.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 175px; height: 168px;" src="http://3.bp.blogspot.com/_9fshitzU8a4/SdtffnOjcyI/AAAAAAAACWo/jZJr7-97tOc/s320/ibm-tuz.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5321952381378982690" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5641032947992501208?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5641032947992501208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5641032947992501208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5641032947992501208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5641032947992501208'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2009/04/tuz-in-blue.html' title='Tuz  in Blue'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/SdtffnOjcyI/AAAAAAAACWo/jZJr7-97tOc/s72-c/ibm-tuz.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3078448463251866373</id><published>2008-07-26T08:19:00.000-07:00</published><updated>2008-07-26T08:21:42.074-07:00</updated><title type='text'>Ext4 OLS paper</title><content type='html'>OLS 2008 Proceedings can be found &lt;a href="http://ols.fedoraproject.org/OLS/Reprints-2008/"&gt;here&lt;/a&gt; . Ext4 paper &lt;a href="http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf"&gt;is here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3078448463251866373?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3078448463251866373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3078448463251866373' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3078448463251866373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3078448463251866373'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/07/ext4-ols-paper.html' title='Ext4 OLS paper'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6386527007496174088</id><published>2008-05-19T12:47:00.000-07:00</published><updated>2008-05-19T12:57:51.370-07:00</updated><title type='text'>orkut account deleted</title><content type='html'>I rarely used it and I guess orkut did some thing really wrong recently. Lot of spam scraps get posted to different people accounts. I got notified by many of my friends. At this point I am tempted to believe that it is an  orkut bug since I also received similar spam scraps from other friends. My first attempt was to get the scraps cleaned. But then I noticed that the  quiet a lot of junk communities got added to my account. So I decided to quit. Any way orkut is one of the google services I rarely used&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6386527007496174088?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6386527007496174088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6386527007496174088' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6386527007496174088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6386527007496174088'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/05/orkut-account-deleted.html' title='orkut account deleted'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7449187601466891949</id><published>2008-04-09T10:38:00.000-07:00</published><updated>2009-06-23T01:58:42.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ext4'/><title type='text'>Hunting the file system corruption bug.</title><content type='html'>As I was starting to enjoy the OLS paper my restless brain decided to run the latest and greatest ext4 patchqueue on all architectures ie, x86, x86_64 and powerpc.I was mostly expecting a full PASS status. But things don't always go that smooth right ?. The test failed, and that too only on powerpc. The failure happened with the new test case I added to run fsstress with falloc support.
&lt;br&gt; &lt;br&gt;
With the failed test on one hand and the paper to finish on the other I was put in a confused state and found it difficult to decide what to work on. Should i start looking at the failure ?. That could possibly jeopardize the paper due to lack of time. So I avoided looking at the failure till evening. By then I was not able to stand the thought that one of the patch that I did for fallocate could have caused the failure and it should be looked at. So I ditched the paper for the day and decided to take a look at the problem. It was not easy.
&lt;br&gt; &lt;br&gt;
fsstress have set of operations that gets picked in a random fashion for the test. So finding out which set of operations resulted in the file system corruption is a difficult task. First step involved collecting more data out of the file system. We have 1000000 operations done in the test case and the file system is 100% full. That got me more worried, because I had set of patches to handle fallocate and 100% file system full case. Now searching 1000000 operations to find out which one caused the corruption is not an easy task. So I decided to reduce the number of  operations. First step is to make the file system partially full. Created a temp file of 8.5 GB and ran the test again with less number of operation. Luckily the problem got reproduced. Total number of operations reduced to 81136. With this I started to look at the detals. The inodes which are corrupted are listed by e2fsck. First step is to dump the inode and see what is wrong.

&lt;pre class="brush: plain"&gt;
tst_extents:  stat &lt;122402&gt;
header: magic=af3 entries=512 max=1024 depth=0 generation=0
(Left 1)
(Left 0)
Inode: 122402   Type: regular    Mode:  0666   Flags: 0x80000   Generation: 447577215
User:     0   Group:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 32
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x47fba327 -- Tue Apr  8 22:23:59 2008
atime: 0x47fba31d -- Tue Apr  8 22:23:49 2008
mtime: 0x47fba327 -- Tue Apr  8 22:23:59 2008
Size of extra inode fields: 28
BLOCKS:
(245-247):2419033-2419035, (248):2419038
TOTAL: 4

tst_extents:  inode &lt;122402&gt;
header: magic=af3 entries=512 max=1024 depth=0 generation=0
Loaded inode 122402
tst_extents:  root
(Left 1)
extent: lblk 245--247, len 3, pblk 2419033, flags: LEAF 
tst_extents:  nl
(Left 0)
extent: lblk 248--248, len 1, pblk 2419038, flags: LEAF 
tst_extents:  nl
nl: No 'next' extent 
tst_extents:  
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
Well the header looks wrong, entries = 512  ?. That is pretty large. So did the tool got it wrong or is it really wrong in filesystem ? To find out i need to dump the blocks corresponding to inode. 
&lt;br&gt; &lt;br&gt;
&lt;pre class="brush:plain"&gt;
tst_extents:  imap &lt;122402&gt;
Inode 122402 is part of block group 15
        located at block 491522, offset 0x0100
tst_extents:


So we need to dump 491522 block

dd if=/dev/sda7 of=/root/log bs=4096 skip=491522 count=1

hexdump /root/log and look at offset 0x0100

....
 0000100 b681 0000 0000 0000 1da3 fb47 27a3 fb47
 0000110 27a3 fb47 0000 0000 0000 0100 2000 0000
 0000120 0000 0800 0100 0000 0af3 0200 0400 0000
 0000130 0000 0000 f500 0000 0300 0000 59e9 2400
 0000140 f800 0000 0100 0000 5ee9 2400 0000 0000
 0000150 0000 0000 0000 0000 0000 0000 0000 0000
 0000160 0000 0000 7f7c ad1a 0000 0000 0000 0000
 0000170 0000 0000 0000 0000 0000 0000 0000 0000
 0000180 1c00 0000 7c58 5c7e 7c58 5c7e 48cf 909f
 0000190 1da3 fb47 48cf 909f 0000 0000 0000 0000
 00001a0 0000 0000 0000 0000 0000 0000 0000 0000

 ....

Now where is the extent header ... ?

0000120 0000 0800 0100 0000 0af3 0200 0400 0000
&lt;/pre&gt;

That have the right magic value f30a which is EXT4_EXT_MAGIC and the number of entries is 0002 and max entries 0004
&lt;br&gt;&lt;br&gt;
So the tool is wrong. The tool is not byte swapping the values on powerpc.That also implied the extent format is not a corrupt. Rather we have a kernel bug which is adding new blocks but not updating i_size.
&lt;br&gt;&lt;br&gt;
To find different operations happened on this file we need to map the inode to file. Well luckly I am still able to mount the file system.So i can do a find
&lt;br&gt;&lt;br&gt;

find ffs4 -inum 122402 --print

&lt;br&gt;&lt;br&gt;
That listed the filname and now i can look at the fsstress log to see what all operations happened on this file ? The operation listed
&lt;br&gt;&lt;br&gt;
9/863: fallocate d1/d2d/d32/d8f/d97/d108/d9b/ffb [2041,75851] 28

&lt;br&gt;&lt;br&gt;
So how can a failed fallocate cause two extents to be allocated ? That also with not uninit extents ? May be we are doing something wrong in fallocate under file system full case. So started reading the code multiple times again and again. I was worried that one of my patch handling the file system full case is doing some thing wrong.
&lt;br&gt;&lt;br&gt;
By that time I had already hit 3.00 am and I decided to sleep on it rather than debug further.
&lt;br&gt;&lt;br&gt;
Next day morning I check my mail and finds &lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/5917"&gt;this&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;
"This may happens because of direct write. ...."
&lt;br&gt;&lt;br&gt;
It tunrs out that directIO have some issues in i_size handling with ENOSPC
&lt;a href="http://lkml.org/lkml/2006/12/18/103"&gt;http://lkml.org/lkml/2006/12/18/103&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
So i disable the directIO test from fsstress and run the tests again, and i get, "GOOD Completed Successfully"
&lt;br&gt;&lt;br&gt;
What is still missing the above is the file doesn't have any directIO operation listed in fsstress logs. There are other files which had corrupt size that had directIO operation like the below.
&lt;br&gt;&lt;br&gt;

&lt;pre class="brush: plain"&gt;
18/733: fallocate d9/ddd/f86 [481025,18486] 0
18/735: dwrite d9/ddd/f86 [679936,36864] 0
18/764: dread d9/ddd/f86 [53248,8192] 0
18/910: dwrite d9/ddd/f86 [1454080,4096] 28
18/999: dwrite d9/ddd/f86 [1798144,61440] 28


Now to find out how those two extents end up, I started looking for directIO write at 245 block. Found these three

9/816: dwrite d1/d3c/d9b/ffb [1003520,32768] 28
9/826: dwrite d1/d2d/d32/d8f/d9c/ff8 [1003520,73728] 28
9/903: dwrite d1/dc/d14/fde [1003520,4096] 28


Searching for these files in the file.list showed that

$  grep ffb fs.list | grep d9b
122402 -rw-rw-rw-  1 root root 0 Apr  8 12:53 ffs4/p9/d1/d2d/d32/d8f/d97/d108/d9b/ffb
$

So did the file got unlinked

$ grep unlink fs.log | grep ffb  | grep d9b
$
&lt;/pre&gt;
That implies some of the data is missing. For the time being i left it there to be haunted again later.
&lt;br&gt;&lt;br&gt;
That is how you fix file system corruption bugs :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7449187601466891949?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7449187601466891949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7449187601466891949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7449187601466891949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7449187601466891949'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/04/hunting-file-system-corruption-bug.html' title='Hunting the file system corruption bug.'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7283938757301422310</id><published>2008-03-31T11:58:00.000-07:00</published><updated>2008-03-31T11:59:35.951-07:00</updated><title type='text'>btrfs wiki</title><content type='html'>Chris Mason announced &lt;a href="http://btrfs.wiki.kernel.org/index.php/Main_Page"&gt;btrfs wiki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7283938757301422310?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7283938757301422310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7283938757301422310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7283938757301422310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7283938757301422310'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/03/btrfs-wiki.html' title='btrfs wiki'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-772874488456881935</id><published>2008-03-28T10:00:00.000-07:00</published><updated>2009-06-23T01:55:25.502-07:00</updated><title type='text'>Mutt vfolder</title><content type='html'>I am finding little time to code the last two days since most of the time is spent on the difficult attempt to write the Ext4 paper. I am taking more breaks in between work because the entire exercise is not fun. Being not in a mood to look at new Ext4 stuff since getting started with new stuff would mean me not completing the paper, I decided to look at some of the TODO
items i had.
&lt;br&gt;&lt;br&gt;
One of the things i was missing in mutt was the ability to search all the folders and put the search results in a temporary folder aka vfolder. The Google search found &lt;a href="http://freshmeat.net/projects/mairix/"&gt; this &lt;/a&gt;
&lt;br&gt;&lt;br&gt;
While googling I also learnt a cool bash trick
&lt;pre class="brush:plain"&gt;
func()
{
 read -p "Enter value:" $1
 echo ${!1}
 echo ${test}
}

func test

&lt;/pre&gt;

What is interesting above is, "test" is the variable name. Being able to decided the variable name runtime and store values in them seems really interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-772874488456881935?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/772874488456881935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=772874488456881935' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/772874488456881935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/772874488456881935'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/03/mutt-vfolder.html' title='Mutt vfolder'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1855002353062099965</id><published>2008-03-24T08:20:00.000-07:00</published><updated>2009-06-23T01:54:05.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='systemtap'/><title type='text'>Systemtap as a kernel learning tool</title><content type='html'>Every now and then kernel newbies would face the situation wondering how exactly the job gets done by the kernel. Ex: Today while looking at why e2fsck is considering a deleted normal symlink as fast symlink i found this.

&lt;pre class="brush:plain"&gt;
root@elm3b165:~# /usr/local/e2fsprogs/sbin/e2fsck  -f  /dev/sda5
e2fsck 1.40.8 (13-Mar-2008)
Pass 1: Checking inodes, blocks, and sizes
Fast symlink 12 has EXTENT_FL set.  Clear&lt;y&gt;?

This is because after deleting the file we have
debugfs:  stat &lt;12&gt;
Inode: 12   Type: symlink    Mode:  0777   Flags: 0x80000   Generation:
25346603
User:     0   Group:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 0   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x47e39ea3 -- Fri Mar 21 11:40:19 2008
atime: 0x47e39e9e -- Fri Mar 21 11:40:14 2008
mtime: 0x47e39e9a -- Fri Mar 21 11:40:10 2008
dtime: 0x47e39ea3 -- Fri Mar 21 11:40:19 2008
Size of extra inode fields: 28
Fast_link_dest:
&lt;/pre&gt;
What this means is, while deleting the file it is getting truncated. So deletion is not just removing the entry from the directory. That makes sense because we will also have to free the blocks corresponding to the deleted inode.
&lt;br&gt;&lt;br&gt;
Now we know that the truncation is done by ext4_truncate. But you don't find this function directly getting called from ext4_unlink. Now the hard way is to look around and find out how ext4_truncate get called from ext4_unlink or you can simply do

&lt;pre class="brush:plain"&gt;
[aneesh@jataayu ~]$ stap  a8.tap
Called ext4_unlink
0xe0941282 : ext4_unlink+0x1/0x1dd [ext4dev]
0xc049139e : do_unlinkat+0x9c/0x100
0xc04914ff : sys_unlinkat+0x2d/0x2f
0xc0405d12 : syscall_call+0x7/0xb
Called ext4_truncate
0xe093d68f : ext4_truncate+0x1/0x53e [ext4dev]
0xc0499735 : generic_delete_inode+0x96/0x10e
0xc04997bf : generic_drop_inode+0x12/0x137
0xc0498ae6 : iput+0x63/0x66
0xc04913c2 : do_unlinkat+0xc0/0x100
0xc04914ff : sys_unlinkat+0x2d/0x2f
0xc0405d12 : syscall_call+0x7/0xb

There you go ext4_truncate get called from the iput().

The systemtap file is
[aneesh@jataayu ~]$ cat a8.tap
probe module("ext4dev").function("ext4_unlink")
{
 printf("Called %s\n", probefunc());
 print_backtrace();
}
probe module("ext4dev").function("ext4_truncate")
{
 printf("Called %s\n", probefunc());
 print_backtrace();
}
[aneesh@jataayu ~]$
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1855002353062099965?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1855002353062099965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1855002353062099965' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1855002353062099965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1855002353062099965'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/03/systemtap-as-kernel-learning-tool.html' title='Systemtap as a kernel learning tool'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-9177897919355677939</id><published>2008-03-22T02:41:00.000-07:00</published><updated>2008-03-22T02:51:51.391-07:00</updated><title type='text'>4 years in REC (NITC)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/R-TVxuoijYI/AAAAAAAABC8/tzQr09IFnBI/s1600-h/test.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/R-TVxuoijYI/AAAAAAAABC8/tzQr09IFnBI/s320/test.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5180500521691286914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.linuxsymposium.org/2008/view_abstract.php?content_key=24"&gt; Ext4 Paper&lt;/a&gt; got &lt;a href="http://www.linuxsymposium.org/2008/speakers.php?types=TALK"&gt; selected &lt;/a&gt; for OLS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-9177897919355677939?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/9177897919355677939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=9177897919355677939' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9177897919355677939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9177897919355677939'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/03/blog-post.html' title='4 years in REC (NITC)'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/R-TVxuoijYI/AAAAAAAABC8/tzQr09IFnBI/s72-c/test.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4411530439318451558</id><published>2008-02-11T05:48:00.000-08:00</published><updated>2008-02-11T05:50:11.427-08:00</updated><title type='text'>Ext4 in Fedora 9 alpha</title><content type='html'>&lt;a href="http://fedoraproject.org/wiki/FedoraExt4"&gt; http://fedoraproject.org/wiki/FedoraExt4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4411530439318451558?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4411530439318451558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4411530439318451558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4411530439318451558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4411530439318451558'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/02/ext4-in-fedora-9-alpha.html' title='Ext4 in Fedora 9 alpha'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2046895665503523988</id><published>2008-02-03T22:57:00.001-08:00</published><updated>2008-02-03T22:58:21.932-08:00</updated><title type='text'>fs/jbd[2] explained</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/R6a3b1xqCWI/AAAAAAAAA88/br3lX44Qedk/s1600-h/DSC00074.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/R6a3b1xqCWI/AAAAAAAAA88/br3lX44Qedk/s320/DSC00074.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5163015711746558306" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2046895665503523988?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2046895665503523988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2046895665503523988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2046895665503523988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2046895665503523988'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/02/fsjbd2-explained.html' title='fs/jbd[2] explained'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9fshitzU8a4/R6a3b1xqCWI/AAAAAAAAA88/br3lX44Qedk/s72-c/DSC00074.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8674432817664934555</id><published>2008-02-02T05:25:00.001-08:00</published><updated>2008-02-02T05:26:46.291-08:00</updated><title type='text'>Saturday lunch</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/R6RvhVxqCVI/AAAAAAAAA80/p7G0QWkjVzM/s1600-h/DSC00073.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/R6RvhVxqCVI/AAAAAAAAA80/p7G0QWkjVzM/s320/DSC00073.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5162373691445217618" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8674432817664934555?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8674432817664934555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8674432817664934555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8674432817664934555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8674432817664934555'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2008/02/saturday-lunch.html' title='Saturday lunch'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9fshitzU8a4/R6RvhVxqCVI/AAAAAAAAA80/p7G0QWkjVzM/s72-c/DSC00073.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4782207846794592048</id><published>2007-12-21T22:47:00.000-08:00</published><updated>2007-12-21T22:49:24.171-08:00</updated><title type='text'>Mutli block allocator explained.</title><content type='html'>&lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/4260"&gt;http://article.gmane.org/gmane.comp.file-systems.ext4/4260&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4782207846794592048?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4782207846794592048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4782207846794592048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4782207846794592048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4782207846794592048'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/12/mutli-block-allocator-explained.html' title='Mutli block allocator explained.'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5641301810743864154</id><published>2007-12-21T22:44:00.000-08:00</published><updated>2009-06-23T10:33:23.757-07:00</updated><title type='text'>Multi block allocator and soft lockup</title><content type='html'>3 days back when testing my block allocation optimization &lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/4328"&gt;patches,&lt;/a&gt; i hit this strange soft lockup warning while discarding the multi block allocator prealloc space. I had never hit this hang before in my testing. Isolating the actual cause of the warning required quiet a lot of test boot kernel. My initial attempt was to see whether it matched the  2.6.24-rc5 soft lockup warning messages others are reporting. But that was mostly due to NO_HZ and the watchdog thread no being woken up. Later i noticed Ingo merged another soft lockup fix in the sched git tree. But that also didn't help. Then my attempt was to see if my optimization patches caused the warning. I was able to reproduce the hang without any changes on top of &lt;a href="http://repo.or.cz/w/ext4-patch-queue.git"&gt;ext4 patch queue&lt;/a&gt;. Then i started looking for config options that would help debug this issue. I had to patch the bit_spinlock to throw a warning in case we got stuck there. But nothing turned. Then i noticed that CONFIG_PREEMPT was turned off. Enabling that option made the problem go away. This speeded up the debug quiet a lot, because we now know that we are getting stuck somewhere in the kernel in a tight loop without preemption disabled. So it is not a spin lock dead lock.
&lt;br&gt; &lt;br&gt;
That made me read the block allocator again and after few test patches i came up with this. &lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/4360"&gt;http://article.gmane.org/gmane.comp.file-systems.ext4/4360&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5641301810743864154?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5641301810743864154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5641301810743864154' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5641301810743864154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5641301810743864154'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/12/multi-block-allocator-and-soft-lockup.html' title='Multi block allocator and soft lockup'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7929594706113210981</id><published>2007-12-04T21:51:00.000-08:00</published><updated>2007-12-04T22:51:35.468-08:00</updated><title type='text'>FOSS.IN</title><content type='html'>I am at &lt;a href="http://www.foss.in"&gt;FOSS.IN&lt;/a&gt; . I will be at the IBM stall most of the time. So if you want to discuss about ext4 please drop by&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7929594706113210981?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7929594706113210981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7929594706113210981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7929594706113210981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7929594706113210981'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/12/fossin.html' title='FOSS.IN'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-9123564482877355214</id><published>2007-11-13T19:13:00.000-08:00</published><updated>2007-11-13T22:46:44.765-08:00</updated><title type='text'>Mansar lake</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5efe8e8d2bcb5c4e" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v24.nonxt3.googlevideo.com/videoplayback?id%3D5efe8e8d2bcb5c4e%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331541819%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1DA09484DC3C828BABAF179BCEF948C37D5DED64.4F2BC66E943A0444810B961EA617460BEEFE356D%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5efe8e8d2bcb5c4e%26offsetms%3D5000%26itag%3Dw160%26sigh%3DTRrMZ3c7qRw822fEq9e75OWuyvo&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v24.nonxt3.googlevideo.com/videoplayback?id%3D5efe8e8d2bcb5c4e%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331541819%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1DA09484DC3C828BABAF179BCEF948C37D5DED64.4F2BC66E943A0444810B961EA617460BEEFE356D%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5efe8e8d2bcb5c4e%26offsetms%3D5000%26itag%3Dw160%26sigh%3DTRrMZ3c7qRw822fEq9e75OWuyvo&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-9123564482877355214?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=5efe8e8d2bcb5c4e&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/9123564482877355214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=9123564482877355214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9123564482877355214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9123564482877355214'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/11/mansar-lake.html' title='Mansar lake'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-9182406782550819501</id><published>2007-11-13T10:11:00.000-08:00</published><updated>2007-11-13T19:13:40.545-08:00</updated><title type='text'>Mansar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/RzpmC4t9R-I/AAAAAAAAAv4/HwCjIZfUIAo/s1600-h/DSC00043.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/RzpmC4t9R-I/AAAAAAAAAv4/HwCjIZfUIAo/s320/DSC00043.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132526925113018338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/RzpmDIt9R_I/AAAAAAAAAwA/6Pr7xMQaWDY/s1600-h/DSC00047.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/RzpmDIt9R_I/AAAAAAAAAwA/6Pr7xMQaWDY/s320/DSC00047.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132526929407985650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/RzpmDot9SAI/AAAAAAAAAwI/In4kaz_elLo/s1600-h/DSC00048.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/RzpmDot9SAI/AAAAAAAAAwI/In4kaz_elLo/s320/DSC00048.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132526937997920258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/RznqvYt9R4I/AAAAAAAAAvA/ubRyOKwnRjU/s1600-h/DSC00051.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/RznqvYt9R4I/AAAAAAAAAvA/ubRyOKwnRjU/s320/DSC00051.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132391350175352706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/Rznqv4t9R5I/AAAAAAAAAvI/cFij76YXK90/s1600-h/DSC00052.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/Rznqv4t9R5I/AAAAAAAAAvI/cFij76YXK90/s320/DSC00052.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132391358765287314" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-9182406782550819501?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/9182406782550819501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=9182406782550819501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9182406782550819501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9182406782550819501'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/11/mansar.html' title='Mansar'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9fshitzU8a4/RzpmC4t9R-I/AAAAAAAAAv4/HwCjIZfUIAo/s72-c/DSC00043.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8104785455767742668</id><published>2007-10-20T22:51:00.000-07:00</published><updated>2007-10-20T22:54:24.729-07:00</updated><title type='text'>Google Code for Educators</title><content type='html'>&lt;a href="http://code.google.com/edu/"&gt;Here&lt;/a&gt;

&lt;a href="http://code.google.com/edu/tutorials.html"&gt;Tutorials&lt;/a&gt;
&lt;a href="http://code.google.com/edu/videolectures.html"&gt;Video Lectures&lt;/a&gt;

Really good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8104785455767742668?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8104785455767742668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8104785455767742668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8104785455767742668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8104785455767742668'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/10/google-code-for-educators.html' title='Google Code for Educators'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-983950094661123060</id><published>2007-10-13T23:08:00.000-07:00</published><updated>2009-06-23T10:35:04.526-07:00</updated><title type='text'>powerpc test_and_clear_bit and  alignment requirement</title><content type='html'>&lt;pre class="brush: plain"&gt;
#define BITS_PER_LONG 64
#define BITOP_MASK(nr)        (1UL &lt;&lt; ((nr) % BITS_PER_LONG))
#define BITOP_WORD(nr)        ((nr) / BITS_PER_LONG)

#define BITOP_LE_SWIZZLE    ((BITS_PER_LONG-1) &amp; ~0x7)
#define __test_and_clear_le_bit(nr, addr) \
    __test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))

#define ext2_clear_bit(nr, addr) \
    __test_and_clear_le_bit((nr), (unsigned long*)addr)

static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr)
{
    unsigned long test = ((nr) % BITS_PER_LONG);
    unsigned long mask = BITOP_MASK(nr);
    unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr);
    unsigned long old = *p;

    *p = old &amp; ~mask;
    return (old &amp; mask) != 0;
}
#define ext2_test_bit(nr, addr)      test_le_bit((nr),(unsigned long*)addr)
static __inline__ int test_le_bit(unsigned long nr,
                  __const__ unsigned long *addr)
{
    __const__ unsigned char    *tmp = (__const__ unsigned char *) addr;
    return (tmp[nr &gt;&gt; 3] &gt;&gt; (nr &amp; 7)) &amp; 1;
}

static __inline__ int test_and_clear_bit(unsigned long nr,
                                        volatile unsigned long *addr)
{
       unsigned long old, t;
       unsigned long mask = BITOP_MASK(nr);
       unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr);

       __asm__ __volatile__(       "1:"    "ldarx %0,0,%3              # test_and_clear_bit\n"
       "andc  %1,%0,%2 \n"
       "dcbt 0,%3 \n"
       "stdcx. %1,0,%3 \n"
       "bne-   1b"
       : "=&amp;r" (old), "=&amp;r" (t)
       : "r" (mask), "r" (p)
       : "cc", "memory");

       return (old &amp; mask) != 0;
}

main(int argc, char *argv[])
{
    char p[] = { 0xff, 0xff, 0xff, 0xff};
    char p2[] = { 0xff, 0xff, 0xff, 0xff};
    char *a = p + 1;
    //char *a = p;
    printf("is aligned %d\n", !((unsigned long )a) % 8);
    if (!strcmp(argv[1], "asm")) {
        test_and_clear_bit((1) ^ BITOP_LE_SWIZZLE, (unsigned long *)a);
    } else {
        ext2_clear_bit(1, a);
    }
    if (!ext2_test_bit(1, a)){
        printf("Bit is cleared\n");
    }
}


&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-983950094661123060?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/983950094661123060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=983950094661123060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/983950094661123060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/983950094661123060'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/10/powerpc-testandclearbit-and-alignment.html' title='powerpc test_and_clear_bit and  alignment requirement'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6492656617151271764</id><published>2007-10-13T22:59:00.000-07:00</published><updated>2007-10-13T23:04:17.063-07:00</updated><title type='text'>Ext4 progress</title><content type='html'>Quiet a lot of exciting work happening with ext4. 2.6.24 is likely to have the uninitialized block group patch that helps in speeding up the e2fsck considerably. If i can get &lt;a href="ftp://ftp.clusterfs.com/pub/people/alex/mballoc3/"&gt;Alex&lt;/a&gt; to review the multiblock allocator change i made there is a high chance that that will also get in. 2.6.25 should have the large file size support for ext4. If you are interested in all these changes the place to look at is the &lt;a href="http://repo.or.cz/w/ext4-patch-queue.git"&gt;ext4 patch queue.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6492656617151271764?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6492656617151271764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6492656617151271764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6492656617151271764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6492656617151271764'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/10/ext4-progress.html' title='Ext4 progress'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2699000081023115705</id><published>2007-10-13T22:57:00.000-07:00</published><updated>2007-10-13T22:58:40.530-07:00</updated><title type='text'>Qemu GDB issue work around</title><content type='html'>&lt;a href="http://qemu-forum.ipi.fi/viewtopic.php?p=3281"&gt;http://qemu-forum.ipi.fi/viewtopic.php?p=3281&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2699000081023115705?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2699000081023115705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2699000081023115705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2699000081023115705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2699000081023115705'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/10/qemu-gdb-issue-work-around.html' title='Qemu GDB issue work around'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8733957552218473928</id><published>2007-09-18T07:36:00.001-07:00</published><updated>2007-09-25T09:16:35.251-07:00</updated><title type='text'>flowers in the garden</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/RvkzqVX7WKI/AAAAAAAAAsY/fN1T9JU3zJ8/s1600-h/DSC00020.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/RvkzqVX7WKI/AAAAAAAAAsY/fN1T9JU3zJ8/s320/DSC00020.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5114175654240934050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/Ru_imWPZmoI/AAAAAAAAAsI/t0K6phwU5ko/s1600-h/flower1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/Ru_imWPZmoI/AAAAAAAAAsI/t0K6phwU5ko/s320/flower1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5111553250521881218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/Ru_immPZmpI/AAAAAAAAAsQ/9bqB4DQYgr8/s1600-h/DSC00013.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/Ru_immPZmpI/AAAAAAAAAsQ/9bqB4DQYgr8/s320/DSC00013.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5111553254816848530" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8733957552218473928?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8733957552218473928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8733957552218473928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8733957552218473928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8733957552218473928'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/09/flowers-in-garden.html' title='flowers in the garden'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9fshitzU8a4/RvkzqVX7WKI/AAAAAAAAAsY/fN1T9JU3zJ8/s72-c/DSC00020.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5887885050611935427</id><published>2007-09-15T08:08:00.000-07:00</published><updated>2007-09-15T08:10:56.206-07:00</updated><title type='text'>Painting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/Ruv1wGPZmnI/AAAAAAAAAsA/-3E-4FsnMLw/s1600-h/ja3656.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/Ruv1wGPZmnI/AAAAAAAAAsA/-3E-4FsnMLw/s320/ja3656.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5110448408839690866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bought this one from &lt;a href="http://www.streisand-art.com/"&gt; here &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5887885050611935427?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5887885050611935427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5887885050611935427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5887885050611935427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5887885050611935427'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/09/painting.html' title='Painting'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/Ruv1wGPZmnI/AAAAAAAAAsA/-3E-4FsnMLw/s72-c/ja3656.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7730525824978593327</id><published>2007-09-09T23:41:00.000-07:00</published><updated>2007-09-09T23:42:56.350-07:00</updated><title type='text'>Onam celebration at Samruddhi</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/RuTnZ19z6EI/AAAAAAAAAr4/7hp62fUl5UI/s1600-h/DSC00005.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/RuTnZ19z6EI/AAAAAAAAAr4/7hp62fUl5UI/s320/DSC00005.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5108462308514064450" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7730525824978593327?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7730525824978593327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7730525824978593327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7730525824978593327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7730525824978593327'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/09/onam-celebration-at-samruddhi.html' title='Onam celebration at Samruddhi'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9fshitzU8a4/RuTnZ19z6EI/AAAAAAAAAr4/7hp62fUl5UI/s72-c/DSC00005.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5226508371829436768</id><published>2007-08-27T23:42:00.001-07:00</published><updated>2007-09-25T09:18:00.833-07:00</updated><title type='text'>Mysore trip</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/RvkzqlX7WLI/AAAAAAAAAsg/WPVqSSGHH9Q/s1600-h/DSC00047.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/RvkzqlX7WLI/AAAAAAAAAsg/WPVqSSGHH9Q/s320/DSC00047.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5114175658535901362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/Rvkzq1X7WMI/AAAAAAAAAso/MJoYZA3XejU/s1600-h/DSC00048.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/Rvkzq1X7WMI/AAAAAAAAAso/MJoYZA3XejU/s320/DSC00048.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5114175662830868674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/RvkzrFX7WNI/AAAAAAAAAsw/ZRoiU1KWKws/s1600-h/DSC00049.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/RvkzrFX7WNI/AAAAAAAAAsw/ZRoiU1KWKws/s320/DSC00049.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5114175667125835986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/RvkzrVX7WOI/AAAAAAAAAs4/OEo06sgUENk/s1600-h/DSC00052.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/RvkzrVX7WOI/AAAAAAAAAs4/OEo06sgUENk/s320/DSC00052.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5114175671420803298" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5226508371829436768?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5226508371829436768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5226508371829436768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5226508371829436768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5226508371829436768'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/08/mysore-trip_27.html' title='Mysore trip'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9fshitzU8a4/RvkzqlX7WLI/AAAAAAAAAsg/WPVqSSGHH9Q/s72-c/DSC00047.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8455686840386671343</id><published>2007-08-27T22:57:00.000-07:00</published><updated>2007-08-27T23:48:05.014-07:00</updated><title type='text'>Mysore trip</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/RtO5lF9z59I/AAAAAAAAAqY/RwsiCvUN6wY/s1600-h/DSC00053.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/RtO5lF9z59I/AAAAAAAAAqY/RwsiCvUN6wY/s320/DSC00053.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103626849648633810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/RtO5ll9z5-I/AAAAAAAAAqg/MrJp7a21nZ4/s1600-h/DSC00055.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/RtO5ll9z5-I/AAAAAAAAAqg/MrJp7a21nZ4/s320/DSC00055.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103626858238568418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/RtO5l19z5_I/AAAAAAAAAqo/dhdsb-qL_PQ/s1600-h/DSC00056.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/RtO5l19z5_I/AAAAAAAAAqo/dhdsb-qL_PQ/s320/DSC00056.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103626862533535730" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8455686840386671343?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8455686840386671343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8455686840386671343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8455686840386671343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8455686840386671343'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/08/mysore-trip.html' title='Mysore trip'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9fshitzU8a4/RtO5lF9z59I/AAAAAAAAAqY/RwsiCvUN6wY/s72-c/DSC00053.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3789267229003037781</id><published>2007-08-27T22:51:00.000-07:00</published><updated>2007-08-27T23:48:48.292-07:00</updated><title type='text'>Mysore trip</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/RtO4ll9z52I/AAAAAAAAApI/2xXlbtLx6eg/s1600-h/DSC00038.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/RtO4ll9z52I/AAAAAAAAApI/2xXlbtLx6eg/s320/DSC00038.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103625758726940514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/RtO4ml9z53I/AAAAAAAAApQ/KKVzRaQ1OQA/s1600-h/DSC00040.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/RtO4ml9z53I/AAAAAAAAApQ/KKVzRaQ1OQA/s320/DSC00040.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103625775906809714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/RtO4nF9z54I/AAAAAAAAApY/zOGX0NKSnoQ/s1600-h/DSC00041.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/RtO4nF9z54I/AAAAAAAAApY/zOGX0NKSnoQ/s320/DSC00041.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5103625784496744322" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3789267229003037781?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3789267229003037781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3789267229003037781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3789267229003037781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3789267229003037781'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/08/blog-post.html' title='Mysore trip'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/RtO4ll9z52I/AAAAAAAAApI/2xXlbtLx6eg/s72-c/DSC00038.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2133770345178705936</id><published>2007-08-24T01:19:00.001-07:00</published><updated>2007-08-24T01:22:09.354-07:00</updated><title type='text'>The Onam Feast - Sadhya</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/Rs6U219z50I/AAAAAAAAAo4/vmJjlOX6txI/s1600-h/DSC00035.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/Rs6U219z50I/AAAAAAAAAo4/vmJjlOX6txI/s320/DSC00035.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5102179097777530690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/Rs6U3F9z51I/AAAAAAAAApA/b5nNCpNdBAc/s1600-h/DSC00036.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/Rs6U3F9z51I/AAAAAAAAApA/b5nNCpNdBAc/s320/DSC00036.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5102179102072498002" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2133770345178705936?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2133770345178705936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2133770345178705936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2133770345178705936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2133770345178705936'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/08/onam-feast-sadhya.html' title='The Onam Feast - Sadhya'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/Rs6U219z50I/AAAAAAAAAo4/vmJjlOX6txI/s72-c/DSC00035.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5649247892906684373</id><published>2007-08-02T10:54:00.000-07:00</published><updated>2007-08-02T10:59:14.281-07:00</updated><title type='text'>India's Top Technical schools</title><content type='html'>&lt;a href="http://dqindia.ciol.com/content/top_stories/2007/107062205.asp"&gt;http://dqindia.ciol.com/content/top_stories/2007/107062205.asp
&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5649247892906684373?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5649247892906684373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5649247892906684373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5649247892906684373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5649247892906684373'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/08/indias-top-technical-schools.html' title='India&apos;s Top Technical schools'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1320658690252210427</id><published>2007-07-24T21:53:00.000-07:00</published><updated>2007-07-24T21:57:44.502-07:00</updated><title type='text'>btrfs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/RqbXsB6RZvI/AAAAAAAAAQA/WEN7tILeEYI/s1600-h/DSC00006.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_9fshitzU8a4/RqbXsB6RZvI/AAAAAAAAAQA/WEN7tILeEYI/s320/DSC00006.JPG" alt="" id="BLOGGER_PHOTO_ID_5090993580215985906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/RqbXtB6RZxI/AAAAAAAAAQQ/jNFHBkAEDtA/s1600-h/DSC00005.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_9fshitzU8a4/RqbXtB6RZxI/AAAAAAAAAQQ/jNFHBkAEDtA/s320/DSC00005.JPG" alt="" id="BLOGGER_PHOTO_ID_5090993597395855122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/RqbXsR6RZwI/AAAAAAAAAQI/BPEbAbidQXc/s1600-h/DSC00007.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_9fshitzU8a4/RqbXsR6RZwI/AAAAAAAAAQI/BPEbAbidQXc/s320/DSC00007.JPG" alt="" id="BLOGGER_PHOTO_ID_5090993584510953218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;photos taken using the new &lt;a href="http://www.sonyericsson.com/spg.jsp?cc=us&amp;lc=en&amp;ver=4000&amp;template=pip1&amp;pid=10745&amp;zone=pp"&gt;k550i&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1320658690252210427?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1320658690252210427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1320658690252210427' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1320658690252210427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1320658690252210427'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/07/btrfs.html' title='btrfs'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9fshitzU8a4/RqbXsB6RZvI/AAAAAAAAAQA/WEN7tILeEYI/s72-c/DSC00006.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-4035328830426972353</id><published>2007-06-23T23:53:00.000-07:00</published><updated>2007-06-23T23:54:53.111-07:00</updated><title type='text'>One Laptop Per Child</title><content type='html'>&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-4285568518538296189&amp;hl=en" flashvars=""&gt; &lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-4035328830426972353?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/4035328830426972353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=4035328830426972353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4035328830426972353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/4035328830426972353'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/06/one-laptop-per-child.html' title='One Laptop Per Child'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6724739217939436219</id><published>2007-06-14T03:36:00.000-07:00</published><updated>2007-06-14T03:38:08.962-07:00</updated><title type='text'>Btrfs from  Chris Mason</title><content type='html'>&lt;a href="http://lwn.net/Articles/237904/"&gt; http://lwn.net/Articles/237904/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6724739217939436219?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6724739217939436219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6724739217939436219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6724739217939436219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6724739217939436219'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/06/btrfs-from-chris-mason.html' title='Btrfs from  Chris Mason'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2986765470370391387</id><published>2007-06-11T08:28:00.000-07:00</published><updated>2007-06-11T08:29:59.662-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9fshitzU8a4/Rm1qaYDSokI/AAAAAAAAAPo/PRu_NXNSQPg/s1600-h/F1230019.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9fshitzU8a4/Rm1qaYDSokI/AAAAAAAAAPo/PRu_NXNSQPg/s320/F1230019.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5074829356481815106" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2986765470370391387?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2986765470370391387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2986765470370391387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2986765470370391387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2986765470370391387'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/06/blog-post.html' title=''/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9fshitzU8a4/Rm1qaYDSokI/AAAAAAAAAPo/PRu_NXNSQPg/s72-c/F1230019.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6881100990123586135</id><published>2007-06-11T08:26:00.000-07:00</published><updated>2007-06-11T08:28:29.443-07:00</updated><title type='text'>New house</title><content type='html'>We moved to the new house a month back. 

&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.com/aneesh.kumar/HouseWork"&gt;&lt;img src="http://lh3.google.com/image/aneesh.kumar/Rm1g8IDSojE/AAAAAAAAAPk/ZGqNCbiZYig/s160-c/HouseWork.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.com/aneesh.kumar/HouseWork" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;House work&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6881100990123586135?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6881100990123586135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6881100990123586135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6881100990123586135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6881100990123586135'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/06/new-house.html' title='New house'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6015802585248763063</id><published>2007-05-20T21:32:00.000-07:00</published><updated>2007-05-20T21:33:21.660-07:00</updated><title type='text'>Linus on git</title><content type='html'>&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4XpnKHJAok8"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4XpnKHJAok8" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6015802585248763063?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6015802585248763063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6015802585248763063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6015802585248763063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6015802585248763063'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/05/linus-on-git.html' title='Linus on git'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2853207543616009825</id><published>2007-04-22T12:41:00.000-07:00</published><updated>2007-04-22T12:43:54.502-07:00</updated><title type='text'>gitview with annotation support</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9fshitzU8a4/Riu6ovQY9jI/AAAAAAAAAIw/UTqs8WQxBBg/s1600-h/Screenshot1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9fshitzU8a4/Riu6ovQY9jI/AAAAAAAAAIw/UTqs8WQxBBg/s320/Screenshot1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5056340215696258610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9fshitzU8a4/Riu6wPQY9kI/AAAAAAAAAI4/XJHju7XFmf8/s1600-h/Screenshot2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9fshitzU8a4/Riu6wPQY9kI/AAAAAAAAAI4/XJHju7XFmf8/s320/Screenshot2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5056340344545277506" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2853207543616009825?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2853207543616009825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2853207543616009825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2853207543616009825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2853207543616009825'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/04/gitview-with-annotation-support.html' title='gitview with annotation support'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9fshitzU8a4/Riu6ovQY9jI/AAAAAAAAAIw/UTqs8WQxBBg/s72-c/Screenshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7321397383669699564</id><published>2007-03-19T04:21:00.000-07:00</published><updated>2007-03-19T04:25:30.195-07:00</updated><title type='text'>ext4migrate</title><content type='html'>Today i sent the patches to the list. You can find the same here

&lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/1283"&gt;http://article.gmane.org/gmane.comp.file-systems.ext4/1283&lt;/a&gt;
&lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/1284"&gt;http://article.gmane.org/gmane.comp.file-systems.ext4/1284&lt;/a&gt;
&lt;a href="http://article.gmane.org/gmane.comp.file-systems.ext4/1285"&gt;http://article.gmane.org/gmane.comp.file-systems.ext4/1285&lt;/a&gt;


Currently it does only offline migration. I am looking at online defrag
as a mechanism for implementing online migration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7321397383669699564?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7321397383669699564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7321397383669699564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7321397383669699564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7321397383669699564'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/03/ext4migrate.html' title='ext4migrate'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8923359856539539971</id><published>2007-02-25T07:03:00.000-08:00</published><updated>2007-02-25T07:08:27.724-08:00</updated><title type='text'>Record number of candidates for Debian Project Leader election</title><content type='html'>&lt;a href="http://lists.debian.org/debian-devel-announce/2007/02/msg00022.html"&gt;Here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8923359856539539971?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8923359856539539971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8923359856539539971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8923359856539539971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8923359856539539971'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/record-number-of-candidates-for-debian.html' title='Record number of candidates for Debian Project Leader election'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3196577315960636900</id><published>2007-02-21T23:53:00.000-08:00</published><updated>2007-02-22T00:11:14.035-08:00</updated><title type='text'>B+ tree in ext4</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9fshitzU8a4/Rd1PIJUBfFI/AAAAAAAAAIg/ehbEooY37rU/s1600-h/ext4-btree.gif"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_9fshitzU8a4/Rd1PIJUBfFI/AAAAAAAAAIg/ehbEooY37rU/s320/ext4-btree.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5034266959827532882" /&gt;&lt;/a&gt; You may want to start from extents.c. In case you are looking for materials on B+ tree take a look at &lt;a href="http://www.cs.ust.hk/%7Ehuamin/COMP171/btree1.ppt"&gt;here&lt;/a&gt; and &lt;a href="http://www.cs.ust.hk/%7Ehuamin/COMP171/btree2.ppt"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3196577315960636900?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3196577315960636900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3196577315960636900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3196577315960636900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3196577315960636900'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/b-tree-in-ext4.html' title='B+ tree in ext4'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9fshitzU8a4/Rd1PIJUBfFI/AAAAAAAAAIg/ehbEooY37rU/s72-c/ext4-btree.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8809932347104232211</id><published>2007-02-21T22:21:00.000-08:00</published><updated>2007-02-21T22:24:37.843-08:00</updated><title type='text'>Threadlets</title><content type='html'>&lt;a href="http://people.redhat.com/mingo/syslet-patches/async-v3-ANNOUNCE.txt"&gt;Here&lt;/a&gt;. Well interesting in that it reduce the programming complexity. Take a look at threadlet-test.c in the test cases. You may want to spend some time around threadlet_exec. The trick is in restore stack and restore eip. Buddha blessed me only after having a discussion with bharata.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8809932347104232211?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8809932347104232211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8809932347104232211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8809932347104232211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8809932347104232211'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/threadlets.html' title='Threadlets'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-893393500720471572</id><published>2007-02-13T20:20:00.000-08:00</published><updated>2007-02-13T20:22:09.805-08:00</updated><title type='text'>Git 1.5.0 release</title><content type='html'>After a really exciting development cycle git 1.5.0 is released with quiet a lot of &lt;a href="http://www.gelato.unsw.edu.au/archives/git/0702/39840.html"&gt;goodies&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-893393500720471572?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/893393500720471572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=893393500720471572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/893393500720471572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/893393500720471572'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/git-150-release.html' title='Git 1.5.0 release'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3728213003601819695</id><published>2007-02-13T09:29:00.000-08:00</published><updated>2007-02-13T09:30:34.959-08:00</updated><title type='text'>aio and syslets</title><content type='html'>&lt;a href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0702.1/1898.html"&gt;syslet intro&lt;/a&gt;

&lt;a href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0702.1/1894.html"&gt;syslet doc&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3728213003601819695?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3728213003601819695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3728213003601819695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3728213003601819695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3728213003601819695'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/aio-and-syslets.html' title='aio and syslets'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-91603603389521916</id><published>2007-02-10T08:13:00.000-08:00</published><updated>2007-02-10T08:11:32.218-08:00</updated><title type='text'>3 years ago</title><content type='html'>&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/aneesh.kumar/Kuderamukh/photo#4973749667733372946"&gt;&lt;img src="http://lh6.google.com/image/aneesh.kumar/RQZO-IL3ABI/AAAAAAAAACE/Cz7Brs1FcgI/s288/kudremukh0129.jpg"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:66%; text-align:right"&gt;From &lt;a href="http://picasaweb.google.com/aneesh.kumar/Kuderamukh"&gt;Kuderamukh&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-91603603389521916?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/91603603389521916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=91603603389521916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/91603603389521916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/91603603389521916'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/3-years-ago.html' title='3 years ago'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7988020792325895599</id><published>2007-02-10T08:10:00.000-08:00</published><updated>2007-02-10T08:11:09.645-08:00</updated><title type='text'>Laptop RAM</title><content type='html'>kvaneesh@skywalker:~$cat /proc/meminfo  | head  -n 1
MemTotal:      2074832 kB
kvaneesh@skywalker:~$&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7988020792325895599?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7988020792325895599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7988020792325895599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7988020792325895599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7988020792325895599'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/laptop-ram.html' title='Laptop RAM'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2876611951618974159</id><published>2007-02-10T06:29:00.000-08:00</published><updated>2009-06-23T10:39:13.734-07:00</updated><title type='text'>vim ftplugin patch</title><content type='html'>With the latest git the below changes are needed to get the &lt;a href="http://madism.org/%7Emadcoder/dotfiles/vim/"&gt;ftplugin&lt;/a&gt; work

&lt;pre class="brush: diff"&gt;
--- /tmp/git.vim 2007-02-10 19:58:12.000000000 +0530
+++ /home/kvaneesh/.vim/ftplugin/git.vim 2007-02-10 20:08:41.000000000 +0530
@@ -16,8 +16,8 @@
    " drop everything until '#  (will commit)' and the next empty line
    while i &lt;= line('$')
        let line = getline(i)
-        if line =~ '^#\s*(will commit)$'
-            let i = i + 2
+        if line =~ '^#\s*Changes to be committed:$'
+            let i = i + 3
            break
        endif
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2876611951618974159?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2876611951618974159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2876611951618974159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2876611951618974159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2876611951618974159'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/vim-ftplugin-patch.html' title='vim ftplugin patch'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7971764672845777562</id><published>2007-02-05T10:12:00.000-08:00</published><updated>2007-02-05T10:18:59.560-08:00</updated><title type='text'>google ajax search API</title><content type='html'>Added google AJAX search to the blog page. I have added home page based custom search and blog search labels to the search result. That means one can use the top level blog page to search both my home page and blog. I am pretty impressed by the easiness with which one can develop these web apps. BTW i have "Head Rush AjAX" book lying in my book shelf. I am almost finished with the "Head First HTML". 


Right now i guess there is some bugs with the google's blog search APIs or may be it is the way i coded. It doesn't list results for all the keywords present in my blog page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7971764672845777562?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7971764672845777562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7971764672845777562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7971764672845777562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7971764672845777562'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/google-ajax-search-api.html' title='google ajax search API'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2620820827949929369</id><published>2007-02-04T00:40:00.000-08:00</published><updated>2007-02-04T00:44:55.693-08:00</updated><title type='text'>Nice LKML discussions</title><content type='html'>&lt;a href="http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/fbba6701ba7f9ab4/aaac3c742299be5b#aaac3c742299be5b"&gt;CPU hotplug using freezer &lt;/a&gt;
&lt;a href="http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/9ee3aa8185a84f3c/3933585ce15b883c#"&gt;AIO using fibril&lt;/a&gt;
&lt;a href="http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/fed6c7f8dcee219a/4ee051c54949598e"&gt;Use kthreads instead of fibril&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2620820827949929369?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2620820827949929369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2620820827949929369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2620820827949929369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2620820827949929369'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/nice-lkml-discussions.html' title='Nice LKML discussions'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6956336858074841660</id><published>2007-02-01T06:47:00.000-08:00</published><updated>2007-02-03T00:04:53.559-08:00</updated><title type='text'>Migrating from livejournal to blogger</title><content type='html'>Migrated all my journal entries from livejournal to blogger. The main reason for migrating was the ability to add multiple widgets to the blog page. So this would be my last livejournal entry. The new blog address is &lt;a href="http://aneesh-kumar.blogspot.com/"&gt;http://aneesh-kumar.blogspot.com/&lt;/a&gt;

I found this &lt;a href="http://linuxlore.blogspot.com/2006/12/livejournal-to-blogger.html"&gt;link&lt;/a&gt; useful in moving from livejournal to blogger .&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6956336858074841660?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6956336858074841660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6956336858074841660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6956336858074841660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6956336858074841660'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/02/migrating-from-livejournal-to-blogger.html' title='Migrating from livejournal to blogger'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7827930025294594224</id><published>2007-01-21T22:50:00.000-08:00</published><updated>2007-01-31T12:45:52.857-08:00</updated><title type='text'>Last day at HP</title><content type='html'>Last Friday (19th Jan 2007) was my last day at HP. After 6 years 11 months and 19 days stay at HP, I felt a little bit awkward to say good bye. During this period I learnt quiet a lot. I was lucky to have a lot of nice friends.  I also met my life partner there. A big thanks to HP for giving me such a wonderful time. 

I am moving to IBM. I will be joining the Linux technology center.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7827930025294594224?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7827930025294594224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7827930025294594224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7827930025294594224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7827930025294594224'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2007/01/last-day-at-hp.html' title='Last day at HP'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8944017128893368846</id><published>2006-12-30T23:30:00.000-08:00</published><updated>2007-01-31T12:45:51.378-08:00</updated><title type='text'>patches updated to 2.6.20-rc1</title><content type='html'>I have updated LKCF patches to 2.6.20-rc1 kernel. &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi?h=2.6.20-rc1-ci-to-linus;p=ci-to-linus.git;a=shortlog"&gt;gitweb link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8944017128893368846?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8944017128893368846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8944017128893368846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8944017128893368846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8944017128893368846'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/12/patches-updated-to-2620-rc1.html' title='patches updated to 2.6.20-rc1'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2641670755147985754</id><published>2006-10-18T20:34:00.000-07:00</published><updated>2007-01-31T12:45:50.068-08:00</updated><title type='text'>Redhat Developer Day</title><content type='html'>I was at Redhat Developer Day yesterday. Quiet a good event. Learnt about 108 and OLPC. I was there as the HP speaker.  Being a developer day we decided to present developer oriented topics and this resulted in me presenting about  Linux kernel Cluster Framework. I guess the presentation went fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2641670755147985754?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2641670755147985754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2641670755147985754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2641670755147985754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2641670755147985754'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/10/redhat-developer-day.html' title='Redhat Developer Day'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7948375179188990749</id><published>2006-10-15T21:14:00.000-07:00</published><updated>2007-01-31T12:45:46.909-08:00</updated><title type='text'>LKCF selected for FOSS.IN 2006</title><content type='html'>I haven't got any mail notification yet. But i can see it on the website &lt;a href="http://foss.in/2006/info/Shortlist_1"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7948375179188990749?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7948375179188990749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7948375179188990749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7948375179188990749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7948375179188990749'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/10/lkcf-selected-for-fossin-2006.html' title='LKCF selected for FOSS.IN 2006'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3829100500809918360</id><published>2006-10-05T04:39:00.000-07:00</published><updated>2007-01-31T12:45:28.410-08:00</updated><title type='text'>FOSS.IN/2006</title><content type='html'>Submitted a talk on Linux kernel cluster framework (&lt;a href="http://aneesh.kumar.googlepages.com/linux_cluster_framework"&gt;LKCF&lt;/a&gt;.  Hopefully it will get selected. This is the first time i am submitting a talk for FOSS.IN.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3829100500809918360?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3829100500809918360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3829100500809918360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3829100500809918360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3829100500809918360'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/10/fossin2006.html' title='FOSS.IN/2006'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2921354656891821111</id><published>2006-09-15T22:19:00.000-07:00</published><updated>2009-06-23T10:43:13.385-07:00</updated><title type='text'>Linux kernel Cluster Framework 0.2</title><content type='html'>This is the 0.2 release of Linux kernel Cluster Framework.
&lt;br&gt;&lt;br&gt;
What is LKCF:&lt;br&gt;
-----------&lt;br&gt;
LKCF's aim is to provide a transport independent cluster communication framework within the kernel. This enables the developers to write kernel based cluster services without being worried about communication transport. It also support RPC style programming. That means to write kernel service one need to write the service definition file (&lt;service&gt;&lt;*.svc&gt;) and the implementation API. LKCF framework will generate all the  registration routines and the marshaling code. Also it takes care of forwarding the SIGNALs across different nodes.The particular service can be called from any node specifying the node at which this particular service need to be executed. All the underlying management interface is taken care by the LKCF.
&lt;br&gt;&lt;br&gt;
What transport are supported as of today:&lt;br&gt;
---------------------------------------&lt;br&gt;
IPV4&lt;br&gt;&lt;br&gt;
Infiniband verbs/RDMA.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
Project Documentation:&lt;br&gt;
---------------------&lt;br&gt;
&lt;a href="http://ci-linux.sourceforge.net/"&gt;http://ci-linux.sourceforge.net/&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
Project git repository:&lt;br&gt;
---------------------------&lt;br&gt;
&lt;a href="http://git.openssi.org/%7Ekvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary"&gt;http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
The patches can be found at
&lt;a href="http://git.openssi.org/%7Ekvaneesh/ics_patches/lkcf-0.2/"&gt;http://git.openssi.org/~kvaneesh/ics_patches/lkcf-0.2/&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
and include
&lt;br&gt;&lt;br&gt;
0001-Internode-communication-subsystem-for-Linux.txt&lt;br&gt;
0002-ICS-over-Infiniband-verbs-work-in-progress.txt&lt;br&gt;
0003-Token-facility-needed-for-cluster-based-synchronization.txt&lt;br&gt;
0004-A-simple-test-case-for-ICS.txt&lt;br&gt;
&lt;br&gt;&lt;br&gt;
The patches are on top of git SHA1
ef7d1b244fa6c94fb76d5f787b8629df64ea4046 of the linus tree.&lt;/service&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2921354656891821111?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2921354656891821111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2921354656891821111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2921354656891821111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2921354656891821111'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/09/linux-kernel-cluster-framework-02.html' title='Linux kernel Cluster Framework 0.2'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-9074987581776965784</id><published>2006-09-07T20:59:00.000-07:00</published><updated>2007-01-31T12:45:25.693-08:00</updated><title type='text'>LKCF Infiniband support</title><content type='html'>I have merged the work stan smith was doing with Infiniband and OpenSSI. I have pushed the changes &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi?h=2.6.18-rc4-ci-to-linus;p=ci-to-linus.git;a=shortlog"&gt;here&lt;/a&gt; with changes to make it work with LKCF.  I also tested the changes with a two node cluster with infiniband interconnect and it seems to work fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-9074987581776965784?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/9074987581776965784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=9074987581776965784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9074987581776965784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/9074987581776965784'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/09/lkcf-infiniband-support.html' title='LKCF Infiniband support'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-939540537163793303</id><published>2006-09-07T20:56:00.000-07:00</published><updated>2007-01-31T12:45:17.343-08:00</updated><title type='text'>Linux Kernel Cluster Framework</title><content type='html'>This is nothing but the CI rework i have been doing. The code has changed in such a way that it is not possible to build CI service module on  the code base that i have without modification.  So i decided to rename the work to LKCF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-939540537163793303?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/939540537163793303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=939540537163793303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/939540537163793303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/939540537163793303'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/09/linux-kernel-cluster-framework.html' title='Linux Kernel Cluster Framework'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-7033822869245496870</id><published>2006-08-26T23:51:00.000-07:00</published><updated>2007-01-31T12:45:16.207-08:00</updated><title type='text'>Ubuntu's Upstart</title><content type='html'>I really liked this.

"upstart is a replacement for the init daemon, the process spawned by the kernel that is responsible for starting, supervising and stopping all other processes on the system."

"upstart is an event-based init daemon; events generated by the system cause jobs to be started and running jobs to be stopped. Events can include things such as:

    * the system has started,

    * the root filesystem is now writable,

    * a block device has been added to the system,

    * a filesystem has been mounted,

    * at a certain time or repeated time period,

    * another job has begun running or has finished,

    * a file on the disk has been modified,

    * there are files in a queue directory,

    * a network device has been detected,

    * the default route has been added or removed."

&lt;a href="http://www.netsplit.com/blog/work/canonical/upstart.html"&gt;http://www.netsplit.com/blog/work/canonical/upstart.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-7033822869245496870?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/7033822869245496870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=7033822869245496870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7033822869245496870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/7033822869245496870'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/08/ubuntu-upstart.html' title='Ubuntu&amp;#39;s Upstart'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5373273012243203082</id><published>2006-08-26T10:41:00.000-07:00</published><updated>2007-01-31T12:45:14.376-08:00</updated><title type='text'>CI 0.1 released!!</title><content type='html'>Today I released the 0.1 version of ICS. You can find the details &lt;a href="http://marc.theaimsgroup.com/?l=ssic-linux-devel&amp;m=115659520310003&amp;w=2"&gt;here&lt;/a&gt;.  Now from here there is quiet a lot of things that we can do such as:

a) Add another transport. sctp, tipc, infiniband verbs etc. 
c) Get other cluster projects to start using it.

From OpenSSI code i am trying to pull CFS code and other cluster wide SYSV IPC code. Once we get this done we will have clusterwide shared memory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5373273012243203082?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5373273012243203082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5373273012243203082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5373273012243203082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5373273012243203082'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/08/ci-01-released.html' title='CI 0.1 released!!'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8044889674828645523</id><published>2006-08-22T04:58:00.000-07:00</published><updated>2007-01-31T12:45:13.011-08:00</updated><title type='text'>gitweb enhancements</title><content type='html'>I have added support for urls and snapshots to gitweb. Both these changes are right now in next branch of git repository. The url support helps in finding out the the url that need to be used when you do a git-clone. The snapshot support helps you in getting a tar.gz image of the repository files at any commit point. This should help if you want to download the code without looking at the history.  Along with that  did some nice cleanups making blame and snapshot a feature which can be enabled/disabled via GITWEB_CONFIG and also project specific config. 

This should give you the details. 

 &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary"&gt;http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8044889674828645523?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8044889674828645523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8044889674828645523' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8044889674828645523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8044889674828645523'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/08/gitweb-enhancements.html' title='gitweb enhancements'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-653894970238794269</id><published>2006-08-21T08:47:00.000-07:00</published><updated>2007-01-31T12:45:11.191-08:00</updated><title type='text'>Another milestone with CI</title><content type='html'>Now that i have CI done i am looking at progressing with different components of OpenSSI cluster as below

a) Get the token based synchronization working
b) Get CFS working
c) Get Clusterwide name server working
d) Get message queue and semaphore working
e) Get clusterwide shared memory working. 


I have done the first cut of cleanup with respect to token code and did a git push. You can find them here &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary."&gt;http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=summary.&lt;/a&gt; Follow  the 2.6.18-rc1-ci-to-linus branch. 

BTW it is quiet a lot of work to get this done in free time. So in case you would like to help me let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-653894970238794269?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/653894970238794269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=653894970238794269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/653894970238794269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/653894970238794269'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/08/another-milestone-with-ci.html' title='Another milestone with CI'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-802392765792814794</id><published>2006-06-27T21:18:00.000-07:00</published><updated>2007-01-31T12:45:09.280-08:00</updated><title type='text'>Cluster configuration via configfs</title><content type='html'>I submitted all the &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi?p=ci-to-linus.git;a=commitdiff;h=f9e64bda84b1cfffe34ecb93fd8ce6d50b41f59f"&gt;changes&lt;/a&gt; required to build a CI cluster via configfs. This is really important in the sense it gets us on fast track in having a proper cluster manager in user space. I am right now looking at CMAN. With the current code base, one can configure the cluster with the below steps

ifconfig eth0 192.168.2.15 netmask 255.255.255.0
mount -t configfs none /config
mkdir  /config/ics/node2
echo -n "192.168.2.15" &gt; /config/ics/node2/icsinfo
echo -n "2" &gt; /config/ics/node2/nodenum
ln -s /config/ics/node2 /config/ics/this_node
./cluster_config --preroot
./cluster_config --postroot
echo -n "NODE_UP" &gt; /config/ics/node2/status
echo -n "NODE_READY" &gt; /config/ics/node2/status

To inform regarding other nodes status 
mkdir /config/ics/node3
echo -n "192.168.2.16" &gt; /config/ics/node3/icsinfo
echo -n "3" &gt; /config/ics/node3/nodenum
echo -n "NODE_CONFIG" &gt; /config/ics/node3/status
echo -n "NODE_UP" &gt; /config/ics/node3/status
echo -n "NODE_READY" &gt; /config/ics/node3/status&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-802392765792814794?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/802392765792814794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=802392765792814794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/802392765792814794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/802392765792814794'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/06/cluster-configuration-via-configfs.html' title='Cluster configuration via configfs'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5982601198537036960</id><published>2006-06-11T03:29:00.000-07:00</published><updated>2007-01-31T12:45:07.924-08:00</updated><title type='text'>Reworked Cluster Infrastructure code</title><content type='html'>I have been working on CI code preparing it for submitting upstream. You can check the work &lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi"&gt;here&lt;/a&gt;. Today i  was  able to run a simple test case of invoking a service on the second node. Right now the membership is 
configured from the user space via system call. I need to convert it to use configfs and CMAN.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5982601198537036960?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5982601198537036960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5982601198537036960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5982601198537036960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5982601198537036960'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/06/reworked-cluster-infrastructure-code.html' title='Reworked Cluster Infrastructure code'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5292324244679188048</id><published>2006-05-16T03:05:00.000-07:00</published><updated>2007-01-31T12:45:06.252-08:00</updated><title type='text'>git.openssi.org</title><content type='html'>We now have git.openssi.org 

&lt;a href="http://git.openssi.org/~kvaneesh/gitweb.cgi"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5292324244679188048?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5292324244679188048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5292324244679188048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5292324244679188048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5292324244679188048'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/05/gitopenssiorg.html' title='git.openssi.org'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6279393474556401789</id><published>2006-04-30T22:58:00.000-07:00</published><updated>2007-01-31T12:44:22.682-08:00</updated><title type='text'>CI - A generic framework for internode cluster communication in Linux</title><content type='html'>It is quiet a long time I updated my blog. That is mainly because I was busy cleaning up CI. &lt;a href="http://ci-linux.sf.net"&gt;Cluster infrastructure&lt;/a&gt; is an opensource project from HP. It implements a transport independent method of communicating across different nodes in a cluster. It also makes writing a cluster service extremly easy. Take a look at the documentation &lt;a href="http://ci-linux.sourceforge.net/enhancing.shtml"&gt;here&lt;/a&gt;.

The reason for working on CI code is to get it merged with the vanilla Linux kernel (Linus kernel tree). Linux currently lacks a framework for writing cluster kernel services. Take a look at Oracle's OCFS or Redhat GFS. Both use their own mechanism for communicating to other nodes in a cluster. OCFs use TCP and GFS use sctp. I wanted to continue the process management work ( &lt;a href="http://www.openssi.org/cgi-bin/view?page=proc-hooks.html"&gt;cluster proc&lt;/a&gt; )   done as a part of OpenSSI project and was looking at different ways of  writing cluster services.  That made me to look at CI code. The idea right now is to remove the kernel based cluster membership code and use Redhat CMAN.

You should be able to find the status at &lt;a href="http://www.radian.org/~kvaneesh/gitweb.cgi"&gt;here&lt;/a&gt;. I haven't pushed the code base yet. I have removed the CLMS code base and did quiet a lot of cleanups. Once i get the code compiled I will push it to radian. The second stage will be CMAN integration.  Once i get CMAN integrated i would like to add one more lowlevel transport for CI. As a part of OpenSSI project Stan Smith had CI over Infiniband code base. I guess we didn't got it submitted to CVS. I will also try to get that integrated as well. I am also looking at having CI over &lt;a href="http://tipc.sourceforge.net"&gt; TIPC &lt;/a&gt;. I know it is quiet a lot of work. So if anybody is interested  let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6279393474556401789?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6279393474556401789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6279393474556401789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6279393474556401789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6279393474556401789'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/04/ci-generic-framework-for-internode.html' title='CI - A generic framework for internode cluster communication in Linux'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1955283407031179598</id><published>2006-03-09T00:19:00.000-08:00</published><updated>2007-01-31T12:44:21.295-08:00</updated><title type='text'>True!!</title><content type='html'>After reading this 

"Concentration
It's maybe a little fashionable to use terms like "information overload" and that all our technology is making us less productive. I'm starting to buy into this theory a little more though. I'm having a lot of trouble keeping myself focused on any one task for an extended period of time. I constantly jump between task A to task B to check email C, making a little progress here and there, but I think I'm hurting myself with all these context switches. I can't seem to stop myself anytime I have to wait for something (even very briefly), my focus switches to something else.

The most problems are at work. Now I'm fairly sure the environment has a lot to do with it. It's an open concept type, with a few cubicle walls here and there. People are constantly interrupting me with questions and random conversations can break out frequently. For the most part I really like these aspects, but it can be very hard to concentrate on a task. Home isn't much better though. I have trouble just concentrating on one task, I almost always have a movie or TV going at the same time, and I can't seem to turn it off."

&lt;a href="http://ze-dinosaur.livejournal.com/6026.html"&gt;more..&lt;/a&gt;

I found myself saying "same here"  ( :( )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1955283407031179598?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1955283407031179598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1955283407031179598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1955283407031179598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1955283407031179598'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/03/true.html' title='True!!'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6741928753466317422</id><published>2006-03-06T03:57:00.000-08:00</published><updated>2007-01-31T12:44:14.156-08:00</updated><title type='text'>Git repository for OpenSSI</title><content type='html'>Last few weeks i was trying to move the OpenSSI code from CVS to git. With OpenSSI we have a complicated tagging which even made viewcvs stop working. So my attempt to convert OpenSSI CVS to git using  different git import export tools didn't work. So i ended up dropping all the code history and starting fresh with the 1.9.1 release. That means in the repository i have the base version of different packages and their respective openssi version as of 1.9.1 release. You can see the result of the work &lt;a href="http://www.radian.org/~kvaneesh/gitweb.cgi"&gt;here&lt;/a&gt;&lt;br&gt;

This may not be the final repository so if you are seriously working on OpenSSI code you should not base your development against these repositories. But I would very much like to get feedback regarding what others think of the current layout.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6741928753466317422?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6741928753466317422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6741928753466317422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6741928753466317422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6741928753466317422'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/03/git-repository-for-openssi.html' title='Git repository for OpenSSI'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2308549131061346741</id><published>2006-03-02T00:36:00.000-08:00</published><updated>2007-01-31T12:44:07.632-08:00</updated><title type='text'>switching to bogofilter from spamassasin</title><content type='html'>Using network manager for managing network with my laptop also means a mostly empty /etc/network/interfaces for me. This also resulted in spamd not starting properly. This made me look for other alternatives. I also had a feeling that spamassasin is too heavy for my usage. I decided to try bogofilter. Till now it is all working fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2308549131061346741?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2308549131061346741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2308549131061346741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2308549131061346741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2308549131061346741'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/03/switching-to-bogofilter-from.html' title='switching to bogofilter from spamassasin'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-753791397527856426</id><published>2006-02-24T23:22:00.000-08:00</published><updated>2007-01-31T12:44:01.246-08:00</updated><title type='text'>gitview 0.7 released</title><content type='html'>Download from &lt;a href="http://sf.net/projects/gitview"&gt;here&lt;/a&gt; 


Attaching below the change log
--------------------------------------

commit 1509bd9e69b916ca7f04a89fc03662e03e2ba312
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 24 21:57:51 2006 +0530

    gitview: Fix the graph display .
    
    This fix all the known issue with the graph display
    The bug need to be explained graphically
    
                                     |
                                     a
    This line need not be there ----&gt;| \
                                     b  |
                                     | /
                                     c
    
    c is parent of a and all a,b and c are placed on the same line and b is child of c
    With my last checkin I added  a seperate line to indicate that a is
    connected to c. But then we had the line connecting a and b which should
    not be ther. This changes fixes the same bug
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 9e4f522da7da8bf5f9018927c82b12e6b02b9058
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 24 21:49:54 2006 +0530

    gitview: Code cleanup
    
    Rearrange the code little bit so that it is easier to read
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 20d23f554d6cd40ffa0d41ccc9416bca867667e0
Author: Aneesh Kumar &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 24 14:08:35 2006 +0530

    gitview: Bump the rev
    
    Make the 0.7 release
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 8b42f5ae545d494463e72430fd81a0c0c558c881
Author: Aneesh Kumar &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 24 14:02:32 2006 +0530

    gitview: Fix DeprecationWarning
    
    DeprecationWarning: integer argument expected, got float
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 3fe5489a2550118e0eb3f90e348cb78afeeb61e0
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 24 00:59:42 2006 +0530

    gitview: Display the lines joining commit nodes clearly.
    
    Since i wanted to limit the graph box size i was resetting
    the window after an index of 5. This result in line joining
    commit nodes to pass over nodes which are not related. The
    changes fixes the same
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit d27d5b3c5b97ca30dfc5c448dc8cdae914131051
Author: Junio C Hamano &lt;junkio@cox.net&gt;
Date:   Wed Feb 22 03:47:20 2006 -0800

    gitview: ls-remote invocation shellquote safety.
    
    This will allow you to point GIT_DIR at directories with funny names.
    
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit d800795613a710fb18353af53730e75185861f41
Author: aneesh.kumar@gmail.com &lt;aneesh.kumar@gmail.com&gt;
Date:   Tue Feb 21 16:00:10 2006 +0530

    gitview: Use monospace font to draw the branch and tag name
    
    This patch address the below:
    Use monospace font to draw branch and tag name
    set the font size to 13.
    Make the graph column resizable. This helps to accommodate large tag names
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 5301eee92ceb1c349ea8090a4d8aa3aa70c4abed
Author: aneesh.kumar@gmail.com &lt;aneesh.kumar@gmail.com&gt;
Date:   Tue Feb 21 16:00:04 2006 +0530

    gitview: Read tag and branch information using git ls-remote
    
    This fix the below bug
    
    Junio C Hamano &lt;junkio@cox.net&gt; writes:
    
    &gt;
    &gt; It does not work in my repository, since you do not seem to
    &gt; handle branch and tag names with slashes in them.  All of my
    &gt; topic branches live in directories with two-letter names
    &gt; (e.g. ak/gitview).
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit c4d133a2b8501f0aded93fea147f0950db076ae1
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Sat Feb 18 13:54:50 2006 +0530

    gitview: typofix
    
    Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;

commit 020e3c1ee6924edbcf61b6e401058fa06ddbd406
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 17 18:18:36 2006 +0530

    Add a README for gitview
    
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;

commit 8cb711c8a5f98c1556b320114d7cc65e498ee2ae
Author: Aneesh Kumar &lt;aneesh.kumar@gmail.com&gt;
Date:   Fri Feb 17 02:10:31 2006 -0800

    Add contrib/gitview from Aneesh.
    
    Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-753791397527856426?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/753791397527856426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=753791397527856426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/753791397527856426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/753791397527856426'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/gitview-07-released.html' title='gitview 0.7 released'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-910438386542562556</id><published>2006-02-17T04:09:00.000-08:00</published><updated>2007-01-31T12:43:59.419-08:00</updated><title type='text'>gitview now part of git project</title><content type='html'>You can find it here &lt;a href="http://www.kernel.org/git/?p=git/git.git;a=commit;h=8cb711c8a5f98c1556b320114d7cc65e498ee2ae"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-910438386542562556?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/910438386542562556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=910438386542562556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/910438386542562556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/910438386542562556'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/gitview-now-part-of-git-project.html' title='gitview now part of git project'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1911684039409210512</id><published>2006-02-13T20:41:00.000-08:00</published><updated>2007-01-31T12:43:57.756-08:00</updated><title type='text'>Add support for saving patches</title><content type='html'>&lt;img src="http://static.flickr.com/35/99545840_c9f0869968.jpg?v=0" alt="" /&gt;&lt;br&gt; With this you can save the changes by following the parent or child link in the middle panel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1911684039409210512?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1911684039409210512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1911684039409210512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1911684039409210512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1911684039409210512'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/add-support-for-saving-patches.html' title='Add support for saving patches'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3663701442871785825</id><published>2006-02-10T22:16:00.000-08:00</published><updated>2007-01-31T12:43:56.648-08:00</updated><title type='text'>gitview 0.5</title><content type='html'>Released a new version of gitview. The change log is attached below. gitview can be downloaded from &lt;a href="http://www.sf.net/projects/gitview"&gt;sf.net/projects/gitview&lt;/a&gt;

commit 1dffd51311b6495adddcc1ff8682a61ba9209ff1
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Tue Feb 7 10:22:03 2006 +0530

    Support for displaying branch names and tag names

commit 769c32fb71e5c3a2540ac9acab556d563d3984ee
Author: Aneesh Kumar K.V &lt;aneesh.kumar@gmail.com&gt;
Date:   Mon Feb 6 10:18:41 2006 +0530

    use the new --always flag with git diff-tree&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3663701442871785825?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3663701442871785825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3663701442871785825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3663701442871785825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3663701442871785825'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/gitview-05.html' title='gitview 0.5'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1817279387956996927</id><published>2006-02-07T00:00:00.000-08:00</published><updated>2007-01-31T12:43:55.217-08:00</updated><title type='text'>Add branch and tag name display support</title><content type='html'>&lt;img src="http://static.flickr.com/35/96667242_f477984bf7.jpg?v=0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1817279387956996927?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1817279387956996927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1817279387956996927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1817279387956996927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1817279387956996927'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/add-branch-and-tag-name-display-support.html' title='Add branch and tag name display support'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3071091594908369347</id><published>2006-02-05T04:56:00.000-08:00</published><updated>2007-01-31T12:43:30.707-08:00</updated><title type='text'>gitview now hosted at sourceforge</title><content type='html'>I have created a project at sourceforge for making  future releases of gitview. If you are interested take a look at &lt;a href="http://www.sf.net/projects/gitview"&gt;gitview&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3071091594908369347?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3071091594908369347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3071091594908369347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3071091594908369347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3071091594908369347'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/gitview-now-hosted-at-sourceforge.html' title='gitview now hosted at sourceforge'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-5367128684681308583</id><published>2006-02-01T20:40:00.000-08:00</published><updated>2007-01-31T12:43:18.475-08:00</updated><title type='text'>gitview 0.3</title><content type='html'>I added an option to display diff in the main window. ( --with-diff ). Take a look at the snapshot below &lt;br&gt;&lt;img src="http://static.flickr.com/40/94375132_992c12990d.jpg?v=0" alt="" /&gt;&lt;br&gt; You can find more details here &lt;a href="http://www.gelato.unsw.edu.au/archives/git/0602/15871.html"&gt;gitview-0.3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-5367128684681308583?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/5367128684681308583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=5367128684681308583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5367128684681308583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/5367128684681308583'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/02/gitview-03.html' title='gitview 0.3'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8800077067690470051</id><published>2006-01-31T20:36:00.000-08:00</published><updated>2007-01-31T12:43:15.572-08:00</updated><title type='text'>Announce gitview-0.1</title><content type='html'>Today i released the 0.1 version of &lt;a href="http://www.gelato.unsw.edu.au/archives/git/0602/15777.html"&gt;gitview&lt;/a&gt;. I have requested to get it added to the git repository.  I have added a new children link in the middle panel this time. This makes it easy to go to different commits. In case you haven't noticied, using CTRL-F  will get you a search box that allows you to search with the Message field of the table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8800077067690470051?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8800077067690470051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8800077067690470051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8800077067690470051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8800077067690470051'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/01/announce-gitview-01.html' title='Announce gitview-0.1'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-241787861540108719</id><published>2006-01-29T19:50:00.000-08:00</published><updated>2007-01-31T12:41:54.629-08:00</updated><title type='text'>gitview</title><content type='html'>I was able to get the graph support working with gitview. This took me more time that i expected mostly because i was not able to follow the graph rendering class that &lt;a href="http://people.ubuntu.com/~scott/"&gt;scott&lt;/a&gt; had with bzrk.  Here is the result &lt;img src="http://static.flickr.com/34/92918446_12d0283d14.jpg?v=0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-241787861540108719?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/241787861540108719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=241787861540108719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/241787861540108719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/241787861540108719'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/01/gitview_29.html' title='gitview'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2003562191756453314</id><published>2006-01-26T20:13:00.000-08:00</published><updated>2007-01-31T12:41:52.973-08:00</updated><title type='text'>gitview</title><content type='html'>One thing i didn't like with the packaged git tools was gitk. The tcl/tk script doesn't have the nice look and feel of the rest of the linux desktop. Since i am not good at writing a new GUI application myself, i started looking at utiities that i can fix to make them work with git. I finally found this one &lt;a href="http://people.ubuntu.com/~scott/bzr/bzrk/"&gt;bzrk&lt;/a&gt;. After half day of hacking this is what i have &lt;img src="http://static.flickr.com/28/91636482_1a3b089613.jpg?v=0" alt="" /&gt;.

I am yet to get the graph part working. It is quiet complex. But i am sure i should be able to get it working soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2003562191756453314?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2003562191756453314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2003562191756453314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2003562191756453314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2003562191756453314'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/01/gitview.html' title='gitview'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2240428771338650675</id><published>2006-01-19T02:49:00.000-08:00</published><updated>2007-01-31T12:41:51.957-08:00</updated><title type='text'>Discussion with Mark Shuttleworth</title><content type='html'>Today I had the chance to meet Mark Shuttleworth of ubuntu. We had some nice discussion regarding ubuntu and launchpad. My main question to him was about how he plan  to keep the company running if he intends to develop only a distro that is given/shipped free of cost. Well quiet a lot of things became clear after we had the discussion.

a) Why not debian:
	Getting/Forcing debian to work the way ubuntu guys wanted would have created trouble with debian.

b) He is not intending to make "lot" of profit.
      He is more interested in the freedom part of the project. They don't ship 3rd party proprietary application on ubuntu. But they do that regarding some drivers . That in a way is nice as long as there is no other alternatives to get those hardware work with the distro

c) launchpad :
	A collaboration framework where in all developers across distro can work together. Well if all that i heard in the meeting are true then it is  going to be a killer webapp/website.

d) why launchpad is closed source:
	Here comes the catch. His idea is to make ubuntu self sustaining. And the money for that comes from the service that cannonical offer The service offered by cannonical have a lot of dependency on launchpad.  That is their value addition. He don't intend to make launchpad as a replacement for bugzilla or debian bug tracking. What launchpad is good at is, getting information out bugzilla or debian bug tracking and presenting a single page where in developers can track their bugs( there is much more to that ). Well the catch is the link between these different bug tracking system will  be populated either by developer or the user who file the bug. 

All in all i found it interesting.  I also asked him  to write webblogs regarding different functionalities of launchpad so that all these can be understood much easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2240428771338650675?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2240428771338650675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2240428771338650675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2240428771338650675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2240428771338650675'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/01/discussion-with-mark-shuttleworth.html' title='Discussion with Mark Shuttleworth'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2422238067288960691</id><published>2006-01-06T02:33:00.000-08:00</published><updated>2007-01-31T12:41:50.036-08:00</updated><title type='text'>Got Married</title><content type='html'>I have not been updating my blog for quiet a long time. There are many reason

a) I was moved to a new team and had quiet a lot of work. I had no time to look at opensource especially OpenSSI. If you are wondering whether the new work is Linux related, No. But it is unix. 

b) Got married. Yes, I got married to Roopali on 11-Dec-2005. 

I am back to work now and i am going through my mails. Hopefully you should find me updating the blog more frequently now onwards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2422238067288960691?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2422238067288960691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2422238067288960691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2422238067288960691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2422238067288960691'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2006/01/got-married.html' title='Got Married'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-6613526864205264858</id><published>2005-07-20T03:23:00.000-07:00</published><updated>2007-01-31T12:41:37.492-08:00</updated><title type='text'></title><content type='html'>&lt;p&gt;&lt;a href="http://www.tk421.net/character/"&gt;&lt;img src="http://www.tk421.net/character/samwise.jpg" width="262" height="211" style="border-color:#f8f8ff;" border="2" alt="Which Fantasy/SciFi Character Are You?" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-6613526864205264858?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/6613526864205264858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=6613526864205264858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6613526864205264858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/6613526864205264858'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/07/which-fantasyscifi-character-are-you.html' title=''/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2434305333133038256</id><published>2005-06-02T22:53:00.000-07:00</published><updated>2007-01-31T12:40:33.205-08:00</updated><title type='text'>OpenSSI 1.9.1 released!!</title><content type='html'>This release is interesting because we have integrated Xen ( &lt;a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/"&gt;http://www.cl.cam.ac.uk/Research/SRG/netos/xen/&lt;/a&gt; ) with OpenSSI.  Follow the below link if you want to try OpenSSI clustering  with Xen &lt;a href="http://www.openssi.org/cgi-bin/view?page=docs2/1.9/debian/xen-howto.txt."&gt;http://www.openssi.org/cgi-bin/view?page=docs2/1.9/debian/xen-howto.txt.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2434305333133038256?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2434305333133038256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2434305333133038256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2434305333133038256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2434305333133038256'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/06/openssi-191-released.html' title='OpenSSI 1.9.1 released!!'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1530622601729239093</id><published>2005-05-13T04:05:00.000-07:00</published><updated>2007-01-31T12:40:14.612-08:00</updated><title type='text'>OpenSSI and Xen</title><content type='html'>Today i finished the first cut porting of OpenSSI to Xen. That means our 1.9.1 release of OpenSSI is going to support Xen virtual Machines !!!.  All the changes are submitted to CVS. If you are a brave heart  you can build the packages from CVS. 

The thing i like about Xen is the speed. I have tried to build a Cluster using UML, QEMU etc and all these attempts was dropped later because of the complexity involved in getting the configuration done or because of slowness. Xen is really fast and right now i have a two node cluster running on a single hardware and it's quiet fast. 

You can find the kernel patches for Xen ( which i haven't figured out how to put in the CVS )  at 
&lt;a href="http://openssi.org/contrib/xen/"&gt;http://openssi.org/contrib/xen/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1530622601729239093?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1530622601729239093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1530622601729239093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1530622601729239093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1530622601729239093'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/05/openssi-and-xen.html' title='OpenSSI and Xen'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-2121669251028429046</id><published>2005-04-27T22:38:00.000-07:00</published><updated>2007-01-31T12:39:21.137-08:00</updated><title type='text'>OpenSSI 1.9 release</title><content type='html'>OpenSSI 1.9 release happened yesterday. Lot of exciting changes. Most important thing is, this release is based on the Linux kernel 2.6. That means if you wanted to run a cluster and also would like to have the new features available with the kernel 2.6 then this is the release you should try. Another big changes is that we made Debian release first !!!. That means Debian is now main distro. From my pet project to the main distro we release!! wow!!!. 

Now if you are going to give it a try I would ask you to try with a fresh install. We have tried to make sure an upgrade from 1.2 release works. But there could be some errors. If you are  upgrading, please make sure you follow the upgrade document. 

ha-lvs got lot of enhancement. To find more look at the release notes at 
&lt;a href="http://sourceforge.net/project/shownotes.php?group_id=32541&amp;release_id=323532"&gt;http://sourceforge.net/project/shownotes.php?group_id=32541&amp;release_id=323532&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-2121669251028429046?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/2121669251028429046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=2121669251028429046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2121669251028429046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/2121669251028429046'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/04/openssi-19-release.html' title='OpenSSI 1.9 release'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-8757478211156898864</id><published>2005-03-10T01:56:00.000-08:00</published><updated>2007-01-31T12:39:13.589-08:00</updated><title type='text'>OpenSSI development news</title><content type='html'>I  now have a two node Debian OpenSSI cluster running with 2.6 kernel. We are a lot stable with the 2.6 kernel now.  Clusterwide Device story is the only remaining thing that is to be done with the 2.6 kernel branch. 

I have made quiet a few improvements with ha-lvs code in the development branch. This include moving all the hal-vs related /proc files to seq file interface and  also making ha-lvs load balancer a configurable value. I have also changed the cvip configuration file format to make is much simpler to configure ha-lvs. 

DRBD (&lt;a href="http://www.drbd.org/"&gt;http://www.drbd.org/&lt;/a&gt; ) had seen quiet a few changes in  both the stable and  the development branch.  Configuring DRDB with Debian OpenSSI is a lot simpler since i have integrated all needed changes into tools. If you are interested follow the below document. 

&lt;a href="http://www.openssi.org/cgi-bin/view?page=docs2/1.2/debian/README.drbd"&gt;http://www.openssi.org/cgi-bin/view?page=docs2/1.2/debian/README.drbd&lt;/a&gt;

using DRBD in a OpenSSI cluster helps in building a high available cluster which can even take care of root node failure. 

BTW  I started working full time for OpenSSI . This means i am moving from a voluntary mode to sponsored mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-8757478211156898864?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/8757478211156898864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=8757478211156898864' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8757478211156898864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/8757478211156898864'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/03/openssi-development-news.html' title='OpenSSI development news'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1965064363391120370</id><published>2005-03-10T01:46:00.000-08:00</published><updated>2007-01-31T12:39:09.133-08:00</updated><title type='text'>OpenSSI 1.2.1 release</title><content type='html'>Released OpenSSI 1.2.1  for Debian.  Follow the below document to install the Cluster. 

&lt;a href="http://www.openssi.org/cgi-bin/view?page=docs2/1.2/debian/INSTALL.html"&gt;http://www.openssi.org/cgi-bin/view?page=docs2/1.2/debian/INSTALL.html&lt;/a&gt; 

Changes with respect 1.20 release include 

2005/03/02      lramirez &lt;laura.ramirez@hp.com&gt;
        * Enabled some loadleveling code to take utime into consideration
        * Fix pgrp deadlock by allowing the rmv during reaps to be queued lock
          was busy.
        * Set all nsc kernel threads to run at higher priority.

2005/02/24      jlbyrne &lt;john.l.byrne@hp.com&gt;
        A summary of changes I've made since 1.2.0:
        * Fixed token bug with nodes higher than 32
        * Various changes to logging.
        * Fixed CFS to stack over ramfs.
        * Chnaged CFS to mark pages up-to-date when a file is being
          extended.
        * Fixed panics in mount caused by NULL mount options.
        * Fixed siginfo reported with SIGCHLD.
        * Allowed processes with files open in /proc to migrate.
        * Allowed hostnames to be used in cvip.conf instead of numeric IP
          addresses.
        * Modified portmap not to die if an alias has the same address
          as a real interface. Allows the ICS address to be used as
          the CVIP gateway.

2005/02/24      kvaneesh &lt;aneesh.kumar@gmail.com&gt;
        * Fix drbd commands to be able to read the configuration file
          on a non OpenSSI kernel
        * Fix the drbd  linuxrc to take care of split brain.
          (Fix suggested by Roger )

2005/02/23      bjbrew &lt;Brian.J.Watson@hp.com&gt;
        * Correct some errors and omissions in README.ltsp

2005/02/21      lramirez &lt;laura.ramirez@hp.com&gt;
        * Fix bug in vpop_wait() where -ECHILD was being returned when
          waiting for specific children in a pgrp. Checked in by Roopa

2005/02/18      jlbyrne &lt;john.l.byrne@hp.com&gt;
        * Hack for allowing poll/selects to before `cluster_config --prep'

2005/02/17      kvaneesh &lt;aneesh.kumar@gmail.com&gt;
        *  Validate the MAC and IP address while adding new cluster nodes
        *  Fix the creation of global files by creating proper links

2005/02/15      gopalak &lt;gopalak@hp.com&gt;
        * Merge distro-specific versions of README.nfs-server,
          README.nfs-client, and README.ntp into a single set of
          general documents

2005/02/08      kvaneesh &lt;aneesh.kumar@gmail.com&gt;
        *  Add new device creation rules to debian devfsd.

2005/02/01      kvaneesh &lt;aneesh.kumar@gmail.com&gt;
        *  Fix initrd-tools to create the device nodes correctly&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1965064363391120370?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1965064363391120370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1965064363391120370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1965064363391120370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1965064363391120370'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/03/openssi-121-release.html' title='OpenSSI 1.2.1 release'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-3092436893519731828</id><published>2005-01-03T06:30:00.000-08:00</published><updated>2007-01-31T12:39:07.739-08:00</updated><title type='text'>OpenSSI 1.2 for Debian</title><content type='html'>I forgot to update the Blog with the release information. OpenSSI 1.2 for Debian was released on 22-Dec-2004. Well to install follow the documents at &lt;a href="http://www.openssi.org/docs/debian/INSTALL.shtml"&gt;http://www.openssi.org/docs/debian/INSTALL.shtml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-3092436893519731828?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/3092436893519731828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=3092436893519731828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3092436893519731828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/3092436893519731828'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/01/openssi-12-for-debian.html' title='OpenSSI 1.2 for Debian'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7976757727537262041.post-1119137279568499543</id><published>2005-01-03T06:21:00.000-08:00</published><updated>2007-01-31T12:39:05.576-08:00</updated><title type='text'>One week away from Office</title><content type='html'>Had a nice vacation at my home town. Finished the book &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0385504209/qid=1104760591/sr=8-1/ref=pd_csp_1/002-5606345-6872822?v=glance&amp;s=books&amp;n=507846"&gt;The Da Vinci Code&lt;/a&gt;. Good one. Reading the book made me think about previous discussions  that i had with my friends  about twists in the Indian history. Earlier I had come across mails that state different opinions about the history of "tourists places" in India. I always kept wondering does it really matter ?. Does it really matter to anyone who built tajmahal and what lies beneath the great building ? For me it is an architectural masterpiece and is a monument for a good cause. So why do one need to change that ? What is wrong with the current way of looking at things ? Ofcourse it is good to know truth, but then at the end does it really matters if truth comes with pain and chaos ?

BTW while arguing about "true history" with my friends, they said many Indians don't understand the "true Indian history" and knowing the history always brings in confidence. I would say that's their problem. Not due to the twist in the history. If you want to figure out Indian contributions to science read books on Bhagavad- Gita (psychology ), vedic mathematics (maths), Ayurveda (medicine) etc which are actually part of documented indian history..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7976757727537262041-1119137279568499543?l=aneesh-kumar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aneesh-kumar.blogspot.com/feeds/1119137279568499543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7976757727537262041&amp;postID=1119137279568499543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1119137279568499543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7976757727537262041/posts/default/1119137279568499543'/><link rel='alternate' type='text/html' href='http://aneesh-kumar.blogspot.com/2005/01/one-week-away-from-office.html' title='One week away from Office'/><author><name>Aneesh Kumar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
