I noticed that specifying the receive_queues through an mca param (-mca
btl_openib_receive_queues ....) doesn't always override the
If for whatever reason we want to bypass the
mca-btl-openib-device-params.ini file setting for the receive_queues, we
should be able to specify a value through an mca param.
But if the string provided in the mca param is the same as the default
one (default_qps in btl_openib_register_mca_params()), this does not
work: we still get the receive_queues from the .ini file.
This is due to the way the
mca_btl_openib_component.receive_queues_source (where did we get the
receive_queues value from) is computed:
1) in btl_openib_register_mca_params() we register
btl_openib_receive_queues, providing default_qps as a default
2) mca_btl_openib_component.receive_queues_source is set to
BTL_OPENIB_RQ_SOURCE_MCA only if the registered string
is different from default_qps
(if both strings are equal, the source is set to
3) then, in init_one_device(),
mca_btl_openib_component.receive_queues_source is checked:
. if its value is BTL_OPENIB_RQ_SOURCE_MCA, we bypass any other
setting (this is the behaviour I expected)
. otherwise, we go on, getting the .ini file settings (this is the
behaviour I got)
I wanted to know if this behaviour is intentional and the reason for it.
If ever it is not, the attached trivial patch fixes it.