首页
›
Linux内核与驱动
›
140-内核驱动开发
›
《内核驱动内存管理:kmalloc与DMA缓冲区》
VIP10
本课程属于:140-内核驱动开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
内核驱动内存管理:kmalloc与DMA缓冲区
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
内存管理概述
Linux内核内存管理层次结构 · 物理内存与虚拟内存 · 内存分配器简介
内存管理概述
Linux
02
页分配器
alloc_pages与__get_… · 页分配标志GFP_KERNEL与GF…
页分配器
alloc
03
kmalloc基础
kmalloc函数原型 · 内存分配大小限制 · 从slab分配器分配内存
kmalloc
函数原型
04
kmalloc标志位
GFP_KERNEL · GFP_ATOMIC · GFP_DMA
kmalloc
标志位
05
kmalloc与kfree
内存分配与释放配对 · 内存泄漏检测 · kmemleak工具使用
kmalloc
kfree
06
slab分配器原理
slab · slub · slob三种分配器对比
slab
分配器原理
07
kmem_cache_create
创建专用slab缓存 · 分配与释放专用缓存对象
kmem
cache
08
vmalloc与kmalloc对比
vmalloc使用场景 · 虚拟地址连续性与物理地址连续性
vmalloc
kmalloc
09
内存碎片化
外部碎片与内部碎片 · 伙伴系统与slab如何缓解碎片
内存碎片化
外部碎片
10
DMA基础概念
DMA工作原理 · DMA控制器 · 总线主控与从属模式
DMA
基础概念
11
DMA缓冲区要求
物理地址连续性 · 对齐要求 · 不可缓存属性
DMA
缓冲区要求
12
GFP_DMA标志
从ZONE_DMA区域分配内存 · DMA区域大小与限制
GFP
DMA
13
dma_alloc_coherent
一致性DMA缓冲区分配 · 返回CPU虚拟地址与DMA总线地址
dma
alloc
14
dma_map_single与dma_unmap_single
流式DMA映射 · 同步操作与性能优化
dma
map
15
DMA池
dma_pool_create与dm… · 固定大小DMA缓冲区管理
DMA
pool
16
SG列表
scatterlist结构体 · dma_map_sg与dma_unm… · 分散/聚集DMA
SG
列表
17
DMA方向
DMA_TO_DEVICE · DMA_FROM_DEVICE · DMA_BIDIRECTIONAL
DMA
方向
18
DMA屏障
wmb/rmb/mb与dma_wmb… · 保证内存序
DMA
屏障
19
IOMMU与SMMU
IOMMU工作原理 · 设备地址翻译 · 绕过IOMMU的场景
IOMMU
SMMU
20
CMA(连续内存分配器)
CMA区域配置 · cma_alloc与cma_rele… · 与DMA结合
CMA
连续内存分配器
21
内存压力与回收
kswapd与OOM killer · 内存回收对DMA缓冲区的影响
内存压力
回收
22
内存池
mempool_create与mem… · 紧急备用内存机制
内存池
mempool
23
kmalloc与DMA结合实践
编写一个简单的字符设备驱动 · 使用kmalloc分配DMA缓冲区
kmalloc
DMA
24
DMA引擎API
dmaengine_slave_co… · dmaengine_prep_sla… · 异步DMA传输
DMA
API
25
调试DMA问题
使用dma-debug · 检查地址对齐 · 检测双重释放
DMA
调试
26
内存屏障与DMA一致性
一致性缓存与非一致性缓存 · cache coherency协议
DMA
内存屏障
27
大页内存与DMA
HugeTLB与透明大页 · 大页对DMA映射的影响
DMA
大页内存
28
设备树与DMA
设备树中dma-ranges · dma-coherent属性解析
DMA
设备树
29
性能优化
预分配DMA缓冲区 · 使用内存池减少分配开销 · 批量映射
性能优化
DMA
30
综合实战
编写一个完整的PCIe网卡驱动 · 实现kmalloc与DMA缓冲区管理
综合实战
PCIe
所属VIP或分类
同VIP:Linux内核驱动ioctl命令设计与控制通路
同VIP:Linux内核驱动开发:从字符设备到中断处理实战
同VIP:Linux内核驱动移植实战:从ARM到RISC-V