1
1

* Throttle the number of incoming receives so that we don't overrun our receive

event queue and lose receive messages.

This commit was SVN r9006.
Этот коммит содержится в:
Brian Barrett 2006-02-13 15:59:54 +00:00
родитель 20d06e889e
Коммит 08747dcaf8
2 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -205,7 +205,7 @@ mca_btl_portals_component_open(void)
&dummy);
mca_btl_portals_module.super.btl_bandwidth = dummy;
#if 0
#if 1
mca_btl_portals_module.super.btl_flags = MCA_BTL_FLAGS_RDMA | MCA_BTL_FLAGS_SEND_INPLACE;
#else
mca_btl_portals_module.super.btl_flags = MCA_BTL_FLAGS_RDMA;
@ -472,7 +472,8 @@ mca_btl_portals_component_progress(void)
OPAL_OUTPUT_VERBOSE((90, mca_btl_portals_component.portals_output,
"received send fragment %x", frag));
if (ev.md.length - (ev.offset + ev.mlength) < ev.md.max_size) {
if (ev.md.length - (ev.offset + ev.mlength) < ev.md.max_size ||
ev.md.threshold == 0) {
/* the block is full. It's deactivated automagically, but we
can't start it up again until everyone is done with it.
The actual reactivation and all that will happen after the

Просмотреть файл

@ -94,7 +94,10 @@ mca_btl_portals_activate_block(mca_btl_portals_recv_block_t *block)
/* and the memory descriptor */
md.start = block->start;
md.length = block->length;
md.threshold = PTL_MD_THRESH_INF;
/* try to throttle incoming sends so that we don't overrun the incoming
queue size */
md.threshold = mca_btl_portals_module.portals_eq_sizes[OMPI_BTL_PORTALS_EQ] /
mca_btl_portals_module.portals_recv_mds_num;
md.max_size = block->btl->super.btl_max_send_size;
md.options = PTL_MD_OP_PUT | PTL_MD_MAX_SIZE;
md.user_ptr = block;