diff mbox

viostor driver. some steps toward better performance on XP.

Message ID 4AE946C4.7030709@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vadim Rozenfeld Oct. 29, 2009, 7:39 a.m. UTC
None
diff mbox

Patch

diff --git a/viostor/virtio_stor.c b/viostor/virtio_stor.c
index d363909..8b91e62 100644
--- a/viostor/virtio_stor.c
+++ b/viostor/virtio_stor.c
@@ -1131,6 +1131,9 @@  CompleteDPC(
      }
  #endif
      CompleteSRB(DeviceExtension, Srb);
+#ifndef USE_STORPORT
+    --adaptExt->requests;
+#endif
  }

  #ifdef USE_STORPORT
diff --git a/viostor/virtio_stor.h b/viostor/virtio_stor.h
index 456fa0e..c00600c 100644
--- a/viostor/virtio_stor.h
+++ b/viostor/virtio_stor.h
@@ -105,6 +105,8 @@  typedef struct _ADAPTER_EXTENSION {
      LIST_ENTRY            complete_list;
  #ifdef USE_STORPORT
      STOR_DPC              completion_dpc;
+#else
+    ULONG                 requests;
  #endif
      BOOLEAN               has_sn;
      ULONG                 msix_vectors;
diff --git a/viostor/virtio_stor_hw_helper.c b/viostor/virtio_stor_hw_helper.c
index ed6abf7..21d27cd 100644
--- a/viostor/virtio_stor_hw_helper.c
+++ b/viostor/virtio_stor_hw_helper.c
@@ -94,9 +94,11 @@  RhelDoReadWrite(PVOID DeviceExtension,
                                        &srbExt->vbr.sg[0],
                                        srbExt->out, srbExt->in,
                                        &srbExt->vbr) == 0) {
-//FIXME
          InsertTailList(&adaptExt->list_head,&srbExt->vbr.list_entry);
          adaptExt->pci_vq_info.vq->vq_ops->kick(adaptExt->pci_vq_info.vq);
+        if(++adaptExt->requests<  adaptExt->queue_depth) {
+           ScsiPortNotification(NextLuRequest, DeviceExtension, Srb->PathId, Srb->TargetId, Srb->Lun);
+        }
          return TRUE;
      }
      return FALSE;