On 9/28/20 6:02 AM, Jason Gunthorpe wrote:
On Sun, Sep 27, 2020 at 11:21:59PM -0700, John Hubbard wrote:
...
+gcc -c $tmpfile_c -o $tmpfile_o >/dev/null 2>&1
This gcc has to come from some makefile variable
ahem, yes, that really should have just been $(CC), will change to that.
This is kind of janky :\
Could we just not use libhugetlbfs? Doesn't it all just boil down to creating a file in /dev/huge? Eg look at tools/testing/selftests/vm/hugepage-mmap.c
Well, the situation is a lot worse than that, because hmm-tests.c is using a few helper functions that end up pulling in more and more.
My first attempt was actually in your direction: just grab a bit of code from the library and drop it in. But that ended up turning into several pages of code from quite a few functions and definitions, and it was looking maybe excessive. (I can look at it again, though. Maybe it feels less excessive if there are no other acceptible alternatives.)
So then I thought, why not just *delete* those two routines from hmm-tests.c? But Ralph didn't like that because he notes that hmm_range_fault() loses some useful test coverage by being exercised with hugetlbfs.
So finally I landed here, which is so far, the smallest change that would be potentially acceptible: a couple dozen lines, in order to selectively disable the problematic routines.
Anyway, thoughts? I like the current approach but am open to anything that makes hmm-test Just Work for more people, on the *first* try.
thanks,