<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Am 10.01.19 um 12:41 schrieb Marek
Olšák:<br>
</div>
<blockquote type="cite"
cite="mid:CAAxE2A6z_LLzzsLqsBtLyXcFTsLG_8FQc7=oN2p_nLJGoXbmgg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div><br>
<br>
<div class="gmail_quote">
<div dir="ltr">On Thu, Jan 10, 2019, 4:15 AM Koenig,
Christian <<a href="mailto:Christian.Koenig@amd.com"
moz-do-not-send="true">Christian.Koenig@amd.com</a>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div class="m_-4107032735876451030moz-cite-prefix">Am
10.01.19 um 00:39 schrieb Marek Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">On Wed, Jan 9, 2019 at 1:41 PM
Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true">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 bgcolor="#FFFFFF">
<div
class="m_-4107032735876451030gmail-m_-7810855682144448022moz-cite-prefix">Am
09.01.19 um 17:14 schrieb Marek Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">On Wed, Jan 9, 2019 at
8:09 AM Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true">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 bgcolor="#FFFFFF">
<div
class="m_-4107032735876451030gmail-m_-7810855682144448022m_8930908994027207900m_-7323258551939539738gmail-m_4443106390953893387gmail-m_-3252015337124169842moz-cite-prefix">Am
09.01.19 um 13:36 schrieb Marek
Olšák:<br>
</div>
<blockquote type="cite">
<div dir="auto">
<div><br>
<br>
<div class="gmail_quote">
<div dir="ltr">On Wed, Jan
9, 2019, 5:28 AM
Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
target="_blank"
rel="noreferrer"
moz-do-not-send="true">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">
Looks good, but I'm
wondering what's the
actual improvement?<br>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">No malloc
calls and 1 less for loop
copying the bo list.</div>
</div>
</blockquote>
<br>
Yeah, but didn't we want to get
completely rid of the bo list?<br>
</div>
</blockquote>
<div><br>
</div>
If we have multiple IBs (e.g. gfx +
compute) that share a BO list, I think
it's faster to send the BO list to the
kernel only once.</div>
</div>
</div>
</blockquote>
<br>
That's not really faster.<br>
<br>
The only thing we safe us is a single loop
over all BOs to lockup the handle into a
pointer and that is only a tiny fraction of
the overhead.<br>
<br>
The majority of the overhead is locking the
BOs and reserving space for the submission.<br>
<br>
What could really help here is to submit
gfx+comput together in just one CS IOCTL. This
way we would need the locking and space
reservation only once.<br>
<br>
It's a bit of work in the kernel side, but
certainly doable.<br>
</div>
</blockquote>
<div><br>
</div>
<div>OK. Any objections to this patch?</div>
</div>
</div>
</blockquote>
<br>
In general I'm wondering if we couldn't avoid adding so
much new interface.<br>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">There are Vulkan drivers that still use the
bo_list interface.</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<br>
For example we can avoid the malloc() when we just cache
the last freed bo_list structure in the device. We would
just need an atomic pointer exchange operation for that.</div>
</blockquote>
</div>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<br>
This way we even don't need to change mesa at all.<br>
</div>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">There is still the for loop that we need to get
rid of.</div>
</div>
</blockquote>
<br>
Yeah, but that I'm fine to handle with a amdgpu_bo_list_create_raw
which only takes the handles and still returns the amdgpu_bo_list
structure we are used to.<br>
<br>
See what I'm mostly concerned about is having another CS function to
maintain.<br>
<br>
<blockquote type="cite"
cite="mid:CAAxE2A6z_LLzzsLqsBtLyXcFTsLG_8FQc7=oN2p_nLJGoXbmgg@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<br>
Regarding optimization, this chunk can be replaced by a
cast on 64bit:<br>
<blockquote type="cite">
<pre class="m_-4107032735876451030moz-quote-pre">+ chunk_array = alloca(sizeof(uint64_t) * num_chunks);
+ for (i = 0; i < num_chunks; i++)
+ chunk_array[i] = (uint64_t)(uintptr_t)&chunks[i];</pre>
</blockquote>
</div>
</blockquote>
</div>
</div>
<div dir="auto">It can't. The input is an array of structures.
The ioctl takes an array of pointers.</div>
</div>
</blockquote>
<br>
Ah! Haven't seen this, sorry for the noise.<br>
<br>
Christian.<br>
<br>
<blockquote type="cite"
cite="mid:CAAxE2A6z_LLzzsLqsBtLyXcFTsLG_8FQc7=oN2p_nLJGoXbmgg@mail.gmail.com">
<div dir="auto">
<div dir="auto"><br>
</div>
<div dir="auto">Marek</div>
<div dir="auto"><br>
</div>
<div dir="auto">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<blockquote type="cite">
</blockquote>
<br>
Regards,<br>
Christian.<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>Thanks,<br>
</div>
<div>Marek</div>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
amd-gfx mailing list
<a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a>
</pre>
</blockquote>
<br>
</body>
</html>