摘要: 为什么要有slub 伙伴子系统是以4k * 2^order分配内存,往往驱动分配内存用不了4k,必然会有大量的内存碎片,为了解决这一个问题,提出了slub; slub能分配多大的内存?从slub中想分配多大就多大吗? 从slub中分配的内存大小是固定的,在kmem_cache_create中传入参数 阅读全文
posted @ 2024-12-31 00:05 _xingxing 阅读(40) 评论(0) 推荐(0)
摘要: ![](https://img2024.cnblogs.com/blog/3222919/202412/3222919-20241225005414258-678788566.png) ![](https://img2024.cnblogs.com/blog/3222919/202412/3222919-20241225005419535-1740190417.png) ![](https://i 阅读全文
posted @ 2024-12-25 00:54 _xingxing 阅读(13) 评论(0) 推荐(0)
摘要: 数据结构 初始化 tasklet_schedule tasklet_action {{uploading-image-512152.png(uploading...)}} 阅读全文
posted @ 2024-12-25 00:51 _xingxing 阅读(9) 评论(0) 推荐(0)
摘要: dup_task_struct sched_fork copy_mm copy_thread_tls 阅读全文
posted @ 2024-12-25 00:40 _xingxing 阅读(27) 评论(0) 推荐(0)
摘要: 为什么需要PELT? 之前CFS以每个运行队列为单位跟踪负载;存在几个问题: 一个运行队列存在很多个调度实体,所以无法存在当前的负载来源; 即使工作负载相对稳定的情况下,在rq级别跟踪负载,其值也会产生很大变化。(为什么?) 为了解决以上问题:提出了PETL算法,PELT算法跟踪每个调度实体; 如何 阅读全文
posted @ 2024-12-25 00:38 _xingxing 阅读(82) 评论(0) 推荐(0)
摘要: 预备处理 do_page_fault do_anonymous_page do_fault do_wp_page 阅读全文
posted @ 2024-12-25 00:34 _xingxing 阅读(13) 评论(0) 推荐(0)
摘要: ![](https://img2024.cnblogs.com/blog/3222919/202412/3222919-20241225003122915-2125961640.png) ![](https://img2024.cnblogs.com/blog/3222919/202412/3222919-20241225003114091-1085966016.png) 阅读全文
posted @ 2024-12-25 00:31 _xingxing 阅读(12) 评论(0) 推荐(0)
摘要: ![](https://img2024.cnblogs.com/blog/3222919/202412/3222919-20241225002946888-889999925.png) 阅读全文
posted @ 2024-12-25 00:30 _xingxing 阅读(28) 评论(0) 推荐(0)
摘要: 什么是tlb cache是对内存数据的缓存; tlb是对mmu地址转换结果的缓存; tlb基础知识 tlb entry主要包含:vpn->pfn,一些属性 采用组相连; tlb也分l1 tlb,l2 tlb; l1 tlb分指令tlb和数据tlb; l2 tlb是统一的tlb; tlb重名同名问题; 阅读全文
posted @ 2024-12-25 00:19 _xingxing 阅读(57) 评论(0) 推荐(0)
摘要: 基础知识 MMU包括TLB和页表遍历单元(TWU)两个部件; TLB:是一个高速缓存,用于缓存页表转换的结果; TWU:页表的维护是软件进行的(这个很好理解,虚拟地址映射到哪个物理地址放给用户去设置),但是具体页表的查询是硬件完成的,这个硬件单元就是TWU; mmu有两个职责: 第一个:虚拟地址到物 阅读全文
posted @ 2024-12-25 00:18 _xingxing 阅读(65) 评论(0) 推荐(0)