[Pvfs2-developers] bmi_thread_function question
Sam Lang
slang at mcs.anl.gov
Wed Jul 26 17:26:36 EDT 2006
On Jul 26, 2006, at 4:32 PM, Phil Carns wrote:
> Sam Lang wrote:
>> Hi All,
>> I noticed that in thread-mgr.c:bmi_thread_function, there is a
>> call to BMI_test_unexpected if the bmi_unexp_count > 0, which
>> only happens on the server. The value of bmi_unexp_count on the
>> server can be as high as 50 from the job_bmi_unexp posts in
>> server.c. It looks like the bmi_unexp_array (which gets filled
>> in with the unexpected messages received) is only allocated to
>> hold 5 results though (THREAD_MGR_TEST_COUNT). At first glance
>> this looks like a bug, since BMI_test_unexpected would be filling
>> in the results past the 5th element. It seems like something
>> like this would have caused some server crashes due to writing
>> past the end of the array, and that we would have discovered
>> something like that by now. How is this handled? Does bmi
>> internally only handle at most 5 unexpected messages at a time?
>
> This logic in thread-mgr.c is what prevents it from overrunning the
> array (the incount variable is passed into BMI_test_unexpected to
> indicate how many results it is allowed to retrieve):
>
> incount = bmi_unexp_count;
> if(incount > THREAD_MGR_TEST_COUNT)
> incount = THREAD_MGR_TEST_COUNT;
>
> I don't think the BMI function cares how big the array is (there
> probably is no explicit internal limit).
>
Ah right. Not sure how I missed that...thanks Phil!
-sam
> -Phil
>
More information about the Pvfs2-developers
mailing list