Udostępnij przez


Zarządzanie kolejkami storportu

Aby korzystać z funkcjonalności adapterów pamięci masowej o wysokiej wydajności, sterowniki miniportu muszą kontrolować swoje kolejki urządzeń, wstrzymując i wznawiając je w sposób maksymalizujący wydajność.

W modelu kolejki portów SCSI zarządzanie kolejkami jest wyłączną domeną sterownika portu. W modelu kolejki Storport sterownik portu dostarcza kilka procedur obsługi zarządzania kolejkami, które dają sterownikowi miniportu znaczną ilość kontroli zarządzania kolejkami.

W modelu kolejki Storport wszystkie żądania są kolejkowane w sterowniku portu w kolejkach na jednostkę logiczną. Bez rozszerzonej obsługi SRB każda jednostka logiczna może mieć maksymalnie 255 zaległych żądań. W przeciwnym razie głębokość kolejki jest ograniczona tylko przez dostępne zasoby systemowe lub możliwości adaptera. Po osiągnięciu limitu dla głębokości kolejki Storport wstrzymuje kolejne żądania do tej jednostki logicznej, dopóki liczba zaległych żądań do jednostki nie spadnie poniżej maksymalnej głębokości kolejki.

Nie ma wstępnie zdefiniowanych limitów ze strony modułu Storport dla liczby oczekujących żądań, które może mieć adapter. Na przykład karta z dołączonymi do niej 55 jednostkami logicznymi z głębokością kolejki 255 może jednocześnie obsłużyć maksymalnie 14 025 żądań (55 x 255). Zapoznaj się z poniższym diagramem, aby uzyskać opis modelu kolejkowania sterownika portu.

diagram ilustrujący model kolejkowania sterownika portu.

Model kolejkowania sterownika portu

Jeśli adapter i jednostka logiczna są gotowe do odbioru żądania, system wywołuje procedury sterownika miniportu HwStorBuildIo i HwStorStartIo w tej kolejności.

W przeciwieństwie do portu SCSI, Storport umożliwia sterownikom miniport powiadamianie sterownika portu o stanie zajętości. Komunikacja ta jest obsługiwana przez następujące osiem procedur, które umożliwiają sterownikowi miniportowemu sygnalizować, gdy jednostka logiczna lub adapter jest wstrzymana lub zajęta.

Storport — procedura Podjęto akcję

StorPortPauseDevice

Wstrzymywanie urządzenia przez określony okres czasu.

StorPortResumeDevice

Wznów wstrzymane urządzenie.

StorPortPause

Wstrzymaj adapter na określony okres czasu.

StorPortResume

Wznów wstrzymany adapter.

StorPortDeviceBusy

Spraw, aby urządzenie było zajęte, dopóki kolejka urządzenia nie ukończy określonej liczby żądań wejścia/wyjścia.

StorPortDeviceReady

Przygotuj zajęte urządzenie do ponownego odbierania żądań.

StorPortBusy

Uczyń adapter zajętym aż do ukończenia określonej liczby żądań we/wy.

StorPortReady

Przygotuj zajęty adapter do ponownego przyjmowania żądań.

Gdy urządzenie jest wstrzymane lub zajęte, sterownik portu nie wysyła żadnych żądań do urządzenia. Jeśli sterownik miniportu ukończy żądanie ze stanem zajętości (SRB_STATUS_BUSY lub SCSISTAT_BUSY), sterownik portu ponowi próbę żądania przez czas nieokreślony, dopóki żądanie nie powiedzie się lub nie zostanie ukończone.

Oprócz dostarczania zestawu jawnych procedur zarządzania kolejkami, które nie są dostępne w modelu kolejki portów SCSI, model kolejki Storport nie używa niejawnych procedur zarządzania kolejkami używanych przez port SCSI. W szczególności powiadomienia NextRequest i NextLuRequest są ignorowane.