Bug 2349 - per cgroup per lock - upstream patches backport
Summary: per cgroup per lock - upstream patches backport
Status: NEW
Alias: None
Product: ANCK 5.10 Dev
Classification: ANCK
Component: mm (show other bugs) mm
Version: 5.10.y-13
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: kun(llfl)
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-09 16:11 UTC by JiangboWu
Modified: 2022-10-09 16:11 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description JiangboWu intel_group 2022-10-09 16:11:54 UTC
Description of problem:

Current lru_lock is one for each of node, pgdat->lru_lock, that guard for
lru lists, but now we had moved the lru lists into memcg for long time. Still
using per node lru_lock is clearly unscalable, pages on each of memcgs have
to compete each others for a whole lru_lock. This patchset try to use per
lruvec/memcg lru_lock to repleace per node lru lock to guard lru lists, make
it scalable for memcgs and get performance gain.


PER CGROUP PER LOCK is the upstream solution:
https://lore.kernel.org/all/1604566549-62481-15-git-send-email-alex.shi@linux.alibaba.com/T/#m5510a411124f4e1f21e3585c6d1db28dcd13bce3

upstream shows 62% improvement on modified readtwice case
on his 2P * 10 core * 2 HT broadwell box on v18, which has no much different
with this v20.

and also it can have 10% performance improvement in our container migration solution using DSA due to it's using per cgroup per lock rather than pgdat lock.