当前位置: 首页 > 专利查询>北京大学专利>正文

一种Linux内核优化处理方法、装置、存储介质及电子装置制造方法及图纸

技术编号:39327713 阅读:12 留言:0更新日期:2023-11-12 16:05
本申请实施例提供了一种Linux内核优化处理方法、装置、存储介质及电子装置,该方法包括:根据用户配置表生成精细优化配置表;对内核源码进行针对性插桩,运行目标程序,得到内核反馈信息;根据该精细优化配置表和该内核反馈信息,对该内核源码进行优化处理,得到优化版内核,可以解决相关技术中内核源码优化的作用对象粒度较粗,无法充分发挥现代编译器的编译优化能力,且无法灵活地控制编译优化的范围的问题,采用编译器插件自动化完成优化过程,可以自由地控制Linux内核反馈式优化的作用范围,在不修改应用程序的基础上,额外提高应用程序的运行性能。程序的运行性能。程序的运行性能。

【技术实现步骤摘要】
一种Linux内核优化处理方法、装置、存储介质及电子装置


[0001]本申请实施例涉及软件领域,具体而言,涉及一种Linux内核优化处理方法、装置、存储介质及电子装置。

技术介绍

[0002]在很多软件性能要求高的工业场景,一个Linux操作系统通常只运行特定的应用程序。如果能根据应用程序针对性优化操作系统内核,就能在不修改应用程序的基础上,进一步提升应用程序的运行性能。目前常见的Linux内核优化方法是反馈式编译优化,但整个内核源码共享同一套编译优化参数,优化的作用对象粒度较粗,无法充分发挥现代编译器的编译优化能力。同时,用户无法便捷地指定内核源码中的某些模块、文件甚至函数不参与优化,无法灵活地控制编译优化的范围。
[0003]针对相关技术中内核源码优化的作用对象粒度较粗,无法充分发挥现代编译器的编译优化能力,且无法灵活地控制编译优化的范围的问题,尚未提出解决方案。

技术实现思路

