일단 10M 의 인터럽트 발생은 조금 무리가 아닐까 생각되네요..
인터럽트 핸들러에 들어 오는 속도까지가 1uSec 정도가 소용되는데
시스템이 무척 느리게 동작하지 않나요?

고속의 클럭수를 계산하는 것은 대부분 하드웨어적으로 카운터를
이용하는 것이 정석인데요...

두번째 질문은 가능은 한것으로 아는데
vmalloc 함수를 쓰시면 한번에 할당은 되겠죠...
kmalloc 을 사용하시면 여러개로 나누어서 할당 관리해야 겠죠..

해보지 않아서 추측이기는 합니다.