问题另外一个意思是: 中断中产生一个vmalloc_fault 类型的page fault, 可以吗?
做的平台是arm, 想要用vmalloc申请一个64k的内存页, 给supoer block info (一般fs驱动里面大家都用的kmalloc,但是它要分配16个连续页可能分配不成功, 因为页碎片厉害), 我但是不知道这么做有没有问题...
因为vmalloc()干的事情是:
1. 分配了真实物理页面(比如代号PPP)
2. 映射了主页表。
如果一个用户进程执行中, 硬件中断访问了这个PPP的某一个地址, 那么由于用户进程没有和主页表同步, 于是发生缺页异常(但是页表异常里面干的事情就是执行一个set_pte来同步一下页表就退出)
看这个里面的讨论, x86、arm都差不多是相同的如上描述的情况:
http://bbs.chinaunix.net/thread-4077478-1-1.html
就想请教, 如果知道vmalloc出来的这片地址不会被用到dma 里面去, 如果仅仅是异常里面同步一下页表,是不是就没有问题?
谢谢