随笔分类 - Memory Management
摘要:1. 前言 前面文章介绍“Linux MMC framework”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct Memory Access)。因而,择日不如撞日,就开几篇文章介绍Linux的DMA Engine framework吧。 本文是DMA Engine fram
阅读全文
摘要:https://developer.arm.com/documentation/109242/0100/?lang=en
阅读全文
摘要:DMA(Direct Memory Access)的strict和non-strict模式是内存访问的两种不同方式,主要涉及数据一致性和性能之间的权衡。让我为您详细解释这两种模式的区别: Strict 模式(严格模式): 特性 Strict 模式 Non-Strict 模式 数据一致性 高 较低 性
阅读全文
摘要:概述 前两周有人询问DMA下的cache操作和dma-coherent。以前零碎看过代码。临时找,还没有找到。 这两天整理了调用流程,也找到了dma-coherent的用法。Linux的文档里没有详细说明dma-coherent的用法。根据代码,如果dma的设备树里有dma-coherent,Lin
阅读全文
摘要:名词缩写 ASID:Address Space ID 地址空间标识符 CD:Context Descriptor; 上下文描述符; CTP:Context-table pointer 上下文表指针 EPT:Extended Page Table 扩展页表 GPA:Guest Phyical Addr
阅读全文
摘要:balance_dirty_pages_ratelimited分析 nr_dirtied_pause:当前task的脏页门限; dirty_exceeded:全局的脏页数超过门限或者该bdi的脏页数超过门限;(dirty_exceeded = (bdi_dirty > bdi_thresh) &&(
阅读全文
摘要:流式 DMA(Streaming DMA)和一致性 DMA(Consistent DMA)是两种不同的内存映射模式,用于 DMA(直接内存访问)操作。它们的主要区别在于缓存一致性、性能和使用场景。以下是这两者的详细区别: 1. 流式 DMA(Streaming DMA) 缓存一致性: 流式 DMA
阅读全文
摘要:slabinfo - version: 2.1 # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdat
阅读全文
摘要:MemTotal: 688576 kB 总内存 MemFree: 153736 kB 空闲内存 MemAvailable: 339884 kB 可用内存 Buffers: 16 kB 给文件的缓冲大小 Cached: 267672 kB 高速缓冲存储器 SwapCached: 36 kB 被高速缓冲
阅读全文
摘要:kasan_multi_shot 是 Linux 内核配置选项之一,与 Kernel Address Sanitizer (KASAN) 相关。KASAN 是一种内核内存错误检测工具,能够检测内核代码中的各种内存错误,例如越界访问、使用未初始化的内存、双重释放等。 默认情况下,KASAN 在检测到内
阅读全文
摘要:要通过启动参数启用或配置 Kernel Address Sanitizer (KASAN) 并设置相关的行为,你可以在启动 Linux 内核时添加以下参数: 启用 KASAN:使用 kasan=1 来启用 KASAN。如果你的内核默认没有启用 KASAN,你需要这个参数。 kasan=1 控制 pa
阅读全文
摘要:最近碰到棘手的问题: 以太网进行iperf测试时, 发生了SMMU (System Memory Management Unit)访问异常导致内核崩溃. 原本只是内部测试发现, 后面在试验车上也概率性的出现. 问题发生的概率还不小. 很严重. 只能先从头把一些基本概念与流程梳理清楚. 好在最后还是找
阅读全文
摘要:ARM SMMU(System Memory Management Unit)是一种用于ARM架构的内存管理单元,它支持两阶段的地址转换机制,即Stage 1和Stage 2。这种机制允许操作系统和虚拟化环境中的hypervisor对内存访问进行更精细的控制。 Stage 1地址转换主要负责将虚拟地
阅读全文
摘要:在 ARM SMMU(System Memory Management Unit)中,Stream Table 是一个非常关键的数据结构,它用于管理和映射设备的内存访问请求。它的作用主要体现在以下几个方面: 1. 设备请求的流分类 - 在系统中,不同的外设可能通过 SMMU 发送内存访问请求。SMM
阅读全文
摘要:ARM SMMU (System Memory Management Unit) 和 IOMMU (Input-Output Memory Management Unit) 都是用于管理系统内存访问和保护的硬件模块,但它们有不同的功能和用途。 1. 功能与作用 - IOMMU:IOMMU 是一个通用
阅读全文
摘要:1.jvm 堆内存(dalvik 堆内存) 每个Java应用程序在运行时都会拥有自己的JVM实例,这个实例会为其分配独立的堆内存空间。这意味着不同的应用程序之间不会共享堆内存。 不同手机中app进程的 jvm 堆内存是不同的,因厂商在出厂设备时会自定义设置其峰值。比如,在Android Studio
阅读全文
摘要:1、运行需要检测内存泄露的程序 这里以“com.example.opengltest”程序为例。 2、点击Profiler按钮 3、点击SESIONS "+"号按钮选择设备,选择对应设备下的应用或进程 4、双击内存区块 5、操作应用程序要检测的部分或模块 6、关闭应用程序,多次点击鼠标右键“Forc
阅读全文
摘要:由于项目需求,笔者最近在一台 Linux 服务器上部署了 ElasticSearch 集群,却发现运行过程中经常出现查询速度突然降低的问题,登录服务器后发现是物理内存不足,导致机器频繁发生页面交换。由于只是临时内存需求,没有提升配置的必要,而 ElasticSearch 中存储的数据主要是文本数据,
阅读全文
摘要:ZRAM(压缩内存块设备)和传统的SWAP分区都是Linux系统中用来增加可用内存的方法,但它们的工作原理和实现方式有很大的区别: ZRAM 压缩内存:ZRAM使用压缩算法将数据存储在内存中。这样,当系统需要将数据写入swap空间时,它会首先将数据压缩,然后存储在RAM中。这意味着相同大小的物理内存
阅读全文
摘要:1.各种MMU MMU是memory manage unit 内存管理单元; SMMU是system memory manage unit 系统内存管理单元; IOMMU和SMMU的功能基本相同,只是不同厂商的叫法 2.各种MMU的使用场景 MMU是cpu和各种处理器对应的内存管理单元; SMMU/
阅读全文


浙公网安备 33010602011771号