• Home
Name
Date
Size
#Lines
LOC

..--

auth_ctl/12-May-2024-1,6711,252

figures/12-May-2024-

include/12-May-2024-315158

README_zh.mdD12-May-20242.1 KiB7150

apply_qos_auth.shD12-May-2024706 3219

README_zh.md

1## 背景
2
3为支持并发编程框架FFRT的底层调度能力而设计,允许app侧根据业务逻辑在线程间分配调度资源,保障关键任务时延达标,保障用户体验。
4
5涉及到权限下放和调度资源分配,需要内核实现:
6
71. 高效的能感知状态的app权限管控机制(轻量化权限管控)
82. 动态的调度资源分配机制(动态多级qos)
9
10## auth_ctrl(Authority Control)模块
11
12轻量化权限管控模块,uid粒度的权限管控,根据app前后台状态动态管控对内核feature接口的访问权限
13
14![轻量化权限管控架构](figures/轻量化权限管控架构.png)
15
16## qos_ctrl(Qos Control)模块
17
18动态多级qos模块,提供多种policy(前台/后台/system等),每个policy包含6个qos等级,可以从时间片、调度时延、供给3个维度去更改线程调度行为
19
20![多级qos架构图](figures/多级qos架构图.png)
21
22## 目录
23
24```
25├── README_zh.md
26├── apply_qos_auth.sh
27├── figures                      # ReadMe 内嵌图例
28├── auth_ctl
29│   ├── Kconfig
30│   ├── Makefile
31│   ├── auth_ctrl.c              #权限管控主体代码
32│   ├── auth_ctrl.h
33│   ├── auth_qos_debug.c         #debug节点主体
34│   ├── qos_ctrl.c               #多级qos主体代码
35│   └── qos_ctrl.h
36└── include
37    ├── auth_ctrl.h
38    ├── qos_auth.h
39    ├── qos_ctrl.h
40    └── rtg_auth.h
41```
42
43## QOS_AUTH配置指导
44
451. 权限管控使能`CONFIG_AUTHORITY_CTRL=y`
462. 多级qos使能`CONFIG_QOS_CTRL=y`
473. RTG鉴权使能`CONFIG_RTG_AUTHORITY=y`
484. qos鉴权使能`CONFIG_QOS_AUTHORITY=y`
495. Debug节点使能`CONFIG_AUTH_QOS_DEBUG=y`
506. Qos策略数量限制`CONFIG_QOS_POLICY_MAX_NR=5`,范围[5, 20]
51
52qos成功设置的宏依赖:
53
54```
55# 时延控制
56CONFIG_SCHED_LATENCY_NICE=y
57
58# 供给
59CONFIG_UCLAMP_TASK=y
60CONFIG_UCLAMP_BUCKETS_COUNT=20
61CONFIG_UCLAMP_TASK_GROUP=y
62```
63
64## 相关仓
65
66
67[kernel_linux_5.10](https://gitee.com/openharmony/kernel_linux_5.10)
68
69[kernel_linux_config](https://gitee.com/openharmony/kernel_linux_config)
70
71[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)