[LTP] [PATCH 06/13] Hugetlb: Migrating libhugetlbfs mremap-fixed-normal-near-huge
Tarun Sahu
tsahu@linux.ibm.com
Tue Dec 27 19:21:42 CET 2022
Hi Li,
Thanks for reviewing the patch.
I will update it in next revision.
--skip
>> +static int do_readback(void *p, size_t size, const char *stage)
>> +{
>> + unsigned int *q = p;
>> + size_t i;
>> +
>> + tst_res(TINFO, "%s(%p, 0x%lx, \"%s\")", __func__, p,
>> + (unsigned long)size, stage);
>> +
>> + for (i = 0; i < (size / sizeof(*q)); i++)
>> + q[i] = RANDOM_CONSTANT ^ i;
>> +
>> + for (i = 0; i < (size / sizeof(*q)); i++) {
>> + if (q[i] != (RANDOM_CONSTANT ^ i)) {
>> + tst_res(TFAIL, "Stage \"%s\": Mismatch at offset
>> 0x%lx: 0x%x "
>> + "instead of 0x%lx", stage, i,
>> q[i], RANDOM_CONSTANT ^ i);
>> + return -1;
>> + }
>> + }
>> + return 0;
>> +}
>> +
>> +static int do_remap(void *target)
>> +{
>> + void *a, *b;
>> + int ret;
>> +
>> + a = SAFE_MMAP(NULL, page_size, PROT_READ|PROT_WRITE,
>> + MAP_SHARED|MAP_ANONYMOUS, -1, 0);
>> +
>> + ret = do_readback(a, page_size, "base normal");
>> + if (ret)
>> + goto cleanup;
>> + b = mremap(a, page_size, page_size, MREMAP_MAYMOVE | MREMAP_FIXED,
>> + target);
>> +
>> + if (b != MAP_FAILED) {
>> + do_readback(b, page_size, "remapped");
>> + a = b;
>> + } else
>> + tst_res(TINFO|TERRNO, "mremap(MAYMOVE|FIXED) disallowed");
>> +
>> +cleanup:
>> + SAFE_MUNMAP(a, page_size);
>> + return ret;
>> +}
>>
>
> Those two functions do_readback() and do_remap() are
> copy&past from hugemmap2[4|5].c, what about extracting
> them into a common header file(tst_hugetlb.h or mem.h) for
> easy reusing?
>
ok, I think, hugetlb.h/.c will be better place to keep them.
> And I also noticed other tests (hugemmap27) using the same
> macro mem barrier(), it'd be great to define it in a header file.
>
ok.
>
> --
> Regards,
> Li Wang
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
More information about the ltp
mailing list