一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

內核hotplug回調線程喚醒

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-05 15:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

hotplug回調線程喚醒

內核使用以下流程喚醒特定cpu的hotplug線程,用于執(zhí)行實際的cpu啟動流程:
圖片
由于cpu啟動時需要與一系列模塊交互以執(zhí)行相應的準備工作,為此內核為其定義了一組hotplug狀態(tài),用于表示cpu在啟動或關閉時分別需要執(zhí)行的流程。以下為個階段狀態(tài)定義示例(由于該數(shù)組較長,故只截了一小段):

static struct cpuhp_step cpuhp_hp_states[] = {
	[CPUHP_OFFLINE] = {
		.name			= "offline",
		.startup.single		= NULL,
		.teardown.single	= NULL,
	},
	…
	[CPUHP_BRINGUP_CPU] = {
		.name			= "cpu:bringup",
		.startup.single		= bringup_cpu,
		.teardown.single	= finish_cpu,
		.cant_stop		= true,
		}
…
	[CPUHP_ONLINE] = {
		.name			= "online",
		.startup.single		= NULL,
		.teardown.single	= NULL,
	},
}

以上每個階段都可包含startup.single和teardown.single兩個回調函數(shù),分別表示cpu啟動和關閉時需要執(zhí)行的流程。其中在cpu啟動時,將會從CPUHP_OFFLINE狀態(tài)開始,依次執(zhí)行各個階段的startup.single回調函數(shù)。其中CPUHP_BRINGUP_CPU及之前的階段都在secondary cpu啟動之前執(zhí)行。

而CPUHP_BRINGUP_CPU階段的回調函數(shù)bringup_cpu,會實際觸發(fā)secondary cpu的啟動流程。它將通過cpu_ops接口調用spin-table函數(shù),啟動secondary cpu,并等待其啟動完成。

