• Stefano Garzarella's avatar
    vdpa_sim: add support for user VA · 4bb94d2d
    Stefano Garzarella authored
    The new "use_va" module parameter (default: true) is used in
    vdpa_alloc_device() to inform the vDPA framework that the device
    supports VA.
    
    vringh is initialized to use VA only when "use_va" is true and the
    user's mm has been bound. So, only when the bus supports user VA
    (e.g. vhost-vdpa).
    
    vdpasim_mm_work_fn work is used to serialize the binding to a new
    address space when the .bind_mm callback is invoked, and unbinding
    when the .unbind_mm callback is invoked.
    
    Call mmget_not_zero()/kthread_use_mm() inside the worker function
    to pin the address space only as long as needed, following the
    documentation of mmget() in include/linux/sched/mm.h:
    
      * Never use this function to pin this address space for an
      * unbounded/indefinite amount of time.
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
    Message-Id: <20230404131734.45943-1-sgarzare@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    4bb94d2d
vdpa_sim.c 20.4 KB