linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] virtio-scsi: create a separate workqueue
@ 2012-11-07 10:18 Wanlong Gao
  2012-11-07 10:18 ` [PATCH 1/5] virtio-scsi: remove the useless assignment Wanlong Gao
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm

patch 1-3,5 are some cleanups.
patch 4: create a separate work queue for virtio-scsi
to improve the performance, I tested with tmpfs backed
disk, the config file is like below,
[global]
bsrange=4k-64k
ioengine=libaio
direct=1
iodepth=4
loops=10
size=64M

Before:
Disk stats (read/write):
  sda: ios=6547/5275, merge=37/39, ticks=3144/2645, in_queue=5780, util=81.62%
  sdb: ios=6542/5277, merge=54/59, ticks=3234/3143, in_queue=6364, util=84.50%
  sdc: ios=6532/5244, merge=65/62, ticks=3440/3076, in_queue=6505, util=86.83%

After:
Disk stats (read/write):
  sda: ios=6349/5318, merge=77/89, ticks=4820/3169, in_queue=7991, util=90.62%
  sdb: ios=6364/5358, merge=39/53, ticks=3810/2816, in_queue=6615, util=84.63%
  sdc: ios=6458/5352, merge=74/47, ticks=4425/3048, in_queue=7459, util=88.41%


Wanlong Gao (5):
  virtio-scsi: remove the useless assignment
  virtio-scsi: remove the needless variable gfp_mask
  virtio-scsi: use pr_err instead of printk
  virtio-scsi: create a separate work queue for virtio-scsi
  virtio-scsi: tidy up the goto label in init()



Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
 drivers/scsi/virtio_scsi.c | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

-- 
1.8.0

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/5] virtio-scsi: remove the useless assignment
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
@ 2012-11-07 10:18 ` Wanlong Gao
  2012-11-07 10:18 ` [PATCH 2/5] virtio-scsi: remove the needless variable gfp_mask Wanlong Gao
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm, Wanlong Gao

Reassign err is not needed, just a cleanup.

Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 drivers/scsi/virtio_scsi.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index d5f9f45..8746c37 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -669,7 +669,6 @@ static int virtscsi_init(struct virtio_device *vdev,
 			goto out;
 		}
 	}
-	err = 0;
 
 out:
 	if (err)
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/5] virtio-scsi: remove the needless variable gfp_mask
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
  2012-11-07 10:18 ` [PATCH 1/5] virtio-scsi: remove the useless assignment Wanlong Gao
@ 2012-11-07 10:18 ` Wanlong Gao
  2012-11-07 10:18 ` [PATCH 3/5] virtio-scsi: use pr_err instead of printk Wanlong Gao
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm, Wanlong Gao

Just use the macro instead of define a variable.


Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 drivers/scsi/virtio_scsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 8746c37..5390229 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -587,11 +587,10 @@ static struct virtio_scsi_target_state *virtscsi_alloc_tgt(
 	struct virtio_device *vdev, int sg_elems)
 {
 	struct virtio_scsi_target_state *tgt;
-	gfp_t gfp_mask = GFP_KERNEL;
 
 	/* We need extra sg elements at head and tail.  */
 	tgt = kmalloc(sizeof(*tgt) + sizeof(tgt->sg[0]) * (sg_elems + 2),
-		      gfp_mask);
+		      GFP_KERNEL);
 
 	if (!tgt)
 		return NULL;
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/5] virtio-scsi: use pr_err instead of printk
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
  2012-11-07 10:18 ` [PATCH 1/5] virtio-scsi: remove the useless assignment Wanlong Gao
  2012-11-07 10:18 ` [PATCH 2/5] virtio-scsi: remove the needless variable gfp_mask Wanlong Gao
@ 2012-11-07 10:18 ` Wanlong Gao
  2012-11-07 10:18 ` [PATCH 4/5] virtio-scsi: create a separate work queue for virtio-scsi Wanlong Gao
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm, Wanlong Gao

Use pr_err() instead of printk() for code cleanups.

Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 drivers/scsi/virtio_scsi.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 5390229..765138a 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -790,8 +790,7 @@ static int __init init(void)
 
 	virtscsi_cmd_cache = KMEM_CACHE(virtio_scsi_cmd, 0);
 	if (!virtscsi_cmd_cache) {
-		printk(KERN_ERR "kmem_cache_create() for "
-				"virtscsi_cmd_cache failed\n");
+		pr_err("kmem_cache_create() for virtscsi_cmd_cache failed\n");
 		goto error;
 	}
 
@@ -800,8 +799,7 @@ static int __init init(void)
 		mempool_create_slab_pool(VIRTIO_SCSI_MEMPOOL_SZ,
 					 virtscsi_cmd_cache);
 	if (!virtscsi_cmd_pool) {
-		printk(KERN_ERR "mempool_create() for"
-				"virtscsi_cmd_pool failed\n");
+		pr_err("mempool_create() for virtscsi_cmd_pool failed\n");
 		goto error;
 	}
 	ret = register_virtio_driver(&virtio_scsi_driver);
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/5] virtio-scsi: create a separate work queue for virtio-scsi
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
                   ` (2 preceding siblings ...)
  2012-11-07 10:18 ` [PATCH 3/5] virtio-scsi: use pr_err instead of printk Wanlong Gao
@ 2012-11-07 10:18 ` Wanlong Gao
  2012-11-07 10:18 ` [PATCH 5/5] virtio-scsi: tidy up the goto label in init() Wanlong Gao
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm, Wanlong Gao

Create a separate work queue for virtio-scsi to improve the performance.

Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 drivers/scsi/virtio_scsi.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 765138a..fc05240 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -27,6 +27,8 @@
 #define VIRTIO_SCSI_MEMPOOL_SZ 64
 #define VIRTIO_SCSI_EVENT_LEN 8
 
+struct workqueue_struct *virtscsi_wq;
+
 /* Command queue element */
 struct virtio_scsi_cmd {
 	struct scsi_cmnd *sc;
@@ -337,7 +339,7 @@ static void virtscsi_complete_event(void *buf)
 	struct virtio_scsi_event_node *event_node = buf;
 
 	INIT_WORK(&event_node->work, virtscsi_handle_event);
-	schedule_work(&event_node->work);
+	queue_work(virtscsi_wq, &event_node->work);
 }
 
 static void virtscsi_event_done(struct virtqueue *vq)
@@ -788,6 +790,12 @@ static int __init init(void)
 {
 	int ret = -ENOMEM;
 
+	virtscsi_wq = alloc_workqueue("virtio-scsi", 0, 0);
+	if (!virtscsi_wq) {
+		pr_err("alloc_workqueue() for virtscsi_wq failed\n");
+		goto error;
+	}
+
 	virtscsi_cmd_cache = KMEM_CACHE(virtio_scsi_cmd, 0);
 	if (!virtscsi_cmd_cache) {
 		pr_err("kmem_cache_create() for virtscsi_cmd_cache failed\n");
@@ -817,6 +825,10 @@ error:
 		kmem_cache_destroy(virtscsi_cmd_cache);
 		virtscsi_cmd_cache = NULL;
 	}
+	if (virtscsi_wq) {
+		destroy_workqueue(virtscsi_wq);
+		virtscsi_wq = NULL;
+	}
 	return ret;
 }
 
@@ -825,6 +837,7 @@ static void __exit fini(void)
 	unregister_virtio_driver(&virtio_scsi_driver);
 	mempool_destroy(virtscsi_cmd_pool);
 	kmem_cache_destroy(virtscsi_cmd_cache);
+	destroy_workqueue(virtscsi_wq);
 }
 module_init(init);
 module_exit(fini);
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 5/5] virtio-scsi: tidy up the goto label in init()
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
                   ` (3 preceding siblings ...)
  2012-11-07 10:18 ` [PATCH 4/5] virtio-scsi: create a separate work queue for virtio-scsi Wanlong Gao
@ 2012-11-07 10:18 ` Wanlong Gao
  2012-11-07 12:23 ` [PATCH 0/5] virtio-scsi: create a separate workqueue Asias He
  2012-11-07 22:12 ` Paolo Bonzini
  6 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 10:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: James E.J. Bottomley, Paolo Bonzini, Rusty Russell, linux-scsi,
	kvm, Wanlong Gao

Tidy up the goto label in init(), and remove the useless
NULL pointer assignment.

Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: linux-scsi@vger.kernel.org
Cc: kvm@vger.kernel.org
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 drivers/scsi/virtio_scsi.c | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index fc05240..afee1d4 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -793,13 +793,13 @@ static int __init init(void)
 	virtscsi_wq = alloc_workqueue("virtio-scsi", 0, 0);
 	if (!virtscsi_wq) {
 		pr_err("alloc_workqueue() for virtscsi_wq failed\n");
-		goto error;
+		goto workqueue_failed;
 	}
 
 	virtscsi_cmd_cache = KMEM_CACHE(virtio_scsi_cmd, 0);
 	if (!virtscsi_cmd_cache) {
 		pr_err("kmem_cache_create() for virtscsi_cmd_cache failed\n");
-		goto error;
+		goto kmem_cache_failed;
 	}
 
 
@@ -808,27 +808,21 @@ static int __init init(void)
 					 virtscsi_cmd_cache);
 	if (!virtscsi_cmd_pool) {
 		pr_err("mempool_create() for virtscsi_cmd_pool failed\n");
-		goto error;
+		goto mempool_failed;
 	}
 	ret = register_virtio_driver(&virtio_scsi_driver);
 	if (ret < 0)
-		goto error;
+		goto register_failed;
 
 	return 0;
 
-error:
-	if (virtscsi_cmd_pool) {
-		mempool_destroy(virtscsi_cmd_pool);
-		virtscsi_cmd_pool = NULL;
-	}
-	if (virtscsi_cmd_cache) {
-		kmem_cache_destroy(virtscsi_cmd_cache);
-		virtscsi_cmd_cache = NULL;
-	}
-	if (virtscsi_wq) {
-		destroy_workqueue(virtscsi_wq);
-		virtscsi_wq = NULL;
-	}
+register_failed:
+	mempool_destroy(virtscsi_cmd_pool);
+mempool_failed:
+	kmem_cache_destroy(virtscsi_cmd_cache);
+kmem_cache_failed:
+	destroy_workqueue(virtscsi_wq);
+workqueue_failed:
 	return ret;
 }
 
-- 
1.8.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] virtio-scsi: create a separate workqueue
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
                   ` (4 preceding siblings ...)
  2012-11-07 10:18 ` [PATCH 5/5] virtio-scsi: tidy up the goto label in init() Wanlong Gao
@ 2012-11-07 12:23 ` Asias He
  2012-11-07 12:40   ` Wanlong Gao
  2012-11-07 22:12 ` Paolo Bonzini
  6 siblings, 1 reply; 10+ messages in thread
From: Asias He @ 2012-11-07 12:23 UTC (permalink / raw)
  To: Wanlong Gao
  Cc: linux-kernel, James E.J. Bottomley, Paolo Bonzini, Rusty Russell,
	linux-scsi, kvm

On Wed, Nov 7, 2012 at 6:18 PM, Wanlong Gao <gaowanlong@cn.fujitsu.com> wrote:
> patch 1-3,5 are some cleanups.
> patch 4: create a separate work queue for virtio-scsi
> to improve the performance, I tested with tmpfs backed
> disk, the config file is like below,
> [global]
> bsrange=4k-64k
> ioengine=libaio
> direct=1
> iodepth=4
> loops=10
> size=64M
>
> Before:
> Disk stats (read/write):
>   sda: ios=6547/5275, merge=37/39, ticks=3144/2645, in_queue=5780, util=81.62%
>   sdb: ios=6542/5277, merge=54/59, ticks=3234/3143, in_queue=6364, util=84.50%
>   sdc: ios=6532/5244, merge=65/62, ticks=3440/3076, in_queue=6505, util=86.83%

The result is about the disk stat. Can you please post the iops and
the bw instead?

> After:
> Disk stats (read/write):
>   sda: ios=6349/5318, merge=77/89, ticks=4820/3169, in_queue=7991, util=90.62%
>   sdb: ios=6364/5358, merge=39/53, ticks=3810/2816, in_queue=6615, util=84.63%
>   sdc: ios=6458/5352, merge=74/47, ticks=4425/3048, in_queue=7459, util=88.41%
>
>
> Wanlong Gao (5):
>   virtio-scsi: remove the useless assignment
>   virtio-scsi: remove the needless variable gfp_mask
>   virtio-scsi: use pr_err instead of printk
>   virtio-scsi: create a separate work queue for virtio-scsi
>   virtio-scsi: tidy up the goto label in init()
>
>
>
> Cc: James E.J. Bottomley <JBottomley@parallels.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: linux-scsi@vger.kernel.org
> Cc: kvm@vger.kernel.org
>  drivers/scsi/virtio_scsi.c | 43 +++++++++++++++++++++++--------------------
>  1 file changed, 23 insertions(+), 20 deletions(-)
>
> --
> 1.8.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Asias He

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] virtio-scsi: create a separate workqueue
  2012-11-07 12:23 ` [PATCH 0/5] virtio-scsi: create a separate workqueue Asias He
@ 2012-11-07 12:40   ` Wanlong Gao
  0 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 12:40 UTC (permalink / raw)
  To: Asias He
  Cc: linux-kernel, James E.J. Bottomley, Paolo Bonzini, Rusty Russell,
	linux-scsi, kvm, Wanlong Gao

