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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox