* [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
@ 2012-07-16 6:22 majianpeng
2012-07-17 3:04 ` NeilBrown
0 siblings, 1 reply; 5+ messages in thread
From: majianpeng @ 2012-07-16 6:22 UTC (permalink / raw)
To: Neil Brown, viro, axboe; +Cc: linux-raid, linux-fsdevel
For regular file, write operaion used blk_plug function.But for block
file,write operation did not use blk_plug.
This patch is also for write-cache mode for block-device.
Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
---
fs/block_dev.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index c2bbe1f..cf10778 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
{
struct file *file = iocb->ki_filp;
ssize_t ret;
+ struct blk_plug plug;
BUG_ON(iocb->ki_pos != pos);
+ blk_start_plug(&plug);
ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
if (ret > 0 || ret == -EIOCBQUEUED) {
ssize_t err;
@@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
if (err < 0 && ret > 0)
ret = err;
}
+ blk_finish_plug(&plug);
return ret;
}
EXPORT_SYMBOL_GPL(blkdev_aio_write);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
2012-07-16 6:22 [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices majianpeng
@ 2012-07-17 3:04 ` NeilBrown
2012-07-17 5:07 ` majianpeng
2012-08-02 6:48 ` majianpeng
0 siblings, 2 replies; 5+ messages in thread
From: NeilBrown @ 2012-07-17 3:04 UTC (permalink / raw)
To: majianpeng; +Cc: viro, axboe, linux-raid, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 1503 bytes --]
On Mon, 16 Jul 2012 14:22:03 +0800 majianpeng <majianpeng@gmail.com> wrote:
> For regular file, write operaion used blk_plug function.But for block
> file,write operation did not use blk_plug.
> This patch is also for write-cache mode for block-device.
>
> Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
Reviewed-by: NeilBrown <neilb@suse.de>
Will you take this Jens? Though mail to you seem to be bouncing:
<axboe@fusionio.com>: host mail.fusionio.com[10.101.1.19] said: 554 5.4.6 Hop
count exceeded - possible mail loop (in reply to end of DATA command)
so I'm not sure you'll even see this :-(
NeilBrown
> ---
> fs/block_dev.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/fs/block_dev.c b/fs/block_dev.c
> index c2bbe1f..cf10778 100644
> --- a/fs/block_dev.c
> +++ b/fs/block_dev.c
> @@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
> {
> struct file *file = iocb->ki_filp;
> ssize_t ret;
> + struct blk_plug plug;
>
> BUG_ON(iocb->ki_pos != pos);
>
> + blk_start_plug(&plug);
> ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
> if (ret > 0 || ret == -EIOCBQUEUED) {
> ssize_t err;
> @@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
> if (err < 0 && ret > 0)
> ret = err;
> }
> + blk_finish_plug(&plug);
> return ret;
> }
> EXPORT_SYMBOL_GPL(blkdev_aio_write);
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
2012-07-17 3:04 ` NeilBrown
@ 2012-07-17 5:07 ` majianpeng
2012-08-02 6:48 ` majianpeng
1 sibling, 0 replies; 5+ messages in thread
From: majianpeng @ 2012-07-17 5:07 UTC (permalink / raw)
To: Neil Brown; +Cc: viro, axboe, linux-raid, linux-fsdevel
On 2012-07-17 11:04 NeilBrown <neilb@suse.de> Wrote:
>On Mon, 16 Jul 2012 14:22:03 +0800 majianpeng <majianpeng@gmail.com> wrote:
>
>> For regular file, write operaion used blk_plug function.But for block
>> file,write operation did not use blk_plug.
>> This patch is also for write-cache mode for block-device.
>>
>> Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
>
>Reviewed-by: NeilBrown <neilb@suse.de>
>
>Will you take this Jens? Though mail to you seem to be bouncing:
>
><axboe@fusionio.com>: host mail.fusionio.com[10.101.1.19] said: 554 5.4.6 Hop
> count exceeded - possible mail loop (in reply to end of DATA command)
>
>so I'm not sure you'll even see this :-(
>
I see it.
>NeilBrown
>
>> ---
>> fs/block_dev.c | 3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/block_dev.c b/fs/block_dev.c
>> index c2bbe1f..cf10778 100644
>> --- a/fs/block_dev.c
>> +++ b/fs/block_dev.c
>> @@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>> {
>> struct file *file = iocb->ki_filp;
>> ssize_t ret;
>> + struct blk_plug plug;
>>
>> BUG_ON(iocb->ki_pos != pos);
>>
>> + blk_start_plug(&plug);
>> ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
>> if (ret > 0 || ret == -EIOCBQUEUED) {
>> ssize_t err;
>> @@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>> if (err < 0 && ret > 0)
>> ret = err;
>> }
>> + blk_finish_plug(&plug);
>> return ret;
>> }
>> EXPORT_SYMBOL_GPL(blkdev_aio_write);
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
2012-07-17 3:04 ` NeilBrown
2012-07-17 5:07 ` majianpeng
@ 2012-08-02 6:48 ` majianpeng
2012-08-02 7:51 ` Jens Axboe
1 sibling, 1 reply; 5+ messages in thread
From: majianpeng @ 2012-08-02 6:48 UTC (permalink / raw)
To: Jens Axboe; +Cc: viro, linux-raid, linux-fsdevel, Neil Brown
On 2012-07-17 11:04 NeilBrown <neilb@suse.de> Wrote:
>On Mon, 16 Jul 2012 14:22:03 +0800 majianpeng <majianpeng@gmail.com> wrote:
>
>> For regular file, write operaion used blk_plug function.But for block
>> file,write operation did not use blk_plug.
>> This patch is also for write-cache mode for block-device.
>>
>> Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
>
>Reviewed-by: NeilBrown <neilb@suse.de>
>
>Will you take this Jens? Though mail to you seem to be bouncing:
>
><axboe@fusionio.com>: host mail.fusionio.com[10.101.1.19] said: 554 5.4.6 Hop
> count exceeded - possible mail loop (in reply to end of DATA command)
>
>so I'm not sure you'll even see this :-(
>
>NeilBrown
>
>> ---
>> fs/block_dev.c | 3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/block_dev.c b/fs/block_dev.c
>> index c2bbe1f..cf10778 100644
>> --- a/fs/block_dev.c
>> +++ b/fs/block_dev.c
>> @@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>> {
>> struct file *file = iocb->ki_filp;
>> ssize_t ret;
>> + struct blk_plug plug;
>>
>> BUG_ON(iocb->ki_pos != pos);
>>
>> + blk_start_plug(&plug);
>> ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
>> if (ret > 0 || ret == -EIOCBQUEUED) {
>> ssize_t err;
>> @@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>> if (err < 0 && ret > 0)
>> ret = err;
>> }
>> + blk_finish_plug(&plug);
>> return ret;
>> }
>> EXPORT_SYMBOL_GPL(blkdev_aio_write);
>
>
How about this patch? apply or reject? Thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
2012-08-02 6:48 ` majianpeng
@ 2012-08-02 7:51 ` Jens Axboe
0 siblings, 0 replies; 5+ messages in thread
From: Jens Axboe @ 2012-08-02 7:51 UTC (permalink / raw)
To: majianpeng; +Cc: viro, linux-raid, linux-fsdevel, Neil Brown
On 08/02/2012 08:48 AM, majianpeng wrote:
> On 2012-07-17 11:04 NeilBrown <neilb@suse.de> Wrote:
>> On Mon, 16 Jul 2012 14:22:03 +0800 majianpeng <majianpeng@gmail.com> wrote:
>>
>>> For regular file, write operaion used blk_plug function.But for block
>>> file,write operation did not use blk_plug.
>>> This patch is also for write-cache mode for block-device.
>>>
>>> Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
>>
>> Reviewed-by: NeilBrown <neilb@suse.de>
>>
>> Will you take this Jens? Though mail to you seem to be bouncing:
>>
>> <axboe@fusionio.com>: host mail.fusionio.com[10.101.1.19] said: 554 5.4.6 Hop
>> count exceeded - possible mail loop (in reply to end of DATA command)
>>
>> so I'm not sure you'll even see this :-(
>>
>> NeilBrown
>>
>>> ---
>>> fs/block_dev.c | 3 +++
>>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/fs/block_dev.c b/fs/block_dev.c
>>> index c2bbe1f..cf10778 100644
>>> --- a/fs/block_dev.c
>>> +++ b/fs/block_dev.c
>>> @@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>>> {
>>> struct file *file = iocb->ki_filp;
>>> ssize_t ret;
>>> + struct blk_plug plug;
>>>
>>> BUG_ON(iocb->ki_pos != pos);
>>>
>>> + blk_start_plug(&plug);
>>> ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos);
>>> if (ret > 0 || ret == -EIOCBQUEUED) {
>>> ssize_t err;
>>> @@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
>>> if (err < 0 && ret > 0)
>>> ret = err;
>>> }
>>> + blk_finish_plug(&plug);
>>> return ret;
>>> }
>>> EXPORT_SYMBOL_GPL(blkdev_aio_write);
>>
>>
>
> How about this patch? apply or reject? Thanks!
I've applied it for a bit of testing, then it'll got into 3.6. Thanks.
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-08-02 7:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-16 6:22 [PATCH 1/2 V1] [PATCH] fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices majianpeng
2012-07-17 3:04 ` NeilBrown
2012-07-17 5:07 ` majianpeng
2012-08-02 6:48 ` majianpeng
2012-08-02 7:51 ` Jens Axboe
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.