All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: Hugh Dickins <hugh@veritas.com>
Cc: Andrea Arcangeli <andrea@qumranet.com>, Dean Nelson <dcn@sgi.com>
Cc: Robin Holt <holt@sgi.com>, Avi Kivity <avi@qumranet.com>,
	Izik Eidus <izike@qumranet.com>
Cc: kvm-devel@lists.sourceforge.net
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>, general@lists.openfabrics.org
Cc: Steve Wise <swise@opengridcomputing.com>
Cc: Roland Dreier <rdreier@cisco.com>
Cc: Kanoj Sarcar <kanojsarcar@yahoo.com>
Cc: steiner@sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org
Cc: daniel.blueman@quadrics.com
Subject: [patch 7/9] Locking rules for taking multiple mmap_sem locks.
Date: Tue, 01 Apr 2008 13:55:38 -0700	[thread overview]
Message-ID: <20080401205637.230854375@sgi.com> (raw)
In-Reply-To: 20080401205531.986291575@sgi.com

[-- Attachment #1: xpmem_v003_lock-rule --]
[-- Type: text/plain, Size: 826 bytes --]

This patch adds a lock ordering rule to avoid a potential deadlock when
multiple mmap_sems need to be locked.

Signed-off-by: Dean Nelson <dcn@sgi.com>

---
 mm/filemap.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-2.6/mm/filemap.c
===================================================================
--- linux-2.6.orig/mm/filemap.c	2008-04-01 13:02:41.374608387 -0700
+++ linux-2.6/mm/filemap.c	2008-04-01 13:05:02.777015782 -0700
@@ -80,6 +80,9 @@ generic_file_direct_IO(int rw, struct ki
  *  ->i_mutex			(generic_file_buffered_write)
  *    ->mmap_sem		(fault_in_pages_readable->do_page_fault)
  *
+ *    When taking multiple mmap_sems, one should lock the lowest-addressed
+ *    one first proceeding on up to the highest-addressed one.
+ *
  *  ->i_mutex
  *    ->i_alloc_sem             (various)
  *

-- 

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Lameter <clameter@sgi.com>
To: Hugh Dickins <hugh@veritas.com>
Cc: Steve Wise <swise@opengridcomputing.com>,
	Andrea Arcangeli <andrea@qumranet.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	linux-mm@kvack.org, Kanoj Sarcar <kanojsarcar@yahoo.com>,
	Roland Dreier <rdreier@cisco.com>,
	general@lists.openfabrics.org, linux-kernel@vger.kernel.org,
	Avi Kivity <avi@qumranet.com>,
	kvm-devel@lists.sourceforge.net, daniel.blueman@quadrics.com,
	Robin Holt <holt@sgi.com>, Dean Nelson <dcn@sgi.com>,
	steiner@sgi.com
Subject: [patch 7/9] Locking rules for taking multiple mmap_sem locks.
Date: Tue, 01 Apr 2008 13:55:38 -0700	[thread overview]
Message-ID: <20080401205637.230854375@sgi.com> (raw)
In-Reply-To: 20080401205531.986291575@sgi.com

[-- Attachment #1: xpmem_v003_lock-rule --]
[-- Type: text/plain, Size: 1106 bytes --]

This patch adds a lock ordering rule to avoid a potential deadlock when
multiple mmap_sems need to be locked.

Signed-off-by: Dean Nelson <dcn@sgi.com>

---
 mm/filemap.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-2.6/mm/filemap.c
===================================================================
--- linux-2.6.orig/mm/filemap.c	2008-04-01 13:02:41.374608387 -0700
+++ linux-2.6/mm/filemap.c	2008-04-01 13:05:02.777015782 -0700
@@ -80,6 +80,9 @@ generic_file_direct_IO(int rw, struct ki
  *  ->i_mutex			(generic_file_buffered_write)
  *    ->mmap_sem		(fault_in_pages_readable->do_page_fault)
  *
+ *    When taking multiple mmap_sems, one should lock the lowest-addressed
+ *    one first proceeding on up to the highest-addressed one.
+ *
  *  ->i_mutex
  *    ->i_alloc_sem             (various)
  *

-- 

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

  parent reply	other threads:[~2008-04-01 20:59 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-01 20:55 [patch 0/9] [RFC] EMM Notifier V2 Christoph Lameter
2008-04-01 20:55 ` [ofa-general] " Christoph Lameter
2008-04-01 20:55 ` [patch 1/9] EMM Notifier: The notifier calls Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter
2008-04-01 21:14   ` Peter Zijlstra
2008-04-01 21:38     ` Paul E. McKenney
2008-04-02 17:44       ` Christoph Lameter
2008-04-02 18:43       ` EMM: Fix rcu handling and spelling Christoph Lameter
2008-04-02 19:02         ` Paul E. McKenney
2008-04-02  6:49   ` [patch 1/9] EMM Notifier: The notifier calls Andrea Arcangeli
2008-04-02  6:49     ` [ofa-general] " Andrea Arcangeli
2008-04-02 10:59     ` Robin Holt
2008-04-02 10:59       ` [ofa-general] " Robin Holt
2008-04-02 11:16       ` Andrea Arcangeli
2008-04-02 11:16         ` Andrea Arcangeli
2008-04-02 14:26         ` Robin Holt
2008-04-02 17:59     ` Christoph Lameter
2008-04-02 17:59       ` [ofa-general] " Christoph Lameter
2008-04-02 19:03       ` EMM: Fixup return value handling of emm_notify() Christoph Lameter
2008-04-02 19:03         ` [ofa-general] " Christoph Lameter
2008-04-02 21:25         ` Andrea Arcangeli
2008-04-02 21:25           ` [ofa-general] " Andrea Arcangeli
2008-04-02 21:33           ` Christoph Lameter
2008-04-02 21:33             ` [ofa-general] " Christoph Lameter
2008-04-03 10:40             ` Peter Zijlstra
2008-04-03 10:40               ` [ofa-general] " Peter Zijlstra
2008-04-03 15:00               ` Andrea Arcangeli
2008-04-03 15:00                 ` [ofa-general] " Andrea Arcangeli
2008-04-03 19:14               ` Christoph Lameter
2008-04-03 19:14                 ` [ofa-general] " Christoph Lameter
2008-04-02 21:05       ` EMM: Require single threadedness for registration Christoph Lameter
2008-04-02 21:05         ` [ofa-general] " Christoph Lameter
2008-04-02 22:01         ` Andrea Arcangeli
2008-04-02 22:01           ` [ofa-general] " Andrea Arcangeli
2008-04-02 22:06           ` Christoph Lameter
2008-04-02 22:06             ` [ofa-general] " Christoph Lameter
2008-04-02 22:17             ` Andrea Arcangeli
2008-04-02 22:17               ` [ofa-general] " Andrea Arcangeli
2008-04-02 22:41               ` Christoph Lameter
2008-04-02 22:41                 ` [ofa-general] " Christoph Lameter
2008-04-03  1:24               ` EMM: disable other notifiers before register and unregister Christoph Lameter
2008-04-03  1:24                 ` Christoph Lameter
2008-04-03 10:40                 ` Peter Zijlstra
2008-04-03 10:40                   ` [ofa-general] " Peter Zijlstra
2008-04-03 15:29                 ` Andrea Arcangeli
2008-04-03 19:20                   ` Christoph Lameter
2008-04-03 19:20                     ` [ofa-general] " Christoph Lameter
2008-04-03 20:23                     ` Christoph Lameter
2008-04-04 12:30                     ` Andrea Arcangeli
2008-04-04 12:30                       ` Andrea Arcangeli
2008-04-04 20:20                     ` [PATCH] mmu notifier #v11 Andrea Arcangeli
2008-04-04 20:20                       ` [ofa-general] " Andrea Arcangeli
2008-04-04 22:06                       ` Christoph Lameter
2008-04-05  0:23                         ` Andrea Arcangeli
2008-04-05  0:23                           ` [ofa-general] " Andrea Arcangeli
2008-04-07  5:45                           ` Christoph Lameter
2008-04-07  5:45                             ` Christoph Lameter
2008-04-07  6:02                             ` Andrea Arcangeli
2008-04-07  6:02                               ` [ofa-general] " Andrea Arcangeli
2008-04-02 21:53       ` [patch 1/9] EMM Notifier: The notifier calls Andrea Arcangeli
2008-04-02 21:53         ` [ofa-general] " Andrea Arcangeli
2008-04-02 21:54         ` Christoph Lameter
2008-04-02 21:54           ` [ofa-general] " Christoph Lameter
2008-04-02 22:09           ` Andrea Arcangeli
2008-04-02 22:09             ` [ofa-general] " Andrea Arcangeli
2008-04-02 23:04             ` Christoph Lameter
2008-04-02 23:04               ` [ofa-general] " Christoph Lameter
2008-04-01 20:55 ` [patch 2/9] Move tlb flushing into free_pgtables Christoph Lameter
2008-04-01 20:55   ` [ofa-general] " Christoph Lameter
2008-04-01 20:55 ` [patch 3/9] Convert i_mmap_lock to i_mmap_sem Christoph Lameter
2008-04-01 20:55   ` [ofa-general] " Christoph Lameter
2008-04-01 20:55 ` [patch 4/9] Remove tlb pointer from the parameters of unmap vmas Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter
2008-04-01 20:55 ` [patch 5/9] Convert anon_vma lock to rw_sem and refcount Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter
2008-04-02 17:50   ` Andrea Arcangeli
2008-04-02 17:50     ` Andrea Arcangeli
2008-04-02 18:15     ` Christoph Lameter
2008-04-02 18:15       ` Christoph Lameter
2008-04-02 21:56       ` Andrea Arcangeli
2008-04-02 21:56         ` [ofa-general] " Andrea Arcangeli
2008-04-02 21:56         ` Christoph Lameter
2008-04-02 21:56           ` [ofa-general] " Christoph Lameter
2008-04-02 22:12           ` Andrea Arcangeli
2008-04-02 22:12             ` [ofa-general] " Andrea Arcangeli
2008-04-01 20:55 ` [patch 6/9] This patch exports zap_page_range as it is needed by XPMEM Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter
2008-04-01 20:55 ` Christoph Lameter [this message]
2008-04-01 20:55   ` [patch 7/9] Locking rules for taking multiple mmap_sem locks Christoph Lameter
2008-04-01 20:55 ` [patch 8/9] XPMEM: The device driver Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter
2008-04-01 20:55 ` [patch 9/9] XPMEM: Simple example Christoph Lameter
2008-04-01 20:55   ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080401205637.230854375@sgi.com \
    --to=clameter@sgi.com \
    --cc=andrea@qumranet.com \
    --cc=dcn@sgi.com \
    --cc=hugh@veritas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.