From: Sebastian Parschauer <sebastian.riemer@profitbricks.com>
To: Alireza Haghdoost <alireza@cs.umn.edu>,
Linux RAID <linux-raid@vger.kernel.org>
Cc: Neil Brown <neilb@suse.de>
Subject: Re: Inject I/O latency for RAID5/6 read and writes
Date: Fri, 13 Mar 2015 11:29:32 +0100 [thread overview]
Message-ID: <5502BC0C.1060004@profitbricks.com> (raw)
In-Reply-To: <CAB-428=f7eL3iD=0g9MsYV78KUng_dysEs+=70taPP9wh_UkbQ@mail.gmail.com>
On 12.03.2015 22:31, Alireza Haghdoost wrote:
> On Mon, Feb 23, 2015 at 12:32 PM, Alireza Haghdoost <alireza@cs.umn.edu> wrote:
>> I needed to inject I/O completion latency in the RAID5/6 codes for
>> test purpose. I was wondering where would be the good place in
>> md/raid5.c code to add delay ?
>>
>> So far I have tried adding mdelay/udelay in raid5_end_write_request()
>> and it seems it works to increase I/O completion of writes. However,
>> adding delay in raid5_end_read_request() does not really change the
>> read I/O latency. Any idea ?
>>
>> --Alireza
>
> Can Some one help me on this issue ?
Everything comes through md_make_request() in drivers/md/md.c but there
are multiple different bio->bi_end_io functions. We have implemented
custom I/O latency measurement. I've posted the patch to this list some
time ago. So feel free to look how it works as an inspiration.
http://www.spinics.net/lists/raid/msg46525.html
It introduces its own struct md_bio_private containing the original
bi_end_io function pointer and introduces the md_bio_endio() function as
a generic bi_end_io to be always called before calling the original
bi_end_io function.
I hope this helps! We've reworked this stuff since then a bit more but
it's really beneficial to detect disks which became slow.
Cheers,
Sebastian
prev parent reply other threads:[~2015-03-13 10:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-23 18:32 Inject I/O latency for RAID5/6 read and writes Alireza Haghdoost
2015-03-12 21:31 ` Alireza Haghdoost
2015-03-13 10:29 ` Sebastian Parschauer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5502BC0C.1060004@profitbricks.com \
--to=sebastian.riemer@profitbricks.com \
--cc=alireza@cs.umn.edu \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.