커널 page 구조체 관련 질문 드립니다.
글쓴이: happyKYS / 작성시간: 수, 2013/05/08 - 1:31오후
안녕하세요. 커널 memory 쪽 분석 도중 궁금한 사항이 생겨 질문드립니다.
보통 32bit linux kernel에서 물리메모리는 page frame 4KB 단위로 쪼개서 관리하는 것으로 알고 있습니다.
궁금한 것은 이 page frame과 매칭되는 가상 주소 영역의 page 디스크립터가 있을 것인데요, 이 page 디스크립터들은 영구적으로 low memory에 위치하는 것으로 알고 있습니다.
이 page 디스크립터들이 위치하고 있는 영역이 어딘지 찾고 싶은데 조언좀 부탁드립니다.
감사합니다.
Forums:
x86의 경우 page table
entry를 가르키는 ptr 주소를 레지스터에 저장하므로 이를 찾아가면 될 것 같습니다.
page table이 아니라 page 구조체 입니다.
^^;; 제가 질문드리는 것은 ttb0 page table의 entry가 아니라(VA->PA 변환을 위해 사용, MMU), 각 물리 페이지 프레임에 대한 page 구조체의 저장 위치입니다.
답변 감사드립니다.
전역 변수 struct page *mem_map
관련 코드는 mm/page_alloc.c 를 참고하세요.
zone마다 zone_mem_map으로 위치를 갖고 있습니다.
pfn_to_page(페이지 프레임 번호) 쓰세요.
pfn_to_page(페이지 프레임 번호) 쓰세요.
Just do it!
댓글 달기