Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1169898
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [RFC][PATCH 00/13] percpu rwsem -v2 |
| Date | 2015-06-22 14:30 +0200 |
| Message-ID | <pE91n-3zX-3@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
This is a derived work of the cpu hotplug lock rework I did in 2013 which never really went anywhere because Linus didn't like it. This applies those same optimizations to the percpu-rwsem. Seeing how we did all the work it seemed a waste to not use it at all. Linus still didn't like it because there was only a single user, there are two now: - uprobes - cgroups This series converts the cpu hotplug lock into a percpu-rwsem to provide a 3rd user. Also, since Linus thinks lglocks is a failed locking primitive (which I whole heartedly agree with, its preempt-disable latencies are an abomination), it also converts the global part of fs/locks's usage of lglock over to a percpu-rwsem and uses a per-cpu spinlock for the local part. This both provides another (4th) percpu-rwsem users and removes an lglock user. It further removes the stop_machine lglock usage, and with it kills lglocks. Changes since -v1: - Added the missing smp_load_acquire()/smp_store_release() as spotted by Oleg - Added percpu_down_read_trylock() - Convert cpu hotplug lock - Convert fs/locks - Removes lglock from stop_machine - Removes lglock --- Documentation/locking/lglock.txt | 166 ------------------------- fs/Kconfig | 1 + fs/file_table.c | 1 - fs/locks.c | 65 +++++++--- include/linux/cpu.h | 6 + include/linux/lglock.h | 81 ------------- include/linux/percpu-rwsem.h | 96 +++++++++++++-- include/linux/sched.h | 9 +- init/main.c | 1 + kernel/cpu.c | 130 ++++++-------------- kernel/fork.c | 2 + kernel/locking/Makefile | 1 - kernel/locking/lglock.c | 111 ----------------- kernel/locking/percpu-rwsem.c | 255 +++++++++++++++++++++------------------ kernel/rcu/Makefile | 2 +- kernel/stop_machine.c | 52 ++++---- lib/Kconfig | 10 ++ 17 files changed, 371 insertions(+), 618 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[RFC][PATCH 00/13] percpu rwsem -v2 Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
[RFC][PATCH 01/13] rcu: Create rcu_sync infrastructure Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
[RFC][PATCH 05/13] percpu-rwsem: Optimize readers and reduce global impact Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
Re: [RFC][PATCH 05/13] percpu-rwsem: Optimize readers and reduce global impact Oleg Nesterov <oleg@redhat.com> - 2015-06-23 01:10 +0200
Re: [RFC][PATCH 05/13] percpu-rwsem: Optimize readers and reduce global impact Tejun Heo <tj@kernel.org> - 2015-06-29 17:20 +0200
Re: [RFC][PATCH 05/13] percpu-rwsem: Optimize readers and reduce global impact Peter Zijlstra <peterz@infradead.org> - 2015-06-29 17:20 +0200
[RFC][PATCH 11/13] fs/locks: Replace lg_local with a per-cpu spinlock Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
Re: [RFC][PATCH 11/13] fs/locks: Replace lg_local with a per-cpu spinlock Oleg Nesterov <oleg@redhat.com> - 2015-06-23 02:30 +0200
[RFC][PATCH 10/13] fs/locks: Replace lg_global with a percpu-rwsem Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
[RFC][PATCH 12/13] stop_machine: Remove lglock Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
Re: [RFC][PATCH 12/13] stop_machine: Remove lglock Oleg Nesterov <oleg@redhat.com> - 2015-06-23 00:30 +0200
Re: [RFC][PATCH 12/13] stop_machine: Remove lglock "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-06-24 04:30 +0200
Re: [RFC][PATCH 12/13] stop_machine: Remove lglock Peter Zijlstra <peterz@infradead.org> - 2015-06-24 10:40 +0200
Re: [RFC][PATCH 12/13] stop_machine: Remove lglock Peter Zijlstra <peterz@infradead.org> - 2015-06-24 09:40 +0200
Re: [RFC][PATCH 12/13] stop_machine: Remove lglock Ingo Molnar <mingo@kernel.org> - 2015-06-24 10:50 +0200
[RFC][PATCH 13/13] locking: Remove lglock Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
[RFC][PATCH 03/13] rcusync: Add the CONFIG_PROVE_RCU checks Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
[RFC][PATCH 07/13] sched: Reorder task_struct Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:30 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Peter Zijlstra <peterz@infradead.org> - 2015-06-22 14:40 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Linus Torvalds <torvalds@linux-foundation.org> - 2015-06-22 22:10 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Ingo Molnar <mingo@kernel.org> - 2015-06-24 10:50 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Peter Zijlstra <peterz@infradead.org> - 2015-06-24 11:10 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Daniel Wagner <daniel.wagner@bmw-carit.de> - 2015-06-24 11:20 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Linus Torvalds <torvalds@linux-foundation.org> - 2015-07-02 00:00 +0200
Re: [RFC][PATCH 00/13] percpu rwsem -v2 Peter Zijlstra <peterz@infradead.org> - 2015-07-02 11:50 +0200
csiph-web