自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 【WALT】频率计算(未更新完)

代码版本:Linux4.9 android-msm-crosshatch-4.9-android12。

2024-01-02 19:38:33 1055

原创 【WALT】调度与负载计算(未更新完)

入队任务入队的时候,无论哪一种调度类,最终都会执行,进行 rq->walt_stats.cumulative_runnable_avg += demand 和 rq->walt_stats.pred_demands_sum += pred_demand。同时,任务对应调度实体及其父节点入队时也都会进行一次cfs_rq->walt_stats.cumulative_runnable_avg += demand 和cfs_rq除此之外,会根据以下条件之一是否满足执行。

2023-12-31 23:29:31 1528 2

原创 【WALT】WALT入口 update_task_ravg()

WALT 算法根据历史窗口中的值计算任务的 demand,根据桶算法计算任务的 pred_demand,并将 demand 与 pred_demand 统计进任务所在 CPU 的 rq(runqueue)中。在任务满足条件后,在不同情况下根据任务的开始时间、窗口的开始时间以及当前时间来计算任务在当前及。在任务满足条件后,在不同情况下根据任务的开始时间、窗口的开始时间以及当前时间来计算任务在当前及。在窗口翻滚的时候更新任务的 window 值 以及 rq 的 runnable_sum 的值。

2023-07-01 23:09:40 218

原创 【WALT】top task 相关代码详解

代码版本:Linux4.9 android-msm-crosshatch-4.9-android12。

2024-01-03 21:34:02 1006 1

原创 【WALT】update_cpu_busy_time() 代码详解 & busytime 路径负载计算

在归一化后,会根据任务是否是新任务、是否是 idle 任务或是否要出队来将 delta 累加进 curr_runnable_sum、nt_curr_runnable_sum、curr_window 和 curr_window_cpu[cpu] 中。主要是更新任务的 prev_window 和 curr_window,并更新 CPU 的 prev_window_cpu 和 curr_window_cpu。如果任务还在旧窗口中,不会进行翻滚(rollover)操作,只进行执行时间的累加操作。

2024-01-02 11:27:53 901

原创 【WALT】predict_and_update_buckets() 与 update_task_pred_demand() 代码详解

时会先判断上一个窗口中当前任务所执行的时间(归一化后)处于的等级 bidx,根据 bidx 和数组 busy_buckets 来预测 pred_demand,然后对数组 busy_buckets 中下标非 bidx 的权重进行衰减,对下标为 bidx 的权重进行加强。得到上下界 dmin 和 dmax 之后,遍历数组 sum_history,看看保存的历史窗口的时间中是否有处于该上下界之间的,如果有就将 ret 设置为该时间,没有的话 ret 的值仍为 runtime。其中,runtime 是在。

2023-08-29 14:40:16 157

原创 【WALT】update_history() 代码详解

ridx 是更新之后的最旧窗口的下标。“设定中”的意思是,如果 sched_ravg_hist_size 不等于 RAVG_HIST_SIZE_MAX,那么 sum_history[widx] 指向的就是我们调整窗口数量之后的最旧的窗口。如果记录的是上一个窗口的,或者是 n 个窗口前的某个窗口的,samples = 1;p->ravg.sum_history 是一个长度为 RAVG_HIST_SIZE_MAX 的数组,存放的是过去 RAVG_HIST_SIZE_MAX 个窗口中的任务的执行时间。

2023-08-27 11:56:04 209 1

原创 【WALT】scale_exec_time() 代码详解

EAS 主要针对异构 CPU 架构,如 Arm big.LITTLE,因为这种架构有不同性能和功耗的 CPU 核心,不同 CPU 的最大算力、最大频率等都不同。这个值在设备树中给定,在运行该版本内核的 pixel 3xl 中,小核簇和大核簇的 max_possible_efficiency 分别是 1024 和 1740。freq 是当前 CPU 的频率,由 ⑴ 计算而得:freq = rq->cc.cycles / rq->cc.time。运行任务的 CPU 的每周期指令数 (IPC)。

2023-07-06 20:27:53 191 1

原创 【WALT】update_task_demand() 代码详解

根据开头的分析,我们知道进入新窗口分为两种情况,无论是哪种情况,都需要累加 ws_tmp - ms 和 wc - ws 两部分。时一共累加的任务 runnable 和 running 时间,也就是上一次 WALT 算法开始到这一次 WALT 算法开始过程中,该任务的 runnable 和 running 时间。如果任务经过的时间不是 runnable 或 running 时间,且正好进入新窗口,就不累加任务时间,直接通过。累加任务时间,因为任务在这些完整窗口中的时间都是从窗口开始到窗口结束。

2023-07-05 21:39:02 237 1

原创 【WALT】update_window_start() 代码详解

代码版本:Linux4.9 android-msm-crosshatch-4.9-android12。

2023-07-01 23:23:17 118

原创 【持续更新】Ubuntu && 安卓内核小技巧

查询指定进程的 pid,该方法只输出 pid 不输出其他信息,无法分辨哪一个是主线程的 id。adb shell ps -eo pid,args,psr|grep “包名”查询指定进程的 pid,包含了当前进程所在的 tgid 中的所有 pid。adb shell pgrep -f “包名”以 pixel 3xl 的内核版本。查询当前所有活动的进程的 tgid。可以实时打印你想要的信息。可以实时打印你想要的含有。编译过后进入 shell。再次编译就不会报错了。

2023-06-20 17:26:36 246 1

原创 pixel 3xl 安卓与内核代码下载、编译与烧入全流程(含安卓源码部分编译)

pixel 3xl 保姆级刷机教程

2023-06-19 20:15:24 1006 2

分布式系统期末复习文档

厦门大学研究生课程——分布式系统期末复习文档

2023-06-28

高等计算机体系结构期末复习题 大题篇

厦门大学研究生课程——高等计算机体系结构期末复习题 共两篇,该部分为下篇

2023-06-20

高等计算机体系结构期末复习题 概念篇

厦门大学研究生课程——高等计算机体系结构期末复习题 共两篇,该部分为上篇

2023-06-20

IT项目管理期末复习题

厦门大学研究生课程——IT项目管理期末复习题

2023-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除