SMP多核启动
在 Linux系統(tǒng)中,對(duì)于多核的ARM芯片而言,在Biotron代碼中,每個(gè)CPU都會(huì)識(shí)別自身ID,如果ID是0,則引導(dǎo)Bootloader和 Linux內(nèi)核執(zhí)行,如果ID不是0,則Biotron一般在上電時(shí)將自身置于WFI或者WFE狀態(tài),并等待CPU0給其發(fā)CPU核間中斷或事件(一般通過(guò)SEV指令)以喚醒它。一個(gè)典型的多核 Linux啟動(dòng)過(guò)程如圖20.6所示。
被CPU0喚醒的CPUn可以在運(yùn)行過(guò)程中進(jìn)行熱插拔,譬如運(yùn)行如下命令即可卸載CPU1,并且將CPUI上的任務(wù)全部遷移到其他CPU中:
# echo 0 > /sys/devices/system/cpu/cpu1/online同理,運(yùn)行如下命令可以再次啟動(dòng)CPU1:
# echo 1 > /sys/devices/system/cpu/cpu1/online之后CPU1會(huì)主動(dòng)參與系統(tǒng)中各個(gè)CPU之間的運(yùn)行任務(wù)的負(fù)載均衡工作;
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 菜鸟教程之Shell 脚本学习笔记(二)
- 下一篇: 命令行选项解析函数:getopt()