Skip to content

Fix/verify sleep during DATA IN/DATA OUT/STATUS phase #949

@uweseimet

Description

@uweseimet

There is a sleep() method which is called 3 times in the SCSI controller (DataIn(), DataOut(), Status()). The comments in the source say "Minimum execution time", but I am not aware of a minimum execution time being mentioned in the SCSI standard. In addition, when there are no data to be transferred DataIn() and DataOut() effectively sleep twice, because there is also a call to sleep in Status():

		// Minimum execution time
		if (execstart > 0) {
			Sleep();             <--- First sleep()
		}

		// If the length is 0, go to the status phase
		if (!HasValidLength()) {
			Status();        <--- Second sleep() in the Status() method
			return;
		}

After removing the Sleep() method and testing the result I could not find anything wrong. What is the reason for sleeping, and why do DataIn() and DataOut() effectively sleep twice?

Also see #1287.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions