首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux-kernel模块分配的最大内存

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

Stack Overflow用户
提问于 2012-11-07 19:27:53
回答 1查看 1.4K关注 0票数 0

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

但是主要的问题是我的模块非常大&它也做了很多处理。因此,在内核模块中进行此处理是好的,还是应该将信息和包传递到用户空间进行处理,以避免复杂性。

我这样做只是为了让数据包处理得非常快。

因此,linux内核模块可以分配的最大内存量。

EN

回答 1

Stack Overflow用户

发布于 2012-11-07 21:18:03

当在内核空间运行而不是在用户空间运行时,网络包总是更快。请记住,必须将其复制到用户空间,这是一个开销很大的操作。然而,并不是所有的东西都应该在内核空间中运行,因为这会使系统非常不稳定,因为每一个bug都是潜在的内核崩溃。因此,如果您想使用内核或用户空间来编写应用程序,这在很大程度上取决于您的规范。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13268824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档