• Mike Christie's avatar
    libceph: use memalloc flags for net IO · 89baaa57
    Mike Christie authored
    This patch has ceph's lib code use the memalloc flags.
    
    If the VM layer needs to write data out to free up memory to handle new
    allocation requests, the block layer must be able to make forward progress.
    To handle that requirement we use structs like mempools to reserve memory for
    objects like bios and requests.
    
    The problem is when we send/receive block layer requests over the network
    layer, net skb allocations can fail and the system can lock up.
    To solve this, the memalloc related flags were added. NBD, iSCSI
    and NFS uses these flags to tell the network/vm layer that it should
    use memory reserves to fullfill allcation requests for structs like
    skbs.
    
    I am running ceph in a bunch of VMs in my laptop, so this patch was
    not tested very harshly.
    Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
    Reviewed-by: default avatarIlya Dryomov <idryomov@redhat.com>
    89baaa57
messenger.c 82.8 KB