搭建qemu跑最新最热linux kernel

天气晴 近日听说新的sbi和kernel支持 profile sampling 打算搭建 qemu system 进行实验。 搭建过程遇到 nfs 的网桥难关。今日不打算跨越,明日再跨。 手头上的 unmatched 的 sbi 和 kernel 版本都是旧的。无法使用 perf xyenchi@ubuntu:~$ sudo perf record -a -g Error: cycles: PMU Hardware doesn't support sampling/overflow-interrupts. Try 'perf stat' 本可以记录 cross compile linux kernel, 但是更想下班。

<span title='2024-01-09 11:30:03 +0000 UTC'>January 9, 2024</span>&nbsp;·&nbsp;xyenchi

观察 ncpus 为什么会被优化

天气阴。 今日尝试直接修改 Makefile 在 unmatched 编译,发现 ncpus 不显示 optimized out 了。 说明 Makefile 的生成脚本确实写糊了,和 x86 一样可以得出值是 0。 运行的时候: (gdb) r ./gprofng/src/gp-collect-app echo 1 Starting program: /home/xyenchi/binutils-gdb/debug-build/gprofng/src/gp-collect-app ./gprofng/src/gp-collect-app echo 1 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/riscv64-linux-gnu/libthread_db.so.1". Creating experiment directory test.1.er (Process ID: 1319751) ... process 1319751 is executing new program: /home/xyenchi/binutils-gdb/debug-build/gprofng/src/gp-collect-app [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/riscv64-linux-gnu/libthread_db.so.1". Creating experiment directory test.2.er (Process ID: 1319751) ... Warning: libgp-collector.so is already defined in one or more LD_PRELOAD environment variables process 1319751 is executing new program: /usr/bin/echo Error in re-setting breakpoint 1: Function "write_header" not defined. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/riscv64-linux-gnu/libthread_db.so.1". 1 [Inferior 1 (process 1319751) exited normally] (gdb) p ncpus No symbol "ncpus" in current context. 但是大佬说使用ptrace的程序可能不能用gdb。 ...

<span title='2024-01-08 11:30:03 +0000 UTC'>January 8, 2024</span>&nbsp;·&nbsp;xyenchi

观察编译选项

天气晴。 今日尝试重新在 unmatched 上传入CFLAG=-O0 CXXFLAG=-O0不优化编译 gprofng, 发现无法传入。 # ------------------------------------------------- # Miscellaneous non-standard autoconf-set variables # ------------------------------------------------- # The gcc driver likes to know the arguments it was configured with. TOPLEVEL_CONFIGURE_ARGUMENTS=../configure --enable-gprofng CFLAG=-O0 CXXFLAG=-O0 CFLAGS = -g -O2 LDFLAGS = LIBCFLAGS = $(CFLAGS) CXXFLAGS = -g -O2

<span title='2024-01-05 11:30:03 +0000 UTC'>January 5, 2024</span>&nbsp;·&nbsp;xyenchi

回忆童年

天气晴。 今日观察东亚时区双周会,无法静心看代码。摸鱼。 好久没有体验到考 RVFA 时候知识争相进入大脑的感觉了,需要加油。 昨天晚上回忆起了很多童年往事,因为一个神奇的诱因。

<span title='2024-01-04 11:30:03 +0000 UTC'>January 4, 2024</span>&nbsp;·&nbsp;xyenchi

调试 grofng

天气晴。 今日尝试: 将 如果没有 __SC_CPUID_MAX 就把 __SC_CPUID_MAX 写成517 的代码改成了 如果没有 __SC_CPUID_MAX 就用 __SC_NPROCESSORS_CONF 读 ncpus 但是 ncpus 还是显示 0 ,使用 gdb 调试时显示被优化。 其他使用 syscall 和相同声明方法的 page_size 和 npages gdb 显示 no symbol, 搜索可以发现有些文件使用了它们。 今日发现: 2038年时间可以变成负数。 https://en.wikipedia.org/wiki/Year_2038_problem

<span title='2024-01-03 11:30:03 +0000 UTC'>January 3, 2024</span>&nbsp;·&nbsp;xyenchi