+ -
当前位置:首页 → 问答吧 → 软中断中写字符设备的问题

软中断中写字符设备的问题

时间:2010-11-23

来源:互联网

软中断中将内容写到字符设备中,然后有一个demo进程从这个字符设备中读取内容,写到磁盘上。
现在有一个问题比较纠结:
软中断写的时候,实际上就是链表的操作,需要用自旋锁同步,如果用信号量会睡眠,所以最好用自旋锁。
但是在字符设备中,也需要跟软中断中的写操作同步,因为有copy_to_user函数的调用,所以只能用信号量。
那如何解决上述问题啊?

作者: 瀚海书香   发布时间: 2010-11-23

用work_queue?

作者: sep   发布时间: 2010-11-23

字符设备的read操作会spin_lock_bh进入临界区,然后从链表取数据。为什么copy_to_user也要放到临界区里面去呢?取完数据就spin_unlock_bh,然后再copy_to_user不行么?

作者: kouu   发布时间: 2010-11-23

先把数据copy 到一个缓冲区,然后再 copy_to_usr

作者: Godbach   发布时间: 2010-11-23