<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hi Alejandro,<br>
<br>
yes I'm very aware of this issue, but unfortunately can't give an
easy solution either.<br>
<br>
I'm working for over a year now on getting this fixed, but
unfortunately it turned out that this problem is much bigger than
initially thought.<br>
<br>
Setting the appropriate GFP flags for the job allocation is
actually the trivial part.<br>
<br>
The really really hard thing is that we somehow need to add a lock
to prevent the page tables from being evicted. And as you also
figured out that lock can't be taken easily anywhere else.<br>
<br>
I've already wrote a prototype for this, but didn't had time to
hammer it into shape for upstreaming yet.<br>
<br>
Regards,<br>
Christian.<br>
<br>
Am 27.11.19 um 15:55 schrieb Sierra Guiza, Alejandro (Alex):<br>
</div>
<blockquote type="cite" cite="mid:SN6PR12MB26216A095D9839500242F489FD440@SN6PR12MB2621.namprd12.prod.outlook.com">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Segoe UI";
panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:0in;
margin-right:0in;
margin-bottom:8.0pt;
margin-left:0in;
line-height:106%;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Hi Christian,<o:p></o:p></p>
<p class="MsoNormal">As you know, we’re working on the HMM
enablement. Im working on the dGPU page table entries
invalidation on the userptr mapping case. Currently, the MMU
notifiers handle stops all user mode queues, schedule a
delayed worker to re-validate userptr mappings and restart the
queues. <o:p></o:p></p>
<p class="MsoNormal">Part of the HMM functionality, we need to
invalidate the page table entries instead of stopping the
queues. At the same time we need to move the revalidation of
the userptr mappings into the page fault handler.<o:p></o:p></p>
<p class="MsoNormal">We’re seeing a deadlock warning after we
try to invalidate the PTEs inside the MMU notifier handler.
More specific, when we try to update the BOs to invalidate
PTEs using amdgpu_vm_bo_update. This uses kmalloc on the
amdgpu_job_alloc which seems to be causing this problem.<o:p></o:p></p>
<p class="MsoNormal">Based on <a id="OWAAMBC6F9A316D814AE993661FC111776926" href="mailto:Felix.Kuehling@amd.com" moz-do-not-send="true">
<span style="font-family:"Calibri",sans-serif;text-decoration:none">@Kuehling,
Felix</span></a> comments,
<span style="font-size:10.5pt;line-height:106%;font-family:"Segoe
UI",sans-serif">
kmalloc without any special flags can cause memory reclaim.
Doing that inside an MMU notifier is problematic, because an
MMU notifier may be called inside a memory-reclaim operation
itself. That would result in recursion. Also, reclaim
shouldn't be done while holding a lock that can be taken in
an MMU notifier for the same reason. If you cause a reclaim
while holding that lock, then an MMU notifier called by the
reclaim can deadlock trying to take the same lock.<o:p></o:p></span></p>
<p class="MsoNormal">Please let us know if you have any advice
to enable this the right way<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks in advanced,<o:p></o:p></p>
<p class="MsoNormal">Alejandro<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<br>
</body>
</html>