All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: J?r?my Cochoy <jeremy.cochoy@gmail.com>
Cc: Liuweni <qingshenlwy@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	strongzgy <strongzgy@gmail.com>, xgr178 <xgr178@163.com>,
	Liu Hui <onlyflyer@gmail.com>, viro <viro@zeniv.linux.org.uk>,
	akpm <akpm@linux-foundation.org>, jack <jack@suse.cz>,
	npiggin <npiggin@suse.de>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH 1/3]fs/inode: iunique() Optimize Performance
Date: Wed, 25 Nov 2009 12:52:57 -0700	[thread overview]
Message-ID: <20091125195256.GL9482@parisc-linux.org> (raw)
In-Reply-To: <a229bc400911251120y220066afjb10d391198c5807c@mail.gmail.com>

On Wed, Nov 25, 2009 at 08:20:02PM +0100, J?r?my Cochoy wrote:
> Hello,
> 
> There is something strange in iunique : what will happend if all inode
> between max_reserved+1 and (unsinged in)(0-1) ? Will it make an
> infinite loop or an interruption can happen and make an inode become
> free?

Another process can free an inode while this loop is executing.

> In that case, it will be better to stop search when counter overflow, no?

If you have all four billion inodes allocated, you have significantly
bigger problems than this loop.  For a start, at 600 bytes per inode,
I'd like to see your machine with 2.4TB of memory.  Then there's the
size of your inode hash, and the depth of the chains within it.

> Will it not be better to use a field max_ino_used (in superblock, for
> exemple) where we store the last inode allocated with iunique and make
> a search only if max_ino_used become to (unsigned)(-1) ?
> 
> But, if iunique is here to provide a solution in order to generate
> unused inode in filesystem which have various inode number, it's
> better to use a list of used ino, in a short hash table which use the
> first 8 bits of the inode, always use the same function to create a
> new inode and look at the head if we can add a new inode with bigger
> ino and still in the range. (But i think filesystems developper prefer
> to write ther own functions in order to do that, no?)
> 
> Well, if we want to stop in case of full inode filesystem, we can put
> the first condition in the head and add change return as :
> return inode->i_ino > max_reserved ? res : 0; // 0 might "i can't find
> an inode after max_reserved"

Gloves.

http://thedailywtf.com/Articles/The_Complicator_0x27_s_Gloves.aspx

-- 
Matthew Wilcox				Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

  reply	other threads:[~2009-11-25 19:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-25 14:09 [PATCH 1/3]fs/inode: iunique() Optimize Performance Liuweni
2009-11-25 14:15 ` Matthew Wilcox
2009-11-25 19:20   ` Jérémy Cochoy
2009-11-25 19:52     ` Matthew Wilcox [this message]
2009-12-01  5:01       ` liu weni
2009-12-01  5:01         ` liu weni
2009-12-01 12:03         ` Matthew Wilcox
2009-12-01 13:21           ` Liuweni
2009-12-01 13:21             ` Liuweni
2009-12-01 14:00             ` Matthew Wilcox
2009-12-02  9:42               ` Nick Piggin
2009-11-25 14:51 ` Liuweni
2009-11-25 14:51   ` Liuweni
2009-11-25 14:54   ` Matthew Wilcox
2009-11-25 15:06 ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091125195256.GL9482@parisc-linux.org \
    --to=matthew@wil.cx \
    --cc=akpm@linux-foundation.org \
    --cc=jack@suse.cz \
    --cc=jeremy.cochoy@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@suse.de \
    --cc=onlyflyer@gmail.com \
    --cc=qingshenlwy@gmail.com \
    --cc=strongzgy@gmail.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=xgr178@163.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.