Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1373475
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 0/11] introduce down_write_killable for rw_semaphore v3 |
| Date | 2016-04-07 17:20 +0200 |
| Message-ID | <rljSW-5SJ-5@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
Hi,
the following patchset implements a killable variant of write lock
for rw_semaphore. My usecase is to turn as many mmap_sem write users
to use a killable variant which will be helpful for the oom_reaper
merged in 4.6-rc1 (aac453635549 ("mm, oom: introduce oom reaper")) to
asynchronously tear down the oom victim address space which requires
mmap_sem for read. This will reduce a likelihood of OOM livelocks caused
by oom victim being stuck on a lock or other resource which prevents it
to reach its exit path and release the memory. I haven't implemented the
killable variant of the read lock because I do not have any usecase for
this API.
The previous version of this series was posted [1]. I have dropped patches 7-9
based on Davidlohr Bueso feedback because he pointed out that sh and extensa
can use the generic implementation. Further investigation has shown the same
is true for sparc. While those patches were removed 3 new ones were added for
same archs to use the generic implementation. Other than that there were no
functional changes since the last version.
The patchset is organized as follows.
- Patch 1 is a trivial cleanup
- Patch 2, I belive, shouldn't introduce any functional changes as per
Documentation/memory-barriers.txt.
- Patches 3-5 are moving xtensa, sh and sparc to generic implementation
- Patch 6 is the preparatory work and necessary infrastructure for
down_write_killable. It implements generic __down_write_killable
and prepares the write lock slow path to bail out earlier when told so
- Patch 7-10 are implementing arch specific __down_write_killable. One
patch per architecture.
- finally patch 11 implements down_write_killable and ties everything
together. I am not really an expert on lockdep so I hope I got it right.
Follow up patches to change mmap_sem write users to killable form is not
part of the series because that will be routed via mmotm tree later on.
I have tested on x86 with OOM situations with high mmap_sem contention
(basically many parallel page faults racing with many parallel mmap/munmap
tight loops) so the waiters for the write locks are routinely interrupted
by SIGKILL.
Thanks!
---
[1] http://lkml.kernel.org/r/1459508695-14915-1-git-send-email-mhocko@kernel.org
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH 0/11] introduce down_write_killable for rw_semaphore v3 Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:20 +0200
[PATCH 01/11] locking, rwsem: get rid of __down_write_nested Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:20 +0200
[tip:locking/rwsem] locking/rwsem: Get rid of __down_write_nested() tip-bot for Michal Hocko <tipbot@zytor.com> - 2016-04-13 13:40 +0200
[PATCH 04/11] sh, rwsem: drop superfluous arch specific implementation Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:20 +0200
[tip:locking/rwsem] locking/rwsem, sh: Drop superfluous arch specific implementation tip-bot for Michal Hocko <tipbot@zytor.com> - 2016-04-13 13:40 +0200
[PATCH 02/11] locking, rwsem: drop explicit memory barriers Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:20 +0200
[tip:locking/rwsem] locking/rwsem: Drop explicit memory barriers tip-bot for Michal Hocko <tipbot@zytor.com> - 2016-04-13 13:40 +0200
[PATCH 06/11] locking, rwsem: introduce basis for down_write_killable Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:30 +0200
[tip:locking/rwsem] locking/rwsem: Introduce basis for down_write_killable() tip-bot for Michal Hocko <tipbot@zytor.com> - 2016-04-13 13:40 +0200
[PATCH 11/11] locking, rwsem: provide down_write_killable Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:30 +0200
[PATCH 08/11] ia64, rwsem: provide __down_write_killable Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:30 +0200
Re: [PATCH 08/11] ia64, rwsem: provide __down_write_killable Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> - 2016-04-07 19:30 +0200
Re: [PATCH 08/11] ia64, rwsem: provide __down_write_killable Michal Hocko <mhocko@kernel.org> - 2016-04-08 08:30 +0200
[PATCH 03/11] xtensa, rwsem: drop superfluous arch specific implementation Michal Hocko <mhocko@kernel.org> - 2016-04-07 17:30 +0200
[tip:locking/rwsem] locking/rwsem, xtensa: Drop superfluous arch specific implementation tip-bot for Michal Hocko <tipbot@zytor.com> - 2016-04-13 13:40 +0200
Re: [PATCH 0/11] introduce down_write_killable for rw_semaphore v3 Michal Hocko <mhocko@kernel.org> - 2016-04-12 11:40 +0200
Re: [PATCH 0/11] introduce down_write_killable for rw_semaphore v3 Peter Zijlstra <peterz@infradead.org> - 2016-04-12 17:50 +0200
Re: [PATCH 0/11] introduce down_write_killable for rw_semaphore v3 Michal Hocko <mhocko@kernel.org> - 2016-04-12 20:10 +0200
csiph-web