On 7/16/26 15:03, Kiryl Shutsemau wrote:
> On Thu, Jul 16, 2026 at 01:25:22PM +0200, David Hildenbrand (Arm) wrote:
>>
>>> +   /* Fast path: category_mask == return_mask == PAGE_IS_WRITTEN. */
>>> +   ret = pagemap_ioctl(mem, hpage_size, regions, ARRAY_SIZE(regions), 0, 0,
>>> +                       PAGE_IS_WRITTEN, 0, 0, PAGE_IS_WRITTEN);
>>> +   for (i = 0; ret > 0 && i < ret; i++)
>>> +           fast += LEN(regions[i]);
>>> +
>>> +   /* Generic path: same query expressed via category_anyof_mask. */
>>> +   ret = pagemap_ioctl(mem, hpage_size, regions, ARRAY_SIZE(regions), 0, 0,
>>> +                       0, PAGE_IS_WRITTEN, 0, PAGE_IS_WRITTEN);
>>> +   for (i = 0; ret > 0 && i < ret; i++)
>>> +           slow += LEN(regions[i]);
>>> +
>>> +   ksft_test_result(fast == npages && slow == npages,
>>> +                    "%s pmd-hole reported written by both paths (%ld, %ld 
>>> of %d)\n",
>>> +                    __func__, fast, slow, npages);
>>> +out:
>>> +   wp_free(mem, hpage_size);
>>> +   munmap(area, 2 * hpage_size);
>>> +}
>>
>> Sorry if I wasn't clear. I think unpopulated_thp_scan_test() can actually 
>> reuse
>> bits of unpopulated_scan_test().
> 
> Ah. Make sense.
> 
> Here's my take on this. Looks good?

Yes, thanks!

-- 
Cheers,

David

Reply via email to