问题:用kmalloc在内核态申请16M内存失败了,经过查阅发现kmalloc最大只能申请4M的空间。
解决方案:
1.如果要改变最大申请容量,需要重新编译内核。但是我的环境没法这么做。如果你也碰到相同的问题,可以尝试用vmalloc,不过vmalloc申请的空间不连续。
2.拆分成多个4M,进行kmalloc申请,但是这样做进行具体数据操作的时候比较麻烦。我最后是取了个巧,直接在内核态注册了一个16M的数组,但是这么写可扩展性很差,然后也不知道后期会有什么问题。
先记录一下这个问题,看看以后有没有更好的方法解决。如果有大佬有缘看到这篇帖子帮帮忙,小弟不胜感激。