virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] virtio_blk: Drop unused request tracking list
@ 2012-03-30  3:24 Asias He
  0 siblings, 0 replies; 7+ messages in thread
From: Asias He @ 2012-03-30  3:24 UTC (permalink / raw)
  To: virtualization, Rusty Russell, Michael S. Tsirkin; +Cc: kvm

Benchmark shows small performance improvement on fusion io device.

Before:
  seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
  seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
  rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
  rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec

After:
  seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
  seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
  rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
  rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec

Signed-off-by: Asias He <asias@redhat.com>
---
 drivers/block/virtio_blk.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index c4a60ba..338da9a 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -29,9 +29,6 @@ struct virtio_blk
 	/* The disk structure for the kernel. */
 	struct gendisk *disk;
 
-	/* Request tracking. */
-	struct list_head reqs;
-
 	mempool_t *pool;
 
 	/* Process context for config space updates */
@@ -55,7 +52,6 @@ struct virtio_blk
 
 struct virtblk_req
 {
-	struct list_head list;
 	struct request *req;
 	struct virtio_blk_outhdr out_hdr;
 	struct virtio_scsi_inhdr in_hdr;
@@ -99,7 +95,6 @@ static void blk_done(struct virtqueue *vq)
 		}
 
 		__blk_end_request_all(vbr->req, error);
-		list_del(&vbr->list);
 		mempool_free(vbr, vblk->pool);
 	}
 	/* In case queue is stopped waiting for more buffers. */
@@ -184,7 +179,6 @@ static bool do_req(struct request_queue *q, struct virtio_blk *vblk,
 		return false;
 	}
 
-	list_add_tail(&vbr->list, &vblk->reqs);
 	return true;
 }
 
@@ -408,7 +402,6 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
 		goto out_free_index;
 	}
 
-	INIT_LIST_HEAD(&vblk->reqs);
 	spin_lock_init(&vblk->lock);
 	vblk->vdev = vdev;
 	vblk->sg_elems = sg_elems;
@@ -571,9 +564,6 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
 	vblk->config_enable = false;
 	mutex_unlock(&vblk->config_lock);
 
-	/* Nothing should be pending. */
-	BUG_ON(!list_empty(&vblk->reqs));
-
 	/* Stop all the virtqueues. */
 	vdev->config->reset(vdev);
 
-- 
1.7.7.6

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
       [not found] <1333077850-21717-1-git-send-email-asias@redhat.com>
@ 2012-03-30 10:14 ` Stefan Hajnoczi
  2012-03-31 10:22   ` Asias He
  2012-04-01 10:07 ` Michael S. Tsirkin
  2012-05-08  4:08 ` Rusty Russell
  2 siblings, 1 reply; 7+ messages in thread
From: Stefan Hajnoczi @ 2012-03-30 10:14 UTC (permalink / raw)
  To: Asias He; +Cc: Michael S. Tsirkin, kvm, virtualization

On Fri, Mar 30, 2012 at 4:24 AM, Asias He <asias@redhat.com> wrote:
> Benchmark shows small performance improvement on fusion io device.
>
> Before:
>  seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>  seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>  rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>  rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
>
> After:
>  seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>  seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>  rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>  rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
>
> Signed-off-by: Asias He <asias@redhat.com>
> ---
>  drivers/block/virtio_blk.c |   10 ----------
>  1 files changed, 0 insertions(+), 10 deletions(-)

Thanks for providing performance results.  It's a bit scary that this
unused list has an impact...I'm sure we have worse things elsewhere in
the KVM storage code path.

Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
  2012-03-30 10:14 ` [PATCH] virtio_blk: Drop unused request tracking list Stefan Hajnoczi
@ 2012-03-31 10:22   ` Asias He
  2012-04-02 14:29     ` Stefan Hajnoczi
  0 siblings, 1 reply; 7+ messages in thread
From: Asias He @ 2012-03-31 10:22 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: virtualization, kvm, Michael S. Tsirkin

Hi, Stefan

On Fri, Mar 30, 2012 at 6:14 PM, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> On Fri, Mar 30, 2012 at 4:24 AM, Asias He <asias@redhat.com> wrote:
>> Benchmark shows small performance improvement on fusion io device.
>>
>> Before:
>>  seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>>  seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>>  rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>>  rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
>>
>> After:
>>  seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>>  seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>>  rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>>  rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
>>
>> Signed-off-by: Asias He <asias@redhat.com>
>> ---
>>  drivers/block/virtio_blk.c |   10 ----------
>>  1 files changed, 0 insertions(+), 10 deletions(-)
>
> Thanks for providing performance results.  It's a bit scary that this
> unused list has an impact...I'm sure we have worse things elsewhere in
> the KVM storage code path.

Do you find any worse things? I saw your trace work here:

   http://www.linux-kvm.org/page/Virtio/Block/Latency

> Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>

Thanks for reviewing!

--
Asias He
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
       [not found] <1333077850-21717-1-git-send-email-asias@redhat.com>
  2012-03-30 10:14 ` [PATCH] virtio_blk: Drop unused request tracking list Stefan Hajnoczi
