James Bottomley <James.Bottomley@xxxxxxxxxxxx> wrote: > On Thu, 2005-09-15 at 15:57 -0400, James Bottomley wrote: > > I haven't had time to review the eh changes, but I was going to reply to > > the other one (basically there's a better way to try to close the device > > add/host remove race using the host state model). > > > > Let me complete the SCSI process and I'll take them through the scsi-rc- > > fixes tree. > > Well, I think the symptoms are racing scsi_remove_host() calls and the > solution is to enforce the state model on removal (as in if the host is > already in the remove state, don't try to remove it again). > > Could you try the patch here: > > http://marc.theaimsgroup.com/?l=linux-scsi&m=112613077011571 > > And see if it will fix the problem? > A side effect of not applying Alan's previous patch that added SHOST_RECOVERY to the SHOST_CANCEL: state is that we will not move to the SHOST_CANCEL and subsequently not to SHOST_DEL state if the eh is active during the start of scsi_remove_host. I sent mail on the 7th indicating to include that state change hunk of the diff, but I guess that overlapped with your newer state changes. http://marc.theaimsgroup.com/?l=linux-scsi&m=112238726326927&w=2 In looking at the state model introduced by your patch I believe there may still be a state model race issue if the recovery completes just after the "if (!scsi_host_set_state(shost, SHOST_CANCEL))" call in scsi_remove_host (maybe I am just looking to quickly at the state updates). I still do not understand as I asked in a previous comment why we are not shutting down the eh_thread in scsi_remove_host and also why simpler state model updates could not solve the problem. I believe I also indicated that we could enhance scsi_error to shutdown faster during this state which should only be a performance improvement. -andmike -- Michael Anderson andmike@xxxxxxxxxx - : 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