91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么說內(nèi)核線程放入SCHED_FIFO的做法毫無意義?

lhl545545 ? 來源:Linuxer ? 作者:Linuxer ? 2020-06-09 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景Linux會把進程分為普通進程和實時進程,普通進程采用CFS之類調(diào)度算法,而實時進程則是采用SCHED_FIFO或SCHED_RR。無論優(yōu)先級高低,實時進程都會優(yōu)先于SCHED_NORMAL中的所有進程先執(zhí)行,因為后者里面都是普通的非實時進程。

具體可以參看Linux閱碼場早期文章: 宋寶華:關(guān)于Linux進程優(yōu)先級數(shù)字混亂的徹底澄清

內(nèi)核線程的優(yōu)先級Linux內(nèi)核會將大量(并且在不斷增加中)工作放置在內(nèi)核線程中,這些線程是在內(nèi)核地址空間中運行的特殊進程。大多數(shù)內(nèi)核線程運行在SCHED_NORMAL類中,必須與普通用戶空間進程爭奪CPU時間。但是有一些內(nèi)核線程它的開發(fā)者們認為它們非常特殊,應(yīng)該比用戶空間進程要有更高優(yōu)先級。因此也會把這些內(nèi)核線程放到SCHED_FIFO中去。

那么問題來了,某個內(nèi)核線程的實時優(yōu)先級到底該設(shè)為多少呢?

要回答這個問題,不僅需要判斷這個線程相對于所有其他實時線程是否更加重要,還要跟用戶態(tài)的實時進程比較誰更重要。這是一個很難回答的問題,更何況在不同的系統(tǒng)和工作模式下這個答案很有可能還會各不相同。所以一般來說,內(nèi)核開發(fā)人員也就是看心情直接隨便選一個實時優(yōu)先級。

現(xiàn)在的一些內(nèi)核實時線程如下:

最近大神Peter Zijlstra又看到有內(nèi)核開發(fā)者隨便給內(nèi)核線程設(shè)置優(yōu)先級,終于看不下去了, 指責(zé)這種把內(nèi)核線程放入SCHED_FIFO的做法毫無意義:

“the kernel has no clue what actual priority it should use for various things, so it is useless (or worse, counter productive) to even try”

所以他發(fā)了一個系列[PATCH 00/23] sched: Remove FIFO priorities from modules 把設(shè)置內(nèi)核線程優(yōu)先級的接口干脆都給刪了,省得再有人瞎搞。

這個系列Patch(點擊閱讀原文可直達)主要做了下面幾件事情:

刪除了原有的sched_setschedule() / sched_setattr() 接口

增加了

sched_set_fifo(p)

sched_set_fifo_low(p)

sched_set_normal(p, nice)

其中調(diào)用sched_set_fifo()會將指定進程放到SCHED_FIFO類中,其優(yōu)先級為50——這只是min和max之間的一半位置。

對于需求不那么迫切的線程,sched_set_fifo_low()將優(yōu)先級設(shè)置為最低值(1)。

而調(diào)用sched_set_normal()會將線程返回給定好的值SCHED_NORMAL類。

通過只留下這三個接口可以避免開發(fā)者們再不停地去隨機選取內(nèi)核線程優(yōu)先級,因為這樣本來毫無意義,當(dāng)然如果需要的話系統(tǒng)管理員還是可以按需調(diào)整不同進/線程的優(yōu)先級。