@ 2012-04-01 10:07 ` Michael S. Tsirkin
  2012-04-02 23:49   ` Asias He
  2012-05-08  4:08 ` Rusty Russell
  2 siblings, 1 reply; 7+ messages in thread
From: Michael S. Tsirkin @ 2012-04-01 10:07 UTC (permalink / raw)
  To: Asias He; +Cc: kvm, virtualization

On Fri, Mar 30, 2012 at 11:24:10AM +0800, Asias He wrote:
> Benchmark shows small performance improvement on fusion io device.
> 
> Before:
>   seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>   seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>   rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>   rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
> 
> After:
>   seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>   seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>   rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>   rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
> 
> Signed-off-by: Asias He <asias@redhat.com>

Thanks, the patch makes sense to me.
Acked-by: Michael S. Tsirkin <mst@redhat.com>

This is 3.5 material, correct?

> ---
>  drivers/block/virtio_blk.c |   10 ----------
>  1 files changed, 0 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
> index c4a60ba..338da9a 100644
> --- a/drivers/block/virtio_blk.c
> +++ b/drivers/block/virtio_blk.c
> @@ -29,9 +29,6 @@ struct virtio_blk
>  	/* The disk structure for the kernel. */
>  	struct gendisk *disk;
>  
> -	/* Request tracking. */
> -	struct list_head reqs;
> -
>  	mempool_t *pool;
>  
>  	/* Process context for config space updates */
> @@ -55,7 +52,6 @@ struct virtio_blk
>  
>  struct virtblk_req
>  {
> -	struct list_head list;
>  	struct request *req;
>  	struct virtio_blk_outhdr out_hdr;
>  	struct virtio_scsi_inhdr in_hdr;
> @@ -99,7 +95,6 @@ static void blk_done(struct virtqueue *vq)
>  		}
>  
>  		__blk_end_request_all(vbr->req, error);
> -		list_del(&vbr->list);
>  		mempool_free(vbr, vblk->pool);
>  	}
>  	/* In case queue is stopped waiting for more buffers. */
> @@ -184,7 +179,6 @@ static bool do_req(struct request_queue *q, struct virtio_blk *vblk,
>  		return false;
>  	}
>  
> -	list_add_tail(&vbr->list, &vblk->reqs);
>  	return true;
>  }
>  
> @@ -408,7 +402,6 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
>  		goto out_free_index;
>  	}
>  
> -	INIT_LIST_HEAD(&vblk->reqs);
>  	spin_lock_init(&vblk->lock);
>  	vblk->vdev = vdev;
>  	vblk->sg_elems = sg_elems;
> @@ -571,9 +564,6 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
>  	vblk->config_enable = false;
>  	mutex_unlock(&vblk->config_lock);
>  
> -	/* Nothing should be pending. */
> -	BUG_ON(!list_empty(&vblk->reqs));
> -
>  	/* Stop all the virtqueues. */
>  	vdev->config->reset(vdev);
>  
> -- 
> 1.7.7.6

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
  2012-03-31 10:22   ` Asias He
@ 2012-04-02 14:29     ` Stefan Hajnoczi
  0 siblings, 0 replies; 7+ messages in thread
From: Stefan Hajnoczi @ 2012-04-02 14:29 UTC (permalink / raw)
  To: Asias He; +Cc: virtualization, kvm, Michael S. Tsirkin

On Sat, Mar 31, 2012 at 11:22 AM, Asias He <asias.hejun@gmail.com> wrote:
> Hi, Stefan
>
> On Fri, Mar 30, 2012 at 6:14 PM, Stefan Hajnoczi <stefanha@gmail.com> wrote:
>> On Fri, Mar 30, 2012 at 4:24 AM, Asias He <asias@redhat.com> wrote:
>>> Benchmark shows small performance improvement on fusion io device.
>>>
>>> Before:
>>>  seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>>>  seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>>>  rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>>>  rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
>>>
>>> After:
>>>  seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>>>  seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>>>  rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>>>  rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
>>>
>>> Signed-off-by: Asias He <asias@redhat.com>
>>> ---
>>>  drivers/block/virtio_blk.c |   10 ----------
>>>  1 files changed, 0 insertions(+), 10 deletions(-)
>>
>> Thanks for providing performance results.  It's a bit scary that this
>> unused list has an impact...I'm sure we have worse things elsewhere in
>> the KVM storage code path.
>
> Do you find any worse things? I saw your trace work here:
>
>   http://www.linux-kvm.org/page/Virtio/Block/Latency

I haven't updated those results in a long time because I no longer use
that benchmarking environment.

Stefan

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
  2012-04-01 10:07 ` Michael S. Tsirkin
