色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

電源管理入門之CPU熱插拔詳解

yzcdx ? 來源: OS與AUTOSAR研究 ? 2023-10-16 15:28 ? 次閱讀

之前介紹了電源開機關機重啟,本小節開始介紹省電的技術,其中最暴力的省電方法就是直接拔核hotplug處理,就像需要10個人干活都要吃飯,但是現在活少了最節省的方法就是砍掉幾個人,有點像裁員啊。

1. 省電技術概覽

d5a5e454-68d4-11ee-939d-92fbcf53809c.png

?對于省電,我們短時間不使用設備的時候可以進行休眠喚醒,長時間不使用就直接關機了。在使用設備的時候可以按照當前需要的性能進行調頻處理就是CPUFreqDevFeq,當沒重度使用或者只運行系統必須進程的時候可以進行CPU休閑(CPUIdle)、CPU熱插拔(CPU Hotplug)、CPU隔離(Core Isolate)和動態PM(Runtime PM)。

CPUIdle指的是當某個CPU上沒有進程可調度的時候可以暫時局部關掉這個CPU的電源,從而達到省電的目的,當再有進程需要執行的時候再恢復電源。

CPU Hotplug指的是我們可以把某個CPU熱移除,然后系統就不會再往這個CPU上派任務了,這個CPU就可以放心地完全關閉電源了,當把這個CPU再熱插入之后,就對這個CPU恢復供電,這個CPU就可以正常執行任務了。

CPU隔離指的是我們把某個CPU隔離開來,系統不再把它作為進程調度的目標,這樣這個CPU就可以長久地進入Idle狀態了,達到省電的目的。不過CPU隔離并不是專門的省電機制,我們把CPU隔離之后還可以通過set_affinity把進程專門遷移到這個CPU上,這個CPU還會繼續運行。CPU隔離能達到一種介于CPUIdle和CPU熱插拔之間的效果。

Runtime PM指的是設備的動態電源管理,系統中存在很多設備,但是并不是每種設備都在一直使用,比如相機可能在大部分時間都不會使用,所以我們可以在大部分時間把相機的電源關閉,在需用相機的時候,再給相機供電

cpu hotplug和idle的區別?

hotplug是從硬件上拔掉核下電,idle只是從軟件上進行處理,也就是說調度器在idle時只是不去調用但是核還是可見的,hotplug直接沒這個核了,軟件完全不可見。

?省電管理可以達到省電的目的,但是也會降低系統的性能,包括響應延遲、帶寬、吞吐量等。所以內核又提供了一個PM QoS框架,QoS是Quality Of Service(服務質量)。PM QoS框架一面向顧客提供接口,顧客可以通過這些接口對系統的性能提出要求,一面向各種省電機制下發要求,省電機制在省電的同時也要滿足這些性能要求。PM QoS的顧客包括內核和進程:對于內核,PM QoS提供了接口函數可以直接調用;對于進程,PM QoS提供了一些設備文件可以讓用戶空間進行讀寫。PM QoS對某一項性能指標的要求叫做一個約束,約束分為系統級約束和設備級約束。系統級約束針對的是整個系統的性能要求,設備級約束針對的是某個設備的性能要求。

整體上電源管理也是策略和機制分離的,例如:

hotplug是一個機制,誰去用?可以用戶App制定的策略、溫控策略、系統suspend時需要等。

CPUFreq是策略和機制都包含的。

2. 熱插拔代碼介紹

cpu的狀態包括:possible、present、online、active。

possible狀態的cpu:可理解為存在這個CPU資源,但還沒有納入Kernel的管理范圍。

present狀態的cpu:表示已經被kernel接管。

online狀態的cpu:表示可以被調度器使用。

active狀態的cpu:表示可以被遷移migrate

?Linux內核在初始的時候,會創建虛擬總線cpu_subsys,每個cpu調用register_cpu注冊時,都會將cpu設備掛在這個總線下。cpu的拔插是通過操作文件節點online實現的,具體拔插操作如下(以cpu1為例):

echo0>/sys/devices/system/cpu/cpu1/online//拔核操作
echo1>/sys/devices/system/cpu/cpu1/online//插核操作

為什么以cpu1為例?

Linux CPU熱插拔,支持在系統啟動后,關閉任意一個secondary cpu(在ARM架構中,CPU0為boot cpu,不能被關閉),并在需要時重新打開它。

當操作/sys/devices/system/cpu/cpu1/online文件的時候,會執行drivers/base/core.c中online_store()函數

