[질문] 커널 모듈에서 대량의 메모리 할당 방법
글쓴이: 김희상 / 작성시간: 금, 2003/06/13 - 9:40오전
6GB의 메모리를 가지고 있는 x86계열의 SMP 머신이 있는데요...
RedHat이 깔려있고요...Kernel은 2.4버전대 입니다.
(6GB를 제대로 인식하는 걸 보니 bigmem patch가 적용된거 같더군요....자세히는 잘 모르겠네요)
커널 모듈에서 1~2GB정도의 메모리를 할당하고 싶은데....
아니면, 1~10MB정도의 물리적으로 연속된 페이지들을 수십~수백(?)개정도
할당해도 좋고요.....
1. kmalloc, __get_free_pages들을 해봐도 2^5 * PAGE_SIZE를 넘어서는 값들은 할당이 실패할 경우가 많더군요
2. grub.conf에서 mem=4096M 처럼 해서 2GB의 영역을 확보했다고 생각했지만(실제로, free, top등에서 보고되는 메모리는 4GB로 나옵니다.), ioremap으로 영역을 얻을려고 하면 실패합니다.
3. alloc_bootmem같은 boot-time 할당 함수들은 모듈로는 작성이 불가능한 걸로 알고 있습니다....따라서, 현재 관심밖 사항....
.... 어떤 방법이 남아있을까요?
쩝....
그럼 수고하세요~~~~
Forums:
user-level에서 동작하는 device driver를 작성해보시기를
user-level에서 동작하는 device driver를 작성해보시기를 권합니다.
커널레벨에서는 소량이거나, 제한을 받는데, user-level에서 작성하시면, 무제한(?)에 가까운 메모리를 사용하실 수 있습니다.
오래전에 보았던 Linux Device Driver책중 user-level 디바이스 드라이버 부분에서 읽었던 기억이 납니다. 그 부분을 참고하시면 해결에 보탬이 될는지도 모르겠네요. 검토해 보시지요.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기