<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Am 12.05.22 um 00:06 schrieb Marek Olšák:<br>
<blockquote type="cite"
cite="mid:CAAxE2A6wiL5fnegVo+tMsHBNb+HC3Nw=cmR4MdNVqLpEQYH1ug@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>3rd question: Is it worth using this on APUs?</div>
</div>
</blockquote>
<br>
It makes memory management somewhat easier when we are really OOM.<br>
<br>
E.g. it should also work for GTT allocations and when the core
kernel says "Hey please free something up or I will start the
OOM-killer" it's something we can easily throw away.<br>
<br>
Not sure how many of those buffers we have, but marking everything
which is temporary with that flag is probably a good idea.<br>
<br>
<blockquote type="cite"
cite="mid:CAAxE2A6wiL5fnegVo+tMsHBNb+HC3Nw=cmR4MdNVqLpEQYH1ug@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>Thanks,</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, May 11, 2022 at 5:58
PM Marek Olšák <<a href="mailto:maraeo@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">maraeo@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Will the kernel keep all discardable buffers in VRAM if
VRAM is not overcommitted by discardable buffers, or will
other buffers also affect the placement of discardable
buffers?</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
Regarding the eviction pressure the buffers will be handled like any
other buffer, but instead of preserving the content it is just
discarded on eviction.<br>
<br>
<blockquote type="cite"
cite="mid:CAAxE2A6wiL5fnegVo+tMsHBNb+HC3Nw=cmR4MdNVqLpEQYH1ug@mail.gmail.com">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div><br>
</div>
<div>Do evictions deallocate the buffer, or do they keep an
allocation in GTT and only the copy is skipped?</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
It really deallocates the backing store of the buffer, just keeps a
dummy page array around where all entries are NULL.<br>
<br>
There is a patch set on the mailing list to make this a little bit
more efficient, but even using the dummy page array should only have
a few bytes overhead.<br>
<br>
Regards,<br>
Christian.<br>
<br>
<blockquote type="cite"
cite="mid:CAAxE2A6wiL5fnegVo+tMsHBNb+HC3Nw=cmR4MdNVqLpEQYH1ug@mail.gmail.com">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div><br>
</div>
<div>Thanks,</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, May 11, 2022 at
3:08 AM Marek Olšák <<a href="mailto:maraeo@gmail.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">maraeo@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>OK that sounds good.</div>
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, May 11, 2022
at 2:04 AM Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> Hi Marek,<br>
<br>
<div>Am 10.05.22 um 22:43 schrieb Marek Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>A better flag name would be:</div>
<div>AMDGPU_GEM_CREATE_BEST_PLACEMENT_OR_DISCARD</div>
</div>
</blockquote>
<br>
A bit long for my taste and I think the best
placement is just a side effect.<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, May
10, 2022 at 4:13 PM Marek Olšák <<a
href="mailto:maraeo@gmail.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">maraeo@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Does this really guarantee VRAM
placement? The code doesn't say anything
about that.</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
Yes, see the code here:<br>
<br>
<blockquote type="cite">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"><br>
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex"> diff
--git
a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
index 8b7ee1142d9a..1944ef37a61e 100644<br>
---
a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
+++
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c<br>
@@ -567,6 +567,7 @@ int
amdgpu_bo_create(struct amdgpu_device
*adev,<br>
bp->domain;<br>
bo->allowed_domains =
bo->preferred_domains;<br>
if (bp->type !=
ttm_bo_type_kernel &&<br>
+ !(bp->flags &
AMDGPU_GEM_CREATE_DISCARDABLE) &&<br>
bo->allowed_domains ==
AMDGPU_GEM_DOMAIN_VRAM)<br>
bo->allowed_domains |=
AMDGPU_GEM_DOMAIN_GTT;<br>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br>
The only case where this could be circumvented is
when you try to allocate more than physically
available on an APU.<br>
<br>
E.g. you only have something like 32 MiB VRAM and
request 64 MiB, then the GEM code will catch the
error and fallback to GTT (IIRC).<br>
<br>
Regards,<br>
Christian.<br>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>