GitHub repo: https://github.com/firelzrd/bore-scheduler BORE 排程器著重在透過犧牲些許 fairness 來換取較低的 interactive task 的 scheduling latency。此外,其建構在 CFS 之上,並只對更新 vruntime 的程式碼做調整,整體改動相對其他非官方 CPU 排程器 (例如:CacULE, TT, Baby, Project C, MuQSS ^本文最下方提供相關超連結^) 可以說是相當小。 burst time 機制 BORE 在 sched_entity 結構體中加入一名為 burst_time 的成員,用於紀錄給定 schedule entity 總共的 CPU time (實際使用 CPU 的時間),並輔助 burst score (用於取得 task 權重值的 index) 的計算,burst score 越高 (使用越多 CPU 時間),代表 task 越不可能是 interactive task,因此 vruntime 增加的幅度就越大,以使得 interactive task 有較好的 scheduling latency 表現: @@ -885,6 +897,19 @@ static void update_curr(struct cfs_rq *cfs_rq) curr->sum_exec_runtime += delta_exec; schedstat_add(cfs_rq->exec_clock, delta_exec);
May 22, 2022本工具用途為量化 scheduling latency / OS jitter。 量化方法 在各個處理器核上綁定 (pin) 一個執行緒,並以 clock_nanosleep() 進行 1 us 的 sleep。 在 sleep 結束後,呼叫 clock_gettime() 獲取當下 timestamp,並將其與原先指定的 wakeup 時間相減,所得的差即為 scheduling latency / OS jitter。 從上述介紹,我們可推斷 jitterdebugger 生成的 task 為 interactive task,因為其相關 task 大部分時候在 sleep。 使用方式
May 22, 2022BPF (Berkeley Packet Filter) eBPF (extended BPF) is traditionally used to safely and securely accelerate the network path in Linux with custom logic specified by userspace. Notable changes from cBPF (classic BPF) to eBPF: 32-bit reg -> 64-bit reg 2 general purpose reg -> 10 general purpose reg + 1 frame pointer reg introduction of JIT compiler upgraded instruction set, but remains backward-compatibility to cBPF
Oct 12, 2021contributed by < flawless0714 > 自我檢查清單 你是否詳閱 手機裡頭的 ARM 處理器:系列講座 呢?請紀錄學習過程中遇到的問題 請解釋 AArch64 個別通用暫存器的作用,依據 Linux on AArch64 ARM 64-bit Architecture 的描述,搭配實際的程式碼說明。提示: 簡報第 19 頁附有參考資訊 回答
Sep 19, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up