On 03/21/2018 11:01 AM, Aaron Lu wrote:
I'm sorry, but I feel the added complexity here is simply too large to
justify the change. Especially if the motivation seems to be just the
microbenchmark. It would be better if this was motivated by a real
workload where zone lock contention was identified as the main issue,
and we would see the improvements on the workload. We could also e.g.
find out that the problem can be avoided at a different level.
One thing I'm aware of is there is some app that consumes a ton of
memory and when it misbehaves or crashes, it takes some 10-20 minutes to
have it exit(munmap() takes a long time to free all those consumed
memory).
THP could help a lot, but it's beyond my understanding why they didn't
use it.
One of our apps has the same issue with taking a long time to exit. The
time is in the kernel's munmap/exit path.
Also, Vlastimil, to your point about real workloads, I've seen
zone->lock and lru_lock heavily contended in a decision support
benchmark. Setting the pcp list sizes artificially high with
percpu_pagelist_fraction didn't make it go any faster, but given that
Aaron and I have seen the contention shift to lru_lock in this case, I'm
curious what will happen to the benchmark when both locks are no longer
contended. Will report back once this experiment is done.