linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Assert that pages being written back are locked
@ 2020-10-27 22:46 Matthew Wilcox
  2020-11-11  0:39 ` Matthew Wilcox
  2020-11-11  3:37 ` William Kucharski
  0 siblings, 2 replies; 3+ messages in thread
From: Matthew Wilcox @ 2020-10-27 22:46 UTC (permalink / raw)
  To: linux-mm

From: Matthew Wilcox (Oracle) <willy@infradead.org>

In write_cache_pages(), we rely on PageLock to prevent writeback from
starting on locked pages.  I'm not sure if we document anywhere that pages
that we're starting writes on must be locked, but having an assertion
will make it clear to users that this is required.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>

diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 3671568d433f..f83dd855594d 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2774,6 +2774,8 @@ int __test_set_page_writeback(struct page *page, bool keep_write)
 	struct address_space *mapping = page_mapping(page);
 	int ret, access_ret;
 
+	VM_BUG_ON_PGFLAGS(!PageLocked(page), page);
+
 	lock_page_memcg(page);
 	if (mapping && mapping_use_writeback_tags(mapping)) {
 		XA_STATE(xas, &mapping->i_pages, page_index(page));


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] Assert that pages being written back are locked
  2020-10-27 22:46 [PATCH] Assert that pages being written back are locked Matthew Wilcox
@ 2020-11-11  0:39 ` Matthew Wilcox
  2020-11-11  3:37 ` William Kucharski
  1 sibling, 0 replies; 3+ messages in thread
From: Matthew Wilcox @ 2020-11-11  0:39 UTC (permalink / raw)
  To: linux-mm

Anyone want to review this for me?

On Tue, Oct 27, 2020 at 10:46:45PM +0000, Matthew Wilcox wrote:
> From: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> In write_cache_pages(), we rely on PageLock to prevent writeback from
> starting on locked pages.  I'm not sure if we document anywhere that pages
> that we're starting writes on must be locked, but having an assertion
> will make it clear to users that this is required.
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> diff --git a/mm/page-writeback.c b/mm/page-writeback.c
> index 3671568d433f..f83dd855594d 100644
> --- a/mm/page-writeback.c
> +++ b/mm/page-writeback.c
> @@ -2774,6 +2774,8 @@ int __test_set_page_writeback(struct page *page, bool keep_write)
>  	struct address_space *mapping = page_mapping(page);
>  	int ret, access_ret;
>  
> +	VM_BUG_ON_PGFLAGS(!PageLocked(page), page);
> +
>  	lock_page_memcg(page);
>  	if (mapping && mapping_use_writeback_tags(mapping)) {
>  		XA_STATE(xas, &mapping->i_pages, page_index(page));
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Assert that pages being written back are locked
  2020-10-27 22:46 [PATCH] Assert that pages being written back are locked Matthew Wilcox
  2020-11-11  0:39 ` Matthew Wilcox
@ 2020-11-11  3:37 ` William Kucharski
  1 sibling, 0 replies; 3+ messages in thread
From: William Kucharski @ 2020-11-11  3:37 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: linux-mm

Looks good.

Reviewed-by: William Kucharski <william.kucharski@oracle.com>

> On Oct 27, 2020, at 4:46 PM, Matthew Wilcox <willy@infradead.org> wrote:
> 
> From: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> In write_cache_pages(), we rely on PageLock to prevent writeback from
> starting on locked pages.  I'm not sure if we document anywhere that pages
> that we're starting writes on must be locked, but having an assertion
> will make it clear to users that this is required.
> 
> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> 
> diff --git a/mm/page-writeback.c b/mm/page-writeback.c
> index 3671568d433f..f83dd855594d 100644
> --- a/mm/page-writeback.c
> +++ b/mm/page-writeback.c
> @@ -2774,6 +2774,8 @@ int __test_set_page_writeback(struct page *page, bool keep_write)
> 	struct address_space *mapping = page_mapping(page);
> 	int ret, access_ret;
> 
> +	VM_BUG_ON_PGFLAGS(!PageLocked(page), page);
> +
> 	lock_page_memcg(page);
> 	if (mapping && mapping_use_writeback_tags(mapping)) {
> 		XA_STATE(xas, &mapping->i_pages, page_index(page));
> 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-11-11  3:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-27 22:46 [PATCH] Assert that pages being written back are locked Matthew Wilcox
2020-11-11  0:39 ` Matthew Wilcox
2020-11-11  3:37 ` William Kucharski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).