我正在使用x86-64 CentOS 7上的Linux驱动程序。
我们有一个内核模块,可以读取和写入文件。
此模块尝试获取保证连续的页面。
当我尝试5 GB或10 GB的较小read/write
个作业时,它可以正常工作。我得到了正确的内核虚拟地址空间指针,如0xffff 8xxx xxxx xxxx
但是,如果我尝试更大的工作/数据(例如20到50 GB),那么我会得到这些类似0x0000 00xx xxxx xxxxx
的地址指针。这些不是内核虚拟地址空间指针。
由于这个原因,我发现操作系统崩溃了。
但是,如果我在作业期间使用echo 3 > /proc/sys/vm/drop_caches
清除缓存频率,那么它工作正常,我得到正确的内核虚拟地址空间指针。
我为这种模糊的问题道歉。 欢迎任何提示和建议。
由于