mbox series

[0/3] Wait for I/O without holding a page reference

Message ID 20201013030008.27219-1-willy@infradead.org (mailing list archive)
Headers show
Series Wait for I/O without holding a page reference | expand

Message

Matthew Wilcox Oct. 13, 2020, 3 a.m. UTC
The upcoming THP patchset keeps THPs Uptodate at all times unless we
hit an I/O error.  So I have a patch which induces I/O errors in 10%
of readahead I/Os in order to test the fallback path.  It hits a
problem with xfstests generic/273 which has 500 threads livelocking
trying to split the THP.  This patchset fixes that livelock and
takes 21 lines out of generic_file_buffered_read().

Matthew Wilcox (Oracle) (3):
  mm: Pass a sleep state to put_and_wait_on_page_locked
  mm/filemap: Don't hold a page reference while waiting for unlock
  mm: Inline __wait_on_page_locked_async into caller

 include/linux/pagemap.h |   3 +-
 mm/filemap.c            | 129 +++++++++++++++-------------------------
 mm/huge_memory.c        |   4 +-
 mm/migrate.c            |   4 +-
 4 files changed, 52 insertions(+), 88 deletions(-)

Comments

William Kucharski Oct. 13, 2020, 1:32 p.m. UTC | #1
> On Oct 12, 2020, at 9:00 PM, Matthew Wilcox (Oracle) <willy@infradead.org> wrote:
> 
> The upcoming THP patchset keeps THPs Uptodate at all times unless we
> hit an I/O error.  So I have a patch which induces I/O errors in 10%
> of readahead I/Os in order to test the fallback path.  It hits a
> problem with xfstests generic/273 which has 500 threads livelocking
> trying to split the THP.  This patchset fixes that livelock and
> takes 21 lines out of generic_file_buffered_read().
> 
> Matthew Wilcox (Oracle) (3):
>  mm: Pass a sleep state to put_and_wait_on_page_locked
>  mm/filemap: Don't hold a page reference while waiting for unlock
>  mm: Inline __wait_on_page_locked_async into caller
> 
> include/linux/pagemap.h |   3 +-
> mm/filemap.c            | 129 +++++++++++++++-------------------------
> mm/huge_memory.c        |   4 +-
> mm/migrate.c            |   4 +-
> 4 files changed, 52 insertions(+), 88 deletions(-)
> 
> -- 
> 2.28.0

For the series:

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