SMP多核啓動

在 Linux系統中,對於多核的ARM芯片而言,在Biotron代碼中,每個CPU都會識別自身ID,如果ID是0,則引導Bootloader和 Linux內核執行,如果ID不是0,則Biotron一般在上電時將自身置於WFI或者WFE狀態,並等待CPU0給其發CPU核間中斷或事件(一般通過SEV指令)以喚醒它。一個典型的多核 Linux啓動過程如圖20.6所示。

被CPU0喚醒的CPUn可以在運行過程中進行熱插拔,譬如運行如下命令即可卸載CPU1,並且將CPUI上的任務全部遷移到其他CPU中:

# echo 0 > /sys/devices/system/cpu/cpu1/online

同理,運行如下命令可以再次啓動CPU1:

# echo 1 > /sys/devices/system/cpu/cpu1/online

之後CPU1會主動參與系統中各個CPU之間的運行任務的負載均衡工作;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章