All of lore.kernel.org
 help / color / mirror / Atom feed
* Misleading throughput number using ntb_perf with memcpy_toio()
@ 2017-11-02 18:33 Karl Kao
  2017-11-02 18:39 ` Dave Jiang
  0 siblings, 1 reply; 6+ messages in thread
From: Karl Kao @ 2017-11-02 18:33 UTC (permalink / raw)
  To: linux-ntb


[-- Attachment #1.1: Type: text/plain, Size: 1414 bytes --]

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]\>


Thanks,
Karl

[-- Attachment #1.2: Type: text/html, Size: 1609 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-11-02 20:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2017-11-02 20:27       ` Karl Kao

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.