Discussion:
[ofw] Windows SRP perf question
Todd Pisek
2013-10-02 17:34:18 UTC
Permalink
Greetings,

I'm not new to Infiniband, but I am new to Windows.

I'm running the 3.2 OFW release on Windows 2008R2 using a Dell R720 with dual sandy bridge 4-core processors. The HCA is a Mellanox ConnectX3-vpi. The application is a video stream simulator running atop our file system which is a kernel file system filter driver. The experiment is accessing block storage using SRP.

As the number of parallel video streams is increased, the bandwidth flattens. It appears the issue is saturation of one cpu that is processing all the SRP completion dpc's. Looking at the OFED source, I believe the reason is that srp uses one sq/qp/rq per target. I believe this means that all response completion event dpc's will be queued to the cpu associated with the target's rq cq.

One solution I'd like to try is to put the requestor's cpu number in the MSB of the command tag and then use that information in __srp_process_session_recv_completion to obtain the cpu of the initiator and then construct a dpc targeted to the initiating cpu to finish the completion processing (call __srp_process_recv_completion)

I have 3 questions:

1) Is my analysis correct, that is, are all srp responses from the same target processed by the same cpu ?
2) Does my solution seem reasonable?
3) How do I build the OFW code?

Thanks.

--- Todd

----------------------------------------------------------------------
The information contained in this transmission may be confidential. Any disclosure, copying, or further distribution of confidential information is not permitted unless such privilege is explicitly granted in writing by Quantum. Quantum reserves the right to have electronic communications, including email and attachments, sent across its networks filtered through anti virus and spam software programs and retain such messages in order to comply with applicable data security and retention requirements. Quantum is not responsible for the proper and complete transmission of the substance of this communication or for any delay in its receipt.
Smith, Stan
2013-10-02 18:18:57 UTC
Permalink
From: ofw-***@lists.openfabrics.org [mailto:ofw-***@lists.openfabrics.org] On Behalf Of Todd Pisek
Sent: Wednesday, October 02, 2013 10:34 AM
To: ***@lists.openfabrics.org
Subject: [ofw] Windows SRP perf question

Greetings,

I'm not new to Infiniband, but I am new to Windows.

I'm running the 3.2 OFW release on Windows 2008R2 using a Dell R720 with dual sandy bridge 4-core processors. The HCA is a Mellanox ConnectX3-vpi. The application is a video stream simulator running atop our file system which is a kernel file system filter driver. The experiment is accessing block storage using SRP.

As the number of parallel video streams is increased, the bandwidth flattens. It appears the issue is saturation of one cpu that is processing all the SRP completion dpc's. Looking at the OFED source, I believe the reason is that srp uses one sq/qp/rq per target. I believe this means that all response completion event dpc's will be queued to the cpu associated with the target's rq cq.

One solution I'd like to try is to put the requestor's cpu number in the MSB of the command tag and then use that information in __srp_process_session_recv_completion to obtain the cpu of the initiator and then construct a dpc targeted to the initiating cpu to finish the completion processing (call __srp_process_recv_completion)

I have 3 questions:

1) Is my analysis correct, that is, are all srp responses from the same target processed by the same cpu ?
2) Does my solution seem reasonable?
3) How do I build the OFW code?

Hello,
A couple of points along the way.
SRP initiator has been without support for a couple of years.
Your analysis sounds reasonable for what little I know of SRP internals, although worth an experiment.
Download the Windows 7 WDK (Windows Driver Kit) 7600.16385.1 ; install WDK ( you should see C:\WDK\7600.16385.1)
Todd Pisek
2013-10-03 19:25:16 UTC
Permalink
On Oct 2, 2013, at 1:18 PM, Smith, Stan wrote:


From: ofw-***@lists.openfabrics.org<mailto:ofw-***@lists.openfabrics.org> [mailto:ofw-***@lists.openfabrics.org] On Behalf Of Todd Pisek
Sent: Wednesday, October 02, 2013 10:34 AM
To: ***@lists.openfabrics.org<mailto:***@lists.openfabrics.org>
Subject: [ofw] Windows SRP perf question

Greetings,
:

3) How do I build the OFW code?

Hello,
A couple of points along the way.
SRP initiator has been without support for a couple of years.
Your analysis sounds reasonable for what little I know of SRP internals, although worth an experiment.
Download the Windows 7 WDK (Windows Driver Kit) 7600.16385.1 ; install WDK ( you should see C:\WDK\7600.16385.1)
Smith, Stan
2013-10-03 22:08:56 UTC
Permalink
I have the NetworkDirect sdk installed on my build machine (ndstatus.h is there). However, I can't find ndioctl.h. Is there some other distribution that has this header file?

[stan] you want the NetworkDirect 'V2' SDK.
I find this under c:\Program Files\Microsoft HPC Pack 2008 R2 SDK\NetDirect\Include\

Try downloading Microsoft HPC Pack 2008 R2 SDK (Service Pack 4) is the latest HPC Pack, regardless you want NDv2.


Note: this is the svn info for the ofw repo I pulled: looks good.

URL: http://beany.openfabrics.org/svnrepo/ofw
Repository Root: http://beany.openfabrics.org/svnrepo/ofw
Repository UUID: ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
Revision: 3635
Node Kind: directory
Schedule: normal
Last Changed Author: ***@intel.com<mailto:***@intel.com>
Last Changed Rev: 3635
Last Changed Date: 2013-06-25 12:09:21 -0500 (Tue, 25 Jun 2013)
Fab Tillier
2013-10-03 22:13:48 UTC
Permalink
Hi Todd,

You will need the HPC Pack 2012 ND DDK zip, available here:

http://www.microsoft.com/en-us/download/details.aspx?id=39967

Cheers,
-Fab


From: ofw-***@lists.openfabrics.org [mailto:ofw-***@lists.openfabrics.org] On Behalf Of Todd Pisek
Sent: Thursday, October 3, 2013 12:25 PM
To: ***@lists.openfabrics.org
Subject: Re: [ofw] Windows SRP perf question


On Oct 2, 2013, at 1:18 PM, Smith, Stan wrote:



From: ofw-***@lists.openfabrics.org<mailto:ofw-***@lists.openfabrics.org> [mailto:ofw-***@lists.openfabrics.org] On Behalf Of Todd Pisek
Sent: Wednesday, October 02, 2013 10:34 AM
To: ***@lists.openfabrics.org<mailto:***@lists.openfabrics.org>
Subject: [ofw] Windows SRP perf question

Greetings,
:


3) How do I build the OFW code?

Hello,
A couple of points along the way.
SRP initiator has been without support for a couple of years.
Your analysis sounds reasonable for what little I know of SRP internals, although worth an experiment.
Download the Windows 7 WDK (Windows Driver Kit) 7600.16385.1 ; install WDK ( you should see C:\WDK\7600.16385.1)
Loading...