Hello! It seems like from kernel 3.10.10 to kernel 3.11.0 the performance decreased around 5% to 15% in ioquake3 based games. I regulary run benchmarks with ioquake3, because it is the base for a lot of games. My setup: file ~/.drirc # turns off vsync. don't use the driconf for this, it will set the wrong driver. <device screen="0" driver="dri2"> <application name="Default"> <option name="vblank_mode" value="0"/> </application> </device> $ ./quake3 ~ # opens console timedemo 1 demo four ~ # read fps With the last kernels and drivers I got always a framerate between 295fps-305fps. With the new kernel 3.11.0 the performance decreased to 255fps to 275fps i.e. it runs slower and the range is also bigger. I wondered if the new WQ_POWER_EFFICIENT_DEFAULT caused this and turned it on and off, but it is not responsible. A downgrade to kernel 3.10.10 fixed the regression, so it seems not caused by the userspace-driver or unredirection (window-manager). Phoronix is controversial resource. But in this case it confirms my own results. I should mention, that "World of Padman" is based on IOQuake3: http://www.phoronix.com/scan.php?page=news_item&px=MTQxMTM Thank you PS: Regulary the performance increases a little bit with a new kernel or userspace-driver. I'm always happy to see some fps more after running a benchmark :-)
Created attachment 107551 [details] lspci
Created attachment 107561 [details] glxinfo
Created attachment 107571 [details] .drirc
Created attachment 107581 [details] installed packages (pacman -Q, vanilla kernel-3.11.0 manually compiled)
Created attachment 107591 [details] .config of kernel-3.11.0 (broken)
Hm, not a clear idea what's gone wrong here. I've looked a bit through the git logs and in the usual suspect we didn't really change anything that would affect ivb in the drm/i915 driver. Can you please attempt to bisect this regressino?
I've found the reason. It not caused by your code! The new(?) kernel option CONFIG_CPU_IDLE_GOV_MENU is causing the decreased framerate. I disabled it and the performance returned back to the old normal level. I enabled CONFIG_CPU_IDLE_GOV_MENU because I use also the other tickless stuff in the kernel. The configuration options doesn't include an inline documentation or any warning that it can affect performance. https://lwn.net/Articles/352180/ This change seems to be pretty old, but the "public" kernel-option seem to be new and is shown during "make oldconfig" from "3.10" to "3.11". I know it is not your stuff, but may I ask you for a guess: Should I contact someone, for adding a explaining documentation about it? Sorry for disrubting you during your weekend! Thank you for your fast response. Peter
Ok, we're off the hook it seems, reassigning to the cpuidle people. For reference can you please attach the working and broken .config for the 3.11 kernel?
Thanks! The broken .config is already attached. I will upload the working .config today evening (CEST).
Created attachment 108101 [details] .config of kernel-3.11.0 (working) Includes some minor changes which can be ignored e.g. CONFIG_INTEL_RST=y and CONFIG_INTEL_SMARTCONNECT=y
Hi, Peter, does the performance regression still exist in the latest upstream kernel?
I will take a look at this in the next days. Something in my brain reminds me, that I turned this CONFIG_CPU_IDLE_GOV_MENU to ON a while ago and it doesn't cause this problem anymore. But I will have to take a look at my .config at home to be sure!
Hello! As far as it looks I'm using CONFIG_CPU_IDLE_GOV_MENU=y since some months and it seems to work without regressions. These are my options: # # CPU Idle # CONFIG_CPU_IDLE=y # CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_INTEL_IDLE=y Nonetheless I have to note, that currently - as time of writing and not in the past months - the results of the benchmarks are varying. I assume this is caused by the steadly changing releases of "xf86-video-intel-2.99.***-*". You can close this bug or resolve it, if you want. I don't know what I have to select ;-)