On 11/07/2012 08:23 PM, Asias He wrote:
> On Wed, Nov 7, 2012 at 6:18 PM, Wanlong Gao <gaowanlong@cn.fujitsu.com> wrote:
>> patch 1-3,5 are some cleanups.
>> patch 4: create a separate work queue for virtio-scsi
>> to improve the performance, I tested with tmpfs backed
>> disk, the config file is like below,
>> [global]
>> bsrange=4k-64k
>> ioengine=libaio
>> direct=1
>> iodepth=4
>> loops=10
>> size=64M
>>
>> Before:
>> Disk stats (read/write):
>>   sda: ios=6547/5275, merge=37/39, ticks=3144/2645, in_queue=5780, util=81.62%
>>   sdb: ios=6542/5277, merge=54/59, ticks=3234/3143, in_queue=6364, util=84.50%
>>   sdc: ios=6532/5244, merge=65/62, ticks=3440/3076, in_queue=6505, util=86.83%
> 
> The result is about the disk stat. Can you please post the iops and
> the bw instead?

Sure,

before:
  write: io=589788KB, bw=122211KB/s, iops=3584 , runt=  4826msec
  bw (KB/s)  : min=24208, max=116272, per=57.47%, avg=70236.40, stdev=35496.33  
  WRITE: io=589788KB, aggrb=122210KB/s, minb=122210KB/s, maxb=122210KB/s, mint=4826msec, maxt=4826msec 

after:
  write: io=589788KB, bw=124244KB/s, iops=3530 , runt=  4747msec
  bw (KB/s)  : min=63496, max=117943, per=73.39%, avg=91184.20, stdev=20062.42
  WRITE: io=589788KB, aggrb=124244KB/s, minb=124244KB/s, maxb=124244KB/s, mint=4747msec, maxt=4747msec


Thanks,
Wanlong Gao


> 
>> After:
>> Disk stats (read/write):
>>   sda: ios=6349/5318, merge=77/89, ticks=4820/3169, in_queue=7991, util=90.62%
>>   sdb: ios=6364/5358, merge=39/53, ticks=3810/2816, in_queue=6615, util=84.63%
>>   sdc: ios=6458/5352, merge=74/47, ticks=4425/3048, in_queue=7459, util=88.41%
>>
>>
>> Wanlong Gao (5):
>>   virtio-scsi: remove the useless assignment
>>   virtio-scsi: remove the needless variable gfp_mask
>>   virtio-scsi: use pr_err instead of printk
>>   virtio-scsi: create a separate work queue for virtio-scsi
>>   virtio-scsi: tidy up the goto label in init()
>>
>>
>>
>> Cc: James E.J. Bottomley <JBottomley@parallels.com>
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Rusty Russell <rusty@rustcorp.com.au>
>> Cc: linux-scsi@vger.kernel.org
>> Cc: kvm@vger.kernel.org
>>  drivers/scsi/virtio_scsi.c | 43 +++++++++++++++++++++++--------------------
>>  1 file changed, 23 insertions(+), 20 deletions(-)
>>
>> --
>> 1.8.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] virtio-scsi: create a separate workqueue
  2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
                   ` (5 preceding siblings ...)
  2012-11-07 12:23 ` [PATCH 0/5] virtio-scsi: create a separate workqueue Asias He
@ 2012-11-07 22:12 ` Paolo Bonzini
  2012-11-07 23:38   ` Wanlong Gao
  6 siblings, 1 reply; 10+ messages in thread
From: Paolo Bonzini @ 2012-11-07 22:12 UTC (permalink / raw)
  To: Wanlong Gao
  Cc: James E.J. Bottomley, Rusty Russell, linux-scsi, kvm,
	linux-kernel

