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

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

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

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

華為開(kāi)發(fā)者貢獻(xiàn)Linux內(nèi)核補(bǔ)丁,將核心內(nèi)核函數(shù)速度提升715倍

OSC開(kāi)源社區(qū) ? 來(lái)源:OSC開(kāi)源社區(qū) ? 作者:OSC開(kāi)源社區(qū) ? 2022-12-16 11:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux 6.2 近日合并了一個(gè)重要補(bǔ)丁,該補(bǔ)丁能夠?qū)⒁粋€(gè)核心內(nèi)核函數(shù)速度提升 715 倍。

3701515a-7ce2-11ed-8abf-dac502259ad0.png

從合并的注釋可知,貢獻(xiàn)此補(bǔ)丁的維護(hù)者 Zhen Lei 來(lái)自華為,他將 kallsyms_lookup_name () 的平均查找性能提高了 715 倍,從而使內(nèi)核里面舊實(shí)現(xiàn)的時(shí)間復(fù)雜度從 O (n) 升級(jí)到 O (log (n)),大幅減少查找時(shí)間,同時(shí)還保留了 /proc/kallsyms 上舊的實(shí)現(xiàn)支持。 kallsyms_lookup_name () 函數(shù)用于根據(jù)名稱查找符號(hào)的地址,并可用于查找內(nèi)核符號(hào)表中的任何符號(hào)。

371909bc-7ce2-11ed-8abf-dac502259ad0.png

Zhen Lei 曾在較早的補(bǔ)丁中描述了kallsyms_lookup_name () 的優(yōu)化思路:

目前,要搜索一個(gè)符號(hào),我們需要將 'kallsyms_names' 中的符號(hào)一個(gè)一個(gè)展開(kāi),然后使用展開(kāi)后的字符串進(jìn)行比較。這種算法的時(shí)間復(fù)雜度是 O (n)。

如果我們像地址一樣按升序?qū)γQ進(jìn)行排序,則可以使用二分查找。這種算法的時(shí)間復(fù)雜度是 O (log (n))。

為了不改變 “/proc/kallsyms” 的實(shí)現(xiàn),表 kallsyms_names [] 仍然按照升序與地址一一對(duì)應(yīng)存儲(chǔ)。

添加數(shù)組 kallsyms_seqs_of_names [],以排序后的 names 序號(hào)為索引,對(duì)應(yīng)的內(nèi)容為排序后的地址序號(hào)。例如:假設(shè) NameX 在數(shù)組 kallsyms_seqs_of_names [] 中的索引為 'i',kallsyms_seqs_of_names [i] 的內(nèi)容為 'k',則 NameX 對(duì)應(yīng)的地址為 kallsyms_addresses [k]。kallsyms_names [] 中的偏移量是 get_symbol_offset (k)。

請(qǐng)注意,使用此方法內(nèi)存使用量將增加 (4 * kallsyms_num_syms) 字節(jié),接下來(lái)的兩個(gè)補(bǔ)丁將減少 (1 * kallsyms_num_syms) 字節(jié)并正確處理 CONFIG_LTO_CLANG=y 的情況。

性能測(cè)試結(jié)果:(x86)

Before:

min=234, max=10364402, avg=5206926

min=267, max=11168517, avg=5207587

After:

min=1016, max=90894, avg=7272

min=1014, max=93470, avg=7293

kallsyms_lookup_name () 的平均查找性能提高了 715 倍。

因此,該補(bǔ)丁帶來(lái)的唯一缺點(diǎn)是將內(nèi)存占用量增加 3 * kallsyms_num_syms。 Linux 6.2 的模塊代碼還包含一個(gè)小的啟動(dòng)優(yōu)化,將啟動(dòng)時(shí)間縮短了大約 30 毫秒。 相關(guān)鏈接:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ba2c3ff98ea8bfb219288dbacf2a23a902c751b

審核編輯 :李倩

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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213837
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64897

原文標(biāo)題:華為開(kāi)發(fā)者貢獻(xiàn)Linux內(nèi)核補(bǔ)丁,將核心內(nèi)核函數(shù)速度提升715倍

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    華為正式啟動(dòng)HarmonyOS 6開(kāi)發(fā)者Beta

    在2025年華為開(kāi)發(fā)者大會(huì)(HDC)上,華為正式啟動(dòng)HarmonyOS 6開(kāi)發(fā)者Beta,并全面展示一年多以來(lái)與合作伙伴共建鴻蒙生態(tài)的創(chuàng)新成果。
    的頭像 發(fā)表于 06-24 15:42 ?339次閱讀

    如何配置和驗(yàn)證Linux內(nèi)核參數(shù)

    Linux系統(tǒng)運(yùn)維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要。合理的參數(shù)調(diào)整可以顯著提升網(wǎng)絡(luò)性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,僅僅修改參數(shù)是不夠的,如何驗(yàn)證這些參數(shù)是否生效同樣關(guān)鍵。
    的頭像 發(fā)表于 05-29 17:40 ?303次閱讀

    物聯(lián)網(wǎng)工程師為什么要學(xué)Linux

    Linux生態(tài)中已集成MQTT、TCP/IP、ZigBee等物聯(lián)網(wǎng)常用協(xié)議棧,開(kāi)發(fā)者可直接調(diào)用或移植,避免從零實(shí)現(xiàn)協(xié)議的復(fù)雜性。此外,龐大的開(kāi)源社區(qū)(如Contiki、RT-Thread)提供了豐富
    發(fā)表于 05-26 10:32

    Linux內(nèi)核編譯失敗?移動(dòng)硬盤和虛擬機(jī)的那些事兒

    Linux開(kāi)發(fā)中,編譯內(nèi)核是一項(xiàng)常見(jiàn)任務(wù),但不少開(kāi)發(fā)者在移動(dòng)硬盤或虛擬機(jī)環(huán)境下嘗試時(shí)會(huì)遭遇失敗。本文簡(jiǎn)要探討這些問(wèn)題的成因,并介紹一些虛擬
    的頭像 發(fā)表于 04-11 11:36 ?347次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>編譯失敗?移動(dòng)硬盤和虛擬機(jī)的那些事兒

    樹(shù)莓派4 性能大比拼:標(biāo)準(zhǔn)Linux與實(shí)時(shí)Linux 4.19內(nèi)核的延遲測(cè)試

    引言本文是對(duì)我之前關(guān)于RaspberryPi3同一主題的帖子的更新。與之前的帖子一樣,我使用的是隨Raspbian鏡像提供的標(biāo)準(zhǔn)內(nèi)核,以及應(yīng)用了RT補(bǔ)丁的相似內(nèi)核版本。對(duì)于實(shí)時(shí)版,我
    的頭像 發(fā)表于 03-25 09:39 ?344次閱讀
    樹(shù)莓派4 性能大比拼:標(biāo)準(zhǔn)<b class='flag-5'>Linux</b>與實(shí)時(shí)<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>內(nèi)核</b>的延遲測(cè)試

    云端AI開(kāi)發(fā)者工具的核心功能

    當(dāng)今,云端AI開(kāi)發(fā)者工具已成為推動(dòng)科技創(chuàng)新與行業(yè)升級(jí)的重要力量。那么,云端AI開(kāi)發(fā)者工具有哪些核心功能呢?下面,AI部落小編帶您深入探討。
    的頭像 發(fā)表于 02-28 11:46 ?481次閱讀

    《HarmonyOS第一課》煥新升級(jí),賦能開(kāi)發(fā)者快速掌握鴻蒙應(yīng)用開(kāi)發(fā)

    ,為職業(yè)發(fā)展增添有力籌碼。 目前,該課程成績(jī)斐然,學(xué)習(xí)人次已超過(guò)150萬(wàn),頁(yè)面訪問(wèn)量突破440萬(wàn),獲4.8分用戶好評(píng),超50萬(wàn)開(kāi)發(fā)者通過(guò)認(rèn)證考試。 未來(lái),華為持續(xù)豐富課程內(nèi)容,幫助開(kāi)發(fā)者
    發(fā)表于 01-02 14:24

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡(jiǎn)介

    所以每個(gè)模塊都有對(duì)應(yīng)的維護(hù)人員。維護(hù)人員的工作就是審核人們提交的代碼是否正確,如果沒(méi)有問(wèn)題,就會(huì)合并到主分支上。這樣就會(huì)使linux內(nèi)核不斷完善和更新。接下來(lái)就是芯片原廠例如恩智浦,開(kāi)發(fā)人員會(huì)不定期在
    發(fā)表于 12-13 09:03

    嵌入式工程師都在找的【Linux內(nèi)核調(diào)試技術(shù)】建議收藏!

    在嵌入式系統(tǒng)的開(kāi)發(fā)中,Linux內(nèi)核調(diào)試是一個(gè)至關(guān)重要的環(huán)節(jié)。 隨著處理器技術(shù)的不斷進(jìn)步和嵌入式領(lǐng)域的蓬勃發(fā)展,掌握有效的內(nèi)核調(diào)試技術(shù)成為了開(kāi)發(fā)者
    發(fā)表于 11-28 15:37

    HarmonyOS NEXT應(yīng)用元服務(wù)開(kāi)發(fā)Intents Kit(意圖框架服務(wù))事件推薦開(kāi)發(fā)者測(cè)試

    事件共享:開(kāi)發(fā)者登錄應(yīng)用即可獲取云側(cè)事件捐贈(zèng)的SID,然后觸發(fā)事件推送,事件內(nèi)容同步到華為云。 【舉例】某出行類APP接入意圖框架航班提醒的特性。用戶通過(guò)APP購(gòu)買了機(jī)票,觸發(fā)開(kāi)發(fā)者
    發(fā)表于 11-18 17:39

    技術(shù)洞見(jiàn)|RISC-V IOMMU 的 Scalable 提案 (GIPC) 及 Linux 技術(shù)路線

    2024年10月26日,第19屆中國(guó)Linux內(nèi)核開(kāi)發(fā)者大會(huì)(以下簡(jiǎn)稱CLK大會(huì))于湖北武漢成功舉辦,線上觀看人次超8萬(wàn)。來(lái)自全國(guó)各地的近400名內(nèi)核
    的頭像 發(fā)表于 11-13 01:03 ?1266次閱讀
    技術(shù)洞見(jiàn)|RISC-V IOMMU 的 Scalable 提案 (GIPC) 及 <b class='flag-5'>Linux</b> 技術(shù)路線

    deepin社區(qū)亮相第19屆中國(guó)Linux內(nèi)核開(kāi)發(fā)者大會(huì)

    中國(guó) Linux 內(nèi)核開(kāi)發(fā)者大會(huì),作為中國(guó) Linux 內(nèi)核領(lǐng)域最具影響力的峰會(huì)之一,一直以來(lái)都備受矚目。
    的頭像 發(fā)表于 10-29 16:35 ?932次閱讀

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    Linux系統(tǒng)中,驅(qū)動(dòng)程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們?cè)试S內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)對(duì)硬件設(shè)備的控制和管理。 驅(qū)動(dòng)程序的編寫(xiě) 驅(qū)動(dòng)程序的編寫(xiě)是Linux驅(qū)動(dòng)
    的頭像 發(fā)表于 08-30 15:02 ?1105次閱讀

    Linux內(nèi)核測(cè)試技術(shù)

    Linux 內(nèi)核Linux操作系統(tǒng)的核心部分,負(fù)責(zé)管理硬件資源和提供系統(tǒng)調(diào)用接口。隨著 Linux 內(nèi)
    的頭像 發(fā)表于 08-13 13:42 ?1313次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>測(cè)試技術(shù)

    Linux內(nèi)核中的頁(yè)面分配機(jī)制

    Linux內(nèi)核中是如何分配出頁(yè)面的,如果我們站在CPU的角度去看這個(gè)問(wèn)題,CPU能分配出來(lái)的頁(yè)面是以物理頁(yè)面為單位的。也就是我們計(jì)算機(jī)中常講的分頁(yè)機(jī)制。本文就看下Linux內(nèi)核是如何管
    的頭像 發(fā)表于 08-07 15:51 ?641次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>中的頁(yè)面分配機(jī)制