<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="auto">
<div>Yes, exactly.
<div dir="auto"><br>
</div>
<div dir="auto">The problem is that even when output is qxl or the Intel driver our driver is still loaded and forcefully removing it renders the desktop unusable.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Christian.</div>
<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">Am 18.09.2019 11:24 schrieb "Deng, Emily" <Emily.Deng@amd.com>:<br type="attribution">
<blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<p>Hi Christian,</p>
<p style="text-indent:10pt">Do you mean, for passthrough mode, the desktop is rendered by our asic, but enduser is trying to remove the driver by hot plug?</p>
<p> </p>
<p>Best wishes</p>
<p>Emily Deng</p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1pt;padding:3pt 0in 0in 0in">
<p><b>From:</b> Koenig, Christian <Christian.Koenig@amd.com> <br>
<b>Sent:</b> Wednesday, September 18, 2019 4:44 PM<br>
<b>To:</b> Deng, Emily <Emily.Deng@amd.com><br>
<b>Cc:</b> Zhang, Jack (Jian) <Jack.Zhang1@amd.com>; amd-gfx@lists.freedesktop.org; Teng, Rui <Rui.Teng@amd.com>; Cui, Flora <Flora.Cui@amd.com><br>
<b>Subject:</b> RE: [PATCH] drm/amdgpu/sriov: omit fbcon error under sriov or passthrough</p>
</div>
</div>
<p> </p>
<div>
<div>
<p>Hi Emily,</p>
<div>
<p> </p>
</div>
<div>
<p>Yeah, exactly that's the problem: In some cases the driver can be unloaded while it is still in use!</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>See we added this error message because endusers tried to use PCIe hot plug to unload the driver to use the hardware for paththrough.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>But this will completely nuke your desktop, even when amdgpu is only a secondary device like in the qxl case.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>Jack is using the correct way of doing it, e.g. using "modprobe -r" or rmmod. Both commands check the use count before unloading the driver instances.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>I don't see a way to distingt the two cases and what Jack is doing is unfortunate not the common one.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>Regards,</p>
</div>
<div>
<p>Christian.</p>
</div>
<div>
<p> </p>
</div>
</div>
<div>
<p> </p>
<div>
<p>Am 18.09.2019 10:08 schrieb "Deng, Emily" <<a href="mailto:Emily.Deng@amd.com">Emily.Deng@amd.com</a>>:</p>
<blockquote style="border:none;border-left:solid #cccccc 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p>Hi Christian,</p>
<p>     Before unloading driver, user must sure there is not any userspace to use of amdgpu, if not, it will report driver is in use. And the unloading driver is a feature about amdgpu driver which will be easier to replace driver without rebooting VM. Do you
 think it has any issue about driver unloading path?</p>
<p> </p>
<p>Best wishes</p>
<p>Emily Deng</p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1pt;padding:3pt 0in 0in 0in">
<p><b>From:</b> Koenig, Christian <<a href="mailto:Christian.Koenig@amd.com">Christian.Koenig@amd.com</a>>
<br>
<b>Sent:</b> Wednesday, September 18, 2019 3:54 PM<br>
<b>To:</b> Zhang, Jack (Jian) <<a href="mailto:Jack.Zhang1@amd.com">Jack.Zhang1@amd.com</a>><br>
<b>Cc:</b> <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a>; Teng, Rui <<a href="mailto:Rui.Teng@amd.com">Rui.Teng@amd.com</a>>; Deng, Emily <<a href="mailto:Emily.Deng@amd.com">Emily.Deng@amd.com</a>>; Cui, Flora <<a href="mailto:Flora.Cui@amd.com">Flora.Cui@amd.com</a>><br>
<b>Subject:</b> RE: [PATCH] drm/amdgpu/sriov: omit fbcon error under sriov or passthrough</p>
</div>
</div>
<p> </p>
<div>
<div>
<p>Hi Jack,</p>
<div>
<p> </p>
</div>
<div>
<p>Well that believe is unfortunately completely wrong.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>The point is that ANY use of amdgpu by userspace will prevent correct driver unload, that qxl is used for the fbcon doesn't change anything here.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>So the patch is a clear NAK. Driver unload is not supposed to work even under SRIOV.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p>Regards,</p>
</div>
<div>
<p>Christian.</p>
</div>
<div>
<p> </p>
</div>
<div>
<p> </p>
</div>
</div>
<div>
<p> </p>
<div>
<p>Am 18.09.2019 09:32 schrieb "Zhang, Jack (Jian)" <<a href="mailto:Jack.Zhang1@amd.com">Jack.Zhang1@amd.com</a>>:</p>
</div>
</div>
</div>
<div>
<p style="margin-bottom:12pt">Hi, Christian and folks,<br>
<br>
In virtual machines(such virt-manager), there's always a virtual graphics device existed like "qxl" as the default gfx device.<br>
So under such condition, we believe it's reasonable to unload amdgpu driver as it is not treated as the default fbcon device.<br>
<br>
Would you please help to review this patch?<br>
<br>
Best wishes,<br>
Jack<br>
<br>
-----Original Message-----<br>
From: Jack Zhang <<a href="mailto:Jack.Zhang1@amd.com">Jack.Zhang1@amd.com</a>> <br>
Sent: Wednesday, September 18, 2019 3:25 PM<br>
To: <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
Cc: Zhang, Jack (Jian) <<a href="mailto:Jack.Zhang1@amd.com">Jack.Zhang1@amd.com</a>><br>
Subject: [PATCH] drm/amdgpu/sriov: omit fbcon error under sriov or passthrough<br>
<br>
In virtual machine, there would be a qxl or cirrus graphics device as the default master fbcon device.<br>
<br>
So for PF(passthrough mode) or SRIOV VF, it is reasonable to unload amdgpu driver. Amdgpu doesn't have to be the only fbcon device under this condition.<br>
<br>
Signed-off-by: Jack Zhang <<a href="mailto:Jack.Zhang1@amd.com">Jack.Zhang1@amd.com</a>><br>
---<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++--<br>
 1 file changed, 3 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br>
index 420888e..ada2b25 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c<br>
@@ -1103,8 +1103,9 @@ static void<br>
 amdgpu_pci_remove(struct pci_dev *pdev)  {<!-- --><br>
         struct drm_device *dev = pci_get_drvdata(pdev);<br>
-<br>
-       DRM_ERROR("Device removal is currently not supported outside of fbcon\n");<br>
+       struct amdgpu_device *adev = dev->dev_private;<br>
+       if (!amdgpu_sriov_vf(adev) && !amdgpu_passthrough(adev))<br>
+               DRM_ERROR("Device removal is currently not supported outside of <br>
+fbcon\n");<br>
         drm_dev_unplug(dev);<br>
         drm_dev_put(dev);<br>
         pci_disable_device(pdev);<br>
--<br>
2.7.4</p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p> </p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</body>
</html>