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