Message ID | CANsN3OSXjVLUAfCn2H2NEW2EAn6_FCs9CXuNrnC+XGgzG=rSYg@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | skip virtio fs cache section to enable NIC pass through | expand |
virtio-fs with DAX is currently not compatible with NIC Pass through. VM fails to boot when DAX cache is enabled and SR-IOV VF is being attached. This patch solves the problem. Hencem DAX cache and SR-IOV VF are be attached together. When a SR-IOV VF attaches to a qemu process, vfio will try to pin the entire DAX Window but it is empty when the guest boots and will fail. A method to make VFIO and DAX to work together is to make vfio skip DAX cache. Currently DAX cache need to be set to 0, for the SR-IOV VF to be attached to Kata containers. Enabling both SR-IOV VF and DAX work together will potentially improve performance for workloads which are I/O and network intensive On Mon, Apr 26, 2021 at 9:24 PM Dev Audsin <dev.devaqemu@gmail.com> wrote: > Signed-off-by: Dev Audsin <dev.devaqemu@gmail.com> > --- > hw/vfio/common.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index 6ff1daa763..3af70238bd 100644 > --- a/hw/vfio/common.c > +++ b/hw/vfio/common.c > @@ -541,7 +541,8 @@ static int vfio_host_win_del(VFIOContainer *container, > hwaddr min_iova, > > static bool vfio_listener_skipped_section(MemoryRegionSection *section) > { > - return (!memory_region_is_ram(section->mr) && > + return (!strcmp(memory_region_name(section->mr), "virtio-fs-cache")) > || > + (!memory_region_is_ram(section->mr) && > !memory_region_is_iommu(section->mr)) || > /* > * Sizing an enabled 64-bit BAR can cause spurious mappings to > -- > 2.25.1 >
diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 6ff1daa763..3af70238bd 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -541,7 +541,8 @@ static int vfio_host_win_del(VFIOContainer *container, hwaddr min_iova, static bool vfio_listener_skipped_section(MemoryRegionSection *section) { - return (!memory_region_is_ram(section->mr) && + return (!strcmp(memory_region_name(section->mr), "virtio-fs-cache")) || + (!memory_region_is_ram(section->mr) && !memory_region_is_iommu(section->mr)) || /*
Signed-off-by: Dev Audsin <dev.devaqemu@gmail.com> --- hw/vfio/common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) * Sizing an enabled 64-bit BAR can cause spurious mappings to