<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content="text/html; charset=UTF-8">
<style type="text/css" style="">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Bonjour,</p>
<p><br>
</p>
<p>Yes, it is my understanding that virtio-gpu allocates memory on the guest.</p>
<p>Then on the host you will have the corresponding backing store... <br>
</p>
<p>if synchronization is needed, then you will get a transfer Host to guest and vice-versa and your performance is.. not great.</p>
<p>The transfer to the attach backing is basically a memcpyv().<br>
</p>
<p><br>
</p>
<p>On Android, it can get more challenging, as Android is not killing apps, but relying on the lmkd (low memory killer) to take actions...</p>
<p>Except that the graphics memory being consumed by guest... is actually on the host... sigh... the accounting is off.</p>
<p><br>
</p>
<p>They are different possible strategies to deal with this.</p>
<p>Gerd H proposed a few...</p>
<p><br>
</p>
<p>Thanks<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> virglrenderer-devel <virglrenderer-devel-bounces@lists.freedesktop.org> on behalf of Chia-I Wu <olvaffe@gmail.com><br>
<b>Sent:</b> Wednesday, August 19, 2020 6:40:38 PM<br>
<b>To:</b> Vasyl Vavrychuk<br>
<b>Cc:</b> virglrenderer-devel<br>
<b>Subject:</b> Re: [virglrenderer-devel] virgl_renderer_resource_import_eglimage</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">On Wed, Aug 19, 2020 at 3:12 PM Vasyl Vavrychuk <vvavrychuk@gmail.com> wrote:<br>
><br>
> On Wed, Aug 19, 2020 at 10:02 PM Chia-I Wu <olvaffe@gmail.com> wrote:<br>
> ><br>
> > On Wed, Aug 19, 2020 at 1:42 AM Vasyl Vavrychuk <vvavrychuk@gmail.com> wrote:<br>
> > ><br>
> > > Commit message for commit that adds "virgl_renderer_resource_import_eglimage" says this function supposed to be used from CrosVM. But I have checked CrosVM source and did not find virgl_renderer_resource_import_eglimage usage. Same for QEMU.<br>
> > ><br>
> > > As I understand virgl_renderer_resource_import_eglimage is essential to achieve zero copy. So, why QEMU/CrosVM do not use it. Are they using some other methods to achieve zero copy?<br>
> ><br>
> > I think crosvm moved from import model to export model a while ago.<br>
> > It probably uses virgl_renderer_export_query now (didn't verify).<br>
><br>
> You are right, crosvm does export fd and then "RegisterFdAtPciBarOffset".<br>
><br>
> But, as far as I understand, this means that resources are allocated<br>
> from host memory. In embedded systems, usually video memory is the<br>
> same as RAM, but here RAM accessible to the guest and video memory<br>
> provided by virglrenderer/crosvm will be separate. So I will have to<br>
> limit separately, that for example, my guest should have 2 GB of RAM<br>
> and 1 GB of video memory. Kindly please confirm that my understanding<br>
> is correct.<br>
<br>
That is correct, but it has nothing to do with importing or exporting.<br>
The difference is whether crosvm or virglrenderer allocates, but those<br>
allocations are not from the guest memory no matter who allocates.  I<br>
think at least virglrenderer does not put any limit.<br>
<br>
For qemu 2D mode, there is indeed a property called max_hostmem to<br>
limit total host allocation size.<br>
_______________________________________________<br>
virglrenderer-devel mailing list<br>
virglrenderer-devel@lists.freedesktop.org<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_virglrenderer-2Ddevel&d=DwICAg&c=yzoHOc_ZK-sxl-kfGNSEvlJYanssXN3q-lhj0sp26wE&r=HXY0JlWsCRezqLYUvNUPwHZ5mqaW649zvjNgwUbCqdA&m=wzB6ubiaQAckPg2BQnh3xKd7rlrZb0vrg3WEO8LX3C0&s=K4dgo1ALtSeiMGoYSB30Hr2NMVK8pnsy0yPxudjWwtA&e=">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_virglrenderer-2Ddevel&d=DwICAg&c=yzoHOc_ZK-sxl-kfGNSEvlJYanssXN3q-lhj0sp26wE&r=HXY0JlWsCRezqLYUvNUPwHZ5mqaW649zvjNgwUbCqdA&m=wzB6ubiaQAckPg2BQnh3xKd7rlrZb0vrg3WEO8LX3C0&s=K4dgo1ALtSeiMGoYSB30Hr2NMVK8pnsy0yPxudjWwtA&e=</a>
<br>
</div>
</span></font>

<HR>This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.<BR>
</body>
</html>