@ 2012-04-02 23:49   ` Asias He
  0 siblings, 0 replies; 7+ messages in thread
From: Asias He @ 2012-04-02 23:49 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: kvm, virtualization

On 04/01/2012 06:07 PM, Michael S. Tsirkin wrote:
> On Fri, Mar 30, 2012 at 11:24:10AM +0800, Asias He wrote:
>> Benchmark shows small performance improvement on fusion io device.
>>
>> Before:
>>    seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>>    seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>>    rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>>    rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
>>
>> After:
>>    seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>>    seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>>    rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>>    rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
>>
>> Signed-off-by: Asias He<asias@redhat.com>
>
> Thanks, the patch makes sense to me.
> Acked-by: Michael S. Tsirkin<mst@redhat.com>
>
> This is 3.5 material, correct?

Yes, I think so.

>
>> ---
>>   drivers/block/virtio_blk.c |   10 ----------
>>   1 files changed, 0 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
>> index c4a60ba..338da9a 100644
>> --- a/drivers/block/virtio_blk.c
>> +++ b/drivers/block/virtio_blk.c
>> @@ -29,9 +29,6 @@ struct virtio_blk
>>   	/* The disk structure for the kernel. */
>>   	struct gendisk *disk;
>>
>> -	/* Request tracking. */
>> -	struct list_head reqs;
>> -
>>   	mempool_t *pool;
>>
>>   	/* Process context for config space updates */
>> @@ -55,7 +52,6 @@ struct virtio_blk
>>
>>   struct virtblk_req
>>   {
>> -	struct list_head list;
>>   	struct request *req;
>>   	struct virtio_blk_outhdr out_hdr;
>>   	struct virtio_scsi_inhdr in_hdr;
>> @@ -99,7 +95,6 @@ static void blk_done(struct virtqueue *vq)
>>   		}
>>
>>   		__blk_end_request_all(vbr->req, error);
>> -		list_del(&vbr->list);
>>   		mempool_free(vbr, vblk->pool);
>>   	}
>>   	/* In case queue is stopped waiting for more buffers. */
>> @@ -184,7 +179,6 @@ static bool do_req(struct request_queue *q, struct virtio_blk *vblk,
>>   		return false;
>>   	}
>>
>> -	list_add_tail(&vbr->list,&vblk->reqs);
>>   	return true;
>>   }
>>
>> @@ -408,7 +402,6 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
>>   		goto out_free_index;
>>   	}
>>
>> -	INIT_LIST_HEAD(&vblk->reqs);
>>   	spin_lock_init(&vblk->lock);
>>   	vblk->vdev = vdev;
>>   	vblk->sg_elems = sg_elems;
>> @@ -571,9 +564,6 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
>>   	vblk->config_enable = false;
>>   	mutex_unlock(&vblk->config_lock);
>>
>> -	/* Nothing should be pending. */
>> -	BUG_ON(!list_empty(&vblk->reqs));
>> -
>>   	/* Stop all the virtqueues. */
>>   	vdev->config->reset(vdev);
>>
>> --
>> 1.7.7.6
> --
> 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

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

* Re: [PATCH] virtio_blk: Drop unused request tracking list
       [not found] <1333077850-21717-1-git-send-email-asias@redhat.com>
  2012-03-30 10:14 ` [PATCH] virtio_blk: Drop unused request tracking list Stefan Hajnoczi
  2012-04-01 10:07 ` Michael S. Tsirkin
@ 2012-05-08  4:08 ` Rusty Russell
  2 siblings, 0 replies; 7+ messages in thread
From: Rusty Russell @ 2012-05-08  4:08 UTC (permalink / raw)
  To: Asias He, virtualization, Michael S. Tsirkin; +Cc: kvm

On Fri, 30 Mar 2012 11:24:10 +0800, Asias He <asias@redhat.com> wrote:
> Benchmark shows small performance improvement on fusion io device.
> 
> Before:
>   seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
>   seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
>   rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
>   rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
> 
> After:
>   seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
>   seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
>   rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
>   rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
> 
> Signed-off-by: Asias He <asias@redhat.com>

Thanks.  It didn't really need a benchmark to justify this cleanup, but
you certainly get points for thoroughness!

Applied,
Rusty.

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

end of thread, other threads:[~2012-05-08  4:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1333077850-21717-1-git-send-email-asias@redhat.com>
2012-03-30 10:14 ` [PATCH] virtio_blk: Drop unused request tracking list Stefan Hajnoczi
2012-03-31 10:22   ` Asias He
2012-04-02 14:29     ` Stefan Hajnoczi
2012-04-01 10:07 ` Michael S. Tsirkin
2012-04-02 23:49   ` Asias He
2012-05-08  4:08 ` Rusty Russell
2012-03-30  3:24 Asias He

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).