用户和内核之间的大数据流

发布于 2024-12-08 13:29:39 字数 139 浏览 1 评论 0原文

在用户级和内核级之间实现双向数据流的最佳方式(性能)是什么?

我知道您可以打开 NETLINK 套接字并通过那里传输数据。但是,我们必须采用一些其他的用户内核交互(系统调用、ioctl)来发送控制信息。这是跨用户内核边界传输大量数据的最有效方法吗?

What is the best way(performance) to have a bi-directional data flow between user-level and kernel-level ?

I understand that you can open a NETLINK socket and transfer the data through there. But, we have to adopt some other user-kernel interaction(system calls, ioctl) for sending control information across. Is this the most efficient way to transfer large amount of data across user-kernel boundary ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

西瓜 2024-12-15 13:29:39

将大量数据缓冲区传递到内核驱动程序/线程/无论什么都没有问题 - 内核有权限读取它,没有问题。对于返回内容,通常的方法是为内核提供足够大的用户空间缓冲区或缓冲池,以供其返回数据。这就是通常的内容的完成方式 - 文件/网络读/写,例如例子。

更准确地说,问题是什么 - 您是否需要在另一台机器上将数据传输到内核级别/从内核级别传输数据?

平均值,
马丁

Passing large buffers of data into the kernel driver/thread/whatever is no problem - the kernel has the privilege to read it, no problem. For returning stuff, the ususal way is to provide the kernel thingy with a sufficiently large user-space buffer, or buffer pool, for it to return data in. That's how its done for the usual stuff - file/network read/write, for example.

What is the problem, more exactly - do you need to transfer the data to/from kernel level on a different machine?

Rgds,
Martin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文