Hi,
This patch set backported several patches from git branch[1], which
helps to reduce the overhead of page table entries scanning and identify
pages demoted wrongly by mapping the new page as PROT_NONE when page
demotion.
With this patch set, there are some slight performance improvement with
mysql read and write testing.
Testing command and results:
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=root
--tables=200 --table-size=1000000 --threads=16 --time=600 --report-interval=10 prepare
With patches:
queries performed:
transactions: 799824 (1331.06 per sec.)
queries: 15996480 (26621.19 per sec.)
latency:
avg: 12.02
95th percentile: 20.37
Without patches:
queries performed:
transactions: 791806 (1318.89 per sec.)
queries: 15836120 (26377.75 per sec.)
latency:
avg: 12.13
95th percentile: 20.37
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/vishal/tiering.git/log/?h=t…
Huang Ying (3):
mm, migrate: use flags parameter for remove_migration_ptes()
memory tiering: map page as PROT_NONE after demotion
memory tiering: control rate limit based on pgpromote_demoted
include/linux/mmzone.h | 4 +++
include/linux/page-flags.h | 9 ++++++
include/linux/page_ext.h | 3 ++
include/linux/rmap.h | 8 ++++-
include/linux/sched/numa_balancing.h | 61 ++++++++++++++++++++++++++++++++++++
include/trace/events/mmflags.h | 9 +++++-
include/trace/events/sched.h | 12 ++++---
kernel/sched/fair.c | 28 +++++++++++++++--
mm/huge_memory.c | 4 +--
mm/mempolicy.c | 2 ++
mm/migrate.c | 59 ++++++++++++++++++++++++++++------
mm/vmstat.c | 1 +
12 files changed, 179 insertions(+), 21 deletions(-)
--
1.8.3.1