Lines Matching +full:hot +full:- +full:plug

19 The number of use cases for virtualizing DMA devices that do not have built-in
27 an IOMMU/device-agnostic framework for exposing direct device access to user
28 space in a secure, IOMMU-protected environment. This framework is used for
46 The following high-level block diagram shows the main components and interfaces
50 +---------------+
52 | +-----------+ | mdev_register_driver() +--------------+
53 | | | +<------------------------+ |
55 | | bus | +------------------------>+ vfio_mdev.ko |<-> VFIO user
57 | | | | +--------------+
58 | +-----------+ |
63 | +-----------+ | mdev_register_device() +--------------+
64 | | | +<------------------------+ |
65 | | | | | nvidia.ko |<-> physical
66 | | | +------------------------>+ | device
67 | | | | callbacks +--------------+
69 | | device | | mdev_register_device() +--------------+
70 | | interface | |<------------------------+ |
71 | | | | | i915.ko |<-> physical
72 | | | +------------------------>+ | device
73 | | | | callbacks +--------------+
75 | | | | mdev_register_device() +--------------+
76 | | | +<------------------------+ |
77 | | | | | ccw_device.ko|<-> physical
78 | | | +------------------------>+ | device
79 | | | | callbacks +--------------+
80 | +-----------+ |
81 +---------------+
94 ------------------------------------------------
100 * struct mdev_driver [2] - Mediated device's driver
128 --------------------------------
164 libvirt, to query and configure mediated devices in a hardware-agnostic fashion.
168 * Mediated device hot plug
173 -------------------------------------
178 --------------------------------------------------------------
182 |- [parent physical device]
183 |--- Vendor-specific-attributes [optional]
184 |--- [mdev_supported_types]
185 | |--- [<type-id>]
186 | | |--- create
187 | | |--- name
188 | | |--- available_instances
189 | | |--- device_api
190 | | |--- description
191 | | |--- [devices]
192 | |--- [<type-id>]
193 | | |--- create
194 | | |--- name
195 | | |--- available_instances
196 | | |--- device_api
197 | | |--- description
198 | | |--- [devices]
199 | |--- [<type-id>]
200 | |--- create
201 | |--- name
202 | |--- available_instances
203 | |--- device_api
204 | |--- description
205 | |--- [devices]
211 [<type-id>], device_api, and available_instances are mandatory attributes
214 * [<type-id>]
216 The [<type-id>] name is created by adding the device driver string as a prefix
220 sprintf(buf, "%s-%s", dev_driver_string(parent->dev), group->name);
228 "vfio-pci" for a PCI device.
232 This attribute should show the number of devices of type <type-id> that can be
237 This directory contains links to the devices of type <type-id> that have been
250 ----------------------------------------------------------
254 |- [parent phy device]
255 |--- [$MDEV_UUID]
256 |--- remove
257 |--- mdev_type {link to its type}
258 |--- vendor-specific-attributes [optional]
264 doesn't support hot unplug.
270 Mediated device Hot plug
271 ------------------------
273 Mediated devices can be created and assigned at runtime. The procedure to hot
274 plug a mediated device is the same as the procedure to hot plug a PCI device.
288 These functions call back into the back-end IOMMU module by using the pin_pages
297 mtty.c in samples/vfio-mdev/ directory is a sample driver program to
311 |-- mdev_supported_types
312 | |-- mtty-1
313 | | |-- available_instances
314 | | |-- create
315 | | |-- device_api
316 | | |-- devices
317 | | `-- name
318 | `-- mtty-2
319 | |-- available_instances
320 | |-- create
321 | |-- device_api
322 | |-- devices
323 | `-- name
324 |-- mtty_dev
325 | `-- sample_mtty_dev
326 |-- power
327 | |-- autosuspend_delay_ms
328 | |-- control
329 | |-- runtime_active_time
330 | |-- runtime_status
331 | `-- runtime_suspended_time
332 |-- subsystem -> ../../../../class/mtty
333 `-- uevent
338 # echo "83b8f4f2-509f-382f-3c1e-e6bfe0fa1001" > \
339 /sys/devices/virtual/mtty/mtty/mdev_supported_types/mtty-2/create
341 3. Add parameters to qemu-kvm::
343 -device vfio-pci,\
344 sysfsdev=/sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001
351 # lspci -s 00:05.0 -xxvv
352 00:05.0 Serial controller: Device 4348:3253 (rev 10) (prog-if 02 [16550])
355 Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
356 Stepping- SERR- FastB2B- DisINTx-
357 Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
358 <TAbort- <MAbort- >SERR- <PERR- INTx-
370 serial 0000:00:05.0: PCI INT A -> Link[LNKA] -> GSI 10 (level, high) -> IRQ 10
377 # setserial -g /dev/ttyS*
392 # echo 1 > /sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001/remove
397 1. See Documentation/driver-api/vfio.rst for more information on VFIO.