[mvapich-discuss] regestration cache limits in mvapich 0.9.7
Pavel Shamis (Pasha)
pasha at mellanox.co.il
Sun Jun 25 12:33:10 EDT 2006
Hello Sayantan,
Thank you for full dreg.* stuff review.
Actually the check #3 can be removed, you have the same check in #6 , is
not it?
Some other issue.
ib_init() include follow #ifdef (viainit.c):
-----------------------------------------------------------------
#ifndef _PPC64_
attr.cap.max_inline_data = viadev_max_inline_size;
#else
attr.cap.max_inline_data = -1;
#endif
-----------------------------------------------------------------
max_inline_data is uint32_t and mthca_create_qp
(src/userspace/libmthca/src/verbs.c) include:
-----------------------------------------------------------------
if (attr->cap.max_send_wr > 65536 ||
attr->cap.max_recv_wr > 65536 ||
attr->cap.max_send_sge > 64 ||
attr->cap.max_recv_sge > 64 ||
attr->cap.max_inline_data > 1024)
return NULL;
-----------------------------------------------------------------
And as result the code does not run on PPC64
Is it some reason for this ifdef ?
Regards,
Pavel Shamis (Pasha)
Sayantan Sur wrote:
> Hello Pasha,
>
> Pavel Shamis (Pasha) wrote:
>
>> Hi,
>> In mvapich-0.9.7 you have viadev_dreg_cache_limit limit that should
>> limit the size of registration cache. From review in dreg.* stuff I see
>> that actually this parameter limits only the maximum number of pages
>> per _single_ buffer registration (see dreg_new_entry()) and not total
>> number of registered pages in the cache. Can you please review this
>> point ? Because I'm not sure that we want limit # of pages per single
>> buffer registration.
>
> Thanks for looking at the code in detail. Here's my explanation of the
> code:
>
> 1) dreg cache interface is called using dreg_register()
> 2) If no cache entry is found, dreg_new_entry() is called
> 3) dreg_new_entry() checks if the single registration size itself will
> violate the cache limit. It doesn't allow a single registration to go
> past the user defined limit.
> 4) If it is found that the single registration is below the user defined
> limit, then the flow proceeds to dreg_insert()
> 5) In dreg_insert(), we call vma_new() to insert a new virtual memory
> region
> 6) In vma_new() the number of pages requested is added to a variable
> called `pinned_pages_count'. If this pinned_pages_count exceeds the user
> set limit `viadev_dreg_cache_limit', then NULL is returned and this is
> propagated to the upper layer to report a failed registration. If not,
> then the `pinned_pages_count' variable is incremented accordingly.
> 7) `pinned_pages_count' is decremented when a memory area is removed
> using vma_remove()
>
> I hope this helps.
>
> Thanks,
> Sayantan.
>
>>
>> Thanks,
>> Pavel Shamis (Pasha)
>> _______________________________________________
>> mvapich-discuss mailing list
>> mvapich-discuss at cse.ohio-state.edu
>> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>
>
>
More information about the mvapich-discuss
mailing list