[rds-devel] The meaning of MR invalidation

Olaf Kirch olaf.kirch at oracle.com
Thu Feb 14 05:40:07 PST 2008


On Wednesday 13 February 2008 15:48, Or Gerlitz wrote:
> On 2/13/08, Olaf Kirch <olaf.kirch at oracle.com> wrote:
> > That's one of the things I have no real understanding of. What is the
> > actual difference in performance when you use an FMR exactly once?
> 
> Let me think about this and check with the Mellanox architects,
> basically the flow
> I see for rds in that case would be something like:
> 
> rds_pool_start: alloc N FMRs
> 
> rds_pool_get: get FMR from the free list and map it
> 
> rds_pool_put: put the used FMR in the dirty list
> 
> rds_unmap_background_thread:  if the dirty list size > M call
> fmr_unmap on the M FMRs in the dirty list and then return them to the
> free list
> 
> stop: unalloc N FMRS
> 
> correct?

Roughly. We don't allocate all FMRs right away, and the occasions
when we trigger an unmap depends more on the amount of memory pinned
than the actual number of FMRs.

Actually, it's also possible to grab a FMR off the dirty list.

Olaf
-- 
Olaf Kirch  |  --- o --- Nous sommes du soleil we love when we play
okir at lst.de |    / | \   sol.dhoop.naytheet.ah kin.ir.samse.qurax



More information about the rds-devel mailing list