• Jason Wang's avatar
    vhost: introduce vhost_exceeds_weight() · 1801314e
    Jason Wang authored
    We used to have vhost_exceeds_weight() for vhost-net to:
    
    - prevent vhost kthread from hogging the cpu
    - balance the time spent between TX and RX
    
    This function could be useful for vsock and scsi as well. So move it
    to vhost.c. Device must specify a weight which counts the number of
    requests, or it can also specific a byte_weight which counts the
    number of bytes that has been processed.
    Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    
    CVE-2019-3900
    
    (backported from commit e82b9b07)
    [tyhicks: Backport to Xenial:
     - Adjust handle_tx() instead of handle_tx_{copy,zerocopy}() due to
       missing commit 0d20bdf3 ("vhost_net: split out datacopy logic")
     - Considerable context adjustments throughout the patch due to a lack
       of missing the iov_limit member of the vhost_dev struct which was
       added later in commit b46a0bf7 ("vhost: fix OOB in get_rx_bufs()")
     - Context adjustment in call to vhost_log_write() in hunk #3 of net.c due to
       missing and unneeded commit cc5e7107 ("vhost: log dirty page correctly")
     - Context adjustment in hunk #3 of net.c due to using break instead of goto
       out
     - Context adjustment in hunk #4 of net.c due to missing and unneeded commit
       c67df11f ("vhost_net: try batch dequing from skb array")
     - Don't patch vsock.c since Xenial doesn't have vhost vsock support
     - Adjust context in vhost_dev_init() to account for different local variables
     - Adjust context in struct vhost_dev to account for different struct members]
    Signed-off-by: default avatarTyler Hicks <tyhicks@canonical.com>
    Acked-by: default avatarStefan Bader <stefan.bader@canonical.com>
    Acked-by: default avatarConnor Kuehl <connor.kuehl@canonical.com>
    Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
    1801314e
vhost.c 43.4 KB