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

!3300 Add sharepool support v3

Merge Pull Request from: @ci-robot 
 
PR sync from: Wang Wensheng <wangwensheng4@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/2YPFNNCJKIDNZJXT443RNHNWNQTGRDZC/ 
This patch series migrates share pool features from OLK-5.10 to
OLK-6.6. We don't want to do this work patch by patch since
there are hundreds of patches in OLK-5.10 including bugfix and small
features generation. Instead we just take the final version and
split it into a few small patches, each of which contains one
feature at the final version.

The share pool features is a big feature, it is mainly used to share
user virtual memory for different processes in the same group.
It could be used by this steps:

Process A create a new group which is owned by process A.
Process A add process B to the group.
Process A add process C to the same group.
Process B alloc a new memory VA, and write something in it.
The VA was send to the process C by IPC, then process C got it.
The process C access the VA and got the data directly.
The process A could add more processes in the group to share the
memory.
Fix the memory by use the free function or exit the group.
The new features is enabled both by CONFIG_SHARE_POOL and the
enable_ascend_share_pool bootarg, it would not affect anything if disabled.

v1->v2:
Delete some unused code.
v2->v3:
Rename several function.

Wang Wensheng (19):
  mm/hugetlb: Introduce hugetlb_insert_hugepage_pte[_by_pa]
  mm/vmalloc: Extend vmalloc usage about hugepage
  mm: Extend mmap assocated functions to accept mm_struct
  mm/sharepool: Add base framework for share_pool
  mm/sharepool: Add sp_area management code
  mm/sharepool: Reserve the va space for share_pool
  mm/sharepool: Implement mg_sp_make_share_u2k()
  mm/sharepool: Implement mg_sp_unshare_kva
  mm/sharepool: Implement mg_sp_walk_page_range()
  mm/sharepool: Implement mg_sp_free()
  mm/sharepool: Implement mg_sp_alloc()
  mm/sharepool: Implement mg_sp_make_share_k2u()
  mm/sharepool: Implement mg_sp_group_add_task()
  mm/sharepool: Implement mg_sp_group_id_by_pid()
  mm/sharepool: Implement mg_sp_id_of_current()
  mm/sharepool: Implement mg_sp_config_dvpp_range()
  mm/sharepool: Add proc interfaces to show sp info
  mm/sharepool: support fork() and exit() to handle the mm
  mm/sharepool: Protect the va reserved for sharepool


-- 
2.17.1
 
https://gitee.com/openeuler/kernel/issues/I8LNGH 
 
Link:https://gitee.com/openeuler/kernel/pulls/3300

 

Reviewed-by: default avatarWeilong Chen <chenweilong@huawei.com>
Reviewed-by: default avatarZucheng Zheng <zhengzucheng@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents 0684c49b 7be202c5
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment