当前位置: 首页 > news >正文

linux服务器slab缓存回收方案设计

背景

自己写的回收slab内存ko,insmod报错“shrink_slab:unknown symbol _x86_indirect_thunk_rax(err 0)””;

分析

1.名词解释

在 x86 架构中,函数调用通常使用 call 指令来直接跳转到目标函数的地址。但是,当需要通过函数指针或动态链接调用函数时,就需要使用__x86_indirect_thunk_rax间接跳转。

__x86_indirect_thunk_rax 是一个汇编代码符号,用于在间接跳转时提供一个中间层。它的作用是将函数指针加载到 rax 寄存器中,并通过 jmp rax 指令间接跳转到目标函数的地址。

这个符号通常由编译器生成,并在链接过程中用于解决函数调用的间接跳转。如果你在编译或链接过程中遇到与 __x86_indirect_thunk_rax 相关的错误,可能是由于编译器或链接器配置不正确导致的。

2.定位原因

shrink_slab.ko源码

static int __init shrink_slab_init(void)
{
    unsigned long (*shrink_slab)(struct shrink_control *shrink,
                          unsigned long nr_pages_scanned,
                          unsigned long lru_pages);
    struct shrink_control shrink = {
        .gfp_mask = G

http://www.lryc.cn/news/168668.html

相关文章:

  • Apache Spark 的基本概念
  • 通讯协议介绍CoAP 协议解析
  • React 开发一个移动端项目(2)
  • 51单片机 点阵矩阵 坤坤代码
  • Android13-图片视频选择器
  • 【问题处理】GIT合并解决冲突后,导致其他人代码遗失的排查
  • H264视频压缩格式
  • 动态的中秋爱心演示送女友用python生成爱心软件文末附c++语言写法
  • macOS - 使用VLC
  • java微服务项目整合skywalking链路追踪框架
  • pandas 笔记: interpolate
  • 应用程序接口(API)安全的入门指南
  • JavaWeb概念视频笔记
  • 网络请求【小程序】
  • python 调用adb shell
  • vue3 使用 vite 构建的项目打包后无法访问
  • C语言指针详解(4)———找工作必看指针笔试题汇总
  • 03MyBatis-Plus中的常用注解
  • Android 修复在 Settings 首页,按键盘方向键逐个单选
  • SpringMvc第六战-【SpringMvcJSON返回异常处理机制】
  • idea-Tabnine
  • 联通面试题
  • [计组03]进程详解2
  • 使用redis+lua通过原子减解决超卖问题【示例】
  • WebFlux异常处理:onErrorReturn和onErrorResume
  • 《动手学深度学习 Pytorch版》 4.5 权重衰减
  • 数据脱敏的风险量化评估介绍
  • SpringCloudGateway网关实战(三)
  • 08在MyBatis-Plus中配置多数据源
  • Centos8安装docker并配置Kali Linux图形化界面