On Wed, Sep 29, 2021 at 3:25 AM 李真能 <lizhenneng@xxxxxxxxxx> wrote: > > Hello: > > When I do loop auto test of reboot, I found kernel may halt > on memcpy_fromio of amdgpu's amdgpu_uvd_suspend, so I remove suspend > process in amdgpu_pci_shutdown, and it will fix this bug. > > I have 3 questions to ask: > > 1. In amdgpu_pci_shutdown, the comment explains why we must execute > suspend, so I know VM will call amdgpu driver in which situations, as I > know, VM's graphics card is a virtual card; > > 2. I see a path that is commited by Alex Deucher, the commit message is > as follows: > > drm/amdgpu: just suspend the hw on pci shutdown > > We can't just reuse pci_remove as there may be userspace still > doing things. > > My question is:In which situations, there may be userspace till doing > things. > > 3. Why amdgpu driver is halted on memcpy_fromio of amdgpu_uvd_suspend, I > haven't launch any video app during reboot test, is it the bug of pci bus? > > Test environment: > > CPU: arm64 I suspect the problem is something ARM specific. IIRC, we added the memcpy_fromio() to work around a limitation in ARM related to CPU mappings of PCI BAR memory. The whole point of the PCI shutdown callback is to put the device into a quiescent state (e.g., stop all DMAs and asynchronous engines, etc.). Some of that tear down requires access to PCI BARs. Alex > > Graphics card: r7340(amdgpu), rx550 > > OS: ubuntu 2004 >