On Fri, Jun 02, 2023 at 05:43:19PM -0700, John Hubbard wrote:
On 6/2/23 15:52, John Hubbard wrote:
On 6/2/23 15:38, Peter Xu wrote: ...
I think we're in agreement that we want to only include uffd-common.h where it's actually required. Likewise with the uffd*() routines. So I would like to still move this over, yes, just to have things in their best-named location.
Sorry I didn't get it - e.g. I'm confused why we need to export uffd_test_ops into ksm unit test, it doesn't make much sense to me..
Oh, I see what you mean, finally. Yes. ksm should not need that.
...whoops, correction, our very own David Hildenbrand recently made changes that contradict the claim that "ksm and uffd selftests are independent". In fact, ksm now *intentionally* depends upon uffd, as of commit 93fb70aa5904c ("selftests/vm: add KSM unmerge tests"), aha!
That added commit added a call to test_unmerge_uffd_wp(), to ksm_functional_tests.c .
So this needs to stay approximately as-is, it seems.
So I think it depends on what is "as-is" to me in the above sentence. :)
test_unmerge_uffd_wp() impled its own uffd ioctls, and it still doesn't use any of uffd-common.h of now (e.g. uffd_test_ops).
IMHO if we want we can let test_unmerge_uffd_wp() reuse either uffd_get_features(), uffd_open(), uffd_register() etc., but still all of them are provided by vm_util.h not uffd-common.h for now, and that's intended (vm_util.h can contain uffd helpers, or whatever helpers as long as generic mm/ unit tests need).
We can even move wp_range() from uffd-common.[ch] into vm_utils.[ch], then it can also share that (need to replace err(), that's uffd-common specific). Not necessary anything must be done in this series, though.
Thanks,