From f172fce67bfac3806522b4bde2c23051fb7930b8 Mon Sep 17 00:00:00 2001 From: Yuan Tan Date: Sun, 30 Jul 2023 16:54:36 +0800 Subject: [PATCH 1/6] add articles/riscv-linux-extension-and-alternative.md --- ...0-riscv-linux-extension-and-alternative.md | 412 ++++++++++++++++++ .../image-20230729150151420.png | Bin 0 -> 344702 bytes .../image-20230729152123586.png | Bin 0 -> 345922 bytes .../image-20230729165650943.png | Bin 0 -> 463413 bytes .../image-20230729171229044.png | Bin 0 -> 433505 bytes .../image-20230729173407736.png | Bin 0 -> 459395 bytes .../image-20230729191712546.png | Bin 0 -> 26900 bytes 7 files changed, 412 insertions(+) create mode 100755 articles/20230730-riscv-linux-extension-and-alternative.md create mode 100755 articles/images/riscv-linux-extension-and-alternative/image-20230729150151420.png create mode 100755 articles/images/riscv-linux-extension-and-alternative/image-20230729152123586.png create mode 100755 articles/images/riscv-linux-extension-and-alternative/image-20230729165650943.png create mode 100755 articles/images/riscv-linux-extension-and-alternative/image-20230729171229044.png create mode 100755 articles/images/riscv-linux-extension-and-alternative/image-20230729173407736.png create mode 100644 articles/images/riscv-linux-extension-and-alternative/image-20230729191712546.png diff --git a/articles/20230730-riscv-linux-extension-and-alternative.md b/articles/20230730-riscv-linux-extension-and-alternative.md new file mode 100755 index 0000000..f3e97fa --- /dev/null +++ b/articles/20230730-riscv-linux-extension-and-alternative.md @@ -0,0 +1,412 @@ +> Corrector: [TinyCorrect](https://gitee.com/tinylab/tinycorrect) v0.2-rc1 - [pangu]
+> Author: Tan Yuan
+> Date: 20230730
+> Revisor: Falcon
+> Project: [RISC-V Linux 内核剖析](https://gitee.com/tinylab/riscv-linux)
+> Proposal: [通过编译器解决因链接过程 KEEP 操作引起的 Section GC 失败问题][004]
+> Sponsor: PLCT Lab, ISCAS + +# Linux 的 RISC-V 拓展支持与 alternative 运行时代码段修改 + +## 概述 + +RISC-V 拥有许多拓展指令集,CPU 可以选择性地支持这些拓展指令集。其中,RISC-V ISA Zbb 是一种基本位操作拓展指令集,可应用于字符串相关操作。近期,Linux 内核开始采用 Zbb 中的新指令来优化字符串操作,从而提升系统性能。 + +然而,内核必须同时考虑不支持 Zbb 的设备。使用不同的函数实现可能会引起多个问题,包括: + +- 如果 CPU 不支持新指令该如何处理? +- 如何将旧指令实现的函数替换成新指令实现的函数? +- 启动的最初阶段内核不知道 CPU 支持哪些拓展。 + +为了解决这些问题,内核采用了"alternative"功能来实现函数替换。该功能可以在内核运行时将原有代码内容动态替换为新的代码内容,修改代码段以更改函数的执行路径。 + +"alternative"根据 CPU 的型号来决定是否替代代码。如果 CPU 不支持 Zbb,那么在内核启动时,就不会更改函数的执行路径,避免运行到 Zbb 专属指令的部分。 + +接下来,我们将研究 Linux Kernel 如何将原有的 `strcmp` 替换为 Zbb 中的新指令,并详细阐述"alternative"的实现原理。 + +## 准备工作 + +我们需要准备好测试环境,包括支持 Zbb 的工具链、支持 Zbb 的 CPU、并开启内核关于 Zbb 的选项。 + +### 工具链支持和内核选项 + +在内核代码中搜索 Zbb,可以在 `arch/riscv/Kconfig` 下找到如下配置选项: + +``` +config TOOLCHAIN_HAS_Zbb + bool + default y + depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64ima_Zbb) + depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_Zbb) + depends on LLD_VERSION >= 150000 || LD_VERSION >= 23900 + depends on AS_HAS_OPTION_ARCH + +config RISCV_ISA_Zbb + bool "Zbb extension support for bit manipulation instructions" + depends on TOOLCHAIN_HAS_Zbb + depends on MMU + depends on RISCV_ALTERNATIVE + default y + help + Adds support to dynamically detect the presence of the Zbb + extension (basic bit manipulation) and enable its usage. + + The Zbb extension provides instructions to accelerate a number + of bit-specific operations (count bit population, sign extending, + bitrotation, etc). + + If you don't know what to do here, say Y. +``` + +我们需要开启这两个选项。`RISCV_ISA_Zbb` 依赖于 `TOOLCHAIN_HAS_Zbb`,`TOOLCHAIN_HAS_Zbb` 需要 `LD_VERSION >= 23900`。 + +我们可以使用 Binutils 2.40。如果发行版仓库中 Binutils 低于该版本,可以在 [交叉编译工具链镜像][002] 上下载该版本的 Binutils。 + +在正确的环境变量配置下,我们可以打开 menuconfig 来开启 `RISCV_ISA_Zbb` 选项。可以使用 `/` 来搜索选项,并且使用数字 1、2 来快速跳转到目标选项位置。 + +```bash +make ARCH=riscv CROSS_COMPILE=riscv64-linux- menuconfig +``` + +### QEMU 支持 + +我们需要使用支持 Zbb 的 CPU 来运行内核。 + +QEMU 关于这方面的文档并不完整。通过在其 [代码][005] 中搜索,发现 `v8.1.0-rc1` 版本中的 `veyron-v1` CPU 支持 Zbb。 + +使用 QEMU 运行 Linux Kernel: + +``` +qemu-system-riscv64 \ + -nographic \ + -machine virt \ + -cpu veyron-v1 \ + -kernel arch/riscv/boot/Image \ + -append "console=ttyS0" +``` + +如果我们想使用不支持 Zbb 的 CPU 来调试,可以使用 `sifive-u54` CPU。 + +``` +qemu-system-riscv64 \ + -nographic \ + -machine virt \ + -cpu sifive-u54 \ + -kernel arch/riscv/boot/Image \ + -append "console=ttyS0" +``` + +## alternative 原理 + +### 动态替换代码 + +首先我们来看一下 `arch/riscv/lib/strcmp.S`,可以 [在线][003] 查看代码。 + +`strcmp.S` 的结构为: + +``` +strcmp: +ALTERNATIVE("nop", "j strcmp_zbb", 0, RISCV_ISA_EXT_Zbb, CONFIG_RISCV_ISA_Zbb) +< 通用的 strcmp 汇编代码 > +ret +strcmp_zbb: +< 使用 Zbb 拓展指令的 strcmp 汇编代码 > +ret +``` + +`ALTERNATIVE` 是 [汇编宏][008],在汇编转换为机器码的阶段展开。编译后,这部分代码段在运行时实际上会变为: + +``` +strcmp: +nop +< 通用的 strcmp 汇编代码 > +ret +strcmp_zbb: +< 使用 Zbb 拓展指令的 strcmp 汇编代码 > +ret +``` + +原来的 `ALTERNATIVE` 展开成 `nop` 指令。 + +我们可以推测,在内核启动时,如果 CPU 支持并且内核配置了 ZBB 选项,`ALTERNATIVE` 将把 `nop` 指令修改为跳转指令,跳转到 `strcmp_zbb` 处执行;相反,不支持 ZBB 的 CPU 或者没有配置 ZBB 选项,只会执行通用的 `strcmp` 汇编代码。 + +### 运行时的代码段修改 + +先在 `arch/riscv/kernel/alternative.c` 的 `riscv_alternative_fix_offsets()` 函数打断点。 + +![image-20230729150151420](images/riscv-linux-extension-and-alternative/image-20230729150151420.png) + +这里的 `alt_ptr` 是 `strcmp`,有点像我们要找的地方。我们又在调用栈的上一层 `riscv_cpufeature_patch_func()` 打断点并重新运行,看执行 `riscv_alternative_fix_offsets()` 函数之前是什么样子。 + +调用栈的更上一层,即 `riscv_alternative_fix_offsets()` 的调用者 `_apply_alternatives()` 函数我们暂时不讨论。 + +我们暂停在执行 `riscv_cpufeature_patch_func()` 函数的 `patch_text_nosync()` 语句前: + +![image-20230729165650943](images/riscv-linux-extension-and-alternative/image-20230729165650943.png) + +`oldptr` 指向代码段 `strcmp`,`altptr` 指向代码段 `strcmp+130`,`strcmp+130` 的指令内容为 `j strcmp+34`,即跳转到 Zbb 拓展实现的 `strcmp_zbb` 处。 + +为什么突然出现 `strcmp+130` 这样的地址呢? + +刚刚的 `strcmp.S` 代码中是这样的: + +```C +ALTERNATIVE("nop", "j strcmp_zbb", 0, RISCV_ISA_EXT_ZBB, CONFIG_RISCV_ISA_ZBB) +``` + +我们对 `vmlinux` 进行反汇编。`strcmp+130` 是整个的 `strcmp.S` 的结束地址,再往后是 `strlen`, + +``` +$ riscv64-linux-objdump -D -j .text vmlinux | grep -A "35" ":" +ffffffff800ab18a : +ffffffff800ab18a: 00b563b3 or t2,a0,a1 +ffffffff800ab18e: 5efd li t4,-1 +ffffffff800ab190: 0073f393 and t2,t2,7 +ffffffff800ab194: 02039e63 bnez t2,ffffffff800ab1d0 +ffffffff800ab198: 00053283 ld t0,0(a0) +ffffffff800ab19c: 0005b303 ld t1,0(a1) +ffffffff800ab1a0: 2872de13 orc.b t3,t0 +ffffffff800ab1a4: 03de1163 bne t3,t4,ffffffff800ab1c6 +ffffffff800ab1a8: 0521 add a0,a0,8 +ffffffff800ab1aa: 05a1 add a1,a1,8 +ffffffff800ab1ac: fe6286e3 beq t0,t1,ffffffff800ab198 +ffffffff800ab1b0: 6b82d293 rev8 t0,t0 +ffffffff800ab1b4: 6b835313 rev8 t1,t1 +ffffffff800ab1b8: 0062b533 sltu a0,t0,t1 +ffffffff800ab1bc: 40a00533 neg a0,a0 +ffffffff800ab1c0: 00156513 or a0,a0,1 +ffffffff800ab1c4: 8082 ret +ffffffff800ab1c6: 00629563 bne t0,t1,ffffffff800ab1d0 +ffffffff800ab1ca: 4501 li a0,0 +ffffffff800ab1cc: 8082 ret +ffffffff800ab1ce: 0001 nop +ffffffff800ab1d0: 00054283 lbu t0,0(a0) +ffffffff800ab1d4: 0005c303 lbu t1,0(a1) +ffffffff800ab1d8: 0505 add a0,a0,1 +ffffffff800ab1da: 0585 add a1,a1,1 +ffffffff800ab1dc: 00629463 bne t0,t1,ffffffff800ab1e4 +ffffffff800ab1e0: fe0298e3 bnez t0,ffffffff800ab1d0 +ffffffff800ab1e4: 40628533 sub a0,t0,t1 +ffffffff800ab1e8: 8082 ret +ffffffff800ab1ea: fa1ff06f j ffffffff800ab18a + ... + +ffffffff800ab1f8 <__pi_strlen>: +ffffffff800ab1f8: 00000013 nop +ffffffff800ab1fc: 832a mv t1,a0 +``` + +可以发现新指令 `j strcmp_zbb` 实际上是存放在 `strcmp.S` 的结束处的。说明 `ALTERNATIVE` 搞了一些魔法,定位到了该节的末尾,插入了新代码 `j strcmp_zbb`。我们将在文章的下个小节讨论这个魔法。 + +继续分析后续代码。在执行了 `patch_text_nosync()` 后,刚刚查看的 `strcmp` 内存处的 `nop` 指令已经变成了 `j 0xffffffff800ab108`,如下图: + +![image-20230729171229044](images/riscv-linux-extension-and-alternative/image-20230729171229044.png) + +这个跳转地址很奇怪,看起来没有任何作用。我们将在文章的下个小节讨论它。 + +执行了 `riscv_alternative_fix_offsets()` 后,原来的 `nop` 变成了 `j strcmp+34`。 + +![image-20230729173407736](images/riscv-linux-extension-and-alternative/image-20230729173407736.png) + +查看 `strcmp+34` 处的指令,可以发现该处即为使用 Zbb 拓展指令实现的高性能 `strcmp_zbb`。 + +![image-20230729152123586](images/riscv-linux-extension-and-alternative/image-20230729152123586.png) + +在此之后,内核代码段的内容已经被修改。原本调用 `strcmp()` 执行的第一条指令为 `nop` 指令,现在 `nop` 指令被修改为无条件跳转指令。调用 `strcmp()` 会立即跳转到 34 字节外的新指令 `strcmp_zbb` 上。 + +原有的: + +``` +strcmp: +nop +< 通用的 strcmp 汇编代码 > +ret +strcmp_zbb: +< 使用 Zbb 拓展指令的 strcmp_zbb 汇编代码 > +ret +``` + +修改后: + +``` +strcmp: +j strcmp_zbb +< 通用的 strcmp 汇编代码 > +ret +strcmp_zbb: +< 使用 Zbb 拓展指令的 strcmp_zbb 汇编代码 > +ret +``` + +代码段 `strcmp` label 处的指令的变化过程: + +| 语句 | 代码段 `strcmp` label 处的指令 | | +|----------------------------------------|-----------------------------------------------|---| +| `patch_text_nosync()` 执行前 | nop | | +| `patch_text_nosync()` 执行后 | j 0xffffffff800ab108 <__memset+156> | | +| `riscv_alternative_fix_offsets()` 执行后 | j 0xffffffff800ab18a | | + +经过两次代码段修改,`nop` 指令被修改为跳转到 `strcmp_zbb` 的指令 + +### ELF 的 .alternative 节与魔法 + +``` +$ riscv64-linux-readelf -S vmlinux.o | grep -A 1 alternative + [21332] .alternative PROGBITS 0000000000000000 0017df18 + 0000000000000030 0000000000000000 A 0 0 1 +``` + +`ALTERNATIVE` 汇编宏展开时,会调用 `ALT_NEW_CONTENT` 汇编宏。 + +``` +#define ALT_ENTRY(oldptr, newptr, vendor_id, patch_id, newlen) \ + ".4byte ((" oldptr ") - .) \n" \ + ".4byte ((" newptr ") - .) \n" \ + ".2byte " vendor_id "\n" \ + ".2byte " newlen "\n" \ + ".4byte " patch_id "\n" + +#define ALT_NEW_CONTENT(vendor_id, patch_id, enable, new_c) \ + ".if " __stringify(enable) " == 1\n" \ + ".pushsection .alternative, \"a\"\n" \ + ALT_ENTRY("886b", "888f", __stringify(vendor_id), __stringify(patch_id), "889f - 888f") \ + ".popsection\n" \ + ".subsection 1\n" \ + "888 :\n" \ + ".option push\n" \ + ".option norvc\n" \ + ".option norelax\n" \ + new_c "\n" \ + ".option pop\n" \ + "889 :\n" \ + ".org . - (887b - 886b) + (889b - 888b)\n" \ + ".org . - (889b - 888b) + (887b - 886b)\n" \ + ".previous\n" \ + ".endif\n" +``` + +其中,`".4byte ((" oldptr ") -.) \n"` 将 `oldptr` label 到当前位置的距离存储到了这个 4byte 大小空间中。有了偏移量,在应用 alternative 时(即刚刚打断点的 `riscv_cpufeature_patch_func()` 函数的调用者 `_apply_alternatives()`),就能计算出新代码和旧代码的位置: +![image-20230729191712546](images/riscv-linux-extension-and-alternative/image-20230729191712546.png) + +保存 offset 这个行为是由 [该 patch][007] 提供的,在这之前是直接保存的绝对地址,占用了更多的空间。 + +该汇编宏使用 `.pushsection` 在 ELF 文件中建立了 `.alternative` 节,将偏移量、`vendor_id` 和 `patch_id` 一起放在该节中。新代码并没有存储在这里,应该是为了缓存命中率的考虑,把新代码放在了所属代码节末尾。 + +存在于代码最前端的 `ALTERNATIVE` 展开后,能够把新代码放到代码段末尾,是通过 `.subsection` 和 `.previous` 实现的。 + +因此,后续 `_apply_alternatives()` 可以遍历该节每个 entry 来替换旧代码。 + +### 替换了两次旧代码? + +在刚刚的分析中,我们 `strcmp` 处的代码被替换了两次,第一次替换的新代码跳转到 `__memset+156` 处,在 `riscv_alternative_fix_offsets()` 执行后,新代码才跳转到 `strcmp_zbb` 处。 + +首先我们来看看 `patch_text_nosync()` 的定义: + +```c +int patch_text_nosync(void *addr, const void *insns, size_t len) +{ + u32 *tp = addr; + int ret; + + ret = patch_insn_write(tp, insns, len); + + if (!ret) + flush_icache_range((uintptr_t) tp, (uintptr_t) tp + len); + + return ret; +} +``` + +这个函数在 `addr` 上写入长度为 `len` 的 `insns`。更改代码段需要刷新 `icache` 来确保缓存一致性。 + +```C +void riscv_alternative_fix_offsets(void *alt_ptr, unsigned int len, + int patch_offset) +{ + int num_insn = len / sizeof(u32); + int i; + + for (i = 0; i < num_insn; i++) { + u32 insn = riscv_instruction_at(alt_ptr + i * sizeof(u32)); + + /* + * May be the start of an auipc + jalr pair + * Needs to check that at least one more instruction + * is in the list. + */ + if (riscv_insn_is_auipc(insn) && i < num_insn - 1) { + u32 insn2 = riscv_instruction_at(alt_ptr + (i + 1) * sizeof(u32)); + + if (!riscv_insn_is_jalr(insn2)) + continue; + + /* if instruction pair is a call, it will use the ra register */ + if (RV_EXTRACT_RD_REG(insn) != 1) + continue; + + riscv_alternative_fix_auipc_jalr(alt_ptr + i * sizeof(u32), + insn, insn2, patch_offset); + i++; + } + + if (riscv_insn_is_jal(insn)) { + s32 imm = riscv_insn_extract_jtype_imm(insn); + + /* Don't modify jumps inside the alternative block */ + if ((alt_ptr + i * sizeof(u32) + imm) >= alt_ptr && + (alt_ptr + i * sizeof(u32) + imm) < (alt_ptr + len)) + continue; + + riscv_alternative_fix_jal(alt_ptr + i * sizeof(u32), + insn, patch_offset); + } + } +} +``` + +`riscv_alternative_fix_offset()` 函数根据偏移量计算出真正需要跳转的距离,按情况指派给 `riscv_alternative_fix_auipc_jalr()`、`riscv_alternative_fix_jal()`、`riscv_alternative_fix_offsets()` 函数,这些函数生成对应的指令后,再次使用 `patch_text_nosync()` 来修改目标地址代码。 + +经过 `git blame` 和搜索邮件列表,我们发现有一 [patch][006] 做了以下改动: + +```c + patch_text_nosync(alt->old_ptr, alt->alt_ptr, alt->alt_len); ++ riscv_alternative_fix_offsets(alt->old_ptr, alt->alt_len, ++ alt->old_ptr - alt->alt_ptr); +``` + +邮件中写到: + +``` +Alternatives live in a different section, so addresses used by call +functions will point to wrong locations after the patch got applied. + +Similar to arm64, adjust the location to consider that offset. +``` + +原来是因为单独的一行 `patch_text_nosync()` 会有 bug,offset 计算不正确,所以才使用一个单独的函数来修补错误。 + +## 总结 + +内核的启动过程中,会检测 CPU 的型号,遍历 `.alternative` 节中的 entry,符合条件的 patch 会被 apply。apply 会修改目标地址的旧代码为新代码,同时确保 icache 一致性。 + +针对 RISC-V 架构设备而言,其模块化的架构设计意味着不同的扩展可以拥有各自的优化指令。CPU 的指令集只能在运行时才能得知,在此之前只能使用兼容性最高的指令。“alternative” 在这种情况下是一种非常好的解决方案,既保证了兼容性,也提高了性能。 + +## 参考资料 + +- [RISC-V Bit-manipulation A, B, C and S Extensions | Five EmbedDev (five-embeddev.com)][001] +- [Latest corss-compilers][002] +- [Linux kernel source tree][003] +- [通过编译器解决因链接过程 KEEP 操作引起的 Section GC 失败问题][004] +- [QEMU source tree][005] +- [Macro (Using as)][008] +- [[PATCH v5 09/13] riscv: switch to relative alternative entries][007] +- [[PATCH v5 12/12] RISC-V: fix auipc-jalr addresses in patched alternatives][006] + +[001]: https://five-embeddev.com/riscv-bitmanip/draft/bitmanip.html +[002]: https://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.1.0/x86_64-gcc-13.1.0-nolibc-riscv64-linux.tar.xz +[003]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/riscv/lib/strcmp.S?h=v6.5-rc3 +[004]: https://gitee.com/tinylab/riscv-linux/issues/I79PO6 +[005]: https://github.com/qemu/qemu/blob/6cb2011fedf8c4e7b66b4a3abd6b42c1bae99ce6/target/riscv/cpu.c#L482 +[006]: https://lore.kernel.org/all/20221223221332.4127602-13-heiko@sntech.de/ +[007]: https://lore.kernel.org/all/20230128172856.3814-10-jszhang@kernel.org/ +[008]: https://sourceware.org/binutils/docs/as/Macro.html diff --git a/articles/images/riscv-linux-extension-and-alternative/image-20230729150151420.png b/articles/images/riscv-linux-extension-and-alternative/image-20230729150151420.png new file mode 100755 index 0000000000000000000000000000000000000000..7ebc30cd92aa6c5b79b6f3b9436c0b205e207894 GIT binary patch literal 344702 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