DAMON (Data Access MONitor) — Linux 5.15부터 메인라인. 커널 모니터링 프레임워크.

DAMOS (DAMON-based Operation Schemes) — DAMON 위에서 동작하는 정책 엔진.

→ 실행 경로에서 hooking만 할 예정이므로, DAMON은 건드릴 필요 없고 DAMOS만 point 잡으면 된다

image.png

DAMOS의 demotion은 MIGRATE_COLD를 활용할 수도, PAGEOUT을 활용할 수도 있는데 나는 MIGRATE를 쓰겠다. damon_pa_migrate_pages() 함수의 migrate_page()

  1. hot page detection이야 뭐 어떻게 하든 상관없으니까 DAMON을 건드릴 필요는 없고, DAMOS의 MIGRATE_HOT과 MIGRATE_COLD에만 hooking 포인트를 넣으면 된다.
  2. DAMO 실험에서는 AutoNUMA에서 사용한 numa_balancing과 demotion_enable는 linux default인 off로 설정해야 한다.
  3. 관련 파라미터는 DAMO 기존 파라미터를 활용하되, 나는 hot threshold와 age를 설정해줘야 한다. HMSDK는 5%/30s고, 적절히 조정하면 되는데 기본적으로 몇 %하는지는 모르겠다. 10%정도로 시작해보면 좋을 것같다?

image.png

kconfig 관련 github에 반영안된거같은데 이거 고민좀 해봐야될 듯

우선 workspace에 promotion, demotion 경로에 hooking 포인트는 넣었음.