If /run/shm is missing and /var/tmp is located on encrypted partition (for example, on encrypted root), qt5 gui for qt5 >= 5.11.0 may become slow. Specifically, it may become noticeable if vm.dirty_bytes and vm.dirty_background_bytes sysctl settings are set, and value isn't too big. In my configuration it's set to 2097152 (2MB). MIT-SHM extension for xorg-server should be enabled too. Reproducible: Always Steps to Reproduce: 1. configure root partition as encrypted partition. Making just /var/tmp an encrypted partition might be enough, but I didn't test it. 2. ensure there is no /run/shm directory. It's said it shouldn't be present even during build of xorg-server, but I didn't test this since I don't have this directory anyway. 3. ensure MIT-SHM xorg extension is enabled. It should be present in output of xdpyinfo. 4. Apply vm.dirty_bytes and vm.dirty_background_bytes sysctl settings, set it to 2097152, for example. Note: to completely reset these settings it looks like reboot might be required. 5. Install graphical application which uses qt >= 5.11.0. Issue doesn't reproduce with qt 5.9.x. lxqt and kde5 applications are affected too since they're qt5-based. For example, kate, konsole and qterminal are all affected. You don't have to use full kde5 session to reproduce this bug, qterminal in openbox worked for me for bug reproduction. 6. Run the application. Actual Results: Application's GUI is very slow, especially on resizing. Expected Results: Qt5 application GUI for Qt5 >= 5.11.0 should be as fast as GUI for Qt5 = 5.9.x and earlier. Tested with openrc. /dev/shm is present and mounted. One of proposed upstream solutions is to add build configuration option --with-shared-memory-dir=/dev/shm to xorg-server (see bug URL), and it works for me. Thus bug is created for xorg-server. $ emerge --info xorg-server Portage 2.3.51 (python 2.7.15-final-0, default/linux/amd64/17.0/desktop, gcc-7.3.0, glibc-2.27-r6, 4.14.83-gentoo.49 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.14.83-gentoo.49-x86_64-Intel-R-_Core-TM-_i5-6500_CPU_@_3.20GHz-with-gentoo-2.6 KiB Mem: 16379560 total, 8725316 free KiB Swap: 4192252 total, 4192252 free Timestamp of repository gentoo: Sun, 10 Feb 2019 00:45:01 +0000 sh bash 4.4_p23-r1 ld GNU ld (Gentoo 2.30 p5) 2.30.0 app-shells/bash: 4.4_p23-r1::gentoo dev-lang/perl: 5.26.2::gentoo dev-lang/python: 2.7.15::gentoo, 3.6.5::gentoo dev-util/cmake: 3.12.3::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.6-r1::gentoo sys-apps/openrc: 0.40.3::gentoo sys-apps/sandbox: 2.13::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.16.1-r1::gentoo sys-devel/binutils: 2.30-r4::gentoo sys-devel/gcc: 7.3.0-r3::gentoo sys-devel/gcc-config: 2.0::gentoo sys-devel/libtool: 2.4.6-r3::gentoo sys-devel/make: 4.2.1-r4::gentoo sys-kernel/linux-headers: 4.14-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.27-r6::gentoo Repositories: gentoo location: /usr/portage sync-type: webrsync sync-uri: https://mirror.yandex.ru/gentoo-distfiles/ priority: -1000 dt-overlay-patches location: /var/lib/layman/dt-overlay-patches sync-type: laymansync sync-uri: https://github.com/iDarkTemplar/dt-overlay-patches.git masters: gentoo priority: 50 dt-overlay-private location: /var/lib/layman/dt-overlay-private sync-type: laymansync sync-uri: git://private-git.templar-local/private/dt-overlay-private masters: gentoo dt-overlay-public priority: 50 dt-overlay-public location: /var/lib/layman/dt-overlay-public sync-type: laymansync sync-uri: https://github.com/iDarkTemplar/dt-overlay-public.git masters: gentoo priority: 50 rion location: /var/lib/layman/rion sync-type: laymansync sync-uri: https://github.com/rion-overlay/rion-overlay.git masters: gentoo priority: 50 Installed sets: @archive-tools, @bootloader, @devel-packages, @devel-tools, @devel-tools-x11, @filesystem-tools, @filesystem-tools-android, @fonts, @fortune, @gstreamer, @hardware-tools, @hardware-tools-x11, @image-tools, @kde5, @lxc, @mail-server, @media, @media-converters, @network-analyzers, @network-extras, @network-tools, @network-tools-extra, @opengl-devel, @opengl-utils, @pidgin, @portage-tools, @portage-tools-dev, @portage-tools-extra, @power-utils, @printers, @psi, @qmmp, @qt5-meta, @splash, @system-admin-utils, @system-admin-utils-extra, @system-daemons, @system-daemons-extra, @system-utils, @system-utils-extra, @text-utils, @virtualbox, @vpn, @wine, @x11-core, @x11-extras, @x11-utils ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y --binpkg-respect-use=y --autounmask=n --complete-graph=y --keep-going" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe" FEATURES="binpkg-logs distlocks ebuild-locks fakeroot fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ http://mirror.leaseweb.com/gentoo/ http://mirror.netcologne.de/gentoo/ http://trumpetti.atm.tut.fi/gentoo/ ftp://mirror.yandex.ru/gentoo-distfiles/ http://mirror.bytemark.co.uk/gentoo/ http://gentoo.supp.name/ http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://mirrors.soeasyto.com/distfiles.gentoo.org/" INSTALL_MASK=" /etc/systemd /lib*/systemd /usr/lib*/systemd /usr/lib*/python*/test " LANG="ru_RU.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j9" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acl acpi alsa amd64 amr apm ares bash-completion bidi bluray branding bzip2 c++0x cairo caps cdda cdio cdr cleartype cli consolekit cracklib crypt cue cups custom-cflags custom-optimization cxx dbus dga dirac dri dts dvd dvdr emboss encode exif faad fam fbcon ffmpeg filecaps flac fontconfig fontforge freetype fribidi gcrypt gif glamor gme gmp gnutls gpm gtk gtkstyle iconv icu idn imlib inotify ipv6 jadetex jpeg kde lcms libass libdvdcss libtirpc lzma lzo mad matroska midi mmap mng mp3 mp4 mpeg multilib ncurses network nfs nls nptl offensive ogg openal opengl openmp opus pango pch pcmcia pcntl pcre pdf pic plasma png policykit posix postproc ppds private-headers projectm qml qt5 raw readline schroedinger seccomp sftp sndfile sockets spell ssl startup-notification svg system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite tcpd tga theora threads tiff truetype udev udisks unicode upower usb utils vaapi vdpau vorbis vpx wavpack wma wxwidgets x264 xattr xcb xcomposite xft xinerama xpm xscreensaver xv xvid zlib" ABI_X86="64 32" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="ru en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby24" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="vesa vga nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= x11-base/xorg-server-1.20.3::gentoo was built with the following: USE="doc glamor ipv6 kdrive suid udev unwind xephyr xnest xorg xvfb -debug -dmx -libressl -minimal (-selinux) -static-libs -systemd -wayland -xcsecurity" ABI_X86="(64)" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,lazy"
There's a patch going upstream (https://gitlab.freedesktop.org/xorg/xserver/merge_requests/120) to the Xserver that I suspect we'll want to backport. Seems that it's not a complete solution, but I haven't read the whole QT bug report. Cc'ing x11@.
See also https://bugreports.qt.io/browse/QTBUG-72535
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b03aab97013ea3cacb778956262dbf16e70fcdf commit 4b03aab97013ea3cacb778956262dbf16e70fcdf Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2019-02-28 01:18:22 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2019-02-28 05:44:46 +0000 x11-base/xorg-server: Version bump to 1.20.4 Closes: https://bugs.gentoo.org/677752 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-base/xorg-server/Manifest | 1 + ...ck-the-shm-dir-at-run-time-not-build-time.patch | 174 +++++++++++++++++ ...1.20.4-shm-Use-memfd_create-when-possible.patch | 89 +++++++++ ...ndent-shm_tmpfile-to-follow-our-standards.patch | 72 +++++++ x11-base/xorg-server/xorg-server-1.20.4.ebuild | 217 +++++++++++++++++++++ 5 files changed, 553 insertions(+)