All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, Matthew Wilcox <willy@linux.intel.com>
Subject: Re: [PATCH 06/11] dax: Fix race between simultaneous faults
Date: Wed, 5 Aug 2015 14:43:09 +0300	[thread overview]
Message-ID: <20150805114309.GA25784@node.dhcp.inet.fi> (raw)
In-Reply-To: <1438718285-21168-7-git-send-email-matthew.r.wilcox@intel.com>

On Tue, Aug 04, 2015 at 03:58:00PM -0400, Matthew Wilcox wrote:
> diff --git a/mm/memory.c b/mm/memory.c
> index b94b587..5f46350 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2426,11 +2426,16 @@ void unmap_mapping_range(struct address_space *mapping,
>  		details.last_index = ULONG_MAX;
>  
>  
> -	/* DAX uses i_mmap_lock to serialise file truncate vs page fault */
> -	i_mmap_lock_write(mapping);
> +	/*
> +	 * DAX already holds i_mmap_lock to serialise file truncate vs
> +	 * page fault and page fault vs page fault.
> +	 */
> +	if (!IS_DAX(mapping->host))
> +		i_mmap_lock_write(mapping);
>  	if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap)))
>  		unmap_mapping_range_tree(&mapping->i_mmap, &details);
> -	i_mmap_unlock_write(mapping);
> +	if (!IS_DAX(mapping->host))
> +		i_mmap_unlock_write(mapping);
>  }
>  EXPORT_SYMBOL(unmap_mapping_range);

Huh? What protects mapping->i_mmap here? I don't see anything up by stack
taking the lock.

-- 
 Kirill A. Shutemov

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, Matthew Wilcox <willy@linux.intel.com>
Subject: Re: [PATCH 06/11] dax: Fix race between simultaneous faults
Date: Wed, 5 Aug 2015 14:43:09 +0300	[thread overview]
Message-ID: <20150805114309.GA25784@node.dhcp.inet.fi> (raw)
In-Reply-To: <1438718285-21168-7-git-send-email-matthew.r.wilcox@intel.com>

On Tue, Aug 04, 2015 at 03:58:00PM -0400, Matthew Wilcox wrote:
> diff --git a/mm/memory.c b/mm/memory.c
> index b94b587..5f46350 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2426,11 +2426,16 @@ void unmap_mapping_range(struct address_space *mapping,
>  		details.last_index = ULONG_MAX;
>  
>  
> -	/* DAX uses i_mmap_lock to serialise file truncate vs page fault */
> -	i_mmap_lock_write(mapping);
> +	/*
> +	 * DAX already holds i_mmap_lock to serialise file truncate vs
> +	 * page fault and page fault vs page fault.
> +	 */
> +	if (!IS_DAX(mapping->host))
> +		i_mmap_lock_write(mapping);
>  	if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap)))
>  		unmap_mapping_range_tree(&mapping->i_mmap, &details);
> -	i_mmap_unlock_write(mapping);
> +	if (!IS_DAX(mapping->host))
> +		i_mmap_unlock_write(mapping);
>  }
>  EXPORT_SYMBOL(unmap_mapping_range);

Huh? What protects mapping->i_mmap here? I don't see anything up by stack
taking the lock.

-- 
 Kirill A. Shutemov

  reply	other threads:[~2015-08-05 11:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04 19:57 [PATCH 00/11] DAX fixes for 4.3 Matthew Wilcox
2015-08-04 19:57 ` Matthew Wilcox
2015-08-04 19:57 ` [PATCH 01/11] ext4: Use ext4_get_block_write() for DAX Matthew Wilcox
2015-08-04 19:57   ` Matthew Wilcox
2015-08-04 19:57 ` [PATCH 02/11] thp: Change insert_pfn's return type to void Matthew Wilcox
2015-08-04 19:57   ` Matthew Wilcox
2015-08-04 19:57 ` [PATCH 03/11] dax: Improve comment about truncate race Matthew Wilcox
2015-08-04 19:57   ` Matthew Wilcox
2015-08-04 19:57 ` [PATCH 04/11] ext4: Add ext4_get_block_dax() Matthew Wilcox
2015-08-04 19:57   ` Matthew Wilcox
2015-08-05  2:03   ` Dave Chinner
2015-08-05  2:03     ` Dave Chinner
2015-08-05 15:19     ` Matthew Wilcox
2015-08-05 15:19       ` Matthew Wilcox
2015-08-04 19:57 ` [PATCH 05/11] ext4: Start transaction before calling into DAX Matthew Wilcox
2015-08-04 19:57   ` Matthew Wilcox
2015-08-04 19:58 ` [PATCH 06/11] dax: Fix race between simultaneous faults Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox
2015-08-05 11:43   ` Kirill A. Shutemov [this message]
2015-08-05 11:43     ` Kirill A. Shutemov
2015-08-04 19:58 ` [PATCH 07/11] thp: Decrement refcount on huge zero page if it is split Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox
2015-08-04 19:58 ` [PATCH 08/11] thp: Fix zap_huge_pmd() for DAX Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox
2015-08-04 19:58 ` [PATCH 09/11] dax: Don't use set_huge_zero_page() Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox
2015-08-04 19:58 ` [PATCH 10/11] dax: Ensure that zero pages are removed from other processes Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox
2015-08-04 19:58 ` [PATCH 11/11] dax: Use linear_page_index() Matthew Wilcox
2015-08-04 19:58   ` Matthew Wilcox

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=20150805114309.GA25784@node.dhcp.inet.fi \
    --to=kirill@shutemov.name \
    --cc=akpm@linux-foundation.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthew.r.wilcox@intel.com \
    --cc=willy@linux.intel.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.