On 4/9/21 2:18 PM, Peter Xu wrote: > On Fri, Apr 09, 2021 at 10:03:53AM -0700, Axel Rasmussen wrote: >> On Thu, Apr 8, 2021 at 10:04 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: >>> >>> On Thu, 8 Apr 2021 16:43:18 -0700 Axel Rasmussen <axelrasmussen@xxxxxxxxxx> wrote: >>> >>>> The idea is that it will apply cleanly to akpm's tree, *replacing* the following >>>> patches (i.e., drop these first, and then apply this series): >>>> >>>> userfaultfd-support-minor-fault-handling-for-shmem.patch >>>> userfaultfd-support-minor-fault-handling-for-shmem-fix.patch >>>> userfaultfd-support-minor-fault-handling-for-shmem-fix-2.patch >>>> userfaultfd-support-minor-fault-handling-for-shmem-fix-3.patch >>>> userfaultfd-support-minor-fault-handling-for-shmem-fix-4.patch >>>> userfaultfd-selftests-use-memfd_create-for-shmem-test-type.patch >>>> userfaultfd-selftests-create-alias-mappings-in-the-shmem-test.patch >>>> userfaultfd-selftests-reinitialize-test-context-in-each-test.patch >>>> userfaultfd-selftests-exercise-minor-fault-handling-shmem-support.patch >>> >>> Well. the problem is, >>> >>>> + if (area_alias == MAP_FAILED) >>>> + err("mmap of memfd alias failed"); >>> >>> `err' doesn't exist until eleventy patches later, in Peter's >>> "userfaultfd/selftests: unify error handling". I got tired of (and >>> lost confidence in) replacing "err(...)" with "fprintf(stderr, ...); >>> exit(1)" everywhere then fixing up the fallout when Peter's patch came >>> along. Shudder. >> >> Oof - sorry about that! >> >>> >>> Sorry, all this material pretty clearly isn't going to make 5.12 >>> (potentially nine days hence), so I shall drop all the userfaultfd >>> patches. Let's take a fresh run at all of this after -rc1. >> >> That's okay, my understanding was already that it certainly wouldn't >> be in the 5.12 release, but that we might be ready in time for 5.13. >> >>> >>> >>> I have tentatively retained the first series: >>> >>> userfaultfd-add-minor-fault-registration-mode.patch >>> userfaultfd-add-minor-fault-registration-mode-fix.patch >>> userfaultfd-disable-huge-pmd-sharing-for-minor-registered-vmas.patch >>> userfaultfd-hugetlbfs-only-compile-uffd-helpers-if-config-enabled.patch >>> userfaultfd-add-uffdio_continue-ioctl.patch >>> userfaultfd-update-documentation-to-describe-minor-fault-handling.patch >>> userfaultfd-selftests-add-test-exercising-minor-fault-handling.patch >>> >>> but I don't believe they have had much testing standalone, without the >>> other userfaultfd patches present. So I don't think it's smart to >>> upstream these in this cycle. Or I could drop them so you and Peter >>> can have a clean shot at redoing the whole thing. Please let me know. >> >> From my perspective, both Peter's error handling and the hugetlbfs >> minor faulting patches are ready to go. (Peter's most importantly; we >> should establish that as a base, and put all the burden on resolving >> conflicts with it on us instead of you :).) >> >> My memory was that Peter's patch was applied before my shmem series, >> but it seems I was mistaken. So, maybe the best thing to do is to have >> Peter send a version of it based on your tree, without the shmem >> series? And then I'll resolve any conflicts in my tree? >> >> It's true that we haven't tested the hugetlbfs minor faults patch >> extensively *with the shmem one also applied*, but it has had more >> thorough review than the shmem one at this point (e.g. by Mike >> Kravetz), and they're rather separate code paths (I'd be surprised if >> one breaks the other). > > Yes I think the hugetlb part should have got more review done. IMHO it's a > matter of whether Mike would still like to do a more thorough review, or seems > okay to keep them. I looked pretty closely at the hugetlb specific parts of the minor fault handling series. I only took a high level look at the code modifying and dealing with the userfaultfd API. The hugetlb specific parts looked fine to me. I can take a closer look at the userfaultfd API modifications, but it would take more time for me to come up to speed on the APIs. -- Mike Kravetz