當secondary cpu啟動完成后,將喚醒hotplug線程,其將繼續(xù)執(zhí)行CPUHP_BRINGUP_CPU之后階段相關的回調函數(shù)。

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

    關注

    3

    文章

    1416

    瀏覽量

    41398
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11074

    瀏覽量

    216938
  • SMP
    SMP
    +關注

    關注

    0

    文章

    78

    瀏覽量

    20273
  • 線程
    +關注

    關注

    0

    文章

    508

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙內核源碼Task/線程技術分析

    前言 在鴻蒙內核中,廣義上可理解為一個Task就是一個線程 一、怎么理解Task 1. 官方文檔是怎么描述線程 基本概念 從系統(tǒng)的角度看,線程是競爭系統(tǒng)資源的最小運行單元。
    的頭像 發(fā)表于 10-18 10:42 ?2560次閱讀
    鴻蒙<b class='flag-5'>內核</b>源碼Task/<b class='flag-5'>線程</b>技術分析

    MYSQL在UNIX上建立線程調函數(shù)

    有新的連接到來,然后調用線程調函數(shù)建立新的線程來處理這個新的accpet的socket通道(還會判斷是否有空閑的線程隊列而不需要新建立新的
    發(fā)表于 08-05 07:55

    rt-thread的信號調函數(shù)對內核有何影響呢

    信號的到達,事實上,線程也不知道信號到底什么時候到達。線程之間可以互相通過調用 rt_thread_kill 發(fā)送信號。以上畫線部分是我特意要大家注意的,我們要看待中斷調函數(shù)那樣,看
    發(fā)表于 03-16 10:14

    詳解java 調機制

    代碼示例 接下來看一下調的代碼示例,代碼模擬的是這樣一種場景:老師問學生問題,學生思考完畢回答老師。 首先定義一個調接口,只有一個方法tellAnswer(int answer),
    發(fā)表于 09-28 13:14 ?0次下載

    LabWindows/CVI 程序 調函數(shù)設計

    調函數(shù)是系統(tǒng)框架設計中非常重要的一種手段,所謂調函數(shù)(callback )是指一個通過函數(shù)指針調用的函數(shù)。
    發(fā)表于 05-03 16:54 ?1.2w次閱讀
    LabWindows/CVI 程序 <b class='flag-5'>回</b><b class='flag-5'>調</b>函數(shù)設計

    調函數(shù)的詳細資料說明

    異步事件的處理,首先將異步事件發(fā)生時需要執(zhí)行的代碼編寫成一個函數(shù),并將該函數(shù)注冊成為調函數(shù),這樣當該異步事件發(fā)生時,系統(tǒng)會自動調用事先注冊好的調函數(shù)。
    發(fā)表于 02-28 08:00 ?6次下載
    <b class='flag-5'>回</b><b class='flag-5'>調</b>函數(shù)的詳細資料說明

    C語言函數(shù)的調函數(shù)

    來源:嵌入式客棧 1 什么是調函數(shù)?首先什么是調呢? 我的理解是:把一段可執(zhí)行的代碼像參數(shù)傳遞那樣傳給其他代碼,而這段代碼會在某個時刻被調用執(zhí)行,這就叫做回
    的頭像 發(fā)表于 09-11 09:57 ?4423次閱讀

    深入淺析Linux內核內核線程(上)

    本文力求與完整介紹完內核線程的整個生命周期,如內核線程的創(chuàng)建、調度等等,當然本文還是主要從內存管理和進程調度兩個維度來解析,且不會涉及到具體的內核
    的頭像 發(fā)表于 04-28 16:26 ?2305次閱讀
    深入淺析Linux<b class='flag-5'>內核</b>之<b class='flag-5'>內核</b><b class='flag-5'>線程</b>(上)

    Alluxio線程池結構與吞吐量調優(yōu)

    本文介紹了 Alluxio Master 的線程池結構與每個線程的功能。在調優(yōu)過程中,利用分析結果調整審計日志的 blocking queue,調整 UFS-SYNC-PREFETCH 線程
    發(fā)表于 11-11 11:36 ?779次閱讀

    根據(jù)調機制注冊事件并處理調VI

    通過事件調注冊函數(shù)(Register Event Callback)注冊一個調VI,在事件發(fā)生時會運行該回調VI,通常用于注冊和處理.N
    的頭像 發(fā)表于 11-24 09:15 ?2916次閱讀

    函數(shù)指針和調函數(shù)的使用方法

    了解開發(fā)語言的朋友應該都會對調函數(shù)有所了解,在很多的程序開發(fā)語言中都能看到調的身影。很多場景下,當某個條件成立以后我們希望代碼執(zhí)行某些指定的部分,這個時候可以考慮使用回
    的頭像 發(fā)表于 04-10 15:08 ?1440次閱讀

    線程事務的滾是怎么結合進去的?

    某一線程在開始運行前等待n個線程執(zhí)行完畢。 將CountDownLatch的計數(shù)器初始化為new CountDownLatch(n),每當一個任務線程執(zhí)行完畢,就將計數(shù)器減1 countdownLatch.countDown()
    發(fā)表于 05-08 11:01 ?605次閱讀
    多<b class='flag-5'>線程</b>事務的<b class='flag-5'>回</b>滾是怎么結合進去的?

    C語言|調函數(shù)的不同用法

    調函數(shù)是個高級操作技巧,也是日常項目中常常使用到的技能。之所以說調函數(shù)是個高級操作技巧,是因為它讓異步操作更加方便,眾所周知程序執(zhí)行分為同步操作和異步操作,同步操作故名思意就是按代
    發(fā)表于 07-10 10:34 ?1551次閱讀

    labview中事件調的使用

    介紹LabVIEW中事件調的使用方法,可以用于處理執(zhí)行時間較長的異步事件
    的頭像 發(fā)表于 08-24 16:38 ?6203次閱讀
    labview中事件<b class='flag-5'>回</b><b class='flag-5'>調</b>的使用

    調函數(shù)(callback)是什么?調函數(shù)的實現(xiàn)方法

    調函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個函數(shù),并在被調用函數(shù)執(zhí)行完畢后被調用。調函數(shù)通常用于事件處理、異步編程和處理各種操作系統(tǒng)和框架的API。
    發(fā)表于 03-12 11:46 ?3968次閱讀