2011-08-23 5 views
4

일부 성능 프로파일 링 및 버퍼링 전략에 영향을주는 런타임 결정을 설정하려고합니다. 내 응용 프로그램은 라이브러리 (CUDA 또는 OpenCL)에 의해 할당 된 버퍼에 대한 포인터를받습니다.메모리가 고정 (고정) 되었습니까?

어떻게 메모리 영역이 페이지 잠김 상태인지 테스트 할 수 있습니까?

내가 알 수있는 한 POSIX는 mlock()munlock()을 제공합니다. 가상의 mislocked()을 효과적으로 확인하려면 어떻게해야합니까?

Mac OS X 또는 Linux에 대한 대답이 유용 할 것입니다.

thisthis과 같이 드라이버 라이브러리의 작성자가이 테스트를 수행하는 방법을 알아 냈음을 알 수 있습니다. 내 사용자 코드에서 어떻게 할 수 있습니까?

답변

2

/proc/$PID/smaps에는 페이지가 잠겼는지 여부를 간단하게 보장 할 수있는 "잠금 :"행이 있습니다. 그렇지 않으면 /proc/$PID/pagemap 인터페이스를 참조하십시오.

+0

마지막으로 리눅스 시스템에서이를 테스트 할 수 있습니다. 이것은 괜찮은 접근 방식입니다. 내 프로그램에서 좀 더 쉽게 부를 수있는 뭔가가 있기를 바랬지 만 함께 할 수 있습니다. 나는 누군가가 proc 가상 파일 시스템을 구현하지 않는 OS X 접근법을 제안 할 수 있는지 좀 더 자세히보고있다. – NoahR

+0

도움 주셔서 감사합니다 @adobriyan! – NoahR