• Sagi Grimberg's avatar
    IB/iser: Rewrite bounce buffer code path · ba943fb2
    Sagi Grimberg authored
    In some rare cases, IO operations may be not aligned to page
    boundaries. This prevents iser from performing fast memory
    registration. In order to overcome that iser uses a bounce
    buffer to carry the transaction. We basically allocate a buffer
    in the size of the transaction and perform a copy.
    
    The buffer allocation using kmalloc is too restrictive since it
    requires higher order (atomic) allocations for large transactions
    (which may result in memory exhaustion fairly fast for some workloads).
    We rewrite the bounce buffer code path to allocate scattered pages
    and perform a copy between the transaction sg and the bounce sg.
    Reported-by: default avatarAlex Lyakas <alex@zadarastorage.com>
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    ba943fb2
iser_memory.c 22.7 KB