尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

7、驱动性能分析与优化-- 驱动中的I/O性能模型

7、驱动性能分析与优化-- 驱动中的I/O性能模型 7.1 同步I/O模型:简单但低效同步I/O,也叫阻塞I/O。驱动发起一个读写请求后,就傻等着硬件完成操作,期间啥也不干。嗯,这就像你去柜台办业务,窗口说“等着”,你就真在那儿站着不动。核心特征:调用线程被挂起,直到I/O完成才返回。// 典型的同步I/O驱动代码 ssize_t my_driver_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos) { struct my_device *dev = filp-private_data; unsigned long timeout; // 发起硬件读取 writel(READ_CMD, dev-regs + CMD_REG); // 等待硬件完成 - 这里线程被阻塞 timeout = wait_for_completion_timeout(dev-read_done, msecs_to_jiffies(1000)); if (timeout == 0) { return -ETIMEDOUT; // 超时了 } // 拷贝数据到用户空间 if (copy_to_user(buf, dev-buffer, count)) { return -EFAULT; } return count; }
返回列表