From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: npostavs@users.sourceforge.net, 28695@debbugs.gnu.org, bryan@bryan.sh
Subject: bug#28695: 26.0.60; Rendering lag spikes caused by double-buffering on Linux
Date: Fri, 27 Oct 2017 02:19:28 +0300 [thread overview]
Message-ID: <157e8c6e-7bf9-7506-f640-3c9dadd2ffb8@yandex.ru> (raw)
In-Reply-To: <8360bfhlie.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 875 bytes --]
On 10/16/17 5:30 AM, Eli Zaretskii wrote:
>> Children Self Comma Shared Object Symbol
>> 0,03% 0,03% emacs libXext.so.6.4.0 [.] XdbeSwapBuffers
>> 0,00% 0,00% emacs emacs [.] XdbeSwapBuffers@plt
>
> Hmm... so do you see any difference between these 2 scenarios in other
> parts of the profiles?
It's really hard for me to tell. Now, I've re-ran the experiment again
(last time I did it with ag, now with rg) and I'm attaching the
"unexpanded" views of the graphs in all cases. 1 and 11 were with a
small window, and 2 and 22 were with a fullscreen one.
The search results for XdbeSwapBuffers were really similar to the above,
so I'm not including that.
Don't really see a significant difference. If I had to guess, the
slowdown maybe has to do with Xorg not being able to keep up, but, like,
in an asynchronous fashion.
[-- Attachment #2: perf.txt.1 --]
[-- Type: text/plain, Size: 4525 bytes --]
Samples: 60K of event 'cycles', Event count (approx.): 26885534358
Children Self Command Shared Object Symbol
+ 23,18% 23,08% emacs emacs [.] mark_object
+ 15,20% 0,00% emacs [unknown] [.] 0xfff42db4fff42ca2
+ 8,17% 0,00% rg rg [.] 0xffffffffffdd4fed
+ 8,07% 0,00% rg rg [.] 0xffffffffffdcd70c
+ 8,07% 0,00% rg rg [.] 0xffffffffffde1deb
+ 8,07% 0,00% rg rg [.] 0xffffffffffc03250
+ 8,07% 0,00% rg rg [.] 0xffffffffffc05020
+ 8,07% 0,00% rg rg [.] 0xffffffffffc1294f
+ 7,22% 2,56% emacs emacs [.] re_search_2
+ 6,07% 0,00% rg rg [.] 0xffffffffffcfad8b
+ 6,06% 0,00% rg rg [.] 0xffffffffffc484a8
+ 6,03% 0,00% rg rg [.] 0xffffffffffc3ef09
+ 4,96% 0,00% rg [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 4,87% 0,00% emacs [unknown] [.] 0000000000000000
+ 4,28% 0,00% rg rg [.] 0xffffffffffde39c6
+ 4,22% 4,18% emacs emacs [.] assq_no_quit
+ 4,18% 0,21% emacs emacs [.] funcall_lambda
+ 4,16% 0,00% rg rg [.] 0xffffffffffc3b175
+ 4,03% 0,01% emacs [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 3,91% 3,90% emacs emacs [.] re_match_2_internal
+ 3,82% 0,00% rg rg [.] 0xffffffffffc3f014
+ 3,76% 0,00% rg [kernel.kallsyms] [k] sys_write
+ 3,76% 0,00% rg [kernel.kallsyms] [k] vfs_write
+ 3,75% 0,00% rg [kernel.kallsyms] [k] __vfs_write
+ 3,75% 0,01% rg [kernel.kallsyms] [k] tty_write
+ 3,65% 0,00% rg rg [.] 0xffffffffffc2e3d8
+ 3,44% 0,93% rg [kernel.kallsyms] [k] n_tty_write
2,98% 2,97% emacs emacs [.] sweep_strings
+ 2,92% 2,90% emacs emacs [.] exec_byte_code
+ 2,16% 0,00% rg rg [.] 0xffffffffffc312d7
+ 1,97% 0,05% rg [kernel.kallsyms] [k] pty_write
+ 1,87% 0,00% rg rg [.] 0xffffffffffc034a0
+ 1,80% 0,00% rg rg [.] 0xffffffffffdba822
+ 1,77% 0,00% rg rg [.] 0xffffffffffc2eda9
+ 1,70% 0,03% rg [kernel.kallsyms] [k] tty_flip_buffer_push
+ 1,67% 1,65% emacs emacs [.] decode_coding_utf_8
+ 1,67% 0,22% rg [kernel.kallsyms] [k] queue_work_on
+ 1,59% 1,59% emacs emacs [.] Fassq
+ 1,44% 1,42% emacs emacs [.] produce_chars
+ 1,43% 1,43% emacs emacs [.] sweep_conses
+ 1,32% 0,11% rg [kernel.kallsyms] [k] __queue_work
+ 1,24% 0,00% rg rg [.] 0xffffffffffc3ac4b
+ 1,23% 0,00% emacs [unknown] [.] 0x000000000086df0c
+ 1,18% 0,19% rg [kernel.kallsyms] [k] insert_work
+ 1,03% 0,00% emacs libpthread-2.24.so [.] 0xffff80b2c50c8d8d
+ 1,02% 0,00% emacs [kernel.kallsyms] [k] sys_open
+ 1,01% 0,00% emacs [kernel.kallsyms] [k] do_sys_open
+ 1,00% 0,01% rg [kernel.kallsyms] [k] wake_up_process
+ 0,99% 0,00% rg rg [.] 0xffffffffffc31158
0,99% 0,98% emacs emacs [.] string_char_to_byte
+ 0,98% 0,19% rg [kernel.kallsyms] [k] try_to_wake_up
+ 0,94% 0,01% emacs libc-2.24.so [.] __GI___writev
[-- Attachment #3: perf.txt.2 --]
[-- Type: text/plain, Size: 4719 bytes --]
Samples: 93K of event 'cycles', Event count (approx.): 38670648824
Children Self Command Shared Object Symbol
+ 26,75% 26,60% emacs emacs [.] mark_object
+ 17,52% 0,00% emacs [unknown] [k] 0xfff42db4fff42ca2
+ 7,85% 3,86% emacs emacs [.] re_search_2
+ 6,08% 0,00% rg rg [.] 0xffffffffffdd4fed
+ 5,96% 0,00% rg rg [.] 0xffffffffffdcd70c
+ 5,96% 0,00% rg rg [.] 0xffffffffffde1deb
+ 5,96% 0,00% rg rg [.] 0xffffffffffc03250
+ 5,96% 0,00% rg rg [.] 0xffffffffffc05020
+ 5,96% 0,00% rg rg [.] 0xffffffffffc1294f
+ 5,79% 0,21% emacs emacs [.] funcall_lambda
+ 4,81% 4,79% emacs emacs [.] sweep_strings
+ 4,41% 0,00% emacs [unknown] [.] 0000000000000000
+ 4,31% 0,00% rg rg [.] 0xffffffffffcfad8b
+ 4,28% 0,00% rg rg [.] 0xffffffffffc484a8
+ 4,26% 0,00% rg rg [.] 0xffffffffffc3ef09
+ 4,20% 4,18% emacs emacs [.] exec_byte_code
+ 3,47% 3,44% emacs emacs [.] assq_no_quit
+ 3,44% 3,42% emacs emacs [.] re_match_2_internal
+ 3,39% 0,00% rg [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 3,16% 0,01% emacs [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 2,89% 0,00% rg rg [.] 0xffffffffffc3b175
+ 2,82% 0,00% rg rg [.] 0xffffffffffde39c6
+ 2,53% 0,00% rg rg [.] 0xffffffffffc2e3d8
+ 2,44% 0,00% rg rg [.] 0xffffffffffc3f014
+ 2,39% 0,00% rg [kernel.kallsyms] [k] sys_write
+ 2,39% 0,00% rg [kernel.kallsyms] [k] vfs_write
+ 2,39% 0,00% rg [kernel.kallsyms] [k] __vfs_write
+ 2,38% 0,01% rg [kernel.kallsyms] [k] tty_write
+ 2,18% 0,61% rg [kernel.kallsyms] [k] n_tty_write
1,74% 1,73% emacs emacs [.] string_char_to_byte
+ 1,47% 0,00% rg rg [.] 0xffffffffffc312d7
+ 1,42% 1,41% emacs emacs [.] sweep_conses
+ 1,33% 0,00% emacs [unknown] [.] 0xffffffc750e90000
+ 1,28% 0,00% rg rg [.] 0xffffffffffc034a0
+ 1,26% 0,00% emacs [unknown] [.] 0x000000000086df0c
+ 1,26% 0,00% rg rg [.] 0xffffffffffc2eda9
+ 1,24% 0,00% rg rg [.] 0xffffffffffdba822
+ 1,24% 0,86% emacs libc-2.24.so [.] __memmove_avx_unaligned_erms
+ 1,15% 0,03% rg [kernel.kallsyms] [k] pty_write
+ 1,14% 1,14% emacs emacs [.] Fassq
1,12% 1,11% emacs emacs [.] sweep_vectors
+ 1,04% 0,87% emacs emacs [.] Ffuncall
+ 0,99% 0,98% emacs emacs [.] decode_coding_utf_8
+ 0,96% 0,02% rg [kernel.kallsyms] [k] tty_flip_buffer_push
+ 0,94% 0,12% rg [kernel.kallsyms] [k] queue_work_on
+ 0,93% 0,91% emacs emacs [.] mark_char_table
+ 0,91% 0,90% emacs emacs [.] produce_chars
+ 0,89% 0,00% rg rg [.] 0xffffffffffc3ac4b
+ 0,89% 0,00% emacs [unknown] [.] 0x08d347d3c0810700
0,87% 0,86% emacs emacs [.] find_cache_boundary
+ 0,86% 0,85% emacs emacs [.] buf_charpos_to_bytepos
+ 0,83% 0,01% emacs libc-2.24.so [.] __GI___writev
[-- Attachment #4: perf.txt.11 --]
[-- Type: text/plain, Size: 4852 bytes --]
Samples: 108K of event 'cycles', Event count (approx.): 46413756102
Children Self Command Shared Object Symbol
+ 24,40% 24,29% emacs emacs [.] mark_object
+ 16,05% 0,00% emacs [unknown] [.] 0xfff42db4fff42ca2
+ 6,60% 3,38% emacs emacs [.] re_search_2
+ 6,19% 0,00% rg rg [.] 0xffffffffffdd4fed
+ 6,13% 0,00% rg rg [.] 0xffffffffffdcd70c
+ 6,13% 0,00% rg rg [.] 0xffffffffffde1deb
+ 6,13% 0,00% rg rg [.] 0xffffffffffc03250
+ 6,13% 0,00% rg rg [.] 0xffffffffffc05020
+ 6,13% 0,00% rg rg [.] 0xffffffffffc1294f
+ 5,09% 0,00% rg [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 4,88% 0,21% emacs emacs [.] funcall_lambda
+ 4,80% 0,00% rg rg [.] 0xffffffffffcfad8b
+ 4,77% 0,00% rg rg [.] 0xffffffffffc484a8
+ 4,74% 0,00% rg rg [.] 0xffffffffffc3ef09
+ 4,69% 0,00% emacs [unknown] [.] 0000000000000000
+ 4,62% 4,57% emacs emacs [.] assq_no_quit
+ 4,57% 0,00% rg rg [.] 0xffffffffffde39c6
+ 4,15% 0,00% rg [kernel.kallsyms] [k] vfs_write
+ 4,15% 0,00% rg [kernel.kallsyms] [k] sys_write
+ 4,15% 0,00% rg [kernel.kallsyms] [k] __vfs_write
+ 4,15% 0,01% rg [kernel.kallsyms] [k] tty_write
+ 4,04% 0,00% rg rg [.] 0xffffffffffc3f014
+ 3,82% 1,14% rg [kernel.kallsyms] [k] n_tty_write
+ 3,59% 3,58% emacs emacs [.] exec_byte_code
+ 3,57% 0,01% emacs [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
3,51% 3,50% emacs emacs [.] sweep_strings
+ 3,32% 0,00% rg rg [.] 0xffffffffffc3b175
+ 2,91% 0,00% rg rg [.] 0xffffffffffc2e3d8
+ 2,83% 2,82% emacs emacs [.] re_match_2_internal
+ 2,14% 0,05% rg [kernel.kallsyms] [k] pty_write
+ 1,89% 1,87% emacs emacs [.] decode_coding_utf_8
+ 1,80% 0,02% rg [kernel.kallsyms] [k] tty_flip_buffer_push
+ 1,78% 0,25% rg [kernel.kallsyms] [k] queue_work_on
+ 1,72% 0,00% rg rg [.] 0xffffffffffc312d7
+ 1,68% 1,66% emacs emacs [.] produce_chars
1,61% 1,60% emacs emacs [.] string_char_to_byte
+ 1,46% 0,00% rg rg [.] 0xffffffffffc034a0
+ 1,41% 0,00% rg rg [.] 0xffffffffffc2eda9
+ 1,40% 0,11% rg [kernel.kallsyms] [k] __queue_work
+ 1,40% 0,00% rg rg [.] 0xffffffffffdba822
+ 1,34% 0,00% emacs [unknown] [.] 0x100000000003e8f3
+ 1,33% 1,32% emacs emacs [.] sweep_conses
+ 1,26% 0,19% rg [kernel.kallsyms] [k] insert_work
+ 1,20% 0,00% emacs [unknown] [.] 0x000000000086df0c
+ 1,09% 1,09% emacs emacs [.] Fassq
1,09% 1,09% emacs emacs [.] buf_bytepos_to_charpos
+ 1,08% 0,00% rg [kernel.kallsyms] [k] wake_up_process
+ 1,05% 0,18% rg [kernel.kallsyms] [k] try_to_wake_up
+ 1,03% 0,01% emacs libc-2.24.so [.] __GI___writev
+ 1,01% 0,01% emacs [kernel.kallsyms] [k] sys_writev
+ 0,99% 0,98% emacs emacs [.] set_buffer_internal_2
+ 0,99% 0,01% emacs [kernel.kallsyms] [k] do_writev
[-- Attachment #5: perf.txt.22 --]
[-- Type: text/plain, Size: 4544 bytes --]
Samples: 119K of event 'cycles', Event count (approx.): 49609855919
Children Self Command Shared Object Symbol
+ 28,68% 28,51% emacs emacs [.] mark_object
+ 18,60% 0,00% emacs [unknown] [k] 0xfff42db4fff42ca2
+ 6,76% 3,54% emacs emacs [.] re_search_2
+ 5,94% 0,00% rg rg [.] 0xffffffffffdd4fed
+ 5,85% 0,00% rg rg [.] 0xffffffffffdcd70c
+ 5,85% 0,00% rg rg [.] 0xffffffffffde1deb
+ 5,85% 0,00% rg rg [.] 0xffffffffffc03250
+ 5,85% 0,00% rg rg [.] 0xffffffffffc05020
+ 5,85% 0,00% rg rg [.] 0xffffffffffc1294f
+ 5,23% 0,18% emacs emacs [.] funcall_lambda
+ 4,94% 0,00% emacs [unknown] [.] 0000000000000000
+ 4,85% 4,82% emacs emacs [.] sweep_strings
+ 4,50% 0,00% rg rg [.] 0xffffffffffcfad8b
+ 4,28% 0,00% rg rg [.] 0xffffffffffc484a8
+ 4,25% 0,00% rg rg [.] 0xffffffffffc3ef09
+ 4,05% 4,02% emacs emacs [.] assq_no_quit
+ 3,78% 3,76% emacs emacs [.] exec_byte_code
+ 3,68% 0,00% rg [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 3,19% 0,00% rg rg [.] 0xffffffffffde39c6
+ 2,99% 0,01% emacs [kernel.kallsyms] [k] entry_SYSCALL_64_fastpath
+ 2,92% 0,00% rg rg [.] 0xffffffffffc3b175
+ 2,80% 2,79% emacs emacs [.] re_match_2_internal
+ 2,79% 0,00% rg [kernel.kallsyms] [k] sys_write
+ 2,79% 0,00% rg [kernel.kallsyms] [k] vfs_write
+ 2,79% 0,00% rg [kernel.kallsyms] [k] __vfs_write
+ 2,78% 0,01% rg [kernel.kallsyms] [k] tty_write
+ 2,60% 0,00% rg rg [.] 0xffffffffffc3f014
+ 2,56% 0,71% rg [kernel.kallsyms] [k] n_tty_write
+ 2,51% 0,00% rg rg [.] 0xffffffffffc2e3d8
1,62% 1,61% emacs emacs [.] string_char_to_byte
+ 1,41% 0,00% rg rg [.] 0xffffffffffc312d7
+ 1,39% 0,03% rg [kernel.kallsyms] [k] pty_write
+ 1,38% 1,37% emacs emacs [.] sweep_conses
+ 1,36% 0,00% emacs [unknown] [.] 0x000000000086df0c
+ 1,24% 0,00% rg rg [.] 0xffffffffffc2eda9
+ 1,21% 0,00% rg rg [.] 0xffffffffffc034a0
1,19% 1,18% emacs emacs [.] sweep_vectors
+ 1,19% 0,02% rg [kernel.kallsyms] [k] tty_flip_buffer_push
+ 1,17% 0,14% rg [kernel.kallsyms] [k] queue_work_on
+ 1,15% 0,00% rg rg [.] 0xffffffffffdba822
+ 1,06% 1,04% emacs emacs [.] decode_coding_utf_8
+ 1,05% 0,87% emacs emacs [.] Ffuncall
1,04% 0,84% emacs libc-2.24.so [.] __memmove_avx_unaligned_erms
+ 0,97% 0,96% emacs emacs [.] mark_char_table
+ 0,97% 0,95% emacs emacs [.] produce_chars
+ 0,94% 0,06% rg [kernel.kallsyms] [k] __queue_work
+ 0,94% 0,93% emacs emacs [.] Fassq
0,88% 0,87% emacs emacs [.] find_cache_boundary
+ 0,87% 0,00% rg rg [.] 0xffffffffffc3ac4b
+ 0,86% 0,10% rg [kernel.kallsyms] [k] insert_work
+ 0,86% 0,02% emacs libc-2.24.so [.] __GI___writev
+ 0,85% 0,00% emacs [unknown] [.] 0xbdbe522fc9012600
next prev parent reply other threads:[~2017-10-26 23:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-04 3:10 bug#28695: 26.0.60; Rendering lag spikes caused by double-buffering on Linux Bryan Gilbert
2017-10-04 7:53 ` Eli Zaretskii
2017-10-04 9:04 ` martin rudalics
2017-10-04 9:32 ` Eli Zaretskii
2017-10-04 11:21 ` Bryan Gilbert
2017-10-04 11:36 ` Eli Zaretskii
2017-10-04 12:02 ` Bryan Gilbert
2017-10-04 12:31 ` Eli Zaretskii
2017-10-05 13:36 ` Dmitry Gutov
2017-10-05 14:01 ` Eli Zaretskii
2017-10-05 14:02 ` Noam Postavsky
2017-10-07 7:53 ` Dmitry Gutov
2017-10-07 8:14 ` Eli Zaretskii
2017-10-09 13:53 ` Dmitry Gutov
2017-10-09 14:03 ` Eli Zaretskii
2017-10-15 22:55 ` Dmitry Gutov
2017-10-16 2:30 ` Eli Zaretskii
2017-10-26 23:19 ` Dmitry Gutov [this message]
2017-10-28 9:33 ` Eli Zaretskii
2017-10-28 21:47 ` bug#28695: 26.0.60; Rendering lag spikes caused by double-buffering on GNU/Linux Richard Stallman
2017-10-05 14:26 ` bug#28695: 26.0.60; Rendering lag spikes caused by double-buffering on Linux Bryan Gilbert
2022-04-23 13:46 ` Lars Ingebrigtsen
2022-05-22 11:28 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=157e8c6e-7bf9-7506-f640-3c9dadd2ffb8@yandex.ru \
--to=dgutov@yandex.ru \
--cc=28695@debbugs.gnu.org \
--cc=bryan@bryan.sh \
--cc=eliz@gnu.org \
--cc=npostavs@users.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.