> patch 1-3,5 are some cleanups.
> patch 4: create a separate work queue for virtio-scsi
> to improve the performance, I tested with tmpfs backed
> disk, the config file is like below,

I think something else caused the improvement, because the code you
touched (complete_event) shouldn't ever run during a normal benchmark.
It's only used for hotplug/hot-unplug.

Nevertheless, I'll queue the cleanup patches.  Thanks for those.

Paolo

> [global]
> bsrange=4k-64k
> ioengine=libaio
> direct=1
> iodepth=4
> loops=10
> size=64M
> 
> Before:
> Disk stats (read/write):
>   sda: ios=6547/5275, merge=37/39, ticks=3144/2645, in_queue=5780,
>   util=81.62%
>   sdb: ios=6542/5277, merge=54/59, ticks=3234/3143, in_queue=6364,
>   util=84.50%
>   sdc: ios=6532/5244, merge=65/62, ticks=3440/3076, in_queue=6505,
>   util=86.83%
> 
> After:
> Disk stats (read/write):
>   sda: ios=6349/5318, merge=77/89, ticks=4820/3169, in_queue=7991,
>   util=90.62%
>   sdb: ios=6364/5358, merge=39/53, ticks=3810/2816, in_queue=6615,
>   util=84.63%
>   sdc: ios=6458/5352, merge=74/47, ticks=4425/3048, in_queue=7459,
>   util=88.41%
> 
> 
> Wanlong Gao (5):
>   virtio-scsi: remove the useless assignment
>   virtio-scsi: remove the needless variable gfp_mask
>   virtio-scsi: use pr_err instead of printk
>   virtio-scsi: create a separate work queue for virtio-scsi
>   virtio-scsi: tidy up the goto label in init()
> 
> 
> 
> Cc: James E.J. Bottomley <JBottomley@parallels.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: linux-scsi@vger.kernel.org
> Cc: kvm@vger.kernel.org
>  drivers/scsi/virtio_scsi.c | 43
>  +++++++++++++++++++++++--------------------
>  1 file changed, 23 insertions(+), 20 deletions(-)
> 
> --
> 1.8.0
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/5] virtio-scsi: create a separate workqueue
  2012-11-07 22:12 ` Paolo Bonzini
@ 2012-11-07 23:38   ` Wanlong Gao
  0 siblings, 0 replies; 10+ messages in thread
From: Wanlong Gao @ 2012-11-07 23:38 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: James E.J. Bottomley, Rusty Russell, linux-scsi, kvm,
	linux-kernel, Wanlong Gao

On 11/08/2012 06:12 AM, Paolo Bonzini wrote:
>> patch 1-3,5 are some cleanups.
>> patch 4: create a separate work queue for virtio-scsi
>> to improve the performance, I tested with tmpfs backed
>> disk, the config file is like below,
> 
> I think something else caused the improvement, because the code you
> touched (complete_event) shouldn't ever run during a normal benchmark.
> It's only used for hotplug/hot-unplug.
> 
> Nevertheless, I'll queue the cleanup patches.  Thanks for those.

Oops, got it, I will investigate more. Thank you for teaching me.

Regards,
Wanlong Gao

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2012-11-07 23:38 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-07 10:18 [PATCH 0/5] virtio-scsi: create a separate workqueue Wanlong Gao
2012-11-07 10:18 ` [PATCH 1/5] virtio-scsi: remove the useless assignment Wanlong Gao
2012-11-07 10:18 ` [PATCH 2/5] virtio-scsi: remove the needless variable gfp_mask Wanlong Gao
2012-11-07 10:18 ` [PATCH 3/5] virtio-scsi: use pr_err instead of printk Wanlong Gao
2012-11-07 10:18 ` [PATCH 4/5] virtio-scsi: create a separate work queue for virtio-scsi Wanlong Gao
2012-11-07 10:18 ` [PATCH 5/5] virtio-scsi: tidy up the goto label in init() Wanlong Gao
2012-11-07 12:23 ` [PATCH 0/5] virtio-scsi: create a separate workqueue Asias He
2012-11-07 12:40   ` Wanlong Gao
2012-11-07 22:12 ` Paolo Bonzini
2012-11-07 23:38   ` Wanlong Gao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).