Bug 352068 - kwin_x11 uses 100% CPU on intel (wetab) since 5.3
Summary: kwin_x11 uses 100% CPU on intel (wetab) since 5.3
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: core (show other bugs)
Version: 5.4.0
Platform: Other Linux
: NOR grave
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-31 17:52 UTC by Wilhelm Eger
Modified: 2019-10-15 19:43 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wilhelm Eger 2015-08-31 17:52:08 UTC
I am using Arch on a wetab. Up to 5.2 kwin and plasma was super snappy, since 5.3 even more significant in 5.4, kwin constantly uses 100% CPU. UI is very slow.

startkde: Starting up...
kbuildsycoca5 running...
Service started, version: 6.2.0
kbuildsycoca5 running...
OpenGL vendor string:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Pineview M
OpenGL version string:                  2.1 Mesa 10.6.5
OpenGL shading language version string: 1.20
Driver:                                 Intel
GPU class:                              Unknown
OpenGL version:                         2.1
GLSL version:                           1.20
Mesa version:                           10.6.5
X server version:                       1.17.2
Linux kernel version:                   4.1.6
Requires strict binding:                yes
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no

I get this in Xorg.log:

[   143.571] (EE) BUG: triggered 'if (!iclients)'
[   143.571] (EE) BUG: exevents.c:1329 in RetrieveTouchDeliveryData()
[   143.571] (EE) 
[   143.571] (EE) Backtrace:
[   143.572] (EE) 0: /usr/lib/xorg-server/Xorg (DamageDamageRegion+0x696) [0x51f1a6]
[   143.573] (EE) 1: /usr/lib/xorg-server/Xorg (XIGetDevice+0xf54) [0x520e44]
[   143.574] (EE) 2: /usr/lib/xorg-server/Xorg (SwapConnClientPrefix+0x941) [0x462291]
[   143.575] (EE) 3: /usr/lib/xorg-server/Xorg (InitProximityClassDeviceStruct+0x26ab) [0x52560b]
[   143.575] (EE) 4: /usr/lib/xorg-server/Xorg (mieqSetHandler+0x3c4) [0x574a14]
[   143.576] (EE) 5: /usr/lib/xorg-server/Xorg (SwapConnClientPrefix+0x1aa4) [0x4644b4]
[   143.583] (EE) 6: /usr/lib/xorg-server/Xorg (XIGetDevice+0x18b4) [0x521f24]
[   143.584] (EE) 7: /usr/lib/xorg-server/Xorg (XIGetDevice+0x1176) [0x521066]
[   143.585] (EE) 8: /usr/lib/xorg-server/Xorg (InitProximityClassDeviceStruct+0x27ed) [0x52574d]
[   143.586] (EE) 9: /usr/lib/xorg-server/Xorg (XkbProcessKeyboardEvent+0x2c2) [0x54cda2]
[   143.588] (EE) 10: /usr/lib/xorg-server/Xorg (mieqSetHandler+0x3c4) [0x574a14]
[   143.589] (EE) 11: /usr/lib/xorg-server/Xorg (mieqProcessInputEvents+0x127) [0x574a07]
[   143.590] (EE) 12: /usr/lib/xorg-server/Xorg (ProcessInputEvents+0x19) [0x477a79]
[   143.591] (EE) 13: /usr/lib/xorg-server/Xorg (SendErrorToClient+0x102) [0x438c52]
[   143.592] (EE) 14: /usr/lib/xorg-server/Xorg (remove_fs_handlers+0x41b) [0x43cf4b]
[   143.595] (EE) 15: /usr/lib/libc.so.6 (__libc_start_main+0xf0) [0x7f899b6a2610]
[   143.600] (EE) 16: /usr/lib/xorg-server/Xorg (_start+0x29) [0x427319]
[   143.603] (EE) 17: ? (?+0x29) [0x29]

[     6.927] (II) LoadModule: "intel"
[     6.928] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[     6.943] (II) Module intel: vendor="X.Org Foundation"
[     6.943]    compiled for 1.17.2, module version = 2.99.917
[     6.943]    Module class: X.Org Video Driver
[     6.943]    ABI class: X.Org Video Driver, version 19.0
[     6.943] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
        i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G,
        915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
        Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33,
        GM45, 4 Series, G45/G43, Q45/Q43, G41, B43
[     6.945] (II) intel: Driver for Intel(R) HD Graphics: 2000-6000
[     6.945] (II) intel: Driver for Intel(R) Iris(TM) Graphics: 5100, 6100
[     6.946] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics: 5200, 6200, P6300
[     6.946] (++) using VT number 1

