Recent Posts

往 vim 粘贴大段文本会卡顿的问题

0x0 问题

用 vim 编辑文件时,发现粘贴大段文本时会变得很卡,有时候几百行的文本,需要花几十秒甚至更长时间。

0x1 解决办法 …

Cache 的组织和过程(VIVT、VIPT、PIPT)

1. VIVT

VA 里的 index 🡲 查找到 cache-line 🡲  VA 里的 tag 比较 :
* hit 🡲 返回(不经过 MMU)
* miss 🡲 [VA->MMU->]PA 访存,写回 cache-line;VA 里的 tag 更新到 cache-line 🡲 返回

有别名问题。

2. VIPT …

Linux clock tree 的实现

1. Linux 里已经预定义了几种 clock

  • clk-fixed-rate: basic fixed-rate clock that cannot gate, 比如固定频率的 oscillator
  • clk-fixed-factor: basic fixed multiplier and divider clock that cannot gate,比如从上一级按固定比例分频 …

ARM Watch Point 寄存器

Watch Point (WP) 有 6 个寄存器:

  • Address Value / Mask Register
  • Data Value / Mask Register
  • Control Value / Mask Register

其中,WP Address Value / Mask 是监控地址总线,WP Data Value / Mask 是监控数据总线。

断点用来标 …

Python 命令行里显示十六进制

0x0 问题

Python 命令行经常被拿来当作计算器,进行数字或者逻辑运算。很多时候,特别是在编程时,往往需要以十六进制的方式 …

Ubuntu 无法更新 psutil 的问题

0x0 问题

编写 tmux-system-info 的时候,有依赖到高版本 psutil 里的接口功能。

因为发现 Ubuntu 系统里已经安装的 psutil 版本太低,所以准备升级一下:

sudo …

Use Google Analytics With Pelican

基于 Pelican 生成的静态页面,可以使用 Google Analytics 来统计访问数据。

以下是操作步骤,记录在这里备忘:

  1. 登录到 Google Analytics,创建账号;
  2. 添加需要 …

utmp records of tmux

0x0

在 Ubuntu 19.04 (Disco Dingo) 上使用 tmux 的时候,观察到一个问题,在 w 或者 who 的输出里,会有好多条登录信息;如果 pane 开得多,甚至会满屏 …

Difference between __str__ and __repr__ in Python

在 Python 里,__str__ 和 __repr__ 的功能类似,但又有区别,经常容易搞混。以下列举了它们在使用上的注意点。

__repr__

  • __repr__ goal is to be unambiguous
  • __repr__ is for developers
  • __repr__ representation …

使用 pthread 时遇到的资源不足的问题

项目里遇到了一个 pthread_create 调用失败、返回资源不足的问题。

走读了代码,发现代码里反复调用了 pthread_create 创建了很多短任务;但主线程 …