[0004]本申请实施例提供了一种Linux内核优化处理方法、装置、存储介质及电子装置,以至少解决相关技术中内核源码优化的作用对象粒度较粗,无法充分发挥现代编译器的编译优化能力,且无法灵活地控制编译优化的范围的问题。
[0005]根据本申请的一个实施例,提供了一种Linux内核优化处理方法,所述方法包括:
[0006]根据用户配置表生成精细优化配置表;
[0007]对内核源码进行针对性插桩,运行目标程序,得到内核反馈信息;
[0008]根据所述精细优化配置表和所述内核反馈信息,对所述内核源码进行优化处理,得到优化版内核。
[0009]在一实施例中,根据所述精细优化配置表和所述内核反馈信息,对内核源码进行优化处理,得到优化版内核包括:
[0010]根据所述内核反馈信息生成优化参数组合;
[0011]根据所述精细优化配置表和所述优化参数组合对内核的模块、文件或函数进行优化处理。
[0012]在一实施例中,根据所述精细优化配置表和所述优化参数组合对内核的模块、文件或函数进行优化处理包括:
[0013]读取所述精细优化配置表,确定所述内核源码的优化范围;
[0014]如果优化级别为模块,所述优化范围的最小单位为模块,应用所述优化参数组合对所述精细优化配置表中内核模块包含的所有C/C++文件进行优化处理;
[0015]如果优化级别为文件,所述优化范围的最小单位为文件,应用所述优化参数组合对所述精细优化配置表中所有C/C++文件进行优化处理;
[0016]如果优化级别为函数,所述优化范围的最小单位为函数,应用所述优化参数组合
对所述精细优化配置表中所有C/C++文件参与优化的函数进行优化处理。
[0017]在一实施例中,应用所述优化参数组合对所述精细优化配置表中内核模块包含的所有C/C++文件进行优化处理包括:对不参与优化的模块所包含的C/C++文件不进行插桩与优化,除所述不参与优化的模块之外的其余模块所包含的C/C++文件进行插桩并优化;
[0018]应用所述优化参数组合对所述精细优化配置表中所有C/C++文件进行优化处理包括:对不参与优化的C/C++文件不进行插桩与优化,除所述不参与优化的C/C++文件之外的其余C/C++文件进行插桩并优化;
[0019]应用所述优化参数组合对所述精细优化配置表中所有C/C++文件参与优化的函数进行优化处理包括:对所述不参与优化的C/C++文件与参与优化的C/C++文件不参与优化的函数不进行插桩与优化,除所述不参与优化的C/C++文件的函数与所述参与优化的文件不参与优化的函数之外的其余函数进行插桩并优化。
[0020]在一实施例中,根据所述用户配置表生成所述精细优化配置表包括:
[0021]采样内核热点信息时,遍历所有热点函数对应的顶层目录的所有C/C++文件,根据所述内核热点信息与所述用户配置表生成所述精细优化配置表;
[0022]当不采样所述内核热点信息时,遍历所述内核源码的所有C/C++文件,根据用户配置表生成所述精细优化配置表。
[0023]在一实施例中,根据所述内核热点信息与所述用户配置表生成所述精细优化配置表包括:
[0024]运行目标程序,使用热点采样工具得到所述内核热点信息;
[0025]根据优化级别提取所述用户配置表的信息,剔除掉不参与优化的C/C++文件,针对每一个参与优化的C/C++文件,记录不参与优化的函数,形成所述精细优化配置表。
[0026]在一实施例中,对所述内核源码进行针对性插桩,运行所述目标程序,得到所述内核反馈信息包括:
[0027]移植或新建数据流插桩代码到所述内核源码中,并适配内核的函数和数据接口;
[0028]对控制流插桩信息和数据流插桩信息进行合并,得到所述内核反馈信息。
[0029]在一实施例中,在对所述内核源码进行针对性插桩,运行所述目标程序,得到所述内核反馈信息之后,所述方法还包括:
[0030]通过调用DebugFS接口,将所述内核反馈信息写入到内核反馈信息文件中。
[0031]根据本申请的另一个实施例,还提供了一种Linux内核优化处理装置,所述装置包括:
[0032]生成模块,用于根据用户配置表生成精细优化配置表;
[0033]插桩模块,用于对内核源码进行针对性插桩,运行目标程序,得到内核反馈信息;
[0034]优化模块,用于根据所述精细优化配置表和所述内核反馈信息,对所述内核源码进行优化处理,得到优化版内核。
[0035]在一实施例中,所述优化模块包括:
[0036]生成子模块,用于根据所述内核反馈信息生成优化参数组合;
[0037]优化子模块,用于根据所述精细优化配置表和所述优化参数组合对内核的模块、文件或函数进行优化处理。
[0038]在一实施例中,所述优化子模块包括:
[0039]确定单元,用于读取所述精细优化配置表,确定所述内核源码的优化范围;
[0040]第一优化单元,用于如果优化级别为模块,所述优化范围的最小单位为模块,应用所述优化参数组合对所述精细优化配置表中内核模块包含的所有C/C++文件进行优化处理;
[0041]第二优化单元,用于如果优化级别为文件,所述优化范围的最小单位为文件,应用所述优化参数组合对所述精细优化配置表中所有C/C++文件进行优化处理;
[0042]第三优化单元,用于如果优化级别为函数,所述优化范围的最小单位为函数,应用所述优化参数组合对所述精细优化配置表中所有C/C++文件参与优化的函数进行优化处理。
[0043]在一实施例中,所述第一优化单元,还用于对不参与优化的模块所包含的C/C++文件不进行插桩与优化,除所述不参与优化的模块之外的其余模块所包含的C/C++文件进行插桩并优化;
[0044]所述第二优化单元,还用于对不参与优化的C/C++文件不进行插桩与优化,除所述不参与优化的C/C++文件之外的其余本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Linux内核优化处理方法,其特征在于,所述方法包括:根据用户配置表生成精细优化配置表;对内核源码进行针对性插桩,运行目标程序,得到内核反馈信息;根据所述精细优化配置表和所述内核反馈信息,对所述内核源码进行优化处理,得到优化版内核。2.根据权利要求1所述的方法,其特征在于,根据所述精细优化配置表和所述内核反馈信息,对内核源码进行优化处理,得到优化版内核包括:根据所述内核反馈信息生成优化参数组合;根据所述精细优化配置表和所述优化参数组合对内核的模块、文件或函数进行优化处理。3.根据权利要求2所述的方法,其特征在于,根据所述精细优化配置表和所述优化参数组合对内核的模块、文件或函数进行优化处理包括:读取所述精细优化配置表,确定所述内核源码的优化范围;如果优化级别为模块,所述优化范围的最小单位为模块,应用所述优化参数组合对所述精细优化配置表中内核模块包含的所有C/C++文件进行优化处理;如果优化级别为文件,所述优化范围的最小单位为文件,应用所述优化参数组合对所述精细优化配置表中所有C/C++文件进行优化处理;如果优化级别为函数,所述优化范围的最小单位为函数,应用所述优化参数组合对所述精细优化配置表中所有C/C++文件参与优化的函数进行优化处理。4.根据权利要求3所述的方法,其特征在于,应用所述优化参数组合对所述精细优化配置表中内核模块包含的所有C/C++文件进行优化处理包括:对不参与优化的模块所包含的C/C++文件不进行插桩与优化,除所述不参与优化的模块之外的其余模块所包含的C/C++文件进行插桩并优化;应用所述优化参数组合对所述精细优化配置表中所有C/C++文件进行优化处理包括:对不参与优化的C/C++文件不进行插桩与优化,除所述不参与优化的C/C++文件之外的其余C/C++文件进行插桩并优化;应用所述优化参数组合对所述精细优化配置表中所有C/C++文件参与优化的函数进行优化处理包括:对所述不参与优化的C/C++文件与参与优化的C/C++文件不参与优化的函数不进行插桩与优化,除所述不参与优化的C/C++文件的函数与所述参与优...

【专利技术属性】
技术研发人员:贺洪军曹继承叶明李禄财程圣宇郭耀王远鹏陈向群
申请(专利权)人:北京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1