MeowOS for HiBy R3 Pro II — 公共发布版本(历史已重置)

• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC)
• 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库)
• 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo
增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
This commit is contained in:
MeowOS Dev committed 2026-08-30 01:12:34 +08:00
commit 245bee2946
136 files changed
+32730

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
# MeowOS 统一系统性能调度器(PERF_SCHEDULER.md)
> 状态:设计蓝图(2026-08-29)。**后续阶段实现**(阶段 B/B2 之后,或与框架并进)。M2.16 的刷新率调度是它的第一个子模块,后续统一收进 meow_sched。
>
> **更新(M2.28 / A-1+A-2,2026-08-29)**:显示刷新率调度(60/30/15 档 + 自适应降档 + always_max)
> **已从 launcher 迁出、归口 SDK 渲染后端**——`sdk/meow_ui_gfx.c` 的 `present()`(`meow_ui_flush()`
> 上屏)内嵌帧率门控 + governor,公共接口 `meow_ui_set_refresh_rate()/meow_ui_set_refresh_always_max()`
> (已入 `meow_ui.h` §7.1)。launcher 与 app 现统一走 SDK 的 present 帧率门控,不再各自内联一套。
> 后续(S1)仍按原计划把该子模块进一步收进 `meow_sched`(`meow_sched_fps()`),SDK present 只作为
> 执行器(消费 `meow_sched` 下发的档位)。
## 0. 目标与一句话
在资源紧张(64MB RAM、单核 X1600E、无 GPU)下,**统一治理"性能 vs 功耗 vs 流畅度"**:用中央调度器按策略(平衡/性能/续航)分配显示刷新率、CPU/频率、前后台应用优先级、温控——避免各模块零散自己降频/跳帧。
## 1. 管辖子域
| 子域 | 内容 | 现状/未来 |
|---|---|---|
| **显示刷新率** | 60/30/15 档 + 自适应降档 + always_max | M2.16 内联在 launcher;**M2.28(A-1/A-2)已归口 SDK present**(`meow_ui_set_refresh_rate/always_max`,`meow_ui_gfx.c`);以后仍计划收进 `meow_sched`(`meow_sched_fps()`) |
| **CPU/频率** | 若 X1600E cpufreq 可控(/sys/devices/system/cpu/cpu0/cpufreq/),按策略设 governor/频率 | 待测(可能无 cpufreq,简化为核数/负载建议) |
| **前后台优先级** | 前台应用/会话 = 满额;后台服务/空闲 = 低优先、省电 | MeowOS 已有前台会话概念,纳入调度 |
| **温控** | /sys/class/thermal 读取,超阈值降档 | 待测(thermal_zone 可能仅 1 个) |
| **功耗策略** | 平衡/性能/续航 三种 policy(settings `power.mode`) | 设置项 + web |
## 2. 设计
- **中央调度**:`meow_sched_tick()`(主循环低频,如 250ms)读取策略 + 各子域信号(渲染负载/后台活跃/温度/电量),决定并下发:
- 有效刷新率档位(60/30/15)
- 前台 vs 后台的调度权重/优先级(nice? 前台应用可 `setpriority`,后台/服务降 nice)
- (若 cpufreq)频率档
- 温控降档(过热强制降)
- **策略 `power.mode`**(enum):`balanced`(默认)/ `performance` / `battery`:
- performance:恒 60、前台满额、不降频、温控阈值放宽
- battery:允许降档、后台更省电、更早温控
- balanced:折中 + 自适应
- **自适应降档**:统一在 meow_sched 里做(M2.16 的内联 governor 迁入),基于渲染负载+温度+电量综合。
- **API**:`meow_sched_*()`(`meow_sched_mode()`/`meow_sched_effective_fps()`/`meow_sched_hint_load(x)`/`meow_sched_set_foreground(pid)`);settings `power.mode`。
- **通知/暴露**:web 面板显示当前策略/负载/温度/刷新档;CLI `meowcli sched status`。
## 3. 实现里程碑(后面)
- S1:把(现归口 SDK present 的)刷新率调度迁为 meow_sched 子模块(`meow_sched_fps()`,SDK present 作执行器消费其档位),加 `power.mode` 三策略。
- S2:前后台优先级(前台应用 setpriority、后台/服务降 nice)+ 空闲省电。
- S3:温控/电量感知降档 + 暴露 web/CLI。
- (cpufreq 若可用再并入)
## 4. 原则
- 任何降档/提权都要**无卡顿感知**(降档只在重负载/过热时,常态满额)。
- 中央单一决策,各模块只上报信号、不各自为政(避免"各管各的跳帧/降频")。
- 低开销(低频调度、轻采样),不引入明显 CPU 负担。