• Tejun Heo's avatar
    vhost: replace vhost_workqueue with per-vhost kthread · c23f3445
    Tejun Heo authored
    Replace vhost_workqueue with per-vhost kthread.  Other than callback
    argument change from struct work_struct * to struct vhost_work *,
    there's no visible change to vhost_poll_*() interface.
    
    This conversion is to make each vhost use a dedicated kthread so that
    resource control via cgroup can be applied.
    
    Partially based on Sridhar Samudrala's patch.
    
    * Updated to use sub structure vhost_work instead of directly using
      vhost_poll at Michael's suggestion.
    
    * Added flusher wake_up() optimization at Michael's suggestion.
    
    Changes by MST:
    * Converted atomics/barrier use to a spinlock.
    * Create thread on SET_OWNER
    * Fix flushing
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Cc: Sridhar Samudrala <samudrala.sridhar@gmail.com>
    c23f3445
vhost.c 30.6 KB