acrn-hypervisor/devicemodel/hw/pci/virtio
Vijay Dhanraj 71b56e0eed DM: Virtio-Blk Rescan
This patch adds support to trigger rescan of virtio-blk device by the
guest VM. This is an alternate to hot-plugging virtio-blk device.
This feature stems from the kata requirement, which hot-plugs container
rootfs after the VM is launched.

As part of virtio-blk rescan,
1. Update the backing file for the virtio-blk device with valid file.
   Basically update the empty file (with dummy bctxt) that was passed
   during VM launch.
2. Update virtio-blk device configurations for udpated backing file.
3. Update size associated with valid backing file in the config space.
4. Notify guest OS, of the new config change.
5. On this notification, guest will do the following.
	(i). Update virtio-blk capacity.
 	(ii). Revalidate the disk.
 	(iii). Identify the newly plugged block device.

v5 -> v6:
- Removed use of dummy file and added a new parameter "nodisk"
  to virtio-blk which indicates user wants to create a virtio-blk
  device with dummy backend.
- Moved vm_monitor_rescan from pci core to virtio-blk as it currently
  applies to only virtio-blk.

v4 -> v5:
- Reverted back logic, so that blkrescan is only supported when
  VM is launched with empty backend file.

v3 -> v4:
- Close block context before allocating a new one
- Allow backend filepath  with additional options to be more generic
- Remove blank lines introduced as part of previous patches.

v2 -> v3:
- Renamed vdev ops vdev_blk rescan to vdev_rescan
- Renamed montior ops virtio_blkrescan_ops to virtio_rescan_ops
- Consolidated virtio-blk configuration specific part into
  a separate function
- Removed size requirement in acrnctl command.

v1 -> v2:
- Added more comments in the code.
- Renamed APIs from displug to blkrescan, inline with acrnctl cmd.
- Split the patch into two. This corresponds to changes in acrn-dm.

Tracked-On: #3051
Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
Acked-by: Yu Wang <yu1.wang@intel.com>
2019-05-07 09:08:50 +08:00
..
vhost.c dm: add support of high MMIO mapping 2019-02-28 18:33:11 +08:00
virtio.c dm: virtio: make sure VQ_ALLOC is set after initialization 2019-04-04 00:27:10 +08:00
virtio_audio.c dm: virtio: refine header file 2018-12-21 15:27:01 +08:00
virtio_block.c DM: Virtio-Blk Rescan 2019-05-07 09:08:50 +08:00
virtio_console.c dm: Add socket backend support for virtio-console 2019-02-14 10:16:44 +08:00
virtio_coreu.c dm: protect pthread_cond_wait() against spurious wakeups 2019-04-04 00:27:10 +08:00
virtio_gpio.c DM: virtio-gpio: close gpio line fd 2019-04-29 09:20:38 +08:00
virtio_hdcp.c dm: protect pthread_cond_wait() against spurious wakeups 2019-04-04 00:27:10 +08:00
virtio_hyper_dmabuf.c dm: virtio: refine header file 2018-12-21 15:27:01 +08:00
virtio_input.c dm: virtio-input: adapt Windows virtio-input driver 2019-04-16 15:03:04 +08:00
virtio_ipu.c dm: virtio: refine header file 2018-12-21 15:27:01 +08:00
virtio_kernel.c doc: update virtio related functions doc comments 2018-11-04 20:32:50 -08:00
virtio_mei.c dm: protect pthread_cond_wait() against spurious wakeups 2019-04-04 00:27:10 +08:00
virtio_net.c dm: remove "acrn_" prefix from tap name 2019-04-09 10:59:45 +08:00
virtio_rnd.c dm: protect pthread_cond_wait() against spurious wakeups 2019-04-04 00:27:10 +08:00
virtio_rpmb.c DM: Attestation Keybox support in SOS DM 2019-02-25 16:40:25 +08:00