[SOSP'25] cache_ext : core contribution

2026. 4. 20. 23:18·[ Laboratory ]

(자유롭게 정리한 글. 가독성 좋게 재정리한 글 업로드 예정)


* eBPF  기반 in kernel policy execution
- page cache policy를 userspace에서 실행하면
kernel에서 이벤트를 감지하고 userspace로 전달하면
userspace에서 policy를 실행하고 kernel로 다시 전달해야함
context switch로 인해 성능 저하가 크게 발생하고 뿐만 아니라 data copy overhead, synchronization으로 인한 contention도 발생함
- 페이지 단위로 매우 자주 실행되는 hot path이기 때문에 eBPF를 이용해 in kernel execution하면 userspace overhead를 제거할 수 있음

= policy는 반드시 커널에서 실행되어야 효율적인데 eBPF가 가능하게 함

* variable sized eviction lists and policy functions
- 기존 P2Cache는 Single LRU queue 기반으로 동작해서 다양한 정책을 표현할 수 없었음
- 데이터 구조는 멀티 리스트, 행동 정의는 policy function으로 구현하여 정책을 하드 코딩하지 않고 표현 가능하게 만들었음
(여기서 등장하는 메타데이터는 뭐지 )

* per cgroup policy
- 기존 서버환경은 db, search, log, analysis 가 동시에 실행되는데 하나의 global policy 로 다 처리하기 때문에 일부 워크로드에서는 성능이 나빠질 수 밖에 없었음

= 워크로드마다 optimal한 policy가 다르고 각각 다르게 사용할 수 있도록 하였음. 다만 완전히 isolation는 아니고 policy는 분리되고 있지만 page cache는 여전히 공유되어 물리적으로 데이터는 공유되고 있음


* valid folios registry an eviction fallback
- policy는 커널에게 eviction 할 페이지를 알려주지만 잘못된 포인터라면 kernel이 crah할 수 있음
그래서 진짜 존재하는 folio인지 확인하기 위해 valid folios registry를 사용함
- policy가 실패했을 때는 kernel의 default eviction policy를 사용할 수 있도록 eviction fallback을 도입함
eviction fallback이 없을 경우 policy bug로 eviction을 못하면 시스템이 멈추지만 있다면 안전하게 계속 동작할 수 있으므로 forward progress guarantee 함

* application informed policy
- 리눅스는 페이지를 최근에 접근했는지에 집중하고 GET은 그 정보가 중요하지만 SCAN은 중요하지 않음
그러나 기존 시스템은 GET과 SCAN에 대한 구분을 할 수 없으므로 application semantics를 반영함
= Get list와 scan list를 분리하여 get list는 보호하고 scan list 먼저 eviction


===
더 좋은 eviction policy를 찾는 것이 아니라 fixed policy (LRU+refault) 였던 기존 리눅스를 policy를 바꿀 수 있도록 만든 것이 핵심

728x90

'[ Laboratory ]' 카테고리의 다른 글

[SOSP'25] cache_ext : background (page cache in Linux kernel)  (0) 2026.04.20
'[ Laboratory ]' 카테고리의 다른 글
  • [SOSP'25] cache_ext : background (page cache in Linux kernel)
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기
      • * Computer Security
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
        • 현대오토에버 스마트 모빌리티 공학 체험 교육
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      현대오토에버
      프로그래머스 c++
      코드잇
      hotstorage
      SQL
      티스토리챌린지
      소프트웨어 공학
      ssafy 13기
      프로그래머스 코테
      프로그래머스
      현대오토에버 스마트 모빌리티
      코딩 교육
      프로그래밍 언어론
      SSAFY
      싸피
      공대생 대외활동
      Linux
      코딩 인강
      백준
      spdk
      데이터베이스
      오블완
      현대오토에버 스마트모빌리티
      MySQL
      sosp
      자바스크립트
      스마트모빌리티공학체험교육
      비전공자 코딩
      대학생 대외활동
      ACM
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [SOSP'25] cache_ext : core contribution
    상단으로

    티스토리툴바