免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4347 | 回复: 1
打印 上一主题 下一主题

关于驱动中socket的轮询,很纠结,大家帮设计一下~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-21 15:25 |只看该作者 |倒序浏览
现在我一个驱动,很简单,用sock_create_kern来创建socket,然后利用sock_recvmsg去接收对应socket的数据,然后保存到相应的buffer中。。现在这个轮询套接口让我很郁闷。
因为有很多socket,这些socket不是一加载就生产,是交给应用层的程序去发送命令然后生成。一旦生成,工作线程就开始工作,不断的去轮询socket,不管是否有数据接收都一直轮询,这个时候如果没有数据光一个死循环的话就会将CPU耗光,其他操作根本等不到CPU。感觉这样很浪费CPU。
现在我就想找一种像应用层程序那样的io复用机制,像select,epoll那样的,可以根据是否有数据来而去接收数据,而不用一直转线程来接收,这样可以减少CPU的工作。。。
现在我在驱动找不到这样的一种方法,请问大家是否有方法解决,请大家多多指教。。。
thanks。

论坛徽章:
0
2 [报告]
发表于 2010-12-24 14:01 |只看该作者
为什么一直轮循而不睡眠,驱动通知应用程序也可以用fasync
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP