Add rcu_sync infrastructure to avoid _expedited() in percpu-rwsem
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest8 patches 8 repliesIn review
- v17 patches 14 repliesSuperseded
Changes from the cover letter
- whitespace fix in 1/8.
- remove EXPORT_SYMBOL() in 3/8, currently rcu_sync has no modular users.
- 5/8 is new. This ugly hack pairs with another one:
"shift percpu_counter_destroy() into destroy_super_work()"
https://git.kernel.org/cgit/linux/kernel/git/viro/vfs.git/commit/?h=for-next&id=853b39a7c82826b8413048feec7bf08e98ce7a84
They both will be reverted later.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | rcu: Create rcu_sync infrastructureinclude/ kernel/ kernel/ | +172 | 0 replies | |
| 2/8 | rcusync: Introduce struct rcu_sync_opsinclude/ kernel/ | +45 | 0 replies | |
| 3/8 | rcusync: Add the CONFIG_PROVE_RCU checksinclude/ kernel/ | +26 | 0 replies | |
| 4/8 | rcusync: Introduce rcu_sync_dtor()include/ kernel/ | +23 | 0 replies | |
| 5/8 | percpu-rwsem: make percpu_free_rwsem() after kzalloc() safekernel/ | +7 | 0 replies | |
| 6/8 | percpu-rwsem: change it to rely on rss_sync infrastructureinclude/ kernel/ | +9 | 0 replies | |
| 7/8 | percpu-rwsem: fix the comments outdated by rcu_synckernel/ | +11 | 0 replies | |
| 8/8 | percpu-rwsem: cleanup the lockdep annotations in percpu_down_read()kernel/ | +5 | 0 replies |
Reviews trailers per patch
4 of 8 patches have a Reviewed-by or Acked-by.
| Patch | Paul E. McKenney |
|---|---|
| 1/8 | R-b |
| 2/8 | R-b |
| 3/8 | R-b |
| 4/8 | R-b |
| 5/8 | |
| 6/8 | |
| 7/8 | |
| 8/8 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v2 0/8] Add rcu_sync infrastructure to avoid _expedited() in percpu-rwsem
Hello,
Now that sb->s_writers was changed to use percpu_rw_semaphore let me send v2.
Changes:
- whitespace fix in 1/8.
- remove EXPORT_SYMBOL() in 3/8, currently rcu_sync has no modular users.
- 5/8 is new. This ugly hack pairs with another one:
"shift percpu_counter_destroy() into destroy_super_work()"
https://git.kernel.org/cgit/linux/kernel/git/viro/vfs.git/commit/?h=for-next&id=853b39a7c82826b8413048feec7bf08e98ce7a84
They both will be reverted later.
The problem is that we have 2 series routed via different trees, RCU and VFS. We need this hack to ensure that this series won't break alloc_super() which currently assumes that destroy_super()->percpu_free_rwsem() is safe after kzalloc(). This way these 2 series do not depend on each other, we can test/change/revert/etc them independently.
We will add rcu_sync_dtor() into deactivate_locked_super() later and revert both hacks.
Oleg.
include/linux/percpu-rwsem.h | 3 +- include/linux/rcusync.h | 56 +++++++++++++++ kernel/locking/percpu-rwsem.c | 85 ++++++++--------------- kernel/rcu/Makefile | 2 +- kernel/rcu/sync.c | 151 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 240 insertions(+), 57 deletions(-)