Re: [PULL v3] gvt-next

From: Wang, Zhi A
Date: Mon Apr 25 2022 - 08:39:08 EST


On 4/25/22 12:33 PM, Jani Nikula wrote:
> On Mon, 25 Apr 2022, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> wrote:
>> On Thu, 21 Apr 2022, "Wang, Zhi A" <zhi.a.wang@xxxxxxxxx> wrote:
>>> Hi folks:
>>>
>>> Here is the PR of gvt-next. Thanks so much for the patience.
>>
>> Thanks, pulled to drm-intel-next, applied the below fix for the silent
>> conflict on top, and pushed out. Should show up in linux-next shortly.
>
> Aww crap, this breaks debug builds.
>
> ERROR: modpost: "intel_runtime_pm_put" [drivers/gpu/drm/i915/kvmgt.ko] undefined!
> ERROR: modpost: "i915_fence_ops" [drivers/gpu/drm/i915/kvmgt.ko] undefined!
> make[1]: *** [scripts/Makefile.modpost:134: modules-only.symvers] Error 1
> make[1]: *** Deleting file 'modules-only.symvers'
> make: *** [Makefile:1749: modules] Error 2
>
> The first is triggered with CONFIG_DRM_I915_DEBUG_RUNTIME_PM=y, the
> latter with CONFIG_DRM_I915_DEBUG_GEM=y.
>
> Please add the proper fix on top of the topic branch, and send an
> additional pull request. Looks like exports will do it.
>
> On that note, I'm wondering about the use of
> EXPORT_SYMBOL_NS_GPL(). It's between two MIT licensed modules after
> all. Maybe just EXPORT_SYMBOL_NS()?
>
Will do. Thanks so much for catching this.
> BR,
> Jani.
>
>
>>
>> BR,
>> Jani.
>>
>>>
>>> Mostly it includes the patch bundle of GVT-g re-factor patches for adapting the GVT-g with the
>>> new MDEV interfaces:
>>>
>>> - Separating the MMIO table from GVT-g. (Zhi)
>>> - GVT-g re-factor. (Christoph)
>>> - GVT-g mdev API cleanup. (Jason)
>>> - GVT-g trace/makefile cleanup. (Jani)
>>>
>>> Thanks so much for making this happen.
>>>
>>> This PR has been tested as following and no problem shows up:
>>>
>>> $dim update-branches
>>> $dim apply-pull drm-intel-next < this_email.eml
>>>
>>> When merging this pull to drm-intel-next, please include the following code in the merge commit:
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_gvt_mmio_table.c b/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
>>> index 03a7fcd0f904..72dac1718f3e 100644
>>> --- a/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
>>> +++ b/drivers/gpu/drm/i915/intel_gvt_mmio_table.c
>>> @@ -3,6 +3,7 @@
>>> * Copyright © 2020 Intel Corporation
>>> */
>>>
>>> +#include "display/intel_dmc_regs.h"
>>> #include "display/vlv_dsi_pll_regs.h"
>>> #include "gt/intel_gt_regs.h"
>>> #include "gvt/gvt.h"
>>>
>>>
>>> The following changes since commit 3123109284176b1532874591f7c81f3837bbdc17:
>>>
>>> Linux 5.18-rc1 (2022-04-03 14:08:21 -0700)
>>>
>>> are available in the Git repository at:
>>>
>>> https://github.com/intel/gvt-linux tags/gvt-next-2022-04-21-for-christoph
>>>
>>> for you to fetch changes up to 2917f53113be3b7a0f374e02cebe6d6b749366b5:
>>>
>>> vfio/mdev: Remove mdev drvdata (2022-04-21 07:36:56 -0400)
>>>
>>> ----------------------------------------------------------------
>>> gvt-next-2022-04-21-for-christoph
>>>
>>> - Separating the MMIO table from GVT-g. (Zhi)
>>> - GVT-g re-factor. (Christoph)
>>> - GVT-g mdev API cleanup. (Jason)
>>> - GVT-g trace/makefile cleanup. (Jani)
>>>
>>> ----------------------------------------------------------------
>>> Christoph Hellwig (27):
>>> drm/i915/gvt: remove module refcounting in intel_gvt_{,un}register_hypervisor
>>> drm/i915/gvt: remove enum hypervisor_type
>>> drm/i915/gvt: rename intel_vgpu_ops to intel_vgpu_mdev_ops
>>> drm/i915/gvt: move the gvt code into kvmgt.ko
>>> drm/i915/gvt: remove intel_gvt_ops
>>> drm/i915/gvt: remove the map_gfn_to_mfn and set_trap_area ops
>>> drm/i915/gvt: remove the unused from_virt_to_mfn op
>>> drm/i915/gvt: merge struct kvmgt_vdev into struct intel_vgpu
>>> drm/i915/gvt: merge struct kvmgt_guest_info into strut intel_vgpu
>>> drm/i915/gvt: remove vgpu->handle
>>> drm/i915/gvt: devirtualize ->{read,write}_gpa
>>> drm/i915/gvt: devirtualize ->{get,put}_vfio_device
>>> drm/i915/gvt: devirtualize ->set_edid and ->set_opregion
>>> drm/i915/gvt: devirtualize ->detach_vgpu
>>> drm/i915/gvt: devirtualize ->inject_msi
>>> drm/i915/gvt: devirtualize ->is_valid_gfn
>>> drm/i915/gvt: devirtualize ->gfn_to_mfn
>>> drm/i915/gvt: devirtualize ->{enable,disable}_page_track
>>> drm/i915/gvt: devirtualize ->dma_{,un}map_guest_page
>>> drm/i915/gvt: devirtualize dma_pin_guest_page
>>> drm/i915/gvt: remove struct intel_gvt_mpt
>>> drm/i915/gvt: remove the extra vfio_device refcounting for dmabufs
>>> drm/i915/gvt: streamline intel_vgpu_create
>>> drm/i915/gvt: pass a struct intel_vgpu to the vfio read/write helpers
>>> drm/i915/gvt: remove kvmgt_guest_{init,exit}
>>> drm/i915/gvt: convert to use vfio_register_emulated_iommu_dev
>>> drm/i915/gvt: merge gvt.c into kvmgvt.c
>>>
>>> Jani Nikula (2):
>>> drm/i915/gvt: fix trace TRACE_INCLUDE_PATH
>>> drm/i915/gvt: better align the Makefile with i915 Makefile
>>>
>>> Jason Gunthorpe (5):
>>> vfio/mdev: Remove vfio_mdev.c
>>> vfio/mdev: Remove mdev_parent_ops dev_attr_groups
>>> vfio/mdev: Remove mdev_parent_ops
>>> vfio/mdev: Use the driver core to create the 'remove' file
>>> vfio/mdev: Remove mdev drvdata
>>>
>>> Zhi Wang (3):
>>> i915/gvt: Separate the MMIO tracking table from GVT-g
>>> i915/gvt: Save the initial HW state snapshot in i915
>>> i915/gvt: Use the initial HW state snapshot saved in i915
>>>
>>> Documentation/driver-api/vfio-mediated-device.rst | 27 +-
>>> drivers/gpu/drm/i915/Kconfig | 36 +-
>>> drivers/gpu/drm/i915/Makefile | 8 +-
>>> drivers/gpu/drm/i915/gvt/Makefile | 30 +-
>>> drivers/gpu/drm/i915/gvt/cfg_space.c | 89 +-
>>> drivers/gpu/drm/i915/gvt/cmd_parser.c | 4 +-
>>> drivers/gpu/drm/i915/gvt/dmabuf.c | 36 +-
>>> drivers/gpu/drm/i915/gvt/execlist.c | 12 +-
>>> drivers/gpu/drm/i915/gvt/firmware.c | 25 +-
>>> drivers/gpu/drm/i915/gvt/gtt.c | 55 +-
>>> drivers/gpu/drm/i915/gvt/gvt.c | 340 ------
>>> drivers/gpu/drm/i915/gvt/gvt.h | 128 +-
>>> drivers/gpu/drm/i915/gvt/handlers.c | 1033 +++--------------
>>> drivers/gpu/drm/i915/gvt/hypercall.h | 82 --
>>> drivers/gpu/drm/i915/gvt/interrupt.c | 40 +-
>>> drivers/gpu/drm/i915/gvt/kvmgt.c | 1097 +++++++++--------
>>> drivers/gpu/drm/i915/gvt/mmio.c | 4 +-
>>> drivers/gpu/drm/i915/gvt/mmio.h | 1 -
>>> drivers/gpu/drm/i915/gvt/mpt.h | 400 -------
>>> drivers/gpu/drm/i915/gvt/opregion.c | 148 +--
>>> drivers/gpu/drm/i915/gvt/page_track.c | 8 +-
>>> drivers/gpu/drm/i915/gvt/reg.h | 9 +-
>>> drivers/gpu/drm/i915/gvt/scheduler.c | 37 +-
>>> drivers/gpu/drm/i915/gvt/trace.h | 2 +-
>>> drivers/gpu/drm/i915/gvt/vgpu.c | 22 +-
>>> drivers/gpu/drm/i915/i915_driver.c | 7 -
>>> drivers/gpu/drm/i915/i915_drv.h | 3 +
>>> drivers/gpu/drm/i915/intel_gvt.c | 248 +++-
>>> drivers/gpu/drm/i915/intel_gvt.h | 32 +-
>>> drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 1291 +++++++++++++++++++++
>>> drivers/s390/cio/vfio_ccw_ops.c | 7 +-
>>> drivers/s390/crypto/vfio_ap_ops.c | 9 +-
>>> drivers/vfio/mdev/Makefile | 2 +-
>>> drivers/vfio/mdev/mdev_core.c | 52 +-
>>> drivers/vfio/mdev/mdev_driver.c | 10 -
>>> drivers/vfio/mdev/mdev_private.h | 6 +-
>>> drivers/vfio/mdev/mdev_sysfs.c | 37 +-
>>> drivers/vfio/mdev/vfio_mdev.c | 152 ---
>>> include/linux/mdev.h | 82 +-
>>> samples/vfio-mdev/mbochs.c | 9 +-
>>> samples/vfio-mdev/mdpy.c | 9 +-
>>> samples/vfio-mdev/mtty.c | 39 +-
>>> 42 files changed, 2530 insertions(+), 3138 deletions(-)
>>> delete mode 100644 drivers/gpu/drm/i915/gvt/gvt.c
>>> delete mode 100644 drivers/gpu/drm/i915/gvt/hypercall.h
>>> delete mode 100644 drivers/gpu/drm/i915/gvt/mpt.h
>>> create mode 100644 drivers/gpu/drm/i915/intel_gvt_mmio_table.c
>>> delete mode 100644 drivers/vfio/mdev/vfio_mdev.c
>