• 2024-06-11linux内存管理(二)- vmalloc
    个人笔记,谨慎观看.先看看vmalloc是怎么实现的。它能在非连续物理内存之上建立连续的虚拟内存映射。这里有一篇博客Linux内存管理(6)vmalloc-ArnoldLu-博客园(cnblogs.com)调用链vmalloc->_vmalloc_node->_vmalloc_node_rangevoid*__vmalloc_node(unsignedlongsize,
  • 2024-03-19C++ kmalloc、kzalloc、vmalloc的区别
    1.kmalloc函数原型:void*kmalloc(size_tsize,gfp_tflags);kmalloc()申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因为存在较简单的转换关系,所以对申请的内存大小有限制,不能超过128KB。较常用的flags(分配内存的方法):G
  • 2023-11-09/proc/vmalloc
    root@pita2_mr813_tina35:/#cat/proc/vmallocinfo0xffffff80007d0000-0xffffff80009020001253376load_module+0x854/0x1d48pages=305vmalloc0xffffff8000957000-0xffffff800095a00012288load_module+0x854/0x1d48pages=2vmalloc0xffffff800095d000-0xffffff800
  • 2023-10-11vmalloc(一)
    vmalloc(一)昨天同事遇到了vmalloc的问题,今天就抽时间看一下vmalloc的实现
  • 2023-10-08内核态内存的正确使用方法
    前言看完了伙伴系统的设计、slab分配器的设计、vmalloc、kmalloc这些内容对于内存管理的一些细节上好像比较清楚了,但是内核是如何使用内存的还是有一些混淆。也产生了一些疑问,在内核中内存的正确打开方式是什么呢?内核地址空间划分首先我们需要搞情况内核的地址空间,不同地址空间
  • 2023-09-24crash —— 获取vmalloc分配信息
    crash>kmem-vVMAP_AREAVM_STRUCTADDRESSRANGESIZEffff88debf51c900ffff88debf53bd00ffffc90000000000-ffffc900000020008192ffff88debf51cf60ffff88debf53bd40ffffc90000002000-ffffc90000004000
  • 2023-07-19linux 内存管理 --- kmalloc 和 vmalloc
    kmallockmalloc会根据申请的内存大小来决定来决定使用块分配器(slab/slub/slob)或页分配器进行内存分配(buddy),只能分配几个固定大小的内存,申请值不在这些固定值之内时,会按向上对齐的原则,分配最接近申请值的内存块。static__always_inlinevoid*kmalloc(size_tsize,gfp_tfl