아시겠지만, user space에 할당되거나 page cache로 사용되는 페이지들은
관리를 위해 해당 zone의 active_list 혹은 inactive_list에 포함됩니다.
이 때 사용되는 것이 page 구조체의 lru 필드입니다.
하지만 할당되지 않은 페이지나 slab 등의 커널 동적 메모리로 사용되는 페이지는
여기에 포함되지 않으므로 lru 필드를 다른 목적으로 사용합니다.
말씀하신 slab에 속한 페이지의 경우는 lru 필드를 리스트로 사용하지 않고
lru.prev에는 slab descriptor를, lru.next에는 cache descriptor를
저장하도록 되어있습니다.
예전 버전의 경우 page 구조체는 include/linux/mm.h에 정의되어 있었는데
요즘에는 include/linux/mm_types.h에 있는 것 같습니다.
least recently used
아시겠지만, user space에 할당되거나 page cache로 사용되는 페이지들은
관리를 위해 해당 zone의 active_list 혹은 inactive_list에 포함됩니다.
이 때 사용되는 것이 page 구조체의 lru 필드입니다.
하지만 할당되지 않은 페이지나 slab 등의 커널 동적 메모리로 사용되는 페이지는
여기에 포함되지 않으므로 lru 필드를 다른 목적으로 사용합니다.
말씀하신 slab에 속한 페이지의 경우는 lru 필드를 리스트로 사용하지 않고
lru.prev에는 slab descriptor를, lru.next에는 cache descriptor를
저장하도록 되어있습니다.
예전 버전의 경우 page 구조체는 include/linux/mm.h에 정의되어 있었는데
요즘에는 include/linux/mm_types.h에 있는 것 같습니다.
친절한 답변
친절한 답변 감사드립니다^^; 열심히 공부해 보겠습니다~~
댓글 달기