TODO List
=========

本页面下的大部分 TODO 都是面向开源项目的。我欢迎任何人从这里拿走我的 TODO。不过,要拿之前记得先联系我,取得我的同意,不过我大概率是会同意的,因为我的空闲时间并不是很多。(๑•̀ㅂ•́)و✧

不过,需要注意的是,您拿走的话,作者是您了,您就必须对那些补丁负责任了。具体比较复杂,我就不细说了。(。・∀・)ノ゙

怎么看?
=======

[Z] - 进度零
[W] - 开发中
[S] - 已发送
[D] - 讨论中
[R] - 待发送
[N] - 不开始/待讨论

做好的去哪了?
--------------

做好了自然没必要留在 TODO List 啦! o(*≧▽≦)ツ
不过我也有可能会写 [DONE],只要不是单字母的,我一般都是会写一整个单词的。

DAMON
=====

[DONE] - Bug: fix unconditionally skip last region v2
[R] - Test: avoid unconditionally skip last region

这个不可以拿!因为我要在 Bug 的那个合并到 mm-new 后重新发 KUnit 的补丁,主要是为了让 Linux 的 AI 可以给更好的 Review。这个是维护者的建议。

---

[W] - Bug: fix quota could not be set to zero v2

影响较小的 Bug,会导致小量的不必要应用。

---

[R][3] - Bug: treat zero-region target as invalid target

影响较小的 Bug,会导致不必要的循环检测。本补丁将增加通用的 Invalid 条件,以此避免进入应用检测的循环。

---

[W] - Bug: damos_quota_is_full() always return true while esz is zero v2

影响不太小的 Bug,主要是在将 goal_tuner 设置为 temporal 时,如果 goal 被满足了,esz 就会变成 0,理论上就不可能有回收了。但是因为这个错误,所以每次 DAMON 都会以为配额一直饱满,导致 qt_exceeds 一直涨。

---

[N] - Optimize: use wait_event() replace ctx->pause polling

较小的优化,补丁同样也很小。不过,在发送前,需要先和维护者讨论是否有必要做这一改进。

---

DAMON Docs
==========

大部分过小的错误我并不会修正,这些让其他的新手来修会更加好,让更多人能接触 Linux。

不过,一些简单的解释修正/添加我依旧会做,即使那些也是新人入门的好方式,但是没有这些解释可能导致读者对其的理解错误。

---

[Z] - 解释 off + on 和 commit 有什么区别

区别就是前者会丢失 Age 等数据,而后者不会。

---

[N] nr_snapshots 的语义

如果有多个 target,那么 nr_snapshots 是否真的应该增加多次呢?这不仅是文档问题,更是代码问题。

---

引用
====

[1] https://github.com/aethernet65535/dotfiles/blob/master/patches/damon/tests/0001-test-for-unconditionally-skipping-the-last-region-v1.patch
[2] https://github.com/aethernet65535/dotfiles/blob/master/patches/damon/core/0001-fix-quota-could-not-be-set-to-zero-v1.patch
[3] https://github.com/aethernet65535/dotfiles/blob/master/patches/damon/core/0001-invalid-zero-region-target-rfc-v1.patch

Publish: 2026-08-30
Last Change: 2026-09-01
Go Back