Linux kernel 使用HZ值的超时不正确

Linux kernel 使用HZ值的超时不正确,linux-kernel,timeout,linux-device-driver,Linux Kernel,Timeout,Linux Device Driver,运行带有timeout参数的函数时,我发现硬编码的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源代码:,我看到HZ被定义为CONFIG_HZ-看

运行带有timeout参数的函数时,我发现硬编码的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源代码:,我看到HZ被定义为CONFIG_HZ-看起来像配置参数。为什么此值不正确,是否有其他方法指定jiffies超时

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

这是因为它的第六个参数是毫秒数,而不是jiffies数:

超时

超时前等待消息完成的时间(毫秒),如果0,则等待是永久性的


usb\u bulk\u msg按设计需要毫秒数,而不是jiffies数。@Tinctorius:谢谢。请把这个作为答案贴出来,我会接受的。