Nick Piggin
612d6c19db
[PATCH] radix-tree: direct data
...
The ability to have height 0 radix trees (a direct pointer to the data item
rather than going through a full node->slot) quietly disappeared with
old-2.6-bkcvs commit ffee171812d51652f9ba284302d9e5c5cc14bdfd. On 64-bit
machines this causes nearly 600 bytes to be used for every <= 4K file in
pagecache.
Re-introduce this feature, root tags stored in spare ->gfp_mask bits.
Simplify radix_tree_delete's complex tag clearing arrangement (which would
become even more complex) by just falling back to tag clearing functions
(the pagecache radix-tree never uses this path anyway, so the icache
savings will mean it's actually a speedup).
On my 4GB G5, this saves 8MB RAM per kernel kernel source+object tree in
pagecache.
Pagecache lookup, insertion, and removal speed for small files will also be
improved.
This makes RCU radix tree harder, but it's worth it.
Signed-off-by: Nick Piggin <npiggin@suse.de >
Signed-off-by: Andrew Morton <akpm@osdl.org >
Signed-off-by: Linus Torvalds <torvalds@osdl.org >
2006-06-23 07:42:49 -07:00
..
2006-04-26 12:56:16 +01:00
2006-04-25 14:16:14 +01:00
2006-04-26 12:56:16 +01:00
2006-05-19 21:48:03 +01:00
2006-06-20 15:10:08 -07:00
2006-06-20 15:10:08 -07:00
2006-06-20 15:10:08 -07:00
2006-04-26 12:56:16 +01:00
2006-05-16 14:33:57 -07:00
2006-04-26 12:56:16 +01:00
2006-06-21 15:04:18 -07:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:48 -07:00
2006-05-04 15:49:24 +01:00
2006-04-25 13:58:23 +01:00
2006-04-26 12:56:16 +01:00
2006-06-20 15:37:56 -07:00
2006-06-21 11:18:25 -07:00
2006-04-27 16:46:56 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:46 -07:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:45 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-05-04 00:41:02 +01:00
2006-06-22 11:22:50 -07:00
2006-06-19 18:16:01 -07:00
2006-04-26 12:56:16 +01:00
2006-05-04 17:50:04 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:45 -07:00
2006-04-26 12:56:16 +01:00
2006-04-27 13:08:56 -07:00
2006-06-21 15:01:33 +10:00
2006-04-26 12:56:16 +01:00
2006-06-21 12:40:49 -07:00
2006-05-04 15:07:59 +01:00
2006-05-10 14:04:22 -07:00
2006-06-17 21:25:46 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-08 15:14:23 -07:00
2006-04-27 00:11:01 +01:00
2006-04-27 00:11:01 +01:00
2006-04-26 12:56:16 +01:00
2006-04-29 01:53:47 +01:00
2006-04-25 15:18:31 +01:00
2006-05-04 17:28:26 +01:00
2006-05-21 12:59:19 -07:00
2006-05-03 23:06:44 +10:00
2006-06-23 07:42:45 -07:00
2006-05-21 12:59:19 -07:00
2006-06-20 05:25:28 -04:00
2006-04-26 12:56:16 +01:00
2006-04-25 13:59:30 +01:00
2006-06-23 07:42:49 -07:00
2006-04-25 14:07:02 +01:00
2006-04-25 14:07:57 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-22 23:32:03 -04:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-22 02:38:50 +01:00
2006-06-23 07:42:48 -07:00
2006-04-25 14:10:40 +01:00
2006-06-22 11:10:33 -07:00
2006-06-22 11:10:34 -07:00
2006-05-04 17:32:44 +01:00
2006-06-10 11:02:05 -07:00
2006-04-26 12:56:16 +01:00
2006-05-16 23:25:37 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-17 21:29:37 -07:00
2006-04-26 12:56:16 +01:00
2006-06-20 05:25:19 -04:00
2006-06-20 15:10:08 -07:00
2006-04-26 12:56:16 +01:00
2006-06-20 20:24:58 -07:00
2006-04-25 14:15:44 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-21 12:40:49 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-05-20 17:27:32 +01:00
2006-06-03 00:27:53 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-05-15 11:20:55 -07:00
2006-06-22 15:05:56 -07:00
2006-04-26 12:56:16 +01:00
2006-06-21 12:40:48 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-29 18:33:15 -07:00
2006-06-22 11:10:32 -07:00
2006-06-05 12:29:17 -07:00
2006-04-20 07:54:04 -07:00
2006-06-20 15:10:08 -07:00
2006-04-26 12:56:16 +01:00
2006-04-29 01:53:47 +01:00
2006-06-23 07:42:45 -07:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:46 -07:00
2006-04-26 00:14:19 -04:00
2006-06-20 15:10:08 -07:00
2006-06-23 07:42:45 -07:00
2006-04-25 14:26:46 +01:00
2006-04-19 04:14:19 +02:00
2006-05-04 02:55:50 +01:00
2006-04-25 14:26:26 +01:00
2006-04-26 12:56:16 +01:00
2006-06-20 17:39:53 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-22 11:22:50 -07:00
2006-04-25 14:51:45 +01:00
2006-04-25 14:51:45 +01:00
2006-04-25 14:51:45 +01:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:46 -07:00
2006-04-27 08:59:48 +02:00
2006-04-26 12:56:16 +01:00
2006-06-22 15:08:56 -07:00
2006-06-22 15:05:56 -07:00
2006-06-11 14:02:27 -07:00
2006-06-21 12:00:00 -07:00
2006-04-26 12:56:16 +01:00
2006-06-17 22:54:03 -07:00
2006-05-04 06:55:12 +02:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-05-04 12:07:37 +01:00
2006-06-09 21:24:13 +10:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-25 14:52:13 +01:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:49 -07:00
2006-06-23 07:42:45 -07:00
2006-06-05 20:19:05 +01:00
2006-05-15 11:20:55 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-20 15:37:56 -07:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:45 -07:00
2006-06-17 21:29:55 -07:00
2006-04-25 14:55:13 +01:00
2006-04-26 12:56:16 +01:00
2006-06-20 17:52:36 -07:00
2006-04-26 12:56:16 +01:00
2006-04-29 01:42:26 +01:00
2006-06-20 15:10:08 -07:00
2006-05-24 09:22:21 +01:00
2006-04-25 15:18:05 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-25 15:29:01 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-23 07:42:47 -07:00
2006-05-24 09:22:21 +01:00
2006-06-23 07:42:47 -07:00
2006-06-21 12:40:48 -07:00
2006-04-26 12:56:16 +01:00
2006-06-20 15:10:08 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-06-21 12:40:47 -07:00
2006-04-26 12:56:16 +01:00
2006-04-26 12:56:16 +01:00
2006-05-04 00:59:14 +01:00
2006-04-29 01:49:06 +01:00
2006-04-26 12:56:16 +01:00
2006-06-21 15:04:19 -07:00
2006-04-25 15:14:50 +01:00
2006-05-12 19:54:53 -03:00
2006-06-23 07:42:49 -07:00
2006-04-26 12:56:16 +01:00
2006-06-20 15:10:08 -07:00
2006-04-26 12:56:16 +01:00
2006-04-25 15:00:56 +01:00
2006-06-17 21:28:39 -07:00
2006-06-22 15:05:58 -07:00
2006-06-22 15:05:58 -07:00
2006-06-22 15:05:58 -07:00