[     6.946] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20150327
[     6.946] (II) intel(0): SNA compiled from 2.99.917-381-g5772556
[     6.948] (--) intel(0): Integrated Graphics Chipset: Intel(R) Pineview GM
[     6.948] (--) intel(0): CPU: x86-64, sse2, sse3, ssse3; using a maximum of 1 threads
[     6.948] (II) intel(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[     6.948] (==) intel(0): Depth 24, (--) framebuffer bpp 32
[     6.948] (==) intel(0): RGB weight 888
[     6.948] (==) intel(0): Default visual is TrueColor
[     6.948] (**) intel(0): Option "AccelMethod" "sna"
[     6.949] (**) intel(0): Option "TearFree" "true"
[     6.949] (II) intel(0): Output LVDS1 has no monitor section
[     6.950] (--) intel(0): Found backlight control interface acpi_video0 (type 'firmware') for output LVDS1
[     6.950] (II) intel(0): Enabled output LVDS1
[     6.950] (II) intel(0): Output VGA1 has no monitor section
[     6.950] (II) intel(0): Enabled output VGA1
[     6.951] (--) intel(0): Using a maximum size of 256x256 for hardware cursors
[     6.951] (II) intel(0): Output VIRTUAL1 has no monitor section
[     6.951] (II) intel(0): Enabled output VIRTUAL1
[     6.951] (--) intel(0): Output LVDS1 using initial mode 1366x768 on pipe 1
[     6.951] (**) intel(0): TearFree enabled
[     6.951] (==) intel(0): DPI set to (96, 96)
[     6.951] (II) Loading sub module "dri2"
[     6.951] (II) LoadModule: "dri2"
[     6.951] (II) Module "dri2" already built-in
[     6.952] (II) Loading sub module "present"
[     6.952] (II) LoadModule: "present"
[     6.952] (II) Module "present" already built-in
[     6.952] (==) Depth 24 pixmap format is 32 bpp
[     6.952] (II) intel(0): SNA initialized with Alviso (gen3) backend
[     6.952] (==) intel(0): Backing store enabled
[     6.952] (==) intel(0): Silken mouse enabled
[     6.952] (II) intel(0): HW Cursor enabled
[     6.952] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[     6.965] (==) intel(0): DPMS enabled
[     6.966] (==) intel(0): Display hotplug detection enabled
[     6.966] (II) intel(0): [XvMC] i915_xvmc driver initialized.
[     6.966] (II) intel(0): [DRI2] Setup complete
[     6.967] (II) intel(0): [DRI2]   DRI driver: i915
[     6.967] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[     6.967] (II) intel(0): direct rendering: DRI2 enabled
[     6.967] (II) intel(0): hardware support for Present enabled
[     6.967] (--) RandR disabled
[     7.161] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[     7.161] (II) AIGLX: enabled GLX_ARB_create_context
[     7.162] (II) AIGLX: enabled GLX_ARB_create_context_profile
[     7.162] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile
[     7.162] (II) AIGLX: enabled GLX_INTEL_swap_event
[     7.162] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
[     7.162] (II) AIGLX: enabled GLX_EXT_framebuffer_sRGB
[     7.162] (II) AIGLX: enabled GLX_ARB_fbconfig_float
[     7.162] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[     7.162] (II) AIGLX: Loaded and initialized i915
[     7.162] (II) GLX: Initialized DRI2 GL provider for screen 0
[     7.195] (II) intel(0): switch to mode 1366x768@60.0 on LVDS1 using pipe 1, position (0, 0), rotation normal, reflection none
[     7.196] (II) intel(0): Setting screen physical size to 361 x 203


Reproducible: Always

Steps to Reproduce:
1. Start KDE
2. Watch the CPU load


Actual Results:  
100% CPU kwin_x11

Expected Results:  
Significantly less cpu usage.
Comment 1 Thomas Lübking 2015-08-31 18:30:06 UTC
please attach the output of
   qdbus org.kde.KWin /KWin supportInformation

100% cpu usage implies a lifelock across the eventloop - can you callgrind kwin_x11?
Also please check whether this is related to compositing, SHIFT+Alt+F12 toggles the compositor.
Comment 2 Wilhelm Eger 2015-08-31 19:20:41 UTC
Is there some information non how to callgrind kwin?

Disabling Compositing normalized the cpu usage.
Comment 3 Thomas Lübking 2015-08-31 19:43:05 UTC
valgrind --tool=callgrind kwin_x11 --replace &

Since valgrind severely slows down execution, you should be comfortable with controlling the system from VT1 or ssh (your GUI login will become virtually unusable)

Let's maybe try to narrow the issue first ;-)

- Please attach forementioned supportInformation and (assuming this is GL compositing)
- then run "kcmshell5 kwincompositing" (config dialog, the compositor can be suspended at this time) and
- set the backend to xrender compositing, (in doubt resume the compositor and) see if the issue remains.
- If not, switch back to OpenGL (assuming you're using it)
- but set the tearing prevention to "none"
Comment 4 Wilhelm Eger 2015-09-01 09:09:54 UTC
Find attached the desired information. Xrender is fast, OpenGL is slow, it doesn't matter which version and whether tearing prevention is switched on or off.

Version
=======
KWin version: 5.4.0
Qt Version: 5.5.0
Qt compile version: 5.5.0
XCB compile version: 1.11

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_WAYLAND: yes
HAVE_WAYLAND_EGL: yes
HAVE_WAYLAND_CURSOR: yes
HAVE_XKB: yes
HAVE_INPUT: yes
HAVE_DRM: yes
HAVE_GBM: yes
HAVE_X11_XCB: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 11702000                                                                                                                                                                             
Protocol Version/Revision: 11/0                                                                                                                                                                      
SHAPE: yes; Version: 0x11                                                                                                                                                                            
RANDR: yes; Version: 0x14                                                                                                                                                                            
DAMAGE: yes; Version: 0x11                                                                                                                                                                           
Composite: yes; Version: 0x4                                                                                                                                                                         
RENDER: yes; Version: 0xb                                                                                                                                                                            
XFIXES: yes; Version: 0x50                                                                                                                                                                           
SYNC: yes; Version: 0x31                                                                                                                                                                             
GLX: yes; Version: 0x0                                                                                                                                                                               
                                                                                                                                                                                                     
Decoration
==========
Plugin: org.kde.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Oxygen-Sans,10,-1,5,50,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
unredirectFullscreen: false
glSmoothScale: 1
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: true
glStrictBindingFollowsDriver: true
glCoreProfile: true
glPreferBufferSwap: 101
glPlatformInterface: 1

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1

Screen 0:
---------
Name: LVDS1
Geometry: 0,0,1366x768
Refresh Rate: 60.0204


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Pineview M 
OpenGL version string: 2.1 Mesa 10.6.5
OpenGL platform interface: GLX
OpenGL shading language version string: 1.20
Driver: Intel
GPU class: Unknown
OpenGL version: 2.1
GLSL version: 1.20
Mesa version: 10.6.5
X server version: 1.17.2
Linux kernel version: 4.1.6
Direct rendering: Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
zoom
slidingpopups
kwin4_effect_login
slide
screenshot
kwin4_effect_windowaperture
minimizeanimation
kwin4_effect_translucency
desktopgrid
kwin4_effect_maximize
kwin4_effect_fade
presentwindows
highlightwindow
kwin4_effect_dialogparent
blur
contrast
logout
dashboard
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

slide:

screenshot:

kwin4_effect_windowaperture:

minimizeanimation:

kwin4_effect_translucency:

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_maximize:

kwin4_effect_fade:

presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 150
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0

highlightwindow:

kwin4_effect_dialogparent:

blur:
blurRadius: 12
cacheTexture: true

contrast:

logout:
useBlur: true

dashboard:
brightness: 0.5
saturation: 0.5
blur: false

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 5 Thomas Lübking 2015-09-01 11:15:58 UTC
Try
- the EGL backend and/or to
- disable blur and contrast effects

On large invocation, latter would significantly stress the IGP (and may fall over to CPU emulation), though I would not expect 100% CPU load here.

Another wild guess on blaming the driver, add
   /etc/X11/xorg.conf.d/20-intel.conf
containing:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "uxa"
   Option      "TearFree"    "false"
EndSection


Then restart the X11 server (log out and in, in doubt reboot)
Comment 6 Wilhelm Eger 2015-09-01 11:35:57 UTC
It was the blur effect. Disabling this one resulted in a snappy desktop again. Did you change anything from 5.2->5.3/4?
Comment 7 Martin Flöser 2015-09-01 11:44:23 UTC
We have one or two bug fixes, but nothing which would cause that.

I rather think it's a change in the driver to enable Shaders for the hardware.
Comment 8 Wilhelm Eger 2015-09-01 11:45:57 UTC
Anyway. Thanks for your kind an instant help. Outstanding. And maybe this bug report helps you somehow. If you need further testing, let me know!
Comment 9 Thomas Lübking 2015-09-01 11:54:48 UTC
Try to lower the blur strength.
It's internally capped but the driver may have started to announce larger values reg. the program variable limits.

Also in older (than 5.2 must have been during 5.0 or 5.1) versions there was a bug that interpreted the configured strength too low.

Set the value (in the config dialog) to 2 for a start (resulting in a gaussian kernel of 4, presently is 12 and that should, if not capped, be too much for the HW, resulting in CPU emulation)
Comment 10 David Edmundson 2019-10-15 19:43:27 UTC
This bug is now quite old with no particularly useful information. 

Please do reopen if it's still an issue with feedback relating to the comments above