On 2021.08.20 12:56:34 -0700, Luis Chamberlain wrote: > On Fri, Aug 20, 2021 at 04:17:24PM +0200, Christoph Hellwig wrote: > > On Thu, Aug 19, 2021 at 04:29:29PM +0800, Zhenyu Wang wrote: > > > I'm working on below patch to resolve this. But I met a weird issue in > > > case when building i915 as module and also kvmgt module, it caused > > > busy wait on request_module("kvmgt") when boot, it doesn't happen if > > > building i915 into kernel. I'm not sure what could be the reason? > > > > Luis, do you know if there is a problem with a request_module from > > a driver ->probe routine that is probably called by a module_init > > function itself? > > Generally no, but you can easily foot yourself in the feet by creating > cross dependencies and not dealing with them properly. I'd make sure > to keep module initialization as simple as possible, and run whatever > takes more time asynchronously, then use a state machine to allow > you to verify where you are in the initialization phase or query it > or wait for a completion with a timeout. > > It seems the code in question is getting some spring cleaning, and its > unclear where the code is I can inspect. If there's a tree somewhere I > can take a peak I'd be happy to review possible oddities that may stick > out. I tried to put current patches under test here: https://github.com/intel/gvt-linux/tree/gvt-staging The issue can be produced with CONFIG_DRM_I915=m and CONFIG_DRM_I915_GVT_KVMGT=m. > > My goto model for these sorts of problems is to abstract the issue > *outside* of the driver in question and implement new selftests to > try to reproduce. This serves two purposes, 1) helps with testing > 2) may allow you to see the problem more clearly. > I'll see if can abstract that. Thanks, Luis.