Буфер памяти RDMA

Я знал, что RDMA требует, чтобы и отправитель, и получатель регистрировали свою память перед передачей данных. Мне интересно, должна ли зарегистрированная память как у отправителя, так и у получателя быть одинаковой или нет. Если то же самое, я думаю, что RDMA тратит много памяти, поскольку обе стороны в основном хранят идентичные данные. Есть ли способ уменьшить такую ​​проблему?


person Technorc Luke    schedule 16.01.2018    source источник
comment
Это в контексте какой-либо конкретной ситуации или кода? Если нет, то, вероятно, не по теме.   -  person tadman    schedule 16.01.2018


Ответы (1)


После передачи по сети и отправитель, и получатель содержат копии одной и той же информации. Однако, в зависимости от приложения и шаблона связи, буферы на обеих сторонах могут использоваться повторно. Например, инициатор операции удаленного чтения может использовать одни и те же буферы для результатов чтения после того, как оно будет выполнено с предыдущими результатами.

person haggai_e    schedule 17.01.2018
comment
Возможно ли, что размер буфера на обеих сторонах разный. Я хочу, чтобы отправитель продолжал писать или читать страницу 4K от/к получателю. Вы можете думать, что приемник на самом деле является хранилищем данных. В этом случае я должен установить буфер получателя на 10 ГБ (например, достаточно большой, чтобы хранить тонны страниц), а буфер отправителя установить на 4 КБ. или любой лучший дизайн для этого. - person Technorc Luke; 17.01.2018
comment
Вы также можете копировать в меньший буфер и из него или динамически регистрировать и отменять регистрацию памяти по мере необходимости. На некоторых устройствах вы можете использовать пейджинг по запросу, чтобы коммуникационные буферы не закреплялись в памяти. - person haggai_e; 17.01.2018