Browse Source

NVMe: Make I/O timeout a module parameter

Increase the default timeout to 30 seconds to match SCSI.

Signed-off-by: Keith Busch <keith.busch@intel.com>
[use byte instead of ushort]
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Keith Busch 11 years ago
parent
commit
b355084a89
2 changed files with 6 additions and 1 deletions
  1. 4 0
      drivers/block/nvme-core.c
  2. 2 1
      include/linux/nvme.h

+ 4 - 0
drivers/block/nvme-core.c

@@ -50,6 +50,10 @@
 #define CQ_SIZE(depth)		(depth * sizeof(struct nvme_completion))
 #define CQ_SIZE(depth)		(depth * sizeof(struct nvme_completion))
 #define ADMIN_TIMEOUT	(60 * HZ)
 #define ADMIN_TIMEOUT	(60 * HZ)
 
 
+unsigned char io_timeout = 30;
+module_param(io_timeout, byte, 0644);
+MODULE_PARM_DESC(io_timeout, "timeout in seconds for I/O");
+
 static int nvme_major;
 static int nvme_major;
 module_param(nvme_major, int, 0);
 module_param(nvme_major, int, 0);
 
 

+ 2 - 1
include/linux/nvme.h

@@ -66,7 +66,8 @@ enum {
 
 
 #define NVME_VS(major, minor)	(major << 16 | minor)
 #define NVME_VS(major, minor)	(major << 16 | minor)
 
 
-#define NVME_IO_TIMEOUT	(5 * HZ)
+extern unsigned char io_timeout;
+#define NVME_IO_TIMEOUT	(io_timeout * HZ)
 
 
 /*
 /*
  * Represents an NVM Express device.  Each nvme_dev is a PCI function.
  * Represents an NVM Express device.  Each nvme_dev is a PCI function.