[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-xorg
Subject:    Re: High CPU usage with tabs and GTK
From:       Neil Whelchel <neilwhelchel () gmail ! com>
Date:       2012-02-29 11:31:09
Message-ID: CAMfRM+tdHhTwOowX0VLxQRjtX+02KiCfRC2Y186WrRE6-sbEyQ () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hello,
Thank you for pointing out xscope, I didn't know about it.
I ran my app under xscope and the first thing I noticed was that there were
many DAMAGE-Event related messages, about 90 groups of them per second. So
on a hunch, I disabled DAMAGE in X and the problem of the constant chatter
went away completely, the CPU went to 0%-1% with tabs in the app and
gtk.events_pending() returns False as soon as the window is rendered just
like I expect it to. The output of xscope is very verbose, so what
arguments do you recommend I use to narrow down the output to something
useful? I was attempting to find a repeating pattern that I could post
here, but the damage events all seemed to be mixed in with a lot of stuff
that doesn't have a short term repeat. So, here is a semi random excerpt
from the log that looked like it might apply:
Thank you,
-Neil-



 6.35:                                    64 bytes <-- X11 Server
                                         ..............EVENT: DAMAGE-Event
                                                      detail: 02
                                                        data: 8b 09 20 06
8c 09
                                         ..............REPLY: GetGeometry
                                                       depth: 18
                                                        root: WIN 00000043
                                                           x: 4
                                                           y: 25
                                                       width: 00eb
                                                      height: 02bd
                                                border-width: 0000

6.33: Client -->  128 bytes
         ............REQUEST: XFIXES-Request
                minor opcode: 05
                        data: (3)
         ............REQUEST: DAMAGE-Request
                minor opcode: 03
                        data: (3)
         ............REQUEST: XFIXES-Request
                minor opcode: 0a
                        data: (1)
         ............REQUEST: CreatePixmap
                       depth: 18
                   pixmap-id: PXM 06200d76
                    drawable: DWB 06200061
                       width: 00ef
                      height: 02c1
         ............REQUEST: RenderRequest
               RENDERREQUEST: RenderCreatePicture
                     picture: PICTURE 06200d77
                    drawable: DWB 06200d76
                      format: PICTFORMAT 00000029
                  value-mask: 0
         ............REQUEST: RenderRequest
               RENDERREQUEST: RenderFillRectangles
                          op: Over
                        dest: PICTURE 06200d77
                       color: COLOR r:d5d5 g:d1d1 b:cfcf a:ffff
                  rectangles: (1)
         ............REQUEST: GetProperty
                      delete: False
                      window: WIN 06200061
                    property: ATM 0000019d
                        type: <CARDINAL>
                 long-offset: 00000000


On Mon, Feb 27, 2012 at 11:53 AM, Adam Jackson <ajax@redhat.com> wrote:

> On Fri, 2012-02-24 at 23:40 -0800, Neil Whelchel wrote:
>
> > Here is a cut and paste of what strace shows, the messages repeat
> > about 90 times per second when tabs are active.
>
> strace output is unpleasantly difficult to read for this purpose.  Try
> using xscope instead:
>
> http://cgit.freedesktop.org/xorg/app/xscope/
>
> - ajax
>

[Attachment #5 (text/html)]

Hello,<br>Thank you for pointing out xscope, I didn&#39;t know about it.<br>I ran my \
app under xscope and the first thing I noticed was that there were many DAMAGE-Event \
related messages, about 90 groups of them per second. So on a hunch, I disabled \
DAMAGE in X and the problem of the constant chatter went away completely, the CPU \
went to 0%-1% with tabs in the app and gtk.events_pending() returns False as soon as \
the window is rendered just like I expect it to. The output of xscope is very \
verbose, so what arguments do you recommend I use to narrow down the output to \
something useful? I was attempting to find a repeating pattern that I could post \
here, but the damage events all seemed to be mixed in with a lot of stuff that \
doesn&#39;t have a short term repeat. So, here is a semi random excerpt from the log \
that looked like it might apply:<br> Thank you,<br>-Neil-<br><br><br><br> 6.35:       \
64 bytes &lt;-- X11 Server<br>                                         \
..............EVENT: DAMAGE-Event<br>                                                 \
detail: 02<br>  data: 8b 09 20 06 8c 09 <br>                                         \
..............REPLY: GetGeometry<br>                                                  \
depth: 18<br>  root: WIN 00000043<br>                                                 \
x: 4<br>                                                           y: 25<br>          \
width: 00eb<br>  height: 02bd<br>                                                \
border-width: 0000<br><br>6.33: Client --&gt;  128 bytes<br>         \
............REQUEST: XFIXES-Request<br>  minor opcode: 05<br>                        \
data: (3)<br>         ............REQUEST: DAMAGE-Request<br>                minor \
opcode: 03<br>                        data: (3)<br>         ............REQUEST: \
XFIXES-Request<br>  minor opcode: 0a<br>                        data: (1)<br>         \
............REQUEST: CreatePixmap<br>                       depth: 18<br>             \
pixmap-id: PXM 06200d76<br>                    drawable: DWB 06200061<br>  width: \
00ef<br>                      height: 02c1<br>         ............REQUEST: \
RenderRequest<br>               RENDERREQUEST: RenderCreatePicture<br>                \
picture: PICTURE 06200d77<br>  drawable: DWB 06200d76<br>                      \
format: PICTFORMAT 00000029<br>                  value-mask: 0<br>         \
............REQUEST: RenderRequest<br>               RENDERREQUEST: \
RenderFillRectangles<br>  op: Over<br>                        dest: PICTURE \
06200d77<br>                       color: COLOR r:d5d5 g:d1d1 b:cfcf a:ffff<br>       \
rectangles: (1)<br>         ............REQUEST: GetProperty<br>  delete: False<br>   \
window: WIN 06200061<br>                    property: ATM 0000019d<br>                \
type: &lt;CARDINAL&gt;<br>                 long-offset: 00000000<br> <br><br><div \
class="gmail_quote">On Mon, Feb 27, 2012 at 11:53 AM, Adam Jackson <span \
dir="ltr">&lt;<a href="mailto:ajax@redhat.com">ajax@redhat.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex"> <div class="im">On Fri, 2012-02-24 at 23:40 -0800, Neil \
Whelchel wrote:<br> <br>
&gt; Here is a cut and paste of what strace shows, the messages repeat<br>
&gt; about 90 times per second when tabs are active.<br>
<br>
</div>strace output is unpleasantly difficult to read for this purpose.  Try<br>
using xscope instead:<br>
<br>
<a href="http://cgit.freedesktop.org/xorg/app/xscope/" \
target="_blank">http://cgit.freedesktop.org/xorg/app/xscope/</a><br> <br>
- ajax<br>
</blockquote></div><br>



_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: freedesktop-xorg@progressive-comp.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic