All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v2 0/7] generic hashtable implementation
@ 2012-08-03 14:23 ` Sasha Levin
  0 siblings, 0 replies; 68+ messages in thread
From: Sasha Levin @ 2012-08-03 14:23 UTC (permalink / raw)
  To: torvalds
  Cc: tj, akpm, linux-kernel, linux-mm, paul.gortmaker, davem, rostedt,
	mingo, ebiederm, aarcange, ericvh, netdev, Sasha Levin

There are quite a few places in the kernel which implement a hashtable
in a very similar way. Instead of having implementations of a hashtable
all over the kernel, we can re-use the code.

This patch series introduces a very simple hashtable implementation, and
modifies three (random) modules to use it. I've limited it to 3 only
so that it would be easy to review and modify, and to show that even
at this number we already eliminate a big amount of duplicated code.

If this basic hashtable looks ok, future code will include:

 - RCU support
 - Self locking (list_bl?)
 - Converting more code to use the hashtable


Changes in V2:

 - Address review comments by Tejun Heo, Josh Triplett and Eric Beiderman (Thanks all!).
 - Rebase on top of latest master.
 - Convert more places to use the hashtable. Hopefully it will trigger more reviews by
 touching more subsystems.

Sasha Levin (7):
  hashtable: introduce a small and naive hashtable
  user_ns: use new hashtable implementation
  mm,ksm: use new hashtable implementation
  workqueue: use new hashtable implementation
  mm/huge_memory: use new hashtable implementation
  tracepoint: use new hashtable implementation
  net,9p: use new hashtable implementation

 include/linux/hashtable.h |   75 ++++++++++++++++++++++++++++++++++++
 kernel/tracepoint.c       |   26 ++++--------
 kernel/user.c             |   53 +++++++++-----------------
 kernel/workqueue.c        |   93 +++++++--------------------------------------
 mm/huge_memory.c          |   56 +++++----------------------
 mm/ksm.c                  |   29 ++++----------
 net/9p/error.c            |   17 ++++----
 7 files changed, 144 insertions(+), 205 deletions(-)
 create mode 100644 include/linux/hashtable.h

-- 
1.7.8.6

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2012-08-05 17:13 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-03 14:23 [RFC v2 0/7] generic hashtable implementation Sasha Levin
2012-08-03 14:23 ` Sasha Levin
2012-08-03 14:23 ` [RFC v2 1/7] hashtable: introduce a small and naive hashtable Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-03 17:15   ` Tejun Heo
2012-08-03 17:15     ` Tejun Heo
2012-08-03 17:16     ` Tejun Heo
2012-08-03 17:16       ` Tejun Heo
2012-08-03 21:19     ` Sasha Levin
2012-08-03 21:19       ` Sasha Levin
2012-08-03 21:30       ` Tejun Heo
2012-08-03 21:30         ` Tejun Heo
2012-08-03 21:36         ` Sasha Levin
2012-08-03 21:36           ` Sasha Levin
2012-08-03 21:44           ` Tejun Heo
2012-08-03 21:44             ` Tejun Heo
2012-08-03 21:41         ` Sasha Levin
2012-08-03 21:41           ` Sasha Levin
2012-08-03 21:48           ` Tejun Heo
2012-08-03 21:48             ` Tejun Heo
2012-08-03 22:20             ` Sasha Levin
2012-08-03 22:20               ` Sasha Levin
2012-08-03 22:23               ` Tejun Heo
2012-08-03 22:23                 ` Tejun Heo
2012-08-03 22:26                 ` Sasha Levin
2012-08-03 22:26                   ` Sasha Levin
2012-08-03 22:29                 ` Linus Torvalds
2012-08-03 22:29                   ` Linus Torvalds
2012-08-03 22:36                   ` Tejun Heo
2012-08-03 22:36                     ` Tejun Heo
2012-08-03 23:47                     ` Linus Torvalds
2012-08-03 23:47                       ` Linus Torvalds
2012-08-04  0:03                       ` Sasha Levin
2012-08-04  0:03                         ` Sasha Levin
2012-08-04  0:05                         ` Linus Torvalds
2012-08-04  0:05                           ` Linus Torvalds
2012-08-04  0:33                           ` Sasha Levin
2012-08-04  0:33                             ` Sasha Levin
2012-08-04  0:05                       ` Tejun Heo
2012-08-04  0:05                         ` Tejun Heo
2012-08-03 17:39   ` Eric Dumazet
2012-08-03 17:39     ` Eric Dumazet
2012-08-03 14:23 ` [RFC v2 2/7] user_ns: use new hashtable implementation Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-05  0:58   ` Eric W. Biederman
2012-08-05  0:58     ` Eric W. Biederman
2012-08-03 14:23 ` [RFC v2 3/7] mm,ksm: " Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-03 14:23 ` [RFC v2 4/7] workqueue: " Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-03 14:23 ` [RFC v2 5/7] mm/huge_memory: " Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-03 14:23 ` [RFC v2 6/7] tracepoint: " Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-05  0:36   ` Steven Rostedt
2012-08-05  0:36     ` Steven Rostedt
2012-08-05 16:31     ` Mathieu Desnoyers
2012-08-05 16:31       ` Mathieu Desnoyers
2012-08-05 17:03       ` Sasha Levin
2012-08-05 17:03         ` Sasha Levin
2012-08-05 17:12         ` Mathieu Desnoyers
2012-08-05 17:12           ` Mathieu Desnoyers
2012-08-03 14:23 ` [RFC v2 7/7] net,9p: " Sasha Levin
2012-08-03 14:23   ` Sasha Levin
2012-08-03 18:00   ` Eric Dumazet
2012-08-03 18:00     ` Eric Dumazet
2012-08-03 21:14     ` Sasha Levin
2012-08-03 21:14       ` Sasha Levin

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.