Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1373475

[PATCH 0/11] introduce down_write_killable for rw_semaphore v3

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

Show all headers | View raw


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 | NextNext in thread | Find similar | Unroll thread


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