到目前為止,這個系列Patch已經(jīng)有不少得到Reviewed-by,相信如果合入后,內(nèi)核線程混亂的優(yōu)先級狀況會得到持續(xù)改善。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1468

    瀏覽量

    42891
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11764

    瀏覽量

    219096
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    內(nèi)核配置項引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    在嵌入式系統(tǒng)開發(fā)中,內(nèi)核配置對系統(tǒng)性能起著關(guān)鍵作用。近期在對基于 Rockchip 平臺的 Linux 內(nèi)核配置調(diào)試時,發(fā)現(xiàn)三個內(nèi)核跟蹤器配置項(CONFIG_IRQSOFF_TRACER
    的頭像 發(fā)表于 02-01 16:48 ?1686次閱讀
    <b class='flag-5'>內(nèi)核</b>配置項引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】RTOS(Real-Time Operating System,實時操作系統(tǒng))《線程》個人理解及項目實現(xiàn)

    獨立的執(zhí)行流,擁有自己的棧、優(yōu)先級、入口函數(shù),由內(nèi)核調(diào)度器管理 調(diào)度器(Scheduler) 決定哪個線程在何時運行,通?;趦?yōu)先級或時間片輪轉(zhuǎn) 上下文切換(Context Switch) 從一個線程
    發(fā)表于 01-14 11:50

    DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉(zhuǎn)實時控制方案

    轉(zhuǎn))、0-(-10000)(反轉(zhuǎn))的加減速循環(huán)運行,同步打印通訊周期極值。文檔包含 CPU 核心隔離、驅(qū)動安裝、空載 / 滿負荷測試等關(guān)鍵步驟,程序采用 SCHED_FIFO 調(diào)度策略保障實時性。通過
    的頭像 發(fā)表于 01-04 15:40 ?1907次閱讀
    DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉(zhuǎn)實時控制方案

    三防漆哪種好?別再問了!記住這個選型邏輯,比品牌更重要

    “三防漆哪種好?”——這是電子工程師、采購和制造從業(yè)者最高頻的問題之一。但坦白說,這是一個“偽命題”。就像問“車哪種好?”一樣,沒有前提條件,答案毫無意義。沒有最好的三防漆,只有最適合您產(chǎn)品應(yīng)用
    的頭像 發(fā)表于 12-23 17:41 ?604次閱讀
    三防漆哪種好?別再問了!記住這個選型邏輯,比品牌更重要

    UPS電源價格/報價全解析:告別迷茫,一文讀懂預(yù)算該怎么花

    讓人陷入選擇迷茫。事實上,專業(yè)UPS電源的價格并非一個孤立的數(shù)字,而是一套由技術(shù)等級、功率大小、后備時間、品牌服務(wù)共同構(gòu)成的精密體系。簡單比價毫無意義,關(guān)鍵在于搞
    的頭像 發(fā)表于 12-15 08:29 ?610次閱讀
    UPS電源價格/報價全解析:告別迷茫,一文讀懂預(yù)算該怎么花

    Linux-RT特點及簡單應(yīng)用

    屬性 pthread_attr_t attr; pthread_attr_init( attr); // 設(shè)置線程調(diào)度策略為SCHED_FIFO,并設(shè)置優(yōu)先級
    發(fā)表于 12-05 07:37

    【飛凌OK153-S開發(fā)板評測】系統(tǒng)實時性及codesys測試

    , -t:創(chuàng)建4個SCHED_FIFO實時線程 -p:線程的優(yōu)先級80 -a:綁定線程到指定的cpu,0,1...n stress-ng命令可以用于給CPU、DDR、Flash加壓。
    發(fā)表于 11-28 14:00

    【飛凌OK-T153 開發(fā)板試用】實時性測試

    對吞吐考慮,實測時我們可以采用實時內(nèi)核以獲取更準確性能指標,測試方法一樣 隔離核 專事專辦 為了更準確獲得實際應(yīng)用場景的中斷時延,必需充分評估實際應(yīng)用的負載程度,失去這個前提測出來的數(shù)據(jù)將毫無意義
    發(fā)表于 11-22 05:29

    創(chuàng)龍 瑞芯微 RK3588 國產(chǎn)2.4GHz八核 工業(yè)開發(fā)板—IgH?EtherCAT主站開發(fā)案例(下)

    本文圍繞創(chuàng)龍科技研發(fā)的 TL3588-EVM 評估板,介紹 IgH EtherCAT 主站開發(fā)案例,含 IgH EtherCAT 簡介、案例測試(電機正反轉(zhuǎn),SCHED_FIFO
    的頭像 發(fā)表于 10-15 15:06 ?638次閱讀
    創(chuàng)龍 瑞芯微 RK3588 國產(chǎn)2.4GHz八核 工業(yè)開發(fā)板—IgH?EtherCAT主站開發(fā)案例(下)

    創(chuàng)龍 瑞芯微 RK3588 國產(chǎn)2.4GHz八核 工業(yè)開發(fā)板—IgH?EtherCAT主站開發(fā)案例(上)

    本文圍繞創(chuàng)龍科技研發(fā)的 TL3588-EVM 評估板,介紹 IgH EtherCAT 主站開發(fā)案例,含 IgH EtherCAT 簡介、案例測試(電機正反轉(zhuǎn),SCHED_FIFO
    的頭像 發(fā)表于 10-14 11:55 ?645次閱讀
    創(chuàng)龍 瑞芯微 RK3588 國產(chǎn)2.4GHz八核 工業(yè)開發(fā)板—IgH?EtherCAT主站開發(fā)案例(上)

    線程超時函數(shù)中 assert 失敗是什么原因?qū)е碌?

    最近調(diào)試 gd32h759 遇到了一個十分奇怪的問題,在初步調(diào)通所有的邏輯功能后,發(fā)現(xiàn)系統(tǒng)經(jīng)常會在運行一段時間后死在一個奇怪的線程超時函數(shù)中 assert 失敗導(dǎo)致卡死。用 cmbacktrace
    發(fā)表于 09-09 06:56

    分辨率 vs 噪聲 —— ADC的挑戰(zhàn)

    信號上的噪聲幅度 > LSB,則 LSB 分辨的不是“信號”,而是“噪聲”! 如果系統(tǒng)本底噪聲是 100 μV,那么這個 76 μV LSB 就毫無意義;此時所謂“高分辨率”變成了“偽分辨率”或“無效
    的頭像 發(fā)表于 06-23 07:38 ?1947次閱讀
    分辨率 vs 噪聲 —— ADC的挑戰(zhàn)

    大牛多年研發(fā)電源問題匯總(受益匪淺)

    鉆牛角尖,做技術(shù)切記鉆牛角尖,那你能談?wù)劄槭裁雌毡殡娫床还ぷ髟?.5HZ,這個才有意義,你做出1.5HZ的電源純屬毫無意義的事情) 提醒:做技術(shù)人員切記鉆牛角尖,咱們不是校園研究派,是需要將理論
    發(fā)表于 06-04 17:54

    求助,關(guān)于CAN接收問題求解

    。 有些消息總是發(fā)送,有些則不發(fā)送。我不知道是什么導(dǎo)致了這個問題,但看起來有些塊沒有在應(yīng)該執(zhí)行的時候執(zhí)行。 我對 Simulink 設(shè)置不是很熟悉。我嘗試將 RX 子系統(tǒng)設(shè)置為原子(可能毫無意義),但
    發(fā)表于 04-01 06:27

    AXI接口FIFO簡介

    AXI接口FIFO是從Native接口FIFO派生而來的。AXI內(nèi)存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應(yīng)用外,AXI FIFO
    的頭像 發(fā)表于 03-17 10:31 ?2149次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡介