George Bosilca wrote:
> Here is a simple fix for both problems. Enforce a reasonable limit on
> the number of fragments in the BTL free list (1K should be more than
> enough), and make sure the fifo has a size equal to p *
> number_of_allowed_fragments_in_the_free_list, where p is the number
> of local processes. While this solution will certainly increase again
> the size of the mapped file, it will do it by a small margin compared
> with what is happening today in the code. This is without talking
> about the fact that it will solve the deadlock problem, by removing
> the inability to return a fragment. In addition, the PML is capable
> of handing such situations, so we're getting back to a deadlock free
> sm BTL.
I'm still trying to think this one through. In the meanwhile, maybe you
can help me with some things.
1) (As I asked before,) how does one determine that 1K are enough
fragments? Maybe this value should scale with np?
2) How does one deal with two flavors of fragments, eager and max?
Shall we cap each list at the same value?
3) I assume that, given two flavors of fragments, we need fifo_size >=
np * ( max_num_eager + max_num_frag )?
I'm mostly interested in feedback on 1 and 2.