RDMA RegisterMemory Problem

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

holee

New Member
Jan 8, 2023
8
0
1
HI, I am an engineer working on the RDMA IWARP protocol.

I use chelsio t6225-cr NIC Adapter and connect 2 pc back to back.

Development environment is Window10, and i use NDSPI( NDSPI Interfaces (Windows) ).

i want to register 1TB Memory to my adapter by using INDAdapter::RegisterMemory Method.

But I can't register more than 128GB of memory ,I use this function in the following way.

for (int i = 0; i < memCount; i++)
{
hr = pAdapter->RegisterMemory(Buffers, BuffSize, pOv, &hMrs);
if (hr == ND_PENDING)
{
SIZE_T BytesRet;
hr = pAdapter->GetOverlappedResult(pOv, &BytesRet, TRUE);
}
if (FAILED(hr))
{
printf("RegisterMemory Failed with %08x\n", hr);
exit(__LINE__);
}
}
BuffSize = 65000 * 65000 ≒ 4GB, and memCount = 32

When i = 0~30, hr return S_OK , But i = 31 hr returns 0x0000009A (insufficient system resources exist to complete the api)

Even if the buffer size is reduced and the number of registrations is increased, the same problem occurs near 128GB

Is there a limit to registering memory above a certain number?

How can i register over 128GB?? i must regist 1TB memory to achieve My goal.

If anyone has tried something similar using the Celsio T6 adapter or another NIC, can you tell me how?