RISC-V on the Performance Top

RISC-V性能的一些经验和想法

性能是CPU最核心的指标之一,特别是RISC-V经过多年发展开始进入中高端市场,包括sifive,ventana和tenstorrent等都有中高端riscv ip,当然也包括中国很多厂商的一直努力,整个市场一触即发,就看什么时候出现爆点。 时间回到2022年,那时我们能买到的板子还是sifive unmatched。这是一款in-order的cpu,甚至连内存prefetcher都没有...

RISC-V Vector on Valgrind小结

现状 Valgrind背景知识 实现逻辑 代码逻辑 Memcheck逻辑 RVV支持 增加普通指令 增加RVV指令 实现难点 引用 现状 截至目前(2024/04/12),rvv on valg...

调用栈和Frame Pointer

最近Brendan Gregg写了篇博客,The Return of the Frame Pointers。主要出发点是因为没有frame pointer, 调试工具可能采集不到完整的调用栈,如下示例: 总结如下: frame pointer在现阶段是必要的,否则profiler等工具可能出现上面所说采集不到完整调用栈的问题 并不是所有工具都需要frame pointer才...

隐式类型转化导致Panic

问题 原因 解决方法 问题 在分析sophgo sg2042性能时执行以下命令导致系统panic 1 perf record -e branches 原因 1 2 3 4 5 6 unsigned long overflow; unsigned long overflowed_ctrs = 0; if (!(ove...

Git Bisect定位问题

复现问题 发现rva22s64出现hang,复现脚本 1 2 3 4 $QEMU -machine virt -nographic -m 2G -smp 2 \ -cpu rva22s64 \ -bios $d/fw_jump.elf \ -kernel $d/kernel-latest &> log & 只要看到最后停在哪里就可以知道有...

RISC-V中断处理

Trap的种类 中断的触发条件 寄存器 实现功能 中断对应硬件操作 寄存器 进入中断 退出中断 Linux内核中断处理 进入中断 退出中断 NMI的实现 Pseudo NMI SBI ...

RISC-V的挑战和机遇

RISC-V的核心竞争力 RISC-V的现状 挑战和机遇 本文仅代表我的观点。 RISC-V的核心竞争力 在讨论riscv的挑战和机遇之前,有必要看看riscv的核心竞争力。 RISC-V is an open standard instruction set architecture (ISA) based on established reduced ins...

RISC-V Syscall Performance Regression

测试用例 找到commit Qemu验证 后续 最近在sophgo上测试了Linux内核6.1和6.6的性能,发现riscv上syscall的性能有超过10%以上的下降,可以看到指令数明显。 测试用例 为了缩小debug的范围,我们选取最简单的getpid进行分析,而不是混合了unixbench里面使用了多个系统调用的syscall本身。 $ ./sysca...

RISC-V Atomic LR/SC vs AMO

在sohpgo sg2038 (64core) 上面测试vm-scalability的时候发现一个有趣的现象,64个cpu上的%sys长期保持在100%,cpu都耗在了内核的原子操作上面。 测试用例 测试使用的命令行如下,usemem分配了1GB空间并进行随机写入操作。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Performance counter s...

Perf Symbolic Events及RISC-V PMU实现

Perf list的输出 x86的实现 RISC-V的实现 引用 Perf list的输出 在AMD Ryzen5 5600H上perf list有如下输出,因为events太多这里只复制一小部分 1 2 3 4 5 6 7 8 9 10 branch-instructions OR branches [Hardware e...