staticssize_tonline_store(structdevice*dev,structdevice_attribute*attr,
constchar*buf,size_tcount
)
{
boolval;
intret;

ret=strtobool(buf,&val);
if(ret

?這塊有一個sysfs的知識點,就是DEVICE_ATTR_RW(online);聲明了這個宏,就可以在文件系統里面為這個設備熟悉添加一個文件,當向這個文件寫入字符串的時候就會調用拼接出來的online_store()函數,讀這個文件的時候就會調用online_show()函數

#define__ATTR(_name,_mode,_show,_store){
.attr={.name=__stringify(_name),
.mode=VERIFY_OCTAL_PERMISSIONS(_mode)},
.show=_show,
.store=_store,
}

#define__ATTR_RW(_name)__ATTR(_name,0644,_name##_show,_name##_store)

#defineDEVICE_ATTR_RW(_name)
structdevice_attributedev_attr_##_name=__ATTR_RW(_name)

在online_store()函數中,拔核就執行device_offline(dev)函數
device_offline中dev->bus->offline(dev);
drivers/base/cpu.c中

structbus_typecpu_subsys={
.name="cpu",
.dev_name="cpu",
.match=cpu_subsys_match,
#ifdefCONFIG_HOTPLUG_CPU
.online=cpu_subsys_online,
.offline=cpu_subsys_offline,
#endif
};
cpu_device_down
cpu_down
cpu_down_maps_locked
_cpu_down
cpuhp_down_callbacks
takedown_cpu
[CPUHP_TEARDOWN_CPU]={
.name="cpu:teardown",
.startup.single=NULL,
.teardown.single=takedown_cpu,
.cant_stop=true,
},

do_idle狀態機會調用

arch_cpu_idle_dead
cpu_die
cpu_die
psci_cpu_die
psci_ops.cpu_off
psci_0_2_cpu_off

?psci_0_2_cpu_off會調用__psci_cpu_off(PSCI_0_2_FN_CPU_OFF, state);最終發送smc指令給ATF,上面的cpu down流程匯總如下圖:

d5e20ede-68d4-11ee-939d-92fbcf53809c.png

cpu up流程:

d5f98a1e-68d4-11ee-939d-92fbcf53809c.png

具體代碼自己加log,或者打斷點看好些。

3. ATF中處理

之前在電源管理入門-1關機重啟詳解中介紹的PSCI協議部分,這里會發送smc指令到ATF。在ATF中同理,會處理這些PSCI協議,這里不詳細介紹了。

后記

?本篇文章嘗試用markdown進行編寫,圖片用Midjourney生成,感覺效果還可以,之前每篇文章的排版很費時間。markdown可以只保留最小的一些格式,把注意力關注到文章內容本身,提高效率才能多寫一些文章進行更新。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源管理
    +關注

    關注

    115

    文章

    6177

    瀏覽量

    144450
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211587
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209334
  • 熱插拔
    +關注

    關注

    2

    文章

    224

    瀏覽量

    37316

原文標題:電源管理入門-3 CPU熱插拔hotplug

文章出處:【微信號:OS與AUTOSAR研究,微信公眾號:OS與AUTOSAR研究】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高精度熱插拔電源監控

    本內容提供了高精度熱插拔電源監控,介紹什么是熱插拔和利用熱插拔進行的設計方案及電源監控知識。
    發表于 11-04 10:00 ?1670次閱讀
    高精度<b class='flag-5'>熱插拔</b>和<b class='flag-5'>電源</b>監控

    熱插拔是什么?熱插拔有哪些特點?

    什么是熱插拔熱插拔(hot-plugging或Hot Swap)即帶電插拔熱插拔功能就是允許用戶在不關閉系統,不切斷電源的情況下取出和更
    發表于 12-13 10:53

    即插即用和熱插拔的區別

    的用戶接口。我們知道,在普通電腦里,USB(通用串行總線)接口設備和IEEE 1394接口設備等都可以實現熱插拔,而在服務器里可實現熱插拔的部件主要有硬盤、CPU、內存、電源、風扇、P
    發表于 10-23 10:26

    關于非隔離dcdc電源模塊的熱插拔問題詳解

    `解答:熱插拔瞬間會產生一個尖峰電壓,對dcdc電源模塊本身有一定的沖擊作用,熱插拔不會直接導致產品的失效,但長期熱插拔會損傷模塊本身,因此我司模塊都禁止
    發表于 07-03 13:44

    熱插拔冗余電源的設計

    熱插拔冗余電源的設計資料分享來自網絡
    發表于 03-19 22:28

    有關熱插拔電源的各種問題

    熱插拔表示一個系統在輸入端、輸出端和信號總線都處于工作狀態的情況下,安裝或拆卸電源模塊的能力。熱插拔冗余電源系統增加了系統的容錯程度,這對于要求緊急停機的系
    發表于 10-04 21:32 ?53次下載

    有關熱插拔電源的各種問題

    有關熱插拔電源的各種問題熱插拔表示一個系統在輸入端、輸出端和信號總線都處于工作狀態的情況下,安裝或拆卸電源模塊的能力。
    發表于 10-11 18:26 ?4798次閱讀

    熱插拔

    熱插拔              熱插拔(hot-plugging或Hot Swap)功能就是允許用戶在不關閉系統,不切斷電源
    發表于 12-17 11:41 ?630次閱讀

    ±48V熱插拔應用tps23xx熱插拔控制器

    摘要 通信和網絡系統的快速發展加速了要求連續不斷的電源需求的系統所需的熱插拔能力的產品的增長。目前市面上有許多熱插拔熱插拔電源
    發表于 07-03 09:42 ?24次下載
    ±48V<b class='flag-5'>熱插拔</b>應用tps23xx<b class='flag-5'>熱插拔</b>控制器

    熱插拔和非熱插拔的區別

    熱插拔和非熱插拔的區別? 熱插拔和非熱插拔是指電子設備或組件在工作狀態下是否可以進行插拔操作的一種分類。
    的頭像 發表于 12-28 10:01 ?2957次閱讀

    鍵盤熱插拔和非熱插拔的區別

    電源供應、軟件驅動、使用便利性、設備損壞與安全性、推動產業發展等。 1. 連接方式 熱插拔鍵盤通常使用USB或無線連接方式,插入即可立即生效。非熱插拔鍵盤一般使用PS/2接口連接,插入后需要重啟計算機才能使用。 2.
    的頭像 發表于 02-02 17:34 ?1w次閱讀

    熱插拔電源接口定義是什么

    熱插拔電源接口定義主要涉及以下幾個方面: 定義 熱插拔(Hot Swap 或 Hot Plugging)即帶電插拔,指的是在不關閉系統電源
    的頭像 發表于 09-18 10:56 ?836次閱讀

    熱插拔電源和冗余電源哪個好

    熱插拔電源和冗余電源各有其優勢和適用場景,無法簡單地判斷哪個更好,而是需要根據具體的應用需求和環境來選擇。 熱插拔電源的優勢 方便維護 :
    的頭像 發表于 09-18 10:58 ?297次閱讀

    熱插拔電源是什么意思

    熱插拔電源,即帶電插拔電源,指的是在不關閉系統電源的情況下,能夠安全地將電源模塊、板卡等硬件設備
    的頭像 發表于 09-18 11:00 ?571次閱讀

    PCIe熱插拔機制介紹

    。 為了防止意外的發生,PCIe Spec設計了一種“No Surprise”熱插拔機制,即,當用戶要插拔PCIe設備時,必須先通知系統軟件做好準備,然后通過指示燈告知用戶熱插拔的狀態。 二、原理
    的頭像 發表于 11-20 09:07 ?343次閱讀
    PCIe<b class='flag-5'>熱插拔</b>機制介紹
    主站蜘蛛池模板: 办公室激情在线观看| 做i爱视频30分钟免费| 真人女人无遮挡内谢免费视频%| 97无码欧美熟妇人妻蜜| 国产高清视频在线观看不卡v| 九九热在线视频观看这里只有精品| 男人就爱吃这套下载| 天天拍拍国产在线视频| 中文在线观看免费网站| 国产成人精品视频| 久久亚洲网站| 偷拍 拍自 欧美色区| 2021精品乱码多人收藏| 国产精品爽黄69天堂A片| 曼谷av女郎| 午夜伦理yy44008影院| 97色伦久久视频在观看| 国产亚洲一区二区三区啪| 欧美大片免费观看| 亚洲人成网站在线播放| 成年人在线免费观看视频网站| 久久99国产精品一区二区| 日日啪无需播放器| 259luxu高跟黑色丝袜系列| 国产啪视频在线播放观看| 牛牛在线1视频| 艳鉧动漫1~6全集观看在线| 纯肉高H放荡受BL文库| 鲁一鲁亚洲无线码| 亚洲高清无在码在线无弹窗| yin乱教师系列合集| 久久久性色精品国产免费观看| 天天看高清影视在线18| eussse手机电影在线观看| 久久久精品久久| 亚瑟天堂久久一区二区影院| 扒开小处30p| 蜜桃色欲AV久久无码精品| 亚洲日本欧美产综合在线| 国产精品www视频免费看| 7723手机游戏破解版下载|