针对由EPT Violation引起的vm-exit分析其调用链(一直找到了分配页面的核心函数)

// linux v5.17.8vcpu_run()vcpu_enter_guest()static_call(kvm_x86_handle_exit)(vcpu, exit_fastpath);↓struct kvm_x86_ops{ ...int (*handle_exit)(struct kvm_vcpu *vcpu, enum exit_fastpath_completion exit_fastpath);...} // in /arch/x86/include/asm/kvm-x86-ops.h use marco KVM_X86_OP or KVM_X86_OP_NULL to generate static_call()// in /arch/x86/kvm/x86.c  #define KVM_X86_OP NULL KVM_X86_OP//     #define KVM_X86_OP(func)                                             \//         DEFINE_STATIC_CALL_NULL(kvm_x86_##func, *(((struct kvm_x86_ops *)0)->func));// function relocate in arch/x86/kvm/vmx/vmx.cstatic struct kvm_x86_ops vmx_x86_ops __initdata = {.name = "kvm_intel",....handle_exit = vmx_handle_exit,...                       |}                             |vmx_handle_exit() ← —— —— —— -__vmx_handle_exit()kvm_vmx_exit_handlers[exit_handler_index](vcpu)// table defined in /arch/x86/kvm/vmx/vmx.cstatic int (*kvm_vmx_exit_handlers[])(struct kvm_vcpu *vcpu) = { ...[EXIT_REASON_EPT_VIOLATION] = handle_ept_violation,          ...                                    |}                                          | /* exit caused by ept violation */                 |   handle_ept_violation() ← —— —— —— —— —— —— —— —— ——  kvm_mmu_page_fault()kvm_mmu_do_page_fault()kvm_tdp_page_fault()direct_page_fault()kvm_tdp_mmu_map()alloc_tdp_mmu_page()kvm_mmu_memory_cache_alloc()mmu_memory_cache_alloc_obj()__get_free_page()__get_free_pages()alloc_pages()alloc_pages_node()__alloc_pages_node()__alloc_pages()...

VM-EXIT(EPT Violation)调用链相关推荐

  1. Istio调用链埋点原理剖析—是否真的“零修改”分享实录

    戳蓝字"CSDN云计算"关注我们哦! 来自:容器魔方 作者: idouba 本文整理自华为Cloud BU技术专家在K8S技术社上 关于Istio调用链的分享. 前言 大家好,我是 ...

  2. 从驱动开发角度理解linux epoll调用链

    epoll是linux中一种处理高并发的事件查询机制,是在原有poll机制上的改进,相比原有的poll机制,epoll在处理/监控大量文件描述符时,拥有更好的性能. 网上能够找到大量关于Epoll的资 ...

  3. 带哨兵节点的链_限流降级神器-哨兵(sentinel)的资源调用链原理分析

    点击上方 Yoon丶徒手摘星 ,选择 置顶或者星标技术干货每日送达! 我们已经知道了sentinel实现限流降级的原理,其核心就是一堆Slot组成的调用链. 这里大概的介绍下每种Slot的功能职责:N ...

  4. Sentinel 原理:调用链

    我们已经知道了sentinel实现限流降级的原理,其核心就是一堆Slot组成的调用链. 这里大概的介绍下每种Slot的功能职责: NodeSelectorSlot 负责收集资源的路径,并将这些资源的调 ...

  5. 执行链java_java 方法调用链

    缘起 对所有的调用做入参拦截,为了更便于查阅,希望可以得到方法的签名( MethodSignature ). 一.AOP 此时,想获取拦截的方法名称较为简单. @Around("pointc ...

  6. Skywalking调用链监控系统 及 日志采集

    Skywalking做为生产级的调用链监控工具,不仅提供了丰富的监控系统,而且通过字节码拦截形式集成系统,对系统没有任何侵入性:最近研究一下调用链项目,在此与大家共享: github 地址  http ...

  7. request中的内容存储_宜信开源|调用链系列(3):解读UAVStack中的调用链技术...

    拓展阅读:宜信开源|调用链系列(1):解读UAVStack中的贪吃蛇 调用链系列(二):解读UAVStack中的贪吃蛇-调用链 在Java中,HTTP协议的请求/响应模型是由Servlet规范+Ser ...

  8. 2w字长文,让你瞬间拥有「调用链」开发经验

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 很多同学表示,对于微服务中常用的调用链功能的原理,感觉很模糊.本文 ...

  9. 调用链系列四:调用链上下文传递

    在之前的调用链系列文章中,我们已经对调用链进行了详细介绍,相信大家已经对调用链技术有了基本的了解. 其实,在调用链的绘制过程中,调用链上下文的传递非常值得关注.各个节点在获取上层上下文后生成新的上下文 ...

  10. Istio调用链埋点原理剖析—是否真的“零修改”?

    前言 在Istio的实践中最近经常被问到一个问题,使用Istio做调用链用户的业务代码是不是完全0侵入,到底要不要修改业务代码? 看官方介绍: Istio makes it easy to creat ...

最新文章

  1. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp
  2. Winrar目录穿越漏洞复现
  3. matlab组织的培训讲义,matlab培训讲义.doc
  4. Intent 简单用法
  5. Linux命令应用大词典-第25章 备份与还原
  6. java中未解决的编译问题_java – 我遇到了这个异常:未解决的编译问题
  7. python兼职程序员工资-Python 程序员的工资能有多高?
  8. win10 安装msys2 和 ruby
  9. ubuntu18.04配置ORB-SLAM3
  10. 用Excel制作甘特图跟踪项目进度(附绘制教程)
  11. 不会win10文件夹同步?教你两种方法
  12. 51单片机全自动锂电池容量电量检测放电电流电压ACS712 ADC0832
  13. Oracle 子查询优化思路
  14. 五步轻松搞定QGIS三维地形浏览
  15. 挂牌!迎来【济南网络空间安全山东省实验室】等三所实验室!
  16. html css视频播放器,jQuery和CSS 3定制HTML 5视频播放器
  17. 贝多芬第九交响曲,卡拉扬63年版,第四乐章演唱部分歌词文件
  18. 星际争霸2的AI环境搭建
  19. oracle的date_add,SQL Server 中add函数到 oracle date add的操作
  20. PS CS6打开一直卡在正在检查内存

热门文章

  1. 《康熙王朝》剧情分集介绍【全】
  2. 《信心——是什么?导致什么?》_司布真
  3. python 拟合分布_stats模型中数据的Poisson分布拟合
  4. 清风数学建模学习笔记——熵权法(客观赋权法)
  5. matlab怎么实现行随机网络,matlab生成随机行走网格 模拟材料生长 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  6. 卸载正在使用中的tcp_congestion_control模块
  7. 计算机桌面调音量的图标不见了,电脑声音图标不见了win7怎么办_win7电脑调音量的图标不见了如何找回-win7之家...
  8. npm -i 与npm install -s与-d的区别
  9. 安装了MyIM,试验后感觉还不错
  10. 基本知识 100048