본문 바로가기 메뉴 바로가기

두찡의 일상

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

두찡의 일상

검색하기 폼
  • 분류 전체보기 (122)
    • 개발 (112)
      • 알고리즘 (6)
      • 일상 (50)
      • 병렬프로그래밍 (8)
      • 도트도전기 (12)
      • 코드로 알아보는 ARM 리눅스 커널 TIL (33)
      • arm64 linux 6 분석 (3)
    • 게임근황 (6)
    • 개발 외 일상 (2)
  • 방명록

2024/11/20 (4)
20241026 4.6.9 slowpath 페이지 할당 (p388)

4-96 __alloc_pages_slowpath__GFP_ATOMIC, __GFP_DIRECT_RECLAIM ATOMIC 은 저수준으로 sleep 없이 돌고 DIRECT_RECLAIM 은 sleep 하면서 회수를 해야 하는 상반되는 옵션따라서 ATOMIC 을 제거하고 돌게됨if (gfp_mask & __GFP_KSWAPD_RECLAIM) wake_all_kswapds(order, ac);이 플래그가 켜져있으면 모든 kswapd를 활성화 시켜서, zonelist 중 허용존의 kswapd 를 모두 깨운다.alloc flag 를 조절해줌. slow path 에 맞게 ->gft_to_alloc_flags --> 4-100cpuset 이 꺼저있는데, nodemask 도 없다 (전체 노드에 대한..

개발/코드로 알아보는 ARM 리눅스 커널 TIL 2024. 11. 20. 23:59
20241019 4.6 페이지 할당자 (p356)

4.6 페이지 할당자 (356P) 노드별 활성화 된 존에서 페이지 할당이 실패한 경우에 대비해 fallback 에 대한 후보 존 리스트를 만든다. 4.6.2 NUMA 메모리 정책 (358P) Interleave: 해당 태스크에 구성된 노드 세트에서 순서대로 할당을 수행함 .. bind preferred default 4-81__build_all_zonelists -> 최초 실행시 모든 노드에 생성, 각 cpu 별 per-cpu 프레임 캐시 환경 구성 4-82 build_zonelists 모든 zone 을 돌면서 zone list 를 초기화 다른 노드를 순회하기 위해 비트마스킹으로, while 순회  * void nodes_clear(mask) clear all bits * node_order 에 node..

개발/코드로 알아보는 ARM 리눅스 커널 TIL 2024. 11. 20. 23:53
20241012 4.4.4 버디 시스템의 페이지 해제 (p336) ~ 4.5 pcp (355)

__free_one_page - 여기서 해제시 머지하는 부분은 이해가 됐음, - *다만 max_order, MAX_ORDER, pageblock_order 의 이해가 명확하지 않음* - buddy 할당자에서 struct page 의 Privatge 은 order 값으로 사용. (2^order 사이즈) - 상위 슬롯에서 버디를 발견하면 cold (뒤로 넣는다) static inline int page_is_buddy(struct page *page, struct page *buddy,unsigned int order) -> 이게 buddy 만 실제 buddy 로 Free 인지 검사하기 때문 ┌────────────────────┐└──▲──────────▲──────┘┌──┼──────┐┌──┼──────..

개발/코드로 알아보는 ARM 리눅스 커널 TIL 2024. 11. 20. 23:46
20241005 4.4.3 버디 시스템의 페이지 할당 (p322)

Page: 가상 메모리에서 사용되는 단위. Page Frame: 물리 메모리에서 사용되는 단위. PageDescriptor : PageFrame 의 상태 정보. memmap 으로 사용 페이지 지울때 static inline void rmv_page_order(struct page *page){__ClearPageBuddy(page);set_page_private(page, 0);}static inline void __ClearPageBuddy(struct page *page){VM_BUG_ON_PAGE(!PageBuddy(page), page);atomic_set(&page->_mapcount, -1);}page 의 private 변수는 여러 용도로 쓰이지만 버디에서는 이렇게 사용 - 버디 시스템에서 p..

개발/코드로 알아보는 ARM 리눅스 커널 TIL 2024. 11. 20. 23:43
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • 링크드인
  • 깃허브
TAG
  • 에러 위치 찾기
  • it's called a vrpit
  • ad skip
  • red underline
  • vrpit
  • mysql
  • set value
  • chrome-extension
  • hole-punching
  • SuffixArray
  • RVO
  • 우리는 vr핏이라고 부릅니다
  • cockroach db
  • Visual Studio
  • Golang
  • 클래스 맴버 변수 출력하기
  • 잘못된 빨간줄
  • 봄날에 스케치
  • 면접
  • boost
  • print shared_ptr class member variable
  • Quest2
  • 코어 남기기
  • C++
  • Reciprocal n-body Collision Avoidance
  • Obstacle Avoidance
  • vr핏
  • 카카오
  • 영상 픽셀화 하기
  • shared_from_this
more
«   2024/11   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바