【问题标题】:Incorrect timeout using HZ value使用 HZ 值的超时错误
【发布时间】:2013-01-02 09:28:06
【问题描述】:

用 timeout 参数运行函数,我发现硬编码的 10000 值给出 10 秒超时,10*HZ 值给出 2.5 秒超时:

usb_bulk_msg(context->udev, 管道, context->buffer, context_size, &bytes_read, 10000); // 10 秒 // 10*HZ); // 2.5 秒

用 printk 打印的 HZ 值是 250 - 这个值是不正确的。查看 Linux 源代码:http://lxr.free-electrons.com/source/include/asm-generic/param.h#L6,我看到 HZ 被定义为 CONFIG_HZ - 看起来像配置参数。为什么这个值不正确,还有其他方法可以指定 jiffies 超时吗?

Ubuntu 12.04,32 位,内核版本 3.2.34。

【问题讨论】:

  • usb_bulk_msg 按照设计需要几毫秒,而不是几毫秒。
  • @Tinctorius:谢谢。请将此作为答案发布,我会接受。

标签: linux-kernel timeout linux-device-driver


【解决方案1】:

这是因为usb_bulk_msg 将毫秒数而不是 jiffies 数作为其第六个参数:

超时

在超时前等待消息完成的时间(以毫秒为单位)(如果为 0,则永远等待)

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 2015-03-20
    • 2018-11-27
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多