Files
linux/include/linux
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-05-17 14:31:05 -04:00
2013-03-01 13:39:00 -08:00
2013-07-02 09:01:31 -07:00
2013-01-02 17:36:10 -08:00
2013-05-07 19:46:02 -07:00
2013-05-29 15:50:34 -04:00
2012-10-08 13:50:20 +10:30
2012-12-02 00:05:12 +00:00
2013-04-29 15:40:23 -04:00
2013-07-03 16:07:39 -07:00
2013-03-23 16:11:31 -07:00
2013-03-22 15:18:18 -07:00
2013-03-12 11:30:04 -07:00
2013-07-05 18:59:33 +04:00
2013-05-10 14:37:17 +01:00
2013-05-01 16:36:22 +05:30
2013-03-28 10:10:25 -06:00
2012-09-30 18:02:20 -07:00
2012-10-16 18:49:15 -07:00
2013-02-26 02:46:08 -05:00
2013-05-07 18:38:27 -07:00
2013-03-15 15:09:43 +10:30
2013-04-29 18:28:40 -07:00
2012-11-22 13:43:27 +09:00
2013-06-17 16:38:57 -07:00
2012-11-08 16:58:30 +01:00
2013-06-10 13:45:49 -07:00
2013-05-06 13:07:33 +02:00
2013-07-03 16:07:32 -07:00
2013-01-25 21:03:54 -08:00
2013-02-06 15:59:47 -05:00
2013-01-29 13:59:57 -05:00
2013-06-17 16:38:57 -07:00
2013-04-30 17:04:06 -07:00
2013-04-01 11:04:50 -07:00
2012-10-10 01:15:44 -04:00
2013-03-15 15:09:43 +10:30
2012-12-14 13:06:40 +10:30
2012-12-25 18:45:06 -05:00
2013-07-03 16:08:05 -07:00
2013-04-29 18:28:44 -07:00
2012-12-11 17:22:27 -08:00
2013-05-04 14:47:26 -04:00
2013-06-12 12:37:40 +01:00
2012-10-17 15:53:02 -05:00
2012-10-10 22:41:05 -04:00
2013-06-12 12:37:30 +01:00
2013-04-29 15:54:28 -07:00
2013-06-26 15:55:52 -06:00
2013-06-26 21:10:05 +02:00
2013-03-12 11:40:53 -04:00
2013-04-29 15:54:28 -07:00
2013-04-12 10:26:23 +02:00
2013-07-03 16:08:05 -07:00
2012-10-06 03:05:01 +09:00
2013-07-03 16:08:02 -07:00
2013-06-17 16:38:57 -07:00
2013-02-19 08:43:34 +01:00
2013-06-17 18:09:53 +09:00
2013-03-29 15:31:30 -04:00
2013-06-25 16:07:44 -07:00
2013-04-30 15:50:12 +05:30
2013-03-21 11:47:51 -04:00
2012-10-09 16:22:32 +09:00
2013-05-21 12:25:02 -05:00
2013-01-15 22:43:15 -08:00
2013-03-20 12:10:38 -04:00
2012-09-05 17:21:36 -07:00
2013-05-20 12:16:01 +09:30
2013-04-29 15:54:37 -07:00
2013-05-27 10:57:53 +09:00