On Wed, Oct 04, 2023 at 08:22:08PM -0400, Rik van Riel wrote:
On Wed, 2023-10-04 at 10:11 -0700, Breno Leitao wrote:
+char *huge_ptr;
+/* Touch the memory while it is being madvised() */ +void *touch(void *unused) +{ + char *ptr = (char *)huge_ptr;
+ if (!ptr) { + fprintf(stderr, "Failed to allocate memory\n"); + perror(""); + }
I'm not sure this error message makes a lot of sense away from where the huge page gets allocated.
Right. I think I don't need this whole "if" clause at all. Let me remove it.
+ while (max--) { + huge_ptr = mmap(NULL, MMAP_SIZE, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
+ if ((unsigned long)huge_ptr == -1) { + perror("Failed to allocate\n"); + continue; + }
Should the test case just exit with an error here, when the allocation fails?
Yes, probably skip the test if we are not able to allocate the memory. I just found I can use something as `ksft_exit_skip()` for this purpose.
Thanks for the great feedbacks!