![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acrn
文章平均质量分 82
_kerneler
这个作者很懒,什么都没留下…
展开
-
acrn guest 内存分析
然后BE会将这个地址从gpa转换成 SOS user space的hva,然后就直接去访问对应的地址来取数据了,相当于是一个shared memory based I/O virtualization,你说的case是要创建一种特殊的虚拟要彻底和SOS隔离,这种一般是直接起pre-launched VM,这种VM不需要让SOS取给它分配资源,而且hv直接分配好了就行了,也可以抠掉内存,像你说的,这样I/O虚拟化就没法搞了,或者搞一个特殊的page来做shared memory。原创 2024-04-03 13:19:47 · 1180 阅读 · 0 评论 -
Linux内核基础篇——神奇的系统请求键SysRq
按住SysRq复合键, 再输入第三个命令键, 可以执行相应的系统调试命令。如果内核都配置好了, 系统应该己经转换了内核的符号地址。系统请求键SysRq主要用来辅助调试和拯救系统,在系统宕机或者运行不正常的时候,通过系统请求键SysRq可以查询当前进程执行的状态,从而判断出错的进程和函数。Linux内核提供了一些与用户空间的通信机制,例如procfs接口和sysfs接口,大部分的这些接口都可以作为获取内核信息的手段。SysRq键是复合键【Alt+ SysRq】,大多数键盘的SysRq和PrtSc键是复用的。转载 2024-06-28 16:09:20 · 41 阅读 · 0 评论 -
PSTORE ramoops 在Linux x86_64 与 arm64上使用
接着需要将选择的物理地址段设置为保留地址,在 arch/x86/kernel/setup.c 中的 setup_arch() 函数中稍微前一些的位置中调用 memblock_reserve() 来声明保留内存;参考了 arch/x86/kernel/setup.c 中 reserve_crashkernel() 函数的实现,其保留内存的方式,其便是通过调用memblock_phys_alloc_range() 函数来实现的;在arm上,三种参数的配置方式都支持,只有设置指定预留内存的方式与x86有差异;转载 2024-06-28 16:07:14 · 25 阅读 · 0 评论 -
Linux内存管理:大页内存原理
当池中的页面不够时,则会通过系统分配大页填充池子,当池中的页面盈余(盈余的概念见我下面对surplus_huge_pages的注释)时,则会从池子中释放一部分的空闲页面。降低TLB miss的概率:拿普通的4KB页面和2MB的大页相比,都是使用一条页表项,能cover的内存大小却差了511倍,所以更多的使用大页能大大减少系统中页表项的数量,再加上TLB cache大小固定且有限,再再加上程序访问的地址的局部性原理,TLB miss的概率就下来了。若多于5个则释放多余的大页(前提是未被使用)。转载 2024-06-28 15:58:50 · 68 阅读 · 0 评论