Skip to content
  • Stefan Hajnoczi's avatar
    c0c4f147
    virtio: call ->vhost_reset_device() during reset · c0c4f147
    Stefan Hajnoczi authored
    
    
    vhost-user-scsi has a VirtioDeviceClass->reset() function that calls
    ->vhost_reset_device(). The other vhost devices don't notify the vhost
    device upon reset.
    
    Stateful vhost devices may need to handle device reset in order to free
    resources or prevent stale device state from interfering after reset.
    
    Call ->vhost_device_reset() from virtio_reset() so that that vhost
    devices are notified of device reset.
    
    This patch affects behavior as follows:
    - vhost-kernel: No change in behavior since ->vhost_reset_device() is
      not implemented.
    - vhost-user: back-ends that negotiate
      VHOST_USER_PROTOCOL_F_RESET_DEVICE now receive a
      VHOST_USER_DEVICE_RESET message upon device reset. Otherwise there is
      no change in behavior. DPDK, SPDK, libvhost-user, and the
      vhost-user-backend crate do not negotiate
      VHOST_USER_PROTOCOL_F_RESET_DEVICE automatically.
    - vhost-vdpa: an extra SET_STATUS 0 call is made during device reset.
    
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20231004014532.1228637-4-stefanha@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Reviewed-by: default avatarRaphael Norwitz <raphael.norwitz@nutanix.com>
    Reviewed-by: default avatarHanna Czenczek <hreitz@redhat.com>
    c0c4f147
    virtio: call ->vhost_reset_device() during reset
    Stefan Hajnoczi authored
    
    
    vhost-user-scsi has a VirtioDeviceClass->reset() function that calls
    ->vhost_reset_device(). The other vhost devices don't notify the vhost
    device upon reset.
    
    Stateful vhost devices may need to handle device reset in order to free
    resources or prevent stale device state from interfering after reset.
    
    Call ->vhost_device_reset() from virtio_reset() so that that vhost
    devices are notified of device reset.
    
    This patch affects behavior as follows:
    - vhost-kernel: No change in behavior since ->vhost_reset_device() is
      not implemented.
    - vhost-user: back-ends that negotiate
      VHOST_USER_PROTOCOL_F_RESET_DEVICE now receive a
      VHOST_USER_DEVICE_RESET message upon device reset. Otherwise there is
      no change in behavior. DPDK, SPDK, libvhost-user, and the
      vhost-user-backend crate do not negotiate
      VHOST_USER_PROTOCOL_F_RESET_DEVICE automatically.
    - vhost-vdpa: an extra SET_STATUS 0 call is made during device reset.
    
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20231004014532.1228637-4-stefanha@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Reviewed-by: default avatarRaphael Norwitz <raphael.norwitz@nutanix.com>
    Reviewed-by: default avatarHanna Czenczek <hreitz@redhat.com>
Loading