LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: "Wang, Zhi A" <zhi.a.wang@intel.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Luis Chamberlain <mcgrof@kernel.org>,
Jessica Yu <jeyu@kernel.org>,
"De Marchi, Lucas" <lucas.demarchi@intel.com>,
Zhenyu Wang <zhenyuw@linux.intel.com>,
Christoph Hellwig <hch@lst.de>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
Greg KH <gregkh@linuxfoundation.org>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Jani Nikula <jani.nikula@linux.intel.com>,
Gerd Hoffmann <kraxel@redhat.com>,
"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
"intel-gvt-dev@lists.freedesktop.org"
<intel-gvt-dev@lists.freedesktop.org>,
"Nikula, Jani" <jani.nikula@intel.com>
Subject: Re: refactor the i915 GVT support
Date: Tue, 5 Oct 2021 07:33:25 +0000 [thread overview]
Message-ID: <c8dcbdeb-f4d9-d1ef-9083-14fca094468f@intel.com> (raw)
In-Reply-To: <0f52ab3e-f50a-041f-f37d-4d2f3febe49b@intel.com>
Hi folks:
It seems we haven't reached a possible solution of this refactor patch
series. The current patch series needs to be re-worked because of the
module/symbol dependency(The root cause has been discussed in another
email). I have to get them off from our gvt-next repo so that we can
continue our development and pull-request to upstream. Thanks so much
for the patch and the discussion.
Thanks,
Zhi.
On 10/1/21 1:01 PM, Wang, Zhi A wrote:
> On 9/29/21 6:55 PM, Jason Gunthorpe wrote:
>> On Wed, Sep 29, 2021 at 06:27:16PM +0000, Wang, Zhi A wrote:
>>> On 9/28/21 3:05 PM, Jason Gunthorpe wrote:
>>>> On Tue, Sep 28, 2021 at 02:35:06PM +0000, Wang, Zhi A wrote:
>>>>
>>>>> Yes. I was thinking of the possibility of putting off some work
>>>>> later so
>>>>> that we don't need to make a lot of changes. GVT-g needs to take a
>>>>> snapshot of GPU registers as the initial virtual states for other
>>>>> vGPUs,
>>>>> which requires the initialization happens at a certain early time of
>>>>> initialization of i915. I was thinking maybe we can take other
>>>>> patches
>>>>> from Christoph like "de-virtualize*" except this one because
>>>>> currently
>>>>> we have to maintain a TEST-ONLY patch on our tree to prevent i915
>>>>> built
>>>>> as kernel module.
>>>> How about just capture these registers in the main module/device and
>>>> not try so hard to isolate it to the gvt stuff?
>>> Hi Jason:
>>>
>>> Thanks for the idea. I am not sure i915 guys would take this idea since
>>> that it's only for GVT-g, i915 doesn't use this at all. We need to take
>>> a snapshot of both PCI configuration space and MMIO registers before
>>> i915 driver starts to touch the HW.
>> Given the code is already linked into i915 I don't see there is much
>> to object to here. It can remain conditional on the kernel parameter
>> as today.
>>
>> As a general philosophy this would all be much less strange if the
>> mdev .ko is truely optional. It should be cleanly seperate from its
>> base device and never request_module'd..
>>
>> In this case auxiliary device might be a good option, have i915 create
>> one and the mdev module be loaded against it.
>>
>> In the mean time is there some shortcut to get this series to move
>> ahead? Is patch 4 essential to the rest of the series?
>>
>> A really awful hack would be to push the pci_driver_register into a
>> WQ so that the request_module is guarenteed to not be part of the
>> module_init callchain.
>
> Hi Jason and folks:
>
> Thanks so much for the ideas. That sounds great and I was keeping
> thinking how to make progress on this. How about we do like this: We
> don't do request_module("kvmgt") in i915.ko, which resolves the
> circular module dependency. We keep the code of doing snapshot of
> registers in intel_gvt.c. When i915.enable_gvt=1, we do the snapshot.
> Then we export functions for kvmgt.ko in intel_gvt.c to check if gvt
> in i915 is enabled or not and get the snapshots.
>
> How does that sounds? I just need to write another patch and put it on
> top of Christoph's series.
>
> Thanks,
>
> Zhi.
>
>>> Also I was thinking if moving gvt into kvmgt.ko is the right direction.
>>> It seems the module loading system in kernel is not designed for
>>> "module
>>> A loading module B, which needs symbols from module A, in the
>>> initialization path of module A".
>> Of course not, that is a circular module dependency, it should not be
>> that way. The SW layers need to be clean and orderly - meaning the
>> i915 module needs to have the minimal amount of code to support the
>> mdev module.
>>
>> Jason
>
>
next prev parent reply other threads:[~2021-10-05 7:33 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-21 15:53 Christoph Hellwig
2021-07-21 15:53 ` [PATCH 01/21] drm/i915/gvt: integrate into the main Makefile Christoph Hellwig
2021-08-03 9:27 ` Zhenyu Wang
2021-07-21 15:53 ` [PATCH 02/21] drm/i915/gvt: remove module refcounting in intel_gvt_{,un}register_hypervisor Christoph Hellwig
2021-07-21 15:53 ` [PATCH 03/21] drm/i915/gvt: remove enum hypervisor_type Christoph Hellwig
2021-07-21 15:53 ` [PATCH 04/21] drm/i915/gvt: move the gvt code into kvmgt.ko Christoph Hellwig
2021-08-09 11:29 ` Joonas Lahtinen
2021-08-09 14:29 ` Christoph Hellwig
2021-07-21 15:53 ` [PATCH 05/21] drm/i915/gvt: remove intel_gvt_ops Christoph Hellwig
2021-07-21 15:53 ` [PATCH 06/21] drm/i915/gvt: remove the map_gfn_to_mfn and set_trap_area ops Christoph Hellwig
2021-07-21 15:53 ` [PATCH 07/21] drm/i915/gvt: remove the unused from_virt_to_mfn op Christoph Hellwig
2021-07-21 15:53 ` [PATCH 08/21] drm/i915/gvt: merge struct kvmgt_vdev into struct intel_vgpu Christoph Hellwig
2021-07-21 15:53 ` [PATCH 09/21] drm/i915/gvt: merge struct kvmgt_guest_info into strut intel_vgpu Christoph Hellwig
2021-07-21 15:53 ` [PATCH 10/21] drm/i915/gvt: remove vgpu->handle Christoph Hellwig
2021-07-21 15:53 ` [PATCH 11/21] drm/i915/gvt: devirtualize ->{read,write}_gpa Christoph Hellwig
2021-07-21 15:53 ` [PATCH 12/21] drm/i915/gvt: devirtualize ->{get,put}_vfio_device Christoph Hellwig
2021-07-21 15:53 ` [PATCH 13/21] drm/i915/gvt: devirtualize ->set_edid and ->set_opregion Christoph Hellwig
2021-07-21 15:53 ` [PATCH 14/21] drm/i915/gvt: devirtualize ->detach_vgpu Christoph Hellwig
2021-07-21 15:53 ` [PATCH 15/21] drm/i915/gvt: devirtualize ->inject_msi Christoph Hellwig
2021-07-21 15:53 ` [PATCH 16/21] drm/i915/gvt: devirtualize ->is_valid_gfn Christoph Hellwig
2021-07-21 15:53 ` [PATCH 17/21] drm/i915/gvt: devirtualize ->gfn_to_mfn Christoph Hellwig
2021-07-21 15:53 ` [PATCH 18/21] drm/i915/gvt: devirtualize ->{enable,disable}_page_track Christoph Hellwig
2021-07-21 15:53 ` [PATCH 19/21] drm/i915/gvt: devirtualize ->dma_{,un}map_guest_page Christoph Hellwig
2021-07-21 15:53 ` [PATCH 20/21] drm/i915/gvt: devirtualize dma_pin_guest_page Christoph Hellwig
2021-07-21 15:53 ` [PATCH 21/21] drm/i915/gvt: remove struct intel_gvt_mpt Christoph Hellwig
2021-07-22 9:45 ` refactor the i915 GVT support Zhenyu Wang
2021-07-22 12:55 ` Christoph Hellwig
2021-07-22 10:49 ` Wang, Zhi A
2021-07-22 11:26 ` Gerd Hoffmann
2021-07-27 12:12 ` Jason Gunthorpe
2021-07-28 13:38 ` Wang, Zhi A
2021-07-28 13:43 ` Greg KH
2021-07-28 17:59 ` Jason Gunthorpe
2021-07-29 7:20 ` Christoph Hellwig
2021-07-29 7:30 ` [Intel-gfx] " Daniel Vetter
2021-08-03 9:43 ` Zhenyu Wang
2021-08-03 14:30 ` Jason Gunthorpe
2021-08-04 5:26 ` Zhenyu Wang
2021-08-16 17:34 ` Christoph Hellwig
2021-08-17 1:08 ` Zhenyu Wang
2021-08-17 5:22 ` Zhenyu Wang
2021-08-19 8:29 ` Zhenyu Wang
2021-08-19 14:43 ` Joonas Lahtinen
2021-08-26 6:04 ` Zhenyu Wang
2021-08-20 14:17 ` Christoph Hellwig
2021-08-20 19:56 ` Luis Chamberlain
2021-08-26 6:12 ` Zhenyu Wang
2021-09-28 7:41 ` Wang, Zhi A
2021-09-28 14:00 ` Luis Chamberlain
2021-09-28 14:35 ` Wang, Zhi A
2021-09-28 15:05 ` Jason Gunthorpe
2021-09-29 18:27 ` Wang, Zhi A
2021-09-29 18:55 ` Jason Gunthorpe
2021-10-01 13:01 ` Wang, Zhi A
2021-10-05 7:33 ` Wang, Zhi A [this message]
2021-09-30 5:24 ` Christoph Hellwig
2021-08-26 6:08 ` Zhenyu Wang
2021-08-04 5:40 ` Christoph Hellwig
2021-07-29 8:19 ` Wang, Zhi A
2021-07-22 13:16 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c8dcbdeb-f4d9-d1ef-9083-14fca094468f@intel.com \
--to=zhi.a.wang@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=jani.nikula@linux.intel.com \
--cc=jeyu@kernel.org \
--cc=jgg@nvidia.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kraxel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=mcgrof@kernel.org \
--cc=rodrigo.vivi@intel.com \
--cc=zhenyuw@linux.intel.com \
--subject='Re: refactor the i915 GVT support' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).