From: Dave Jiang <dave.jiang@intel.com>
To: Karl Kao <ykao@tintri.com>, linux-ntb <linux-ntb@googlegroups.com>
Subject: Re: Misleading throughput number using ntb_perf with memcpy_toio()
Date: Thu, 2 Nov 2017 12:34:28 -0700 [thread overview]
Message-ID: <fea2e6bd-a5d9-67d6-4c4b-652562840571@intel.com> (raw)
In-Reply-To: <56307FCF-28EE-4857-BA37-86D84CD617F7@tintri.com>
On 11/02/2017 11:48 AM, Karl Kao wrote:
> Hi Dave, the no acknowledge from peer is justified by doing posted pcie
> transactions. I don’t understand why memcpy can return and claim it’s
> done the job with assumption that internal buffer is sufficient to take
> gigabytes data.
memcpy is just CPU instructions right? It returns as soon as CPU is done
copy. I don't think it has any ideas with regards to I/O buffers or
anything like that.
>
>
>
>
>
>
>
> *From: *Dave Jiang <dave.jiang@intel.com>
> *Date: *Thursday, November 2, 2017 at 11:39
> *To: *Karl Kao <ykao@tintri.com>, linux-ntb <linux-ntb@googlegroups.com>
> *Subject: *Re: Misleading throughput number using ntb_perf with
> memcpy_toio()
>
>
>
>
>
>
>
> On 11/02/2017 11:33 AM, Karl Kao wrote:
>
> Hi Folks,
>
> We have one system with PLX NTB enabled with Gen3 speed on x8 lanes
>
> width. Technically, the NTB bandwidth is 64 Gbit/s (8192 MBytes/s) in
>
> outbound direction to its peer on this system.
>
> The ntb_perf comes with the throughput number of 9147 MBytes/s which is
>
> misleading in comparison to hardware bandwidth of 8192 MBytes/s.
>
> We have a few questions with regard to the misleading throughput number.
>
> The overall is when memcpy() returns, data may have not yet been put in
>
> ingress buffer inside PLX NTB which is constrained by flow control
>
> credits, limitation of 8192 Mbytes/s.
>
> * The ntb_perf moves memory block to IO bus, using memcpy_toio(), a
>
> macro of memcpy(). Once cpu core is done with mov instructions, the
>
> memcpy() returns. Is this statement accurate?
>
> * At the point when memcpy() is done with mov instructions, would the
>
> data had been moved to internal buffer inside processor, instead of
>
> going through IO bus into PLX chip?
>
> * Where is the buffer, IIO buffer? What's buffer size that can
>
> accommodate gigabytes data?
>
> * Once we are clearer about the memcpy_tpio, would there be any API
>
> that can accurately measure the IO write throughput?
>
> [11:02][root@BRYCE2-DEV][/sys/kernel/debug/ntb_perf/0000:06:00.0]\>
> cat run
>
> 0: copied 4294967296 bytes in 469542 usecs, 9147 MBytes/s
>
> [11:03][root@BRYCE2-DEV][/sys/kernel/debug/ntb_perf/0000:06:00.0]\>
>
>
>
>
>
> Hi Karl. Yes the issue with ntb_perf is that it blindly copies into the
>
> memory window with no acknowledgement from the peer node. So the
>
> performance can be somewhat misleading because you don't know if it has
>
> made it completely to the other side. The only way to know for certain
>
> everything has made it over is to do a small read at the end of the
>
> write I think?
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "linux-ntb" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to linux-ntb+unsubscribe@googlegroups.com
> <mailto:linux-ntb+unsubscribe@googlegroups.com>.
> To post to this group, send email to linux-ntb@googlegroups.com
> <mailto:linux-ntb@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/linux-ntb/56307FCF-28EE-4857-BA37-86D84CD617F7%40tintri.com
> <https://groups.google.com/d/msgid/linux-ntb/56307FCF-28EE-4857-BA37-86D84CD617F7%40tintri.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.
next prev parent reply other threads:[~2017-11-02 19:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-02 18:33 Misleading throughput number using ntb_perf with memcpy_toio() Karl Kao
2017-11-02 18:39 ` Dave Jiang
2017-11-02 18:46 ` Allen Hubbe
2017-11-02 18:48 ` Karl Kao
2017-11-02 19:34 ` Dave Jiang [this message]
2017-11-02 20:27 ` Karl Kao
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=fea2e6bd-a5d9-67d6-4c4b-652562840571@intel.com \
--to=dave.jiang@intel.com \
--cc=linux-ntb@googlegroups.com \
--cc=ykao@tintri.com \
/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