From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vadim Rozenfeld Subject: [PATCH] viostor driver. some steps toward better performance on XP. Date: Thu, 29 Oct 2009 09:39:48 +0200 Message-ID: <4AE946C4.7030709@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070209070006080205010303" To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:47278 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750889AbZJ2Hjq (ORCPT ); Thu, 29 Oct 2009 03:39:46 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9T7dplI026357 for ; Thu, 29 Oct 2009 03:39:51 -0400 Received: from localhost.localdomain (vpn-6-121.tlv.redhat.com [10.35.6.121]) by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id n9T7dmAX006380 for ; Thu, 29 Oct 2009 03:39:50 -0400 Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------070209070006080205010303 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit repository: /home/vadimr/shares/kvm-guest-drivers-windows branch: XP commit 844cc39863ca914cf47a1fe2e8cde4ea1079753b Author: Vadim Rozenfeld Date: Thu Oct 29 09:34:19 2009 +0200 [PATCH] viostor driver. some steps toward better performance on XP. Signed-off-by: Vadim Rozenfeld 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; --------------070209070006080205010303 Content-Type: text/plain; name="xp_performance.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xp_performance.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; --------------070209070006080205010303--