On Fri, 2008-03-07 at 18:50 +0800, Ke Wei wrote: > On a system with many SAS targets, It appears possible that a > scsi_cmnd can time out without ever making it to the SAS LLDD or at > the same time that a completion is occurring. > in file sas_scsi_host.c : > /* Queue up, Direct Mode or Task Collector Mode. */ > if (sas_ha->lldd_max_execute_num < 2) > res = i->dft->lldd_execute_task(task, > 1, GFP_ATOMIC); > else > res = sas_queue_up(task); > If I set lldd_max_execute_num above 1, I find that libsas couldn't > queue a task to the SAS LLDD sometimes. > System will always report: not at initiator: EH_RESET_TIMER. > Is queue_thread pending? I will keep investigating. Oh, actually, that's the old task collector mode. I keep meaning to strip it out of libsas ... this provides a good excuse. Basically the only valid case is lldd_max_execute_num == 1 since, as you found, anything above that doesn't work. Are you still seeing timeouts in the lldd_max_execute_num == 1 case? And if so, is that still with can_queue == 1? James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html