On 7/26/26 13:56, Mike Rapoport wrote:
> Hi Rik,
> 
> On Fri, Jul 24, 2026 at 06:29:34PM -0400, Rik van Riel wrote:
>> follow_page_mask() now batches a PTE-mapped large folio (mTHP) into one
>> contiguous run for the slow get_user_pages() path. A mis-batched run would
>> hand back the wrong pages or a stale COW copy, which the existing tests do
>> not catch: gup_test checks only pin/unpin integrity, and cow exercises COW
>> mostly at PMD size.
>>
>> Add mthp_gup_cow_test. It forces 64kB-only mTHP, writes a per-page-distinct
>> pattern, then pins the region on the slow path (PIN_LONGTERM without
>> USE_FAST) and compares the bytes the kernel copies back from the pinned
>> pages against that pattern.
>>
>> The test covers a read pin, a write pin, and COW after fork(): a child
>> write-pins to force per-page unshare and checks the copied contents, then
>> rewrites its copy while the parent verifies its own contents are intact.
>>
>> It also reports how many pages sit in contiguous large-folio runs, so a
>> kernel without mTHP shows light coverage rather than passing vacuously.
>>
>> Assisted-by: Claude:claude-opus-4.8
>> Signed-off-by: Rik van Riel <[email protected]>
>> ---
>>  tools/testing/selftests/mm/Makefile           |   1 +
>>  .../testing/selftests/mm/mthp_gup_cow_test.c  | 213 ++++++++++++++++++
>>  tools/testing/selftests/mm/run_vmtests.sh     |   1 +
>>  3 files changed, 215 insertions(+)
>>  create mode 100644 tools/testing/selftests/mm/mthp_gup_cow_test.c
>>
>> +
>> +static long PS;
>> +static int fails;
>> +static int tap;
>> +
>> +static void ok(int cond, const char *desc)
>> +{
>> +    printf("%s %d %s\n", cond ? "ok" : "not ok", ++tap, desc);
> 
> Please (instruct claude to) use ksft_* helpers for printing messages and
> tracking failed and passed tests.

I'm afraid we won't have time to keep repeating the following:

Documentation/process/coding-assistants.rst

* Reviewing all AI-generated code
[...]
* Taking full responsibility for the contribution

-- 
Cheers,

David

Reply via email to