On Wed, Oct 23, 2019 at 01:05:47PM -0700, Daniel Colascione wrote: > This is a debate that won't get resolved here. A ton of work has gone > into namespaces, migration, various cgroup things, and so on, and I > don't see that work getting torn out. This is precisely why I thought it was a good idea to support the non-cooperative use case too even though we had no immediate use for it. > Sure they can. Can't we stick processes in a memcg and set a > memory.high threshold beyond which threads in that cgroup will enter > direct reclaim on page allocations? I'd call that throttling. The uffd-wp solution during the throttling can resolve a wrprotect fault in the parent for every 4k page that has been written to disk and it'll prioritize writing to disk those userfaults that are currently blocked. I don't see how you could reach an equivalent optimal runtime without uffd-wp and just with memcg because the snapshot process won't have a clue which pages are been duped by the COWs. The uffd-wp by avoding fork will also avoid more expensive MM switches during the snapshot. > This issue *has* to get fixed one way or another. Sure.