Another way to do this which I am not sure makes sense is to just add
sizeof(mca_pml_ob1_hdr_t) to the btl_eager_limit passed into by the
user. Thus the defining the limit to be specifically for the user data
and not the internal headers
which the user may not have any inkling about. However, that may lead
to the user
to not realize there is a man behind the curtain bumping up the limit
for the internal headers.
Terry Dontje wrote:
> I was playing around with some really silly fragment sizes (sub 72
> bytes) when I ran into some asserts in the btl_openib_sendi. I traced
> the assert to be caused by mca_pml_ob1_send_request_start_btl()
> calculating the true eager_limit with the following line:
> size_t eager_limit = btl->btl_eager_limit - sizeof(mca_pml_ob1_hdr_t);
> If btl_eager_limit ends up being less than the
> sizeof(mca_pml_ob1_hdr_t) the eager_limit calculated results in a very
> large number and an assert later on in the stack.
> It seems to me that it would be nice to insert some checks in
> mca_btl_base_param_register() to make sure btl_eager_limit is >
> sizeof(mca_pml_ob1_hdr_t). Am I missing a reason why this was not
> done in the first place?
> devel mailing list