Lee Schermerhorn wrote:The primary difference should be at unmap time, right? In the fault
path, I only update the pte of the faulting task. That's why I require
the [anon] pages to be in the swap cache [or something similar]. I
don't want to be fixing up other tasks' page tables in the context of
the faulting task's fault handler. If, later, another task touches the
page, it will take a minor fault and find the [possibly migrated] page
in the cache. Hmmm, I guess all tasks WILL incur the minor fault if
they touch the page after the unmap. That could be part of the
difference if you compare on the same kernel version.
Agreed.
Try booting with cgroup_disable=memory on the command line, if you have
the memory resource controller configured in. See what that does to
your measurements.
It doesn't seem to help. I'll try to bisect and find where the
performance dropped.