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

From: IBM
Date: Fri May 24 2024 - 02:58:32 EST



dropping stable email again.

David Hildenbrand <david@xxxxxxxxxx> writes:

> On 23.05.24 21:13, Andrew Morton wrote:
>> 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.
>>>
>>
>
> Two SOF, is there a Co-developed-by: missing?
>

Sorry about that. Andrew, could you please add the tag (let me know if you
would like me to send v2). Will take care of it next time.

Co-developed-by: Ritesh Harjani (IBM) <ritesh.list@xxxxxxxxx>

-ritesh