vfio: allow to disable MMAP per device with -x-mmap=off option
Disabling MMAP support uses the slower read/write accesses but allows to trace all MMIO accesses, which is not good for performance, but very useful for reverse engineering PCI drivers. This option allows to disable MMAP per device without a compile-time change. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
51b833f440
commit
6ee47c9008
@ -493,7 +493,7 @@ int vfio_mmap_region(Object *obj, VFIORegion *region,
|
||||
int ret = 0;
|
||||
VFIODevice *vbasedev = region->vbasedev;
|
||||
|
||||
if (VFIO_ALLOW_MMAP && size && region->flags &
|
||||
if (vbasedev->allow_mmap && size && region->flags &
|
||||
VFIO_REGION_INFO_FLAG_MMAP) {
|
||||
int prot = 0;
|
||||
|
||||
|
@ -3456,6 +3456,7 @@ static Property vfio_pci_dev_properties[] = {
|
||||
DEFINE_PROP_BIT("x-vga", VFIOPCIDevice, features,
|
||||
VFIO_FEATURE_ENABLE_VGA_BIT, false),
|
||||
DEFINE_PROP_INT32("bootindex", VFIOPCIDevice, bootindex, -1),
|
||||
DEFINE_PROP_BOOL("x-mmap", VFIOPCIDevice, vbasedev.allow_mmap, true),
|
||||
/*
|
||||
* TODO - support passed fds... is this necessary?
|
||||
* DEFINE_PROP_STRING("vfiofd", VFIOPCIDevice, vfiofd_name),
|
||||
|
@ -36,7 +36,6 @@
|
||||
#endif
|
||||
|
||||
/* Extra debugging, trap acceleration paths for more logging */
|
||||
#define VFIO_ALLOW_MMAP 1
|
||||
#define VFIO_ALLOW_KVM_INTX 1
|
||||
#define VFIO_ALLOW_KVM_MSI 1
|
||||
#define VFIO_ALLOW_KVM_MSIX 1
|
||||
@ -102,6 +101,7 @@ typedef struct VFIODevice {
|
||||
int type;
|
||||
bool reset_works;
|
||||
bool needs_reset;
|
||||
bool allow_mmap;
|
||||
VFIODeviceOps *ops;
|
||||
unsigned int num_irqs;
|
||||
unsigned int num_regions;
|
||||
|
Loading…
Reference in New Issue
Block a user