开发者
资源
openEuler配置SPE环境笔记分享
openEuler配置SPE环境笔记分享
发表于2024/01/31
10k1

说明

TaiShan 200系列服务器从V159版本BIOS开始支持SPE功能。

  1. 检查BIOS配置项 MISC Config--> SPE的状态,如果状态为Disabled需要更改为Enabled。

  2. 使用SSH远程登录工具,以root用户登录Linux操作系统命令行界面。
  3. 配置系统启动参数。
    1. 执行如下命令编辑配置文件。

      vim /etc/grub2-efi.cfg

    2. 定位到内核版本对应的开机启动项,在末尾增加“kpti=off”。

linux   /vmlinuz-4.19.90-2003.4.0.0036.oe1.aarch64 root=/dev/mapper/openeuler-root ro rd.lvm.lv=openeuler/root rd.lvm.lv=openeuler/swap video=VGA-1:640x480-32@60me rhgb quiet  smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 crashkernel=1024M,high video=efifb:off video=VGA-1:640x480-32@60me kpti=off

    1. 须知

      由于设置“kpti=off”后,系统安全性降低,禁止在生产环境上运行。

    2. 按“ESC”,输入“:wq”,按“Enter”保存并退出。
    3. 执行reboot命令重启服务器。
  • 安装鲲鹏性能分析工具后,执行如下命令确认SPE是否开启成功。

    perf list | grep arm_spe

    显示如下内容说明SPE已成功开启。

  1. arm_spe_0//                                        [Kernel PMU event]

(适用于CentOS 7.6)配置SPE环境

说明

  • TaiShan 200系列服务器从V159版本BIOS开始支持SPE功能。
  • 若要执行访存分析中的Miss事件分析,需先编译perf,便于支持SPE采集。
  1. 检查BIOS配置项 MISC Config--> SPE的状态,如果为Disable需要更改为Enable状态。

  2. 使用SSH远程登录工具,以系统用户root登录Linux操作系统命令行界面。
  3. 配置系统启动参数。
    1. 执行如下命令编辑配置文件。

      vim /boot/efi/EFI/centos/grub.cfg

    2. 定位到内核版本对应的开机启动项,在末尾增加“kpti=off”。

linux   /vmlinuz-4.14.0-115.el7a.0.1.aarch64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 kpti=off

    1. 须知

      由于设置“kpti=off”后,系统安全性降低,禁止在生产环境上运行。

    2. 按“ESC”,输入“:wq”,按“Enter”保存并退出。
    3. 执行reboot命令重启服务器。
    4. 执行如下命令获取内核启动参数,确认是否添加成功。

      cat /proc/cmdline

  • 安装鲲鹏性能分析工具后,执行如下命令确认SPE是否开启成功。

    perf list | grep arm_spe

    显示如下内容说明SPE已成功开启。

  1. arm_spe_0//                                        [Kernel PMU event]

驱动安装

CentOS 7.6的Miss采集时,支持以下7个内核版本,内核驱动编译时请使用支持的版本。

表1 支持内核版本

操作系统

内核版本

CentOS 7.6

4.14.0-115.el7a.0.1

4.14.0-115.2.2.el7a

4.14.0-115.5.1.el7a

4.14.0-115.6.1.el7a

4.14.0-115.7.1.el7a

4.14.0-115.8.2.el7a

4.14.0-115.10.1.el7a

  1. 下载内核驱动至/home/spe_ko目录。

    下载地址:https://github.com/kunpengcompute/devkitdriver/tree/main

    将下载包中的devkitdriver-main/SPEdriver目录下的文件拷贝至/home/spe_ko目录下,以4.14.0-115.el7a.0.1版本为例,其他小版本需要先下载对应内核版本的rpm包,并将系统升级到该内核版本。

  2. 编译驱动。

    cd /home/spe_ko/arm_spe_pmu

    make

    cd /home/spe_ko/spe_device

    make

  3. 查看驱动文件。

    ls -l /home/spe_ko/arm_spe_pmu/arm_spe_pmu.ko

    ls -l /home/spe_ko/arm_spe_pmu/spe_device.ko

  4. ko文件安装。

    insmod /home/spe_ko/arm_spe_pmu/arm_spe_pmu.ko

    insmod /home/spe_ko/arm_spe_pmu/spe_device.ko

编译perf

  1. 下载内核源码到/home/spe_perf/kernel-alt-4.14.0-115.el7a.0.1目录。
  2. 检查flex和bison依赖包。

    rpm -qa |grep bison

    rpm -qa |grep flex

    如果没有相关依赖,则进行安装。

    yum install flex

    yum install bison

  3. 解压rpm包。

    cd /home/spe_perf/kernel-alt-4.14.0-115.el7a.0.1

    rpm2cpio kernel-alt-4.14.0-115.el7a.0.1.src.rpm | cpio -divm

    xz -d linux-4.14.0-115.el7a.tar.xz

    tar -xvf linux-4.14.0-115.el7a.tar -C ..

  4. 合入补丁。

    下载patch,patch地址:https://github.com/kunpengcompute/devkitdriver/tree/main

    图3 下载页面

    将下载包中的perfpatch目录下的文件拷贝至/home/spe_perf目录下。

    cd /home/spe_perf

    chmod +x build_perf.sh

    ./build_perf.sh

  5. 查询arm_spe事件。

    新生成的perf在“/home/spe_perf/linux-4.14.0-115.el7a/tools/perf”路径下,在perf路径执行perf list

    cd /home/spe_perf/linux-4.14.0-115.el7a/tools/perf

    ./perf list | grep arm_spe

  6. 复制编译后的perf并修改权限。

    mkdir -p /usr/bin/malluma/spe/4.14.0-115.el7a.0.1

    cp perf /usr/bin/malluma/spe/4.14.0-115.el7a.0.1

    chmod -R 500 /usr/bin/malluma/spe

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