华为开发者贡献Linux内核补丁,将核心内核函数速度提升715倍
Linux 6.2 近日合并了一个重要补丁,该补丁能够将一个核心内核函数速度提升 715 倍。
从合并的注释可知,贡献此补丁的维护者 Zhen Lei 来自华为,他将 kallsyms_lookup_name () 的平均查找性能提高了 715 倍,从而使内核里面旧实现的时间复杂度从 O (n) 升级到 O (log (n)),大幅减少查找时间,同时还保留了 /proc/kallsyms 上旧的实现支持。
kallsyms_lookup_name () 函数用于根据名称查找符号的地址,并可用于查找内核符号表中的任何符号。
Zhen Lei 曾在较早的补丁中描述了 kallsyms_lookup_name () 的优化思路: 目前,要搜索一个符号,我们需要将 "kallsyms_names" 中的符号一个一个展开,然后使用展开后的字符串进行比较。这种算法的时间复杂度是 O (n)。
如果我们像地址一样按升序对名称进行排序,则可以使用二分查找。这种算法的时间复杂度是 O (log (n))。
为了不改变 "/proc/kallsyms" 的实现,表 kallsyms_names [] 仍然按照升序与地址一一对应存储。
添加数组 kallsyms_seqs_of_names [],以排序后的 names 序号为索引,对应的内容为排序后的地址序号。例如:假设 NameX 在数组 kallsyms_seqs_of_names [] 中的索引为 "i",kallsyms_seqs_of_names [i] 的内容为 "k",则 NameX 对应的地址为 kallsyms_addresses [k]。kallsyms_names [] 中的偏移量是 get_symbol_offset (k)。
请注意,使用此方法内存使用量将增加 (4 * kallsyms_num_syms) 字节,接下来的两个补丁将减少 (1 * kallsyms_num_syms) 字节并正确处理 CONFIG_LTO_CLANG=y 的情况。
性能测试结果:(x86)
Before:
min=234, max=10364402, avg=5206926
min=267, max=11168517, avg=5207587
After:
min=1016, max=90894, avg=7272
min=1014, max=93470, avg=7293
kallsyms_lookup_name () 的平均查找性能提高了 715 倍。
因此,该补丁带来的唯一缺点是将内存占用量增加 3 * kallsyms_num_syms。
Linux 6.2 的模块代码还包含一个小的启动优化,将启动时间缩短了大约 30 毫秒。
相关链接:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ba2c3ff98ea8bfb219288dbacf2a23a902c751b
文章转载自:OSC开源社区
全国罕见明代古民居,被誉为陇上第一豪宅,免费开放就在天水甘肃天水,古称秦州,是华夏文明的重要发祥地,这里曾经诞生过伏羲的创世神话,故有羲皇故里之称。8000年的文明史和2700年的建城史,为这座古城遗留下了470处文物保护单位。大多数游
古隆中等被授予第二批湖北省文化遗址公园新华社武汉10月12日电(记者喻珮)湖北省政府日前公布第二批湖北省文化遗址公园名单,它们是古隆中华新水泥厂旧址赤壁古战场屈原祠走马岭遗址建始直立人遗址。此举旨在夯实大遗址考古与保护
十年福建如你所愿七溜八溜,不离福州2021年3月24日,在福州考察的习近平总书记来到位于鼓楼区的福山郊野公园,他留下的一句句话语一声声嘱托,情深意切。福州是有福之州,生态条件得天独厚。七溜八溜,不离福州。我在福州工
西安5大豪华酒店,在世界历史名城的城墙下重新绽放出耀人的光芒头条创作挑战赛西安,陕西省会,古称长安镐京,是中国四大古都之一,首批国家历史文化名城,也是联合国科教文组织评定的世界历史名城。西安历史上先后有13个王朝在此建都,有六处遗产被列入世
房车旅行国庆中原行房车旅行国庆中原行抵达开封,在品尝了开封的美食之后,感叹中原文化悠久历史之深厚,还未来得及了解开封府几百年的历史沉淀,单单一顿美食,就已经让从小在塞北长大的我慨叹不已。饮食也有地域
我的故宫之旅六百年后紫禁城,黄权交替是明清。琉璃瓦上无天路,金水河内鱼有声。九月的北京天气不冷不热,银杏初黄秋高气爽,对于我们常年生活在南方的人来说,八九月份的湿热到了北京大兴机场后立刻烟消云
北京最贵的免费公园,来了就是VIP位于北京海淀的翠湖国家湿地公园,说贵是因为物以稀为贵,虽然免费,但你可能永远都享受不到!一年开园5个月,每周一下午周六上下午对个人开放,限号150位。没错,是上下午,两个场次,可能
地球村网友万里行走进唐山市作者王启峰地球村网友万里行访名人名家名胜古迹走进唐山遵化见闻金秋十月,华北平原,天高气爽风和日丽,神州大地,沉浸在国庆73周年的喜庆氛围中。由资深媒体人地球村民网创始人总裁新媒体经济网总编辑
广西小岛惊现荧光海,被誉为小镰仓,人少却美到尖01hr绝美荧光海此生必去前一阵子旅行菌被一个视频美到了。视频里大海泛着蓝色的荧光,唯美至极。图源网络向海里丢进一枚石子,海里会泛起层层涟漪,涟漪的周围也闪烁着光芒,像是宇宙中的星
2022桂林草莓音乐节定档11月26日27日,桂林桂海晴岚景区2022桂林草莓音乐节将于11月26日27日在桂林桂海晴岚景区举办。截止目前,此次音乐节拟邀的演出嘉宾尚未公布,但是在草莓的舞台,又怎么会让我们失望呢?值得期待的是,此次是草莓音乐
提醒!这些场馆景区暂停开放10月11日湖北部分场馆景区发布暂停开放通知详情如下武汉科技馆关于临时闭馆的通告根据武汉市疫情防控要求,为切实保障广大公众朋友身体健康,武汉科技馆自即日起暂停对外开放,相应时间不再