原创 /proc/buddyinfo

在應用程序設計過程中,內存是很重要的資源,而計算機主機的內存資源時有限的。一般而言我們可以申請到的內存是有限的,並不是想申請多大就有多大就可以申請多大的。/proc/buddyinfo文件裏,就記錄着系統的內存資源。 linux內核中使用了

原创 linux內核 快速分片,技術|Linux slabtop命令——顯示內核片緩存信息

Linux內核需要爲臨時對象如任務或者設備結構和節點分配內存,緩存分配器管理着這些類型對象的緩存。現代Linux內核部署了該緩存分配器以持有緩存,稱之爲片。不同類型的片緩存由片分配器維護。本文集中討論slabtop命令,該命令顯示了實時內核

原创 kmemleak 和kasan 的區別

kmemleak 和kasan 都是 Linux 內核中的一些工具和特性,用於幫助進行內存錯誤檢測和修復。然而,它們之間有一些區別: 功能:kmemleak 用於檢測內核中未釋放的內存泄漏,它可以跟蹤內核中分配的內存塊,並在系統運行時檢查未

原创 CPU緩存僞共享

CPU緩存什麼東西?當然這個問題很多人有可能覺得比較傻,CPU緩存什麼,肯定是緩存數據(代碼)啊,要不然還能緩存啥,這個確實沒問題,但是CPU到底緩存什麼樣的數據呢?因爲對CPU來說,無論是指令,還是數據,都是數據,他如果要緩存,緩存的單位

原创 AMBA總線架構簡介

於是乎,我們想到了總線,用一個統一的接口協議,設計出一個符合要求的總線,然後將ARM核和各種外設模塊掛載在總線上,這樣,命令和數據似乎便可以在CPU和外設之間自由穿梭。 1 AMBA總線 AMBA,英文全稱爲Advanced Microco

原创 AMBA總線協議(一)——一文看懂APB總線協議

0.AMBA總線概括 AMBA(Advanced Microcontroller Bus Architecture) 總線是由ARM公司提出的一種開放性的片上總線標準,它獨立於處理器和工藝技術,具有高速度低功耗等特點。 系統芯片中各個模塊之

原创 【ARMv8基礎篇】CCI-400控制器簡介

CCI(Cache Coherent Interconnect)是ARM中的cache一致性控制器。 CCI-400將互連和一致性功能結合到一個模塊中。它支持多達兩個ACE 主節點的連接,例如: Cortex®-A7 processor

原创 七張圖看懂 Linux profiling 機制

1 圖 1 Linux profiling 手段一覽 軟件埋點: 手動埋點:主動調用 trace 函數來實現埋點。 Android systrace 即是這樣一個例子,如圖 2 和 圖 3 所示 自動埋點:藉助工具鏈,自動埋點,對函

原创 ftrace在應用上的使用

之前介紹通過命令行配置和使用ftrace功能,但是實際中,我們也會希望抓C/C++程序中某段代碼的調度情況。筆者前不久就遇到這種問題,某個函數調用時延概率超過100ms,是爲什麼?這時候就需要在他們代碼中使能ftrace抓執行此函數時候,任

原创 linux kernel 中tracing buffer

Linux內核的tracing buffer是一種用於存儲內核跟蹤數據的特殊緩衝區。它用於記錄內核中發生的事件和活動,以幫助開發人員進行性能分析和故障排查。該緩衝區可以在內核運行時啓用,並且可以通過特定的跟蹤工具和API進行訪問和分析。跟蹤

原创 linux中backport printk和front printk的區別

在Linux內核中,"backport printk"和"front printk"都是用於記錄內核消息和調試信息的機制,但它們的工作方式和使用場景有一些區別。 "backport printk"是一種在內核中記錄消息和調試信息的機制,可以

原创 用 kGDB 調試 Linux 內核

1 簡介 這個文檔記錄了用 kGDB 調試 Linux 內核的全過程,都是在前人工作基礎上的一些總結。以下操作都是基於特定板子來進行,但是大部分都能應用於其他平臺。 要使用 KGDB 來調試內核,首先需要修改 config 配置文件,打開相

原创 如何快速定位 Linux Panic 出錯的代碼行

問題描述 內核調試中最常見的一個問題是:內核Panic後,如何快速定位到出錯的代碼行? 就是這樣一個常見的問題,面試過的大部分同學都未能很好地回答,這裏希望能夠做很徹底地解答。 問題分析 內核Panic時,一般會打印回調,並打印出當

原创 Fio工具詳解【強大的IO性能壓測工具】

Fio壓測工具操作 fio -name=iouring_test -filename=/mnt/vdd/testfile -iodepth=128 -thread -rw=randread -ioengine=io_uring -sqthr

原创 qemu的使用

一、QEMU的運行模式 直接摘抄自己《揭祕家用路由器0day漏洞挖掘技術》,網上查了一下也沒有找到令人滿意的QEMU的使用說明,就採用這本書上的介紹。如果後期能夠找到比較滿意的QEMU的使用方法的說明,再添加上來。 QEMU模擬器主要有兩