Timedout when used with -C mode

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Timedout when used with -C mode

Ying Chu

Hi, Buddies from smart team
 
Recently, I meet timeout issue when used smartctl in captive mode, e.g
    smartctl -t short -C /dev/sda
 
It seems we'd better adjust the timeout threshold when sending a SG_IO request.
original snip in scsicmds.h
#define SCSI_TIMEOUT_DEFAULT    6               /* 6 seconds should be ample */
                                                       ~~~~~~~~~~~~~~~~~~~~~
                                                           I'm not sure.
         
Or for Linux, can we use the default request timeout setting,  in Linux kernel

681 #define BLK_DEFAULT_SG_TIMEOUT  (60 * HZ)
 
192 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,                        
193                              struct sg_io_hdr *hdr, fmode_t mode)                                
194 {                                                                                                
195         if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))                                    
196                 return -EFAULT;                                                                  
197         if (blk_verify_command(&q->cmd_filter, rq->cmd, mode & FMODE_WRITE))                    
198                 return -EPERM;                                                                  
199                                                                                                  
200         /*                                                                                      
201          * fill in request structure                                                            
202          */                                                                                      
203         rq->cmd_len = hdr->cmd_len;                                                              
204         rq->cmd_type = REQ_TYPE_BLOCK_PC;                                                        
205                                                                                                  
206         rq->timeout = msecs_to_jiffies(hdr->timeout);                                            
207         if (!rq->timeout)                                                                        
208                 rq->timeout = q->sg_timeout;                                                    
209         if (!rq->timeout)                                                                        
210                 rq->timeout = BLK_DEFAULT_SG_TIMEOUT;                                            
211         if (rq->timeout < BLK_MIN_SG_TIMEOUT)                                                    
212                 rq->timeout = BLK_MIN_SG_TIMEOUT;                                                
213                                                                                                  
214         return 0;                                                                                
215 }
 
if possible, we can set the timeout zero by default, and let OS decide how to do, or
we enlarge the timeout limit.
 
TIA.
 
_________________________________________________________________
Drag n’ drop—Get easy photo sharing with Windows Live™ Photos.

http://www.microsoft.com/windows/windowslive/products/photos.aspx
------------------------------------------------------------------------------
_______________________________________________
Smartmontools-support mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/smartmontools-support
Loading...