Dipankar Sarma
ab2af1f500
[PATCH] files: files struct with RCU
...
Patch to eliminate struct files_struct.file_lock spinlock on the reader side
and use rcu refcounting rcuref_xxx api for the f_count refcounter. The
updates to the fdtable are done by allocating a new fdtable structure and
setting files->fdt to point to the new structure. The fdtable structure is
protected by RCU thereby allowing lock-free lookup. For fd arrays/sets that
are vmalloced, we use keventd to free them since RCU callbacks can't sleep. A
global list of fdtable to be freed is not scalable, so we use a per-cpu list.
If keventd is already handling the current cpu's work, we use a timer to defer
queueing of that work.
Since the last publication, this patch has been re-written to avoid using
explicit memory barriers and use rcu_assign_pointer(), rcu_dereference()
premitives instead. This required that the fd information is kept in a
separate structure (fdtable) and updated atomically.
Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com >
Signed-off-by: Andrew Morton <akpm@osdl.org >
Signed-off-by: Linus Torvalds <torvalds@osdl.org >
2005-09-09 13:57:55 -07:00
..
2005-09-08 22:46:00 +01:00
2005-08-29 16:00:54 -07:00
2005-09-06 15:10:46 -07:00
2005-08-29 16:13:29 -07:00
2005-09-07 16:57:25 -07:00
2005-08-30 22:44:20 -05:00
2005-09-07 16:57:21 -07:00
2005-09-09 13:57:32 -07:00
2005-09-07 17:31:27 -07:00
2005-09-05 00:05:44 -07:00
2005-09-07 16:57:19 -07:00
2005-09-02 00:57:31 -07:00
2005-09-07 16:57:40 -07:00
2005-09-08 14:41:27 -07:00
2005-09-01 17:43:05 -07:00
2005-09-07 16:57:41 -07:00
2005-08-29 16:13:37 -07:00
2005-09-07 16:57:44 -07:00
2005-09-05 00:06:09 -07:00
2005-09-07 16:57:21 -07:00
2005-08-29 16:02:44 -07:00
2005-09-07 16:57:23 -07:00
2005-09-07 16:57:23 -07:00
2005-09-09 13:57:55 -07:00
2005-09-07 16:57:26 -07:00
2005-09-09 13:57:55 -07:00
2005-09-07 16:57:17 -07:00
2005-09-07 16:57:40 -07:00
2005-08-29 16:10:54 -07:00
2005-09-05 00:05:46 -07:00
2005-09-05 09:14:13 -07:00
2005-09-05 09:14:23 -07:00
2005-09-05 09:14:17 -07:00
2005-09-05 09:14:33 -07:00
2005-09-05 09:14:31 -07:00
2005-09-05 09:26:56 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:10:54 -07:00
2005-08-29 16:10:54 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:10:54 -07:00
2005-08-29 16:01:32 -07:00
2005-09-01 17:40:05 -07:00
2005-08-29 15:32:25 -07:00
2005-08-29 16:01:32 -07:00
2005-09-08 10:19:03 +09:00
2005-08-29 15:49:46 -07:00
2005-08-29 15:57:48 -07:00
2005-09-09 13:57:55 -07:00
2005-09-07 16:57:39 -07:00
2005-09-07 16:57:54 -07:00
2005-09-07 16:57:20 -07:00
2005-08-29 15:43:19 -07:00
2005-09-07 16:57:48 -07:00
2005-09-08 10:19:03 +09:00
2005-09-07 16:57:29 -07:00
2005-09-07 16:57:34 -07:00
2005-09-07 16:57:19 -07:00
2005-09-07 18:26:54 -07:00
2005-09-07 16:57:59 -07:00
2005-09-05 05:20:33 -04:00
2005-09-07 16:57:59 -07:00
2005-08-29 16:11:00 -07:00
2005-09-08 14:57:23 -07:00
2005-09-05 00:05:38 -07:00
2005-08-30 13:31:56 +10:00
2005-09-07 16:57:26 -07:00
2005-09-05 00:06:00 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 16:02:44 -07:00
2005-08-29 16:00:54 -07:00
2005-08-29 15:34:40 -07:00
2005-08-29 16:01:32 -07:00
2005-08-29 15:57:14 -07:00
2005-08-29 16:01:35 -07:00
2005-09-05 00:05:49 -07:00
2005-09-06 22:17:49 -04:00
2005-09-08 14:57:24 -07:00
2005-09-09 13:57:47 -07:00
2005-09-07 16:57:24 -07:00
2005-09-05 00:06:16 -07:00
2005-09-07 16:57:25 -07:00
2005-09-07 16:57:43 -07:00
2005-08-30 22:48:51 -05:00
2005-08-29 15:49:40 -07:00
2005-09-09 13:57:54 -07:00
2005-09-09 13:57:54 -07:00
2005-09-07 16:57:18 -07:00
2005-08-29 16:00:54 -07:00
2005-09-09 13:57:31 -07:00
2005-09-09 13:57:28 -07:00
2005-08-29 16:00:54 -07:00
2005-09-07 16:57:26 -07:00
2005-09-08 16:04:41 +01:00
2005-09-08 14:47:12 -07:00
2005-08-31 21:48:47 +01:00
2005-09-08 12:32:03 -07:00
2005-09-07 16:57:45 -07:00
2005-08-29 16:01:32 -07:00
2005-09-07 16:57:24 -07:00
2005-08-30 08:58:37 +02:00
2005-09-05 00:05:42 -07:00
2005-09-05 00:05:45 -07:00
2005-09-07 16:57:49 -07:00
2005-08-29 15:56:18 -07:00
2005-09-07 16:57:30 -07:00
2005-09-07 16:57:34 -07:00
2005-09-07 16:57:40 -07:00
2005-08-29 15:57:59 -07:00
2005-09-08 16:22:48 -07:00
2005-09-08 16:23:04 -07:00
2005-09-09 13:57:49 -07:00
2005-09-09 13:57:49 -07:00
2005-09-05 00:05:46 -07:00
2005-09-07 00:27:54 -04:00
2005-08-29 16:00:54 -07:00