使用HZ值时超时不正确

时间:2013-01-02 09:28:06

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

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

usb_bulk_msg(context->udev, pipe, context->buffer, context_size, &bytes_read,
    10000 );    // 10 seconds
//  10*HZ);     // 2.5 seconds

用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。

1 个答案:

答案 0 :(得分:2)

那是因为usb_bulk_msg将数字毫秒而不是jiffies的数量作为其第六个参数:

  

超时

     
    

在msecs中等待消息在超时之前完成的时间(如果等待是永久的0)