当前位置:首页 > 报告详情

分会场3_古钦辉_肖俊_基于eBPF用户态调度器的Android系统性能优化与应用实践_报告PPT.pdf

上传人: 科*** 编号:713380 2025-06-08 11页 458.48KB

1、基于eBPF用户态调度器的Android系统性能优化与应用实践中 国 西 安第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m荣耀终端|OS Kernel Lab古钦辉/肖俊 1.sched_ext 框架介绍2.Android 移动端应用启动性能分析3.基于 sched_ext 的优先级调度优化4.总结第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安Linux内核调度器:通用调度器(CFS、EEVDF)越来越复杂的用户交互场景 新调度策略的实验成本和维护难度SCHED_EXT 的特点和优势:1、灵活性,

2、可以通过 eBPF 技术在运行时从用户态加载调度器到内核2、降低试验新调度策略的难度,实现快速部署3、安全性/防饿死第 三 届 e B P F 开 发 者 大 会sched_ext 框架介绍第 三 届 e B P F 开 发 者 大 会USER SPACEKERNEL cfs_sched_classrt_sched_classdl_sched_classstop_sched_classidle_sched_classext_sched_classsource codelibbpfBPF bytecodeVerifierJIT ComplierBPF_PROGbpf kfuncsstruct_o

3、psSCX 框架:core scheduler 负责在内核态修改调度模块的逻辑:任务队列管理/任务抢占/负载均衡/选核/bpf scheduler 实现具体的任务调度策略和执行调度程序的注册加载:注入动态策略sched_ext 框架介绍第 三 届 e B P F 开 发 者 大 会s32(*select_cpu)(struct task_struct*p,s32 prev_cpu,u64 wake_flags);/选核:选择cpuvoid(*enqueue)(struct task_struct*p,u64 enq_flags);/入队:分发任务void(*dispatch)(s32 cpu,

4、struct task_struct*prev);/选择任务:cpu 从指定队列消费任务sched_ext 框架介绍第 三 届 e B P F 开 发 者 大 会应用启动关键流程:1、创建app对象2、启动main thread3、创建main activity4、创建布局 Inflate views 5、首帧绘制 Initial drawAndroid Vitals 会认为您的应用存在启动时间过长的情况:(from Google Develop)冷启动用了 5 秒或更长时间。温启动用了 2 秒或更长时间。热启动用了 1.5 秒或更长时间。(对性能的指标随着业务而变化)主要业务进程:Launc

5、herMainThreadRenderThreadBinder事务Android应用启动性能分析主要调度类:RT 实时调度CFS 公平调度LauncherstartActivitysystem_serverProcessAPPMain()Zygoteinit第 三 届 e B P F 开 发 者 大 会问题:关键业务进程等待子线程runnableBinder 等待时间长UI、渲染任务调度不及时特定业务调度不及时优化实践目标:通过 scx 调度器实现调度策略拓展识别关键任务链,精准优化覆盖多个用户场景Android应用启动性能分析第 三 届 e B P F 开 发 者 大 会高优先级任务派发队列

6、 PRIO-DSQ:load balance/idle first/dynamic cpu affinity默认任务派发队列 CFS-DSQ动态时间片分配:细粒度优化依赖识别模块和优先级传递:关键任务标签/前台/动效、UX/系统服务/基于sched_ext的优先级调度BPF SchedulerAwareness ModuleRT TaskVIP TaskNormal TaskCFS-DSQPRIO-DSQrt_sched_classload balancedynamic sl

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了基于eBPF用户态调度器在Android系统性能优化中的应用实践。关键点如下: 1. eBPF技术使调度器在运行时从用户态加载到内核,提高了调度策略的灵活性和快速部署能力。 2. sched_ext框架允许自定义调度策略,降低新调度策略实验成本,提高系统性能。 3. 针对Android应用启动性能,分析了关键流程和主要调度类,提出了优化实践目标。 4. 优化实践包括:高优先级任务派发队列、动态时间片分配、依赖识别模块和优先级传递。 5. 测试数据显示,基于sched_ext的优先级调度在移动端具有较好的性能表现。 核心数据:文章提到,优化后的系统基于高通骁龙8Gen3 / Kernel 6.1 / Android 14,在上下文切换耗时、APP应用启动时间以及APP进程任务的平均Runnable时间等方面均有改善。 总结:文章阐述了eBPF技术在Android系统性能优化中的应用,通过sched_ext框架实现灵活调度和快速部署,为移动端复杂业务场景带来性能提升。同时,提出了与AI结合探索的新方向。
"如何优化Android启动速度?" "eBPF技术在移动端有何妙用?" "sched_ext调度框架亮点是什么?"
客服
商务合作
小程序
服务号
折叠