在模块加载的时候会调用module_alloc,从这个函数中可以看到,如果没有使能CONFIG_ARM64_MODULE_PLTS。
模块只能使用128M的MODULES_VSIZE,如果是能了CONFIG_ARM64_MODULE_PLTS 且没有使能CONFIG_KASAN 的时候
在128M 不够用的时候,将模块申请的size的范围拓展到2Gvoid *module_alloc(unsigned long size)
{u64 module_alloc_end = module_alloc_base + MODULES_VSIZE;gfp_t gfp_mask = GFP_KERNEL;void *p;/* Silence the initial allocation */if (IS_ENABLED(CONFIG_ARM64_MODULE_PLTS))gfp_mask |= __GFP_NOWARN;if (IS_ENABLED(CONFIG_KASAN))/* don't exceed the static module region - see below */module_alloc_end = MODULES_END;p = __vmalloc_node_range(size, MODULE_ALIGN, module_alloc_base,module_alloc_end, gfp_mask, PAGE_KERNEL, 0,NUMA_NO_NODE, __builtin_return_address(0));if (!p && IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) &&!IS_ENABLED(CONFIG_KASAN))/** KASAN can only deal with module allocations being served* from the reserved module region, since the remainder of* the vmalloc region is already backed by zero shadow pages,* and punching holes into it is non-trivial. Since the module* region is not randomized when KASAN is enabled, it is even* less likely that the module region gets exhausted, so we* can simply omit this fallback in that case.*/p = __vmalloc_node_range(size, MODULE_ALIGN, module_alloc_base,module_alloc_base + SZ_2G, GFP_KERNEL,PAGE_KERNEL, 0, NUMA_NO_NODE,__builtin_return_address(0));if (p && (kasan_module_alloc(p, size) < 0)) {vfree(p);return NULL;}return p;
}

CONFIG_ARM64_MODULE_PLTS 的作用相关推荐

  1. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  2. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  3. 【B/S实践】解决:vs中修改样式表后不起作用的问题

    缓存,有好多,cpu和内存之间的三级缓存,浏览器内的缓存! 缓存是因为速率不对等,通过缓存来加速内容的显示! 今天我在敲牛腩的时候遇到一个问题,找了半小时,才发现是缓存导致的问题! 试着运行aspx文 ...

  4. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  5. 机器学习——标准化/归一化的目的、作用和场景

    对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间.这样做有两个好处: 模型训练更高效. 特征前的权重大小可代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同). (一)归一化的作用 ...

  6. Linux操作系统下文件作用

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...

  7. python sys.argv[] 的作用

    sys.argv[]是什么 argv 是sys库里面的所以使用的 需要先引入sys (使用import sys) sys.argv[]的作用 从程序外获取参数,怎样理解呢,例如在终端中运行test脚本 ...

  8. C++ namespace 的作用以及使用

    namespace 是什么: 命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中.标准C++库(不包括标准C库)中所包含的 ...

  9. Android Environment 的作用以及常用的方法

    从源码中可以看到这样一句话 Provides access to environment variables Environment的作用是:  提供对环境变量的访问 常见的方法 //外部存储设备的当 ...

  10. RecyclerView Adapter中notifyDataSetChanged 的作用

    一直认为notifyDataSetChanged  是 用来刷新数据的 当数据发生变化的时候调用notifyDataSetChanged 官方说:通知任何注册的观察者数据发生了改变(Notify an ...

最新文章

  1. 旷视MegEngine核心技术升级
  2. SAP MM采购定价过程的一个简单例子
  3. 【caffe解读】 caffe从数学公式到代码实现4-认识caffe自带的7大loss
  4. Pytho正则表达式-match
  5. bios设置 联想m8000t_怎么进bios设置硬盘启动顺序
  6. 贝索斯前妻再捐2.81亿美元
  7. 03 unix 设计哲学和流重定向
  8. ascii码为0的字符_2.4 序列之字符串
  9. 给MM修电脑的三个步骤
  10. 网卡重启影响nfs吗_nfs常见问题解决办法
  11. Ubuntu设置截图快捷键
  12. Java 生成水印图片
  13. 计算机或可编程控制器,浅谈可编程控制器的应用
  14. C++与UMG的交互
  15. Hadoop详解(七)——Hive的原理和安装配置和UDF,flume的安装和配置以及简单使用,flume+hive+Hadoop进行日志处理
  16. vue-qq 实践(一)
  17. 当幸福来敲门 经典语录
  18. 互联网+废品回收小程序,废品回收小程序,废品回收小程序平台,蚂蚁废收小程序
  19. Git与远程仓库进行关联设置
  20. linux根据端口限速,Linux 中限制网络带宽使用trickle或wondershaper

热门文章

  1. 射频芯片,最全介绍!
  2. DVWA搭建中遇到的无法连接数据库问题及处理
  3. 安装中文版MSDN方法
  4. QMUI框架简介,android开发游戏
  5. Tapestry5的基础知识
  6. Nginx + Lua搭建文件上传下载服务(转载腾讯云大神)
  7. 《Java开发实战经典》习题第4章第10题:在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置
  8. 深入浅出统计学-第三章
  9. Chrome浏览器安装扩展程序后菜单栏图标不显示
  10. 二叉树遍历,求叶结点,重构