回忆童年

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

January 4, 2024 · 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

January 3, 2024 · xyenchi

观察 inline asm

天气雨。 今日尝试: #elif ARCH(RISCV) __asm__ __volatile__("csrr %0, mhartid" /* RISC-V hart id */ : "=a" (r) : /* input : none */ : /* clobbers: none */); 发现 usermode 不可以读 Machine mode 的 CSR。进行了失败的 asm volatile 用法研究。 _SC_NPROCESSORS_CONF可以读取 CPU 核数。 今日发现: “`’” 是英文的一种引用方法。

January 2, 2024 · xyenchi

观察计算机专有名词

天气阴,空气污染严重。 上午去协和医院想进行一个龋齿未雨绸缪地补。牙医看完片子之后说,蛀牙原本而就做过根管治疗了,如果想要补的话得把根管治疗也重做了。建议疼的时候再去直接根管治疗。想想这颗牙做根管治疗已经是十年前了,十年来每一个牙医都要对当时的牙医填充的材料表示一下震惊或者疑惑这到底是什么材料。 今日学习: RHCT : RISC-V Hypervisor Code Table ACPI : Advanced Configuration and Power Interface DTS : Device Tree Source 晚上武绿约饭,见到了好久不见的舌头球总肥猫灰熊东东柠柑半壶和半壶未婚妻。

December 29, 2023 · xyenchi

观察 sysconf

天气勉强晴,空气污染严重。 今日学习: sysconf() 标准C库。行时获取配置信息。 #include <unistd.h> long sysconf(int name); -1: 不支持 0: 相关函数或头文件存在,但会在运行时询问支持程度 除了0或-1之外的值: 支持 例子: gprofng/src/collctrl.cc /* get CPU count and processor clock rate */ ncpumax = sysconf (_SC_CPUID_MAX); clock_getres glibc 2.17前是 Real-time library (librt, -lrt),之后是标准 C 库 (libc, -lc)。 #include <time.h> int clock_getres(clockid_t clockid, struct timespec *_Nullable res); int clock_gettime(clockid_t clockid, struct timespec *tp); int clock_settime(clockid_t clockid, const struct timespec *tp); ref:https://man7.org/linux/man-pages/man2/clock_getres.2.html 在 Michael Kerrisk 写的《Linux/UNIX System Programming Essentials》看到的小技巧: 不要在写了大量代码之后编译。 Use a frequent edit-save-build cycle to catch compiler errors early. E.g., run the following in a separate window as you edit: $ while inotifywait -q . ; do echo -e '\n\n'; make; done inotifywait is provided in the inotify-tools package (The echo command just injects some white space between each build) ...

December 28, 2023 · xyenchi