gpt4 book ai didi

c - 如何在内核中记录大量数据

转载 作者:太空狗 更新时间:2023-10-29 15:27:04 28 4
gpt4 key购买 nike

我正在尝试记录内核输出的大量数据。本质上,我试图记录内核中进程上下文切换的所有方式。即使是 1 分钟的分析,记录的数据也将是巨大的,我该怎么做。我必须打开一个巨大的缓冲区,将数据记录在其中,然后将其发送到用户空间进行进一步分析。

编辑:为了阐明下面的“BIG”有多大是我试图解决其大约 10000 行输出的确切问题

最佳答案

我的建议是使用与 linux 内核相同的想法来捕获数据包,特别是数据包环形缓冲区(搜索:PACKET_RX_RING)。

思路很简单,在你的用户空间程序中,分配环。然后将这个环传递给“驱动程序”(你的内核模块),然后你的驱动程序可以简单地将数据点写入环中,你的用户空间程序可以读取这些。因为它是一个环,你可以简单地继续写,客户端可以继续阅读 - 如果客户端落后,你的驱动程序可能会接管(一旦它绕过环),但我相信你可以适当调整戒指的尺寸。

环中的每个槽都应该包含您的“序列化”数据,用户空间程序可以简单地读取这些数据。这种类型的环应该很容易实现无锁,并且很可能您希望您的客户端旋转以查看是否有数据。

关于c - 如何在内核中记录大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433048/

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