<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Thomas,<br>
    <br>
    <div class="moz-cite-prefix">On 9/4/2019 4:43 PM, Thomas Zimmermann
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:33d3ce15-6221-bd96-3f26-b710e4da6b1a@suse.de">
      <pre class="moz-quote-pre" wrap="">Hi

Am 04.09.19 um 10:35 schrieb Feng Tang:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Hi Daniel,

On Wed, Sep 04, 2019 at 10:11:11AM +0200, Daniel Vetter wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">On Wed, Sep 4, 2019 at 8:53 AM Thomas Zimmermann <a class="moz-txt-link-rfc2396E" href="mailto:tzimmermann@suse.de"><tzimmermann@suse.de></a> wrote:
</pre>
          <blockquote type="cite">
            <pre class="moz-quote-pre" wrap="">
Hi

Am 04.09.19 um 08:27 schrieb Feng Tang:
</pre>
            <blockquote type="cite">
              <blockquote type="cite">
                <pre class="moz-quote-pre" wrap="">Thank you for testing. But don't get too excited, because the patch
simulates a bug that was present in the original mgag200 code. A
significant number of frames are simply skipped. That is apparently the
reason why it's faster.
</pre>
              </blockquote>
              <pre class="moz-quote-pre" wrap="">
Thanks for the detailed info, so the original code skips time-consuming
work inside atomic context on purpose. Is there any space to optmise it?
If 2 scheduled update worker are handled at almost same time, can one be
skipped?
</pre>
            </blockquote>
            <pre class="moz-quote-pre" wrap="">
To my knowledge, there's only one instance of the worker. Re-scheduling
the worker before a previous instance started, will not create a second
instance. The worker's instance will complete all pending updates. So in
some way, skipping workers already happens.
</pre>
          </blockquote>
          <pre class="moz-quote-pre" wrap="">
So I think that the most often fbcon update from atomic context is the
blinking cursor. If you disable that one you should be back to the old
performance level I think, since just writing to dmesg is from process
context, so shouldn't change.
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
Hmm, then for the old driver, it should also do the most update in
non-atomic context? 

One other thing is, I profiled that updating a 3MB shadow buffer needs
20 ms, which transfer to 150 MB/s bandwidth. Could it be related with
the cache setting of DRM shadow buffer? say the orginal code use a
cachable buffer?


</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">
<a class="moz-txt-link-freetext" href="https://unix.stackexchange.com/questions/3759/how-to-stop-cursor-from-blinking">https://unix.stackexchange.com/questions/3759/how-to-stop-cursor-from-blinking</a>

Bunch of tricks, but tbh I haven't tested them.
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
Thomas has suggested to disable curson by
        echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink

We tried that way, and no change for the performance data.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
There are several ways of disabling the cursor. On my test system, I entered

  tput civis

before the test and got better performance. Did you try this as well?</pre>
    </blockquote>
    <br>
    There's no obvious change on our system.<br>
    <br>
    Best Regards,<br>
    Rong Chen<br>
    <br>
    <blockquote type="cite"
      cite="mid:33d3ce15-6221-bd96-3f26-b710e4da6b1a@suse.de">
      <pre class="moz-quote-pre" wrap="">

Best regards
Thomas

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">
Thanks,
Feng

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">
In any case, I still strongly advice you don't print anything to dmesg
or fbcon while benchmarking, because dmesg/printf are anything but
fast, especially if a gpu driver is involved. There's some efforts to
make the dmesg/printk side less painful (untangling the console_lock
from printk), but fundamentally printing to the gpu from the kernel
through dmesg/fbcon won't be cheap. It's just not something we
optimize beyond "make sure it works for emergencies".
-Daniel

</pre>
          <blockquote type="cite">
            <pre class="moz-quote-pre" wrap="">
Best regards
Thomas

</pre>
            <blockquote type="cite">
              <pre class="moz-quote-pre" wrap="">
Thanks,
Feng

</pre>
              <blockquote type="cite">
                <pre class="moz-quote-pre" wrap="">
Best regards
Thomas
</pre>
              </blockquote>
              <pre class="moz-quote-pre" wrap="">_______________________________________________
dri-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/dri-devel">https://lists.freedesktop.org/mailman/listinfo/dri-devel</a>

</pre>
            </blockquote>
            <pre class="moz-quote-pre" wrap="">
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)

_______________________________________________
dri-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/dri-devel">https://lists.freedesktop.org/mailman/listinfo/dri-devel</a>
</pre>
          </blockquote>
          <pre class="moz-quote-pre" wrap="">


-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - <a class="moz-txt-link-freetext" href="http://blog.ffwll.ch">http://blog.ffwll.ch</a>
</pre>
        </blockquote>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
LKP mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LKP@lists.01.org">LKP@lists.01.org</a>
<a class="moz-txt-link-freetext" href="https://lists.01.org/mailman/listinfo/lkp">https://lists.01.org/mailman/listinfo/lkp</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>