From: Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org>
To: David Dillow <dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org>
Cc: Roland Dreier <roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Sebastian Parschauer
<sebastian.riemer-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>,
linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 5/5] IB/srp: Optimize completion queue polling
Date: Tue, 08 Jul 2014 15:49:23 +0200 [thread overview]
Message-ID: <53BBF6E3.3040403@acm.org> (raw)
In-Reply-To: <1404501176.16296.18.camel-a7a0dvSY7KqLUyTwlgNVppKKF0rrzTr+@public.gmane.org>
On 07/04/14 21:12, David Dillow wrote:
> On Fri, 2014-07-04 at 12:48 +0200, Bart Van Assche wrote:
>> Do you still have that measurement data available and/or the scripts
>> that were used to collect that data?
>
> I had looked for them before posting and thought they were lost to the
> sands of time, but your pointer to the email gave me the proper search
> terms, thanks!
>
> srptest.c is a simple test target that fakes a single-LUN, read-only
> target. It's special, in that it does not actually transfer any data, it
> just responds to the SRP command as though it had. It's intended to do
> the minimum work necessary to try push the IOP bottlenecks into the
> initiator.
>
> run_tests.sh runs the battery, which was saved into an appropriately
> named file for parse.{sh,awk} to process into a csv, which gets turned
> into all.ods.
>
> In the runs from then, batching (using your patch from that time) saw a
> 2 to 11% decrease in the number of IOPS, though it isn't perfectly clear
> what the noise level is from the pivot table in the spreadsheet. Using
> iopoll (weight of 128, 10, and with the batched CQ patch [not sure of
> weight, probably 10]) shows some scattered small improvements in IOPS
> (1-2%) but quickly fell to a 30+% loss of IOPS. I never had time to
> investigate further.
>
> In none of the cases did the test target seem to become the bottleneck.
>
>> I'd like to have a look at which
>> test you ran such that I can repeat that test with Linus' master tree. A
>> lot has been changed since kernel 2.6.38 was released, e.g. several more
>> SCSI core and SRP initiator driver optimizations have been accepted
>> upstream since then.
>
> Certainly, things have changed in the code, but I'll be pleasantly
> surprised if the relative results change much -- the only changes were
> the batching, and/or the conversion to iopoll.
>
> Also, these tests were on QDR on Connect-X (maybe X2) hardware if I
> recall correctly. It would be interesting to see it on X3, or Connect-IB
> to see if they respond better to the changes -- I could easily see the
> batching being pretty hardware-specific in terms of tuning.
Hello Dave,
Thanks for digging up this information and also for sharing it. This is
interesting. What I noticed is that the in the SRP target driver
attached to the previous e-mail ("srptest.c") one command at a time is
processed. However, in the SRP target driver I ran my own tests with
(based on SCST) multiple SCSI commands are processed simultaneously by a
single thread. A finite state machine is associated with each SCSI
command and events like IB work completions trigger transitions of that
state machine. So that might be a possible explanation why my
measurement results were different.
However, before I repost (a variant of) this patch I will try to find a
way to combine the advantages of interrupt-based processing (low
latency) and the blk-iopoll approach (minimal time spent in interrupt
context).
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-07-08 13:49 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-03 13:44 [PATCH 0/5] SRP initiator patches for kernel 3.17 Bart Van Assche
[not found] ` <53B55E55.5040907-HInyCGIudOg@public.gmane.org>
2014-07-03 13:45 ` [PATCH 1/5] scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior Bart Van Assche
2014-07-03 13:46 ` [PATCH 2/5] IB/srp: Fix deadlock between host removal and multipathd Bart Van Assche
2014-07-03 13:47 ` [PATCH 3/5] IB/srp: Fix residual handling Bart Van Assche
[not found] ` <53B55EE0.1050403-HInyCGIudOg@public.gmane.org>
2014-07-03 17:00 ` David Dillow
2014-07-03 13:47 ` [PATCH 4/5] IB/srp: Use P_Key cache for P_Key lookups Bart Van Assche
2014-07-03 13:48 ` [PATCH 5/5] IB/srp: Optimize completion queue polling Bart Van Assche
[not found] ` <53B55F1F.6000704-HInyCGIudOg@public.gmane.org>
2014-07-03 16:46 ` Or Gerlitz
[not found] ` <CAJZOPZ+RPe8B_KhKZ-8-S6g871-EKQSnExZgsZ2Z+bo-9L=P9w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-04 9:59 ` Bart Van Assche
[not found] ` <53B67B0E.5070004-HInyCGIudOg@public.gmane.org>
2014-07-08 7:55 ` Or Gerlitz
[not found] ` <CAJZOPZJokriDMCAxnoXJo+RTRvtDquSMGpQThp8OoDnHjKU32A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-08 8:11 ` Bart Van Assche
[not found] ` <53BBA79A.9000000-HInyCGIudOg@public.gmane.org>
2014-07-08 9:24 ` Or Gerlitz
2014-07-03 16:53 ` David Dillow
2014-07-03 17:05 ` David Dillow
[not found] ` <1404407103.32754.3.camel-a7a0dvSY7KqLUyTwlgNVppKKF0rrzTr+@public.gmane.org>
2014-07-04 10:48 ` Bart Van Assche
[not found] ` <1404501176.16296.18.camel@haswell.thedillows.org>
[not found] ` <1404501176.16296.18.camel-a7a0dvSY7KqLUyTwlgNVppKKF0rrzTr+@public.gmane.org>
2014-07-08 13:49 ` Bart Van Assche [this message]
[not found] ` <53BBF6E3.3040403-HInyCGIudOg@public.gmane.org>
2014-07-08 14:45 ` Sagi Grimberg
2014-07-09 6:22 ` David Dillow
2014-07-03 13:55 ` [PATCH 0/5] SRP initiator patches for kernel 3.17 James Bottomley
2014-07-03 17:03 ` David Dillow
2014-07-03 14:17 ` Bart Van Assche
[not found] ` <53B565EB.50301-HInyCGIudOg@public.gmane.org>
2014-07-03 14:19 ` Bart Van Assche
2014-07-03 15:06 ` Sagi Grimberg
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=53BBF6E3.3040403@acm.org \
--to=bvanassche-hinycgiudog@public.gmane.org \
--cc=dave-i1Mk8JYDVaaSihdK6806/g@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=sebastian.riemer-EIkl63zCoXaH+58JC4qpiA@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).