[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] commit "Make sure we don't leave SRBs in state PENDING" introduces race
Hello Paul, SrbExt->Count = PdoQueueRequestList(Pdo, &List); + Srb->SrbStatus = SRB_STATUS_PENDING; return TRUE; doesn't everything you do after PdoQueueRequestList introduce a race, be it writing to SrbExt->Count or setting Srb->SrbStatus? In PdoCompleteResponse if (InterlockedDecrement(&SrbExt->Count) == 0) { --->race if (Srb->SrbStatus == SRB_STATUS_PENDING) { // SRB has not hit a failure condition (BLKIF_RSP_ERROR | BLKIF_RSP_EOPNOTSUPP) // from any of its responses. SRB must have succeeded Srb->SrbStatus = SRB_STATUS_SUCCESS; Srb->ScsiStatus = 0x00; // SCSI_GOOD } else { // Srb->SrbStatus has already been set by 1 or more requests with Status != BLKIF_RSP_OKAY Srb->ScsiStatus = 0x40; // SCSI_ABORTED } So you may overwrite an already existing error condition. I would really suggest to use my patch. So far load tests are finally stable with it. Regards Andreas _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |