C 使用netlink可以传递的最大缓冲区大小以及页面大小对其的影响
我正在开发一个应用程序(ARM平台),它使用netlink消息将大小为8k的缓冲区传递给内核空间驱动程序,以从驱动程序中获取一些数据。我已使用函数C 使用netlink可以传递的最大缓冲区大小以及页面大小对其的影响,c,linux,sockets,linux-kernel,netlink,C,Linux,Sockets,Linux Kernel,Netlink,我正在开发一个应用程序(ARM平台),它使用netlink消息将大小为8k的缓冲区传递给内核空间驱动程序,以从驱动程序中获取一些数据。我已使用函数nlmsg\u alloc\u size()为nl消息分配了所需内存,但当缓冲区大小超过4k时,我们无法从驱动程序获取数据,即使驱动程序能够接收带缓冲区的netlink命令 因此,我们检查了内核源代码,发现内核中ARM的缓冲区大小限制为4096 那么,是否可以使用超过4k的缓冲区发送netlink消息?如果是这样,请提出解决方案。我相信这是最大值。如果
nlmsg\u alloc\u size()
为nl消息分配了所需内存,但当缓冲区大小超过4k时,我们无法从驱动程序获取数据,即使驱动程序能够接收带缓冲区的netlink命令
因此,我们检查了内核源代码,发现内核中ARM的缓冲区大小限制为4096
那么,是否可以使用超过4k的缓冲区发送netlink消息?如果是这样,请提出解决方案。我相信这是最大值。如果你想发送更多的数据,你可以随时将其分割。嗨,Yd Ahhrk,谢谢你的回复。我已经浏览了一些链接,但没有找到任何相关链接来描述如何将大缓冲区分割成小缓冲区。那么,你能引导我通过相关链接吗?或者如果你不介意,请你解释一下。提前谢谢