lkml.org 
[lkml]   [2008]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch 1/6] mmu_notifier: Core code
    From
    Date
    It seems that we've come up with two reasonable cases where it makes
    sense to use these notifiers for InfiniBand/RDMA:

    First, the ability to safely to DMA to/from userspace memory with the
    memory regions mlock()ed but the pages not pinned. In this case the
    notifiers here would seem to suit us well:

    > + void (*invalidate_range_begin)(struct mmu_notifier *mn,
    > + struct mm_struct *mm,
    > + unsigned long start, unsigned long end,
    > + int atomic);
    > +
    > + void (*invalidate_range_end)(struct mmu_notifier *mn,
    > + struct mm_struct *mm,
    > + unsigned long start, unsigned long end,
    > + int atomic);

    If I understand correctly, the IB stack would have to get the hardware
    driver to shoot down translation entries and suspend access to the
    region when an invalidate_range_begin notifier is called, and wait for
    the invalidate_range_end notifier to repopulate the adapter
    translation tables. This will probably work OK as long as the
    interval between the invalidate_range_begin and invalidate_range_end
    calls is not "too long."

    Also, using this effectively requires us to figure out how we want to
    mlock() regions that are going to be used for RDMA. We could require
    userspace to do it, but it's not clear to me that we're safe in the
    case where userspace decides not to... what happens if some pages get
    swapped out after the invalidate_range_begin notifier?

    The second case where some form of notifiers are useful is for
    userspace to know when a memory registration is still valid, ie Pete
    Wyckoff's work:

    http://www.osc.edu/~pw/papers/wyckoff-memreg-ccgrid05.pdf
    http://www.osc.edu/~pw/dreg/

    however these MMU notifiers seem orthogonal to that: the registration
    cache is concerned with address spaces, not page mapping, and hence
    the existing vma operations seem to be a better fit.

    - R.


    \
     
     \ /
      Last update: 2008-02-18 23:37    [W:0.024 / U:0.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site