Message ID | f66a0119d0564c2c37c84f045835b870d1b2196f.1734593154.git.baolin.wang@linux.alibaba.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] mm: shmem: fix incorrect index alignment for within_size policy | expand |
On 19.12.24 08:30, Baolin Wang wrote: > The 'shmem_falloc->nr_unswapped' is used to record how many writepage > refused to swap out because fallocate() is allocating, but after shmem > supports large folio swap out, the update of 'shmem_falloc->nr_unswapped' > does not use the correct number of pages in the large folio, which may > lead to fallocate() not exiting as soon as possible. > > Anyway, this is found through code inspection, and I am not sure whether > it would actually cause serious issues. > > Fixes: 809bc86517cc ("mm: shmem: support large folio swap out") > Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com> > --- > mm/shmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index dec659e84562..ac58d4fb2e6f 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1535,7 +1535,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) > !shmem_falloc->waitq && > index >= shmem_falloc->start && > index < shmem_falloc->next) > - shmem_falloc->nr_unswapped++; > + shmem_falloc->nr_unswapped += nr_pages; > else > shmem_falloc = NULL; > spin_unlock(&inode->i_lock); Acked-by: David Hildenbrand <david@redhat.com>
diff --git a/mm/shmem.c b/mm/shmem.c index dec659e84562..ac58d4fb2e6f 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1535,7 +1535,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) !shmem_falloc->waitq && index >= shmem_falloc->start && index < shmem_falloc->next) - shmem_falloc->nr_unswapped++; + shmem_falloc->nr_unswapped += nr_pages; else shmem_falloc = NULL; spin_unlock(&inode->i_lock);
The 'shmem_falloc->nr_unswapped' is used to record how many writepage refused to swap out because fallocate() is allocating, but after shmem supports large folio swap out, the update of 'shmem_falloc->nr_unswapped' does not use the correct number of pages in the large folio, which may lead to fallocate() not exiting as soon as possible. Anyway, this is found through code inspection, and I am not sure whether it would actually cause serious issues. Fixes: 809bc86517cc ("mm: shmem: support large folio swap out") Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com> --- mm/shmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)