gpt4 book ai didi

c - linux-kernel 模块分配的最大内存

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:07 24 4
gpt4 key购买 nike

我想编写一个模块,其任务是捕获传入的数据包,而不将它们发送到用户空间应用程序并对捕获的数据包进行一些修改。然后该模块将发送此数据包以传输到 NIC。

但主要问题是我的模块非常大,而且它还做了很多处理。那么在内核模块中进行这个处理是否好,或者我们应该将信息和数据包传递给用户空间进行处理以避免复杂性。

&我这样做只是为了非常快速地处理数据包。
所以 linux 内核模块最多可以分配多少内存。

最佳答案

在内核空间而不是用户空间运行时,网络数据包总是更快。请记住,它必须被复制到用户空间,这是一项昂贵的操作。然而,并不是所有的东西都应该在内核空间中运行,因为这会使系统非常不稳定,因为每个错误都是潜在的内核崩溃。因此,如果您想使用内核或用户空间对应用程序进行编程,则在很大程度上取决于您的规范。

相比之下,要分配的内存量根本无关紧要。在 linux 模块中使用 kmalloc(),您可以分配与系统中实际可用内存一样多的内存,所以您应该没问题。

关于c - linux-kernel 模块分配的最大内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com