모두. 나는 다음 질문에 붙어있다.회수하기 전에 캐시 된 페이지를 작성하십시오.
하드 디스크의 캐시 계층으로 ssd를 사용하는 하이브리드 스토리지 시스템에서 작업하고 있습니다. 이를 위해 하드 디스크에서 읽은 데이터를 ssd에 기록하여이 데이터의 후속 읽기를 향상시켜야합니다. 리눅스는 디스크에서 읽은 데이터를 페이지 캐시에 캐시하기 때문에 ssd에 대한 데이터 쓰기가 지연 될 수 있습니다. 그러나 데이터를 캐싱하는 페이지는 해제 될 수 있으며 해제 된 페이지에 액세스하는 것은 권장되지 않습니다. 다음은 질문입니다. "struct page"포인터가 ssd에 쓰여질 페이지를 가리키고 있습니다. 포인터로 표현 된 페이지가 유효한지 아닌지를 판단 할 수있는 방법이 있습니까? (유효하면 캐시 된 페이지를 ssd에 안전하게 쓸 수 있습니다.) 포인터를 통해 해제 된 페이지에 액세스하면 어떻게됩니까? 해제 된 페이지와 동일?
답장을 보내 주셔서 대단히 감사합니다. 사실 내 구현은 Bcache와 비슷한 목적을 가진 flashcache를 기반으로합니다. 다음은 좀 더 구체적인 질문입니다. – user2813839
깨끗한 페이지를 작성하려면 해당하는 BIO 구조가 있어야합니다. 그러나 BIO를 대기열에 대기시켜 제출을 지연시키고 싶습니다. 내 질문은 : 1) BIO가 대기열에있을 때 페이지가 수정되어 더러워 질 수 있습니까? 2) 쓰기 되돌림은 페이지의 수정 된 부분을 디스크 또는 전체 페이지에만 기록합니까? 3) 대기열에있는 동안 페이지가 깨끗하면 페이지를 해제 할 수 있습니까? @lsk – user2813839