2015-01-28 3 views
0

소스 코드 파일의 설명서와 주석을 읽었으나 최신 커널 릴리스에서 LRU를 구현하는 정확한 기능/코드를 파악할 수 없습니다. 나는 그것에 약간 수정을하고 싶다. 그래서 나는 그것을 찾고있다.LRU를 구현할 Linux 커널 코드는 어느 부분입니까?

나는 커널은 활성 및 비활성 목록을 유지하고 있음을 건너했습니다. 이 코드는 어디에 있습니까?

답변

1

커널 v3.18을 가정하면 대부분의 LRU 관련 코드는 mm/swap.c입니다. 이 파일을 보면 다음에서 관심이 무엇 아마도 많은 기능이 있습니다 예를 들면 다음과 같습니다.

void lru_cache_add_active_or_unevictable(struct page *page, 
             struct vm_area_struct *vma) 

참조 : 다른 관련된 mm의 파일뿐만 아니라이 있습니다 http://lxr.free-electrons.com/source/mm/swap.c#L660

. 리눅스 가상 메모리 (종종 "VM"으로 줄임)와 관련된 파일과 이름에 "swap"이있는 파일을 살펴보십시오.

Linux의 LRU 관련 자료는 오래 전에 발견되었습니다. 일반적인 개념은 아마도 동일 할 지 모르지만 많은 일들로 이름을 바꾸거나 이동했습니다.

+0

무엇 fault.c 등은 어떻습니까? 그게 뭐지? 설명서는 어디에서 찾을 수 있습니까? pls help – user1836386

+0

'fault.c'에 대한 주요한 점은 아키텍쳐에 특정한 페이지 폴트 처리입니다. 예를 들어,'do_page_fault()'함수는'handle_mm_fault()'를 호출합니다. 이것은'mm/memory.c'에 있습니다. 불행히도, 나는 (소스 코드의 주석을 제외하고는) 어떤 문서도 모른다. 당신은 소스 코드를 읽을 필요가있을 것입니다. – mauzel