Jeff Layton
7012b02a2b
locks: move file_lock_list to a set of percpu hlist_heads and convert file_lock_lock to an lglock
...
The file_lock_list is only used for /proc/locks. The vastly common case
is for locks to be put onto the list and come off again, without ever
being traversed.
Help optimize for this use-case by moving to percpu hlist_head-s. At the
same time, we can make the locking less contentious by moving to an
lglock. When iterating over the lists for /proc/locks, we must take the
global lock and then iterate over each CPU's list in turn.
This change necessitates a new fl_link_cpu field to keep track of which
CPU the entry is on. On x86_64 at least, this field is placed within an
existing hole in the struct to avoid growing the size.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-07-08 13:36:42 +04:00
..
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:57:36 +04:00
2013-07-03 09:10:19 -07:00
2013-07-05 18:59:33 +04:00
2013-06-29 12:56:55 +04:00
2013-06-29 12:56:33 +04:00
2013-07-04 11:40:58 -07:00
2013-07-03 16:07:31 -07:00
2013-07-05 18:59:33 +04:00
2013-07-03 14:35:40 -07:00
2013-07-05 18:59:33 +04:00
2013-07-03 16:07:23 -07:00
2013-06-29 12:56:46 +04:00
2013-06-03 13:55:02 -07:00
2013-03-07 01:08:55 -08:00
2013-06-26 11:38:02 -05:00
2013-07-05 18:59:33 +04:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:56:31 +04:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:05 +04:00
2013-06-29 12:57:10 +04:00
2013-07-03 16:07:29 -07:00
2013-07-03 09:10:19 -07:00
2013-07-08 13:35:48 +04:00
2013-07-03 16:08:01 -07:00
2013-06-29 12:56:53 +04:00
2013-06-19 14:16:47 +01:00
2013-07-03 16:07:35 -07:00
2013-07-03 09:10:19 -07:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:56:59 +04:00
2013-07-04 11:22:55 -07:00
2013-07-03 16:07:41 -07:00
2013-05-07 18:38:27 -07:00
2013-06-29 12:57:36 +04:00
2013-05-21 23:26:36 -04:00
2013-07-01 08:12:41 -04:00
2013-06-29 12:56:47 +04:00
2013-07-03 09:10:19 -07:00
2013-07-03 16:07:41 -07:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:35 +04:00
2013-07-03 16:07:26 -07:00
2013-07-05 18:59:33 +04:00
2013-02-13 06:15:14 -08:00
2013-06-29 12:57:42 +04:00
2013-07-05 18:59:33 +04:00
2013-06-29 12:57:23 +04:00
2013-07-02 09:39:34 -07:00
2013-07-03 16:07:25 -07:00
2013-06-29 12:56:37 +04:00
2013-06-29 12:56:32 +04:00
2013-07-03 16:08:02 -07:00
2013-07-04 10:29:23 -07:00
2013-06-29 12:56:38 +04:00
2013-06-29 12:56:39 +04:00
2013-03-11 22:05:56 +01:00
2013-02-26 20:16:07 -08:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:56:29 +04:00
2013-06-29 12:56:28 +04:00
2013-07-02 11:44:19 -07:00
2013-06-29 12:57:36 +04:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:12 +04:00
2013-06-29 12:46:47 +04:00
2013-07-03 09:10:19 -07:00
2013-07-03 16:08:06 -07:00
2013-02-26 02:46:11 -05:00
2012-11-20 04:17:24 -08:00
2013-06-29 12:57:04 +04:00
2013-05-01 17:51:54 -07:00
2013-05-02 10:16:16 -07:00
2013-05-02 10:16:16 -07:00
2012-12-17 17:15:23 -08:00
2013-04-29 15:40:23 -04:00
2013-04-30 17:04:03 -07:00
2012-12-20 17:40:19 -08:00
2012-11-28 21:53:38 -05:00
2013-03-23 14:26:34 -07:00
2013-05-08 10:13:35 -07:00
2013-07-03 16:07:29 -07:00
2013-07-03 16:07:29 -07:00
2013-06-29 12:46:44 +04:00
2013-06-29 12:57:05 +04:00
2013-07-03 16:08:02 -07:00
2013-07-03 09:10:19 -07:00
2013-03-03 23:00:23 -05:00
2013-05-08 10:13:35 -07:00
2012-12-17 17:15:27 -08:00
2013-07-03 17:12:13 -07:00
2013-07-03 16:08:03 -07:00
2013-02-22 23:31:31 -05:00
2012-12-20 14:04:11 -08:00
2013-06-29 12:57:13 +04:00
2013-05-01 17:31:42 -04:00
2013-03-03 19:36:31 -08:00
2013-03-01 23:51:07 -05:00
2013-07-02 09:16:42 -07:00
2013-06-29 12:57:11 +04:00
2013-06-29 12:57:34 +04:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2013-04-30 17:04:04 -07:00
2013-06-29 12:46:48 +04:00
2013-07-08 13:36:42 +04:00
2013-05-01 17:51:54 -07:00
2013-04-09 14:12:52 -04:00
2013-06-29 12:57:36 +04:00
2013-05-04 15:18:53 -04:00
2013-06-29 12:57:10 +04:00
2013-05-07 20:16:25 -07:00
2013-05-31 15:16:33 -04:00
2013-05-01 17:51:54 -07:00
2013-07-03 16:23:27 +04:00
2013-06-29 12:57:05 +04:00
2013-05-12 14:16:22 +02:00
2013-07-08 13:36:41 +04:00
2013-03-03 22:58:46 -05:00
2013-07-03 09:10:19 -07:00
2013-02-26 02:46:08 -05:00
2012-12-20 18:50:07 -05:00
2013-02-27 19:10:24 -08:00
2013-03-03 22:46:22 -05:00
2013-03-02 09:35:13 -05:00
2012-12-20 18:50:08 -05:00
2012-12-20 18:50:11 -05:00