Re: [RFC PATCH 1/3] mm: add function folio_in_range()

From: Yin, Fengwei
Date: Sat Jul 08 2023 - 02:44:56 EST




On 7/8/2023 1:47 PM, Yu Zhao wrote:
> On Fri, Jul 7, 2023 at 10:52 AM Yin Fengwei <fengwei.yin@xxxxxxxxx> wrote:
>>
>> It will be used to check whether the folio is mapped to specific
>> VMA and whether the mapping address of folio is in the range.
>>
>> Signed-off-by: Yin Fengwei <fengwei.yin@xxxxxxxxx>
>> ---
>> mm/internal.h | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/mm/internal.h b/mm/internal.h
>> index f1276d90484ad..66117523d7d71 100644
>> --- a/mm/internal.h
>> +++ b/mm/internal.h
>> @@ -585,6 +585,32 @@ extern long faultin_vma_page_range(struct vm_area_struct *vma,
>> bool write, int *locked);
>> extern bool mlock_future_ok(struct mm_struct *mm, unsigned long flags,
>> unsigned long bytes);
>> +
>> +static inline bool
>> +folio_in_range(struct folio *folio, struct vm_area_struct *vma,
>> + unsigned long start, unsigned long end)
>
> Is there a caller that's not "folio_in_range(folio, vma,
> vma->vm_start, vma->vm_end)"?
I believe madvise() will use start/end from user space instead of vma start/end.

>
> If not, then just "folio_within_vma(folio, vma)" or a wrapper on top
> of folio_in_range().
Will add folio_within_vma() based on folio_in_range(). Thanks.

Regards
Yin, Fengwei