Re: [PATCH] selftest: mm: Test if hugepage does not get leaked during __bio_release_pages()

From: Andrew Morton
Date: Thu May 23 2024 - 15:13:56 EST


On Thu, 23 May 2024 01:39:05 -0500 Donet Tom <donettom@xxxxxxxxxxxxx> wrote:

> Commit 1b151e2435fc ("block: Remove special-casing of compound
> pages") caused a change in behaviour when releasing the pages
> if the buffer does not start at the beginning of the page. This
> was because the calculation of the number of pages to release
> was incorrect.
> This was fixed by commit 38b43539d64b ("block: Fix page refcounts
> for unaligned buffers in __bio_release_pages()").
>
> We pin the user buffer during direct I/O writes. If this buffer is a
> hugepage, bio_release_page() will unpin it and decrement all references
> and pin counts at ->bi_end_io. However, if any references to the hugepage
> remain post-I/O, the hugepage will not be freed upon unmap, leading
> to a memory leak.
>
> This patch verifies that a hugepage, used as a user buffer for DIO
> operations, is correctly freed upon unmapping, regardless of whether
> the offsets are aligned or unaligned w.r.t page boundary.
>

You have stable@xxxxxxxxxxxxxxx in the mail headers, so I assume you're
proposing this for backporting. When doing this, please include

Cc: <stable@xxxxxxxxxxxxxxx>

in the changelog footers and also include a Fixes: target. I'm
assuming the suitable Fixes: target for this patch is 38b43539d64b?