Unverified Commit ea6de9f6 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3921 mm: mem_reliable: Introduce memory reliable

Merge Pull Request from: @ci-robot 
 
PR sync from: Wupeng Ma <mawupeng1@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/IGGF4NQ2OHXEVHFTNO4A6DC6ODAQA42Q/ 
From: Ma Wupeng <mawupeng1@huawei.com>

Introduction

============

Memory reliable feature is a memory tiering mechanism. It is based on
kernel mirror feature, which splits memory into two separate regions,
mirrored(reliable) region and non-mirrored (non-reliable) region.

for kernel mirror feature:

- allocate kernel memory from mirrored region by default
- allocate user memory from non-mirrored region by default

non-mirrored region will be arranged into ZONE_MOVABLE.

for kernel reliable feature, it has additional features below:

- normal user tasks never alloc memory from mirrored region with userspace
  apis(malloc, mmap, etc.)
- special user tasks will allocate memory from mirrored region by default
- shmem/pagecache allocate memory from mirrored region by default
- upper limit of mirrored region allcated for user tasks, shmem and
  page cache

Support Reliable fallback mechanism which allows special user tasks, shmem
and page cache can fallback to alloc non-mirrored region, it's the default
setting.

In order to fulfil the goal

- GFP_KERNEL flag added for task to alloc memory from mirrored region.
- the high_zoneidx for special user tasks/shmem/pagecache is set to
  ZONE_NORMAL to alloc memory from mirrored region.
- normal user tasks can only alloc memory from ZONE_MOVABLE.

Changelog since v1:
- update bugzilla url.

Chen Wandun (1):
  mm: mem_reliable: Alloc pagecache from reliable region

Ma Wupeng (16):
  proc: introduce proc_hide_ents to hide proc files
  efi: Disable mirror feature during crashkernel
  mm: mem_reliable: Introduce memory reliable
  mm: mem_reliable: Alloc task memory from reliable region
  mm: mem_reliable: Add memory reliable support during hugepaged
    collapse
  mm/memblock: Introduce ability to alloc memory from specify memory
    region
  mm/hugetlb: Allocate non-mirrored memory by default
  mm: mem_reliable: Count reliable page cache usage
  mm: mem_reliable: Count reliable shmem usage
  mm: mem_reliable: Show reliable meminfo
  mm: mem_reliable: Add limiting the usage of reliable memory
  mm: mem_reliable: Introduce fallback mechanism for memory reliable
  proc: mem_reliable: Count reliable memory usage of reliable tasks
  mm: mem_reliable: Introduce proc interface to disable memory reliable
    features
  mm: mem_reliable: Show debug info about memory reliable if oom occurs
  config: enable MEMORY_RELIABLE by default

Peng Wu (1):
  mm: mem_reliable: Add cmdline reliable_debug to enable separate
    feature

Zhou Guanghui (1):
  shmem: mem_reliable: Alloc shmem from reliable region


-- 
2.25.1
 
https://gitee.com/openeuler/kernel/issues/I8USBA 
 
Link:https://gitee.com/openeuler/kernel/pulls/3921

 

Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: default avatarZucheng Zheng <zhengzucheng@huawei.com>
Reviewed-by: default avatarLiu Chao <liuchao173@huawei.com>
Reviewed-by: default avatarXu Kuohai <xukuohai@huawei.com>
Reviewed-by: default avatarWeilong Chen <chenweilong@huawei.com>
Reviewed-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents cb3c3cb3 36f2fd0d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment