性能优化特性之:TLBI - TLB range优化

简介: 本文介绍了倚天实例上的内存优化特性:TLBi,并从优化原理、使用方法进行详细阐述。

优化原理

TLB flush range是arm64芯片在armv8.4-TLBI版本上支持的一种指令集批量处理地址刷新的特性,需要内核配置文件开启CONFIG_ARM64_TLB_RANGE功能,此外还需要arm64芯片支持armv8.4-TLBI特性。 传统的TLB flush操作方式,以stride为粒度去进行TLB flush, 这种方式存在明显弊端,对于需要刷新大量的地址范围,需要将其拆分为一个个stride粒度去进行刷新,导致耗时较多。TLB flush range的意义在于动态切割地址范围, 按照如下设计思想: 每一次刷新页数目由numa和scale两个变量决定,num值方位为(-1, 31), 通过__TLBI_RANGE_NUM传入的剩余需要刷新的pages数以及scale的值获得num具体的值,当num=-1时,表示刷新完成。

#define TLBI_RANGE_MASK                 GENMASK_ULL(4, 0)
#define __TLBI_RANGE_NUM(pages, scale)  \
          ((((pages) >> (5 * (scale) + 1)) & TLBI_RANGE_MASK) - 1)

scale的值按照0逐渐递增,结合num值,统计出此次刷新的页数。

#define __TLBI_RANGE_PAGES(num, scale)   \
                  ((unsigned long)((num) + 1) << (5 * (scale) + 1))

按照rvale1is格式,将地址start, 以及scale和num值,写入rvale1is寄存器中,对页进行刷新操作。

__TLBI_VADDR_RANGE(start, asid, scale, num, tlb_level);
__tlbi(rvale1is, addr);
__tlbi_user(rvale1is, addr);

更多可参考 https://developer.arm.com/documentation/ddi0595/2021-12/AArch64-Instructions/TLBI-RVALE1IS--TLBI-RVALE1ISNXS--TLB-Range-Invalidate-by-VA--Last-level--EL1--Inner-Shareable

使用方法

使用Alinux3.2208及以后版本

Alinux3在2208版本(内核版本5.10.134-12_rc1)已默认启用该特性



---------------------------------------------------------------------------------------

更多调优信息,请参考:

龙蜥社区:https://openanolis.cn/

KeenTune SIG:https://openanolis.cn/sig/KeenTune

阿里云龙蜥操作系统专区:https://developer.aliyun.com/group/aliyun_linux

相关文章
|
数据中心 Anolis
性能优化特性之:LSE指令集编译优化
本文介绍了倚天实例上的编译优化特性:LSE,并从优化原理、使用方法进行了详细阐述。
|
缓存 编译器
BOLT 二进制反馈优化技术
大型应用的代码往往达到数十甚至上百MB,这导致在程序执行时缓存机制无法充分利用,导致大量时间花费在CPU和内存链路上。通过对热点函数的布局进行优化,我们可以更好地利用CPU cache,从而获得较为可观的性能提升。针对这一问题,在编译技术上有PGO和Bolt两种解决办法,两者都是一种通过收集程序在运行时如跳转,调用关系,函数热度等执行信息,这些收集到的程序运行情况数据(profile data),可以更好地指导一些程序优化的策略,如是否对函数进行内联,以及对基本块和函数布局的排布来提高特定场景下的程序性能。
4135 2
BOLT 二进制反馈优化技术
|
存储 缓存 监控
安谋科技(Arm China)马闯:Arm架构下性能分析与优化介绍
2023年9月19日,系列课程第九节《Arm®架构下性能分析与优化介绍》正式上线,由安谋科技 (Arm China)主任工程师马闯主讲,内容涵盖:Arm架构下性能监控单元 (PMU) 介绍、Arm统计性能分析扩展 (SPE) 介绍、Arm性能分析工具介绍、Arm架构下性能优化案例分享,本期节目在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台 & 微信视频号同步播出,同时可以点击【https://developer.aliyun.com/topic/ecs-yitian】进入【倚天实例迁移课程官网】了解更多内容。
|
Rust 开发工具 git
日志高亮 | notepad
日志高亮 | notepad
|
存储 弹性计算 数据中心
倚天产品介绍|倚天710平台稳定性-内存隔离降级运行
本文介绍利用倚天710平台的RAS特性,实现OS降级运行,提高系统稳定性
|
7月前
|
人工智能 Linux API
24小时自媒体自动化革命:OpenClaw(阿里云/Win11/Mac/Linux)喂饭级部署+集成公众号 API /小红书 Skill 实战指南
“运营一个自媒体账号已经够累,还要兼顾公众号、小红书多个平台,每天写内容、发笔记、回评论,根本忙不过来”——这是无数自媒体人的日常困境。2026年,OpenClaw(昵称“小龙虾”)的自动化能力彻底改变了这一现状:通过对接公众号官方API与小红书浏览器自动化Skill,搭建起一套“选题→创作→发布→互动”全流程自动化系统,实现24小时内容生产与多平台矩阵运营,人只需负责定方向、调策略,执行层全由AI完成。
2594 12
|
6月前
|
人工智能 监控 调度
什么是异构算力管理平台?一文讲清核心概念、能力边界与应用价值
异构算力管理平台是面向大模型生产的“统一算力操作层”,实现CPU/GPU/NPU/FPGA等多芯、多集群、多环境算力的统一纳管、智能调度与闭环治理,提升资源利用率,支撑训推一体与AI规模化落地。
1152 2
|
11月前
|
缓存 Linux 开发者
Windows 下手动下载安装配置 uv
UV 是专为 Windows 打造的轻量命令行包管理器,仅需 uv.exe 和 uvx.exe 两个文件,无需 WSL 或管理员权限。支持一键安装、卸载、多版本切换 Python 等工具,内置依赖解析与缓存管理,搭配国内镜像更高效。绿色无残留,开发者友好,真正实现 Linux 般丝滑体验。
9233 3
|
存储 SQL 缓存
Perf Arm SPE介绍与使用
本次分享的主题是 Perf Arm-SPE 的介绍及使用,本次分享主要介绍如何在倚天 710 平台上利用 Arm-SPE 特性定位伪共享问题、分析内存访问、分析指令延时以及监控访存延时等功能。 1. 背景介绍 2. Arm SPE的原理 3. Arm SPE在倚天服务器上的应用 4. Arm SPE 更多特性与功能的探索
1787 0
|
Linux
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)
2567 2
Linux下采集摄像头的图像再保存为JPG图片存放到本地(YUYV转JPG)