原创 AMD GPU任務調度(3) —— fence機制

文章目錄硬件基礎command formatend-of-pipe event軟件基礎問題dma-fenceamdgpu-fencedma_fence_opsamdgpu_fence_driverAPIamdgpu_fence_d

原创 qemu內存遷移格式

文章目錄前言內存鏡像格式libvirt元數據qemu內存數據遷移模型數據結構總體佈局標記遷移開始section分析configuration sectionstart sectionpart sectionend sectionf

原创 VirtIO實現原理——PCI基礎

文章目錄PCI配置空間通用配置空間virtio配置空間virtio通用配置空間virtio磁盤配置空間VirtIO-PCI初始化PCI初始化枚舉配置加載virtio-pci驅動PCI總線的註冊PCI驅動的註冊PCI設備的match

原创 VirtIO-GPU —— 2D加速原理分析

文章目錄前言數據結構命令傳遞virtio_gpu_ctrl_commandvirtio_gpu_ctrl_hdr圖像處理virtio_gpu_simple_resourcevirtio_gpu_scanoutGPU設備流程分析後端

原创 VirtIO實現原理——數據傳輸演示

文章目錄初始化示意圖代碼分析Guest第一次添加buffer示意圖代碼分析Notify HostHost第一次處理buffer示意圖代碼分析Guest第二次添加bufferHost第二次處理buffer 初始化 示意圖 假設Ho

原创 KVM中斷注入機制

文章目錄前言中斷信號處理路徑IOAPIC遞交中斷IOAPIC簡介物理位置原理簡介KVM模擬IOAPIC中斷流程處理LAPIC處理LAPIC簡介物理位置工作流程優先級寄存器KVM模擬LAPIC中斷處理流程Make RequestKi

原创 內存虛擬化硬件基礎——EPT

文章目錄前言EPT轉換開關EPT轉換時機EPT轉換原理EPT頁結構EPT地址轉換 前言 EPT(Extended Page Table)是Intel爲實現內存虛擬化專門增加的硬件特性。 實現內存虛擬化,主要解決的問題是,當CPU

原创 qemu中的eventfd——用法與原理

文章目錄eventfd用法demo分析eventfd內核實現創建eventfd系統調用eventfd_ctx讀eventfd寫eventfd eventfd可以用於線程或者父子進程間通信,內核通過eventfd也可以向用戶空間進程

原创 兩類風格彙編語法對比

文章目錄前言彙編(Assembly)1.表達式註釋立即數寄存器引用段寄存器引用指定操作數長度標號定義取標號處的值取標號處的地址2.數學指令比較指令邏輯右移3.數據傳輸mov指令格式4.執行流控制相對跳轉絕對跳轉跳轉到標號處長跳轉5

原创 qemu內存管理——樹狀視圖

文章目錄前言MemoryRegion數據結構分類MR實例AddressSpace數據結構AdressSpace初始化AdressSpace Listener初始化 前言 qemu模擬虛機內存,核心是維護虛機物理地址空間。這個地址

原创 深入理解qemu事件循環 —— 基本框架

文章系列: 深入理解qemu事件循環 —— 基本框架 深入理解qemu事件循環 ——下半部 文章目錄Glib 事件循環簡述事件循環狀態機demo定製事件源,回調函數定製事件源,回調函數和狀態機回調函數QEMU事件循環事件循環初始化

原创 VirtIO實現原理——vring數據結構

文章目錄Queststruct vring_descstruct vring_availstruct vring_usedstruct vringstruct virtqueuestruct vring_virtqueueHost

原创 qemu設備遷移

文章目錄前言設備狀態遷移新增字段刪除字段示意圖引入的問題數據結構設備狀態VMState舉例發送設備狀態接收設備狀態 前言 qemu內存遷移主要遷移兩類信息,虛機內存和設備狀態。 對於虛機內存,qemu並不知道其具體內容,但它知道

原创 AMD GPU任務調度(1)—— 用戶態分析

文章目錄硬件基礎命令發送模式Ring BufferBuffer Type數據結構agmdgpu驅動關係圖drm_radeon_cs_chunkAMDGPU_CHUNK_ID_IBAMDGPU_CHUNK_ID_FENCEamdgp

原创 AMD GPU任務調度(2)—— 內核態分析

文章目錄簡介GPU調度示意圖數據結構組織圖CS管理數據結構amdgpu_cs_chunkamdgpu_cs_parseramdgpu_ibGPU調度數據結構drm_sched_jobamdgpu_jobdrm_sched_enti