All of lore.kernel.org
 help / color / mirror / Atom feed
From: John McCutchan <ttb@tentacle.dhs.org>
To: Robert Love <rml@novell.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.org, iggy@gentoo.org
Subject: Re: [patch] inotify: use the idr layer
Date: Tue, 28 Sep 2004 17:58:14 -0400	[thread overview]
Message-ID: <1096408694.16622.1.camel@vertex> (raw)
In-Reply-To: <1096407964.4911.90.camel@betsy.boston.ximian.com>

+       spin_lock(&dev->lock);
+       ret = idr_get_new(&dev->idr, watcher, &watcher->wd);
+       spin_lock(&dev->lock);

I think you mean spin_unlock on the third line? Other than that I think
it should work.

John
On Tue, 2004-09-28 at 17:46, Robert Love wrote:
> OK, I told John I would post this ASAP, as soon as I finished testing
> it, but I got backed up, so here it is without much testing.  It does
> compile fine.
> 
> This patch removes our current bitmap-based allocation system and
> replaces it with the idr layer.  The idr layer allows us to use a radix
> tree, rooted at each device instance, to trivially map between watcher
> descriptors and watcher structures.  In idr terminology, the watcher
> descriptor is the id and the watcher structure is the pointer.
> 
> Allocating a new watcher descriptor and associating it with a given
> watcher structure is done in the same place as before,
> inotify_dev_get_wd().  The code for doing this is a bit weird.  The idr
> layer's interface leaves a bit to be desired.
> 
> The function dev_find_wd() is used to map from a given watcher
> descriptor to a watcher structure.  This used to be our least scalable
> function: O(n), but at a small fixed n, so you could call it O(1).  Now
> it is O(lg n); n is still fixed, so you can still call it O(1).
> 
> I also cleaned up some locking and added some comments.
> 
> Like I said, I have not tested this, probably won't until tomorrow, but
> here it is to play with earlier if anyone so chooses.  The idr layer is
> rather nice for this sort of thing.
> 
> Patch is on top of all of my previous patches.
> 
> 	Robert Love
> 

  reply	other threads:[~2004-09-28 21:58 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-27  2:02 [RFC][PATCH] inotify 0.10.0 John McCutchan
2004-09-27  4:17 ` Andrew Morton
2004-09-27 20:52   ` Robert Love
2004-09-28  4:41     ` Andrew Morton
2004-09-28  2:14       ` Robert Love
2004-09-28  3:44         ` John McCutchan
2004-09-28 17:31           ` Robert Love
2004-09-28  5:45     ` Ray Lee
2004-09-28 19:08       ` Andrew Morton
2004-09-28 16:41         ` Chris Friesen
2004-09-28 16:53           ` Robert Love
2004-09-28 17:32             ` Ray Lee
2004-09-28 20:34               ` John McCutchan
2004-09-28 21:20                 ` Ray Lee
2004-09-30  4:15                 ` Andrew Morton
2004-09-30  1:32                   ` John McCutchan
2004-09-30  1:34                   ` Robert Love
2004-09-30  3:05                     ` Paul Jackson
2004-09-30  5:37                       ` Chris Friesen
2004-09-30 12:43                         ` Paul Jackson
2004-09-30 15:29                       ` Ray Lee
2004-09-30 16:27                         ` Paul Jackson
2004-09-30 16:53                           ` Ray Lee
2004-09-30 17:48                             ` Paul Jackson
2004-10-01  1:22                               ` Ray Lee
2004-10-01  4:09                                 ` Paul Jackson
2004-10-04 20:58                                   ` Ray Lee
2004-09-28 20:40         ` John McCutchan
2004-09-28 20:47           ` Robert Love
2004-09-28 21:39             ` Ray Lee
2004-09-28 22:10               ` Robert Love
2004-09-28 21:32           ` Ray Lee
2004-09-30  4:31           ` Andrew Morton
2004-09-28 20:26       ` John McCutchan
2004-09-28 21:10         ` Ray Lee
2004-09-28 21:20           ` Robert Love
2004-09-28 21:21           ` John McCutchan
2004-09-28 21:35             ` Robert Love
2004-09-28 21:50               ` Ray Lee
2004-09-28 22:03                 ` Robert Love
2004-09-27 16:21 ` [gamin] [RFC][PATCH] inotify 0.10.0 [u] Martin Schlemmer [c]
2004-09-27 16:24   ` Robert Love
2004-09-27 16:30     ` Martin Schlemmer [c]
2004-09-27 16:35       ` Robert Love
2004-09-27 17:10         ` Martin Schlemmer [c]
2004-09-27 16:25 ` Martin Schlemmer [c]
2004-09-27 17:12 ` [RFC][PATCH] inotify 0.10.0 Robert Love
2004-09-27 19:48   ` Paul Jackson
2004-09-27 20:22     ` patch] inotify: use bitmap.h functions Robert Love
2004-09-27 20:38       ` Paul Jackson
2004-09-27 19:51 ` [patch] inotify: make it configurable Robert Love
2004-09-27 19:53 ` [patch] inotify: doh Robert Love
2004-09-27 20:06 ` [RFC][PATCH] inotify 0.10.0 Robert Love
2004-09-27 20:39 ` [patch] inotify: don't check private_data Robert Love
2004-09-28  1:05 ` [patch] inotify: silly fix Robert Love
2004-09-28 17:38 ` [RFC][PATCH] inotify 0.10.0 Mike Waychison
2004-09-28 20:35   ` John McCutchan
2004-09-28 17:48 ` [patch] inotify: remove timer Robert Love
2004-09-28 21:46 ` [patch] inotify: use the idr layer Robert Love
2004-09-28 21:58   ` John McCutchan [this message]
2004-09-28 22:08     ` Robert Love

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=1096408694.16622.1.camel@vertex \
    --to=ttb@tentacle.dhs.org \
    --cc=akpm@osdl.org \
    --cc=iggy@gentoo.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rml@novell.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.