Bug 77712

Summary: [regression] SNA performance regression from 3.13.7 to 3.14 kernel
Product: xorg Reporter: Ildar Nurislamov <absorbb>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED NOTOURBUG QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: pocek
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
logs
none
Difference of 3.13 and 3.14 configs none

Description Ildar Nurislamov 2014-04-21 07:58:57 UTC
Created attachment 97665 [details]
logs

Kernel is only changed component between tests.
Gtkperf results droped from 1.16 sec to 1.83.

I've attached dmesg, Xorg, and gtkperf log - so you can see which tests regressed more.
http://ie.microsoft.com/testdrive/Performance/ParticleAcceleration/ test in Mozilla Nightly also regressed noticeably. but don't remember exact number.

I don't have any 3d benchmark suites. But brief look at World of Warcraft (direct3d over wine) 3d performance didn't show much difference.

All test was done with 08e71e1820d6fcb6829b4ebd360beadc1f250295 git revision.
Comment 1 Chris Wilson 2014-04-22 09:27:41 UTC
3.13.0-24:
GtkPerf 0.40 - Starting testing: Tue Apr 22 10:10:26 2014

GtkEntry - time:  0.00
GtkComboBox - time:  0.61
GtkComboBoxEntry - time:  0.34
GtkSpinButton - time:  0.05
GtkProgressBar - time:  0.02
GtkToggleButton - time:  0.05
GtkCheckButton - time:  0.05
GtkRadioButton - time:  0.07
GtkTextView - Add text - time:  0.28
GtkTextView - Scroll - time:  0.08
GtkDrawingArea - Lines - time:  0.39
GtkDrawingArea - Circles - time:  0.38
GtkDrawingArea - Text - time:  0.25
GtkDrawingArea - Pixbufs - time:  0.02
 --- 
Total time:  2.58

-nightly+:
GtkPerf 0.40 - Starting testing: Tue Apr 22 10:25:45 2014

GtkEntry - time:  0.00
GtkComboBox - time:  0.49
GtkComboBoxEntry - time:  0.32
GtkSpinButton - time:  0.05
GtkProgressBar - time:  0.02
GtkToggleButton - time:  0.05
GtkCheckButton - time:  0.05
GtkRadioButton - time:  0.07
GtkTextView - Add text - time:  0.28
GtkTextView - Scroll - time:  0.08
GtkDrawingArea - Lines - time:  0.38
GtkDrawingArea - Circles - time:  0.37
GtkDrawingArea - Text - time:  0.25
GtkDrawingArea - Pixbufs - time:  0.02
 --- 
Total time:  2.43


The single greatest oddity in your results if the AddText increase, since that is more or less a CPU test. I wonder if something about the scheduler, kernel debug, cpu governor etc changed?
Comment 2 Chris Wilson 2014-04-22 09:29:24 UTC
The other thing to check is whether disabling everything and running a bare X session shows the same slowdown.
Comment 3 Ildar Nurislamov 2014-04-23 07:59:14 UTC
Created attachment 97809 [details]
Difference of 3.13 and 3.14 configs

In a bare X session with only gtkperf running without WM 3.14 kernel is still slower. but AddText results are equal.
I forgot to log results but afair most of the difference still came from GtkComboBox and GtkComboBoxEntry tests.

I tried to compile 3.14 kernel with config based on my current 3.13. But so many new parameters were introduced in 3.14 that resulting config file happened to differ in a huge deal. Some of these parameters are about perf schemes and scheduling. Playing around with them requires a lot of spare time. Maybe i will do it later. For now i attach difference of config files - maybe you will see something in it.
Comment 4 Chris Wilson 2014-04-23 08:11:27 UTC
Hmm, no, none of those changes trigger any alarm bells.
Comment 5 Ildar Nurislamov 2014-04-23 12:24:14 UTC
3.15rc2 from bug76554 branch regressed even more
GtkPerf 0.40 - Starting testing: Wed Apr 23 16:18:54 2014

GtkEntry - time:  0.03
GtkComboBox - time:  0.46
GtkComboBoxEntry - time:  0.36
GtkSpinButton - time:  0.04
GtkProgressBar - time:  0.02
GtkToggleButton - time:  0.03
GtkCheckButton - time:  0.03
GtkRadioButton - time:  0.04
GtkTextView - Add text - time:  0.20
GtkTextView - Scroll - time:  0.09
GtkDrawingArea - Lines - time:  0.38
GtkDrawingArea - Circles - time:  0.27
GtkDrawingArea - Text - time:  0.12
GtkDrawingArea - Pixbufs - time:  0.01
 --- 
Total time:  2.09

Lines and Circles regressed hard.
Comment 6 Ildar Nurislamov 2014-04-23 12:48:29 UTC
That was printed in VT1 before welcome message:

2014-04-23T16:16:36.494674+04:00 linux-2uju kernel: [    0.000000] Linux version 3.15.0-rc2desktop+ (absorbb@linux-2uju) (gcc version 4.8.1 20130909 [gcc-4_8-branch revision 202388] (SUSE Linux) ) #1 SMP PREEMPT Wed Apr 23 16:06:21 MSK 2014
...
2014-04-23T16:16:36.496355+04:00 linux-2uju kernel: [    0.384669] Ring render ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:16:36.496356+04:00 linux-2uju kernel: [    0.386567] Ring render ring after initialisation: 0001f001 00000008 00000008 009f1000
2014-04-23T16:16:36.496357+04:00 linux-2uju kernel: [    0.386630] Ring bsd ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:16:36.496358+04:00 linux-2uju kernel: [    0.386643] Ring bsd ring after initialisation: 0001f001 00000008 00000008 00a13000
2014-04-23T16:16:36.496359+04:00 linux-2uju kernel: [    0.386691] Ring blitter ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:16:36.496360+04:00 linux-2uju kernel: [    0.386705] Ring blitter ring after initialisation: 0001f001 00000008 00000008 00a34000
2014-04-23T16:16:36.496362+04:00 linux-2uju kernel: [    0.505797] [drm:cpt_serr_int_handler] *ERROR* PCH transcoder A FIFO underrun


2014-04-23T16:35:55.660575+04:00 linux-2uju kernel: [    0.000000] Linux version 3.14.0-6.ga68bc7c-desktop+ (absorbb@linux-2uju) (gcc version 4.8.1 20130909 [gcc-4_8-branch revision 202388] (SUSE Linux) ) #1 SMP PREEMPT Tue Apr 22 17:11:42 MSK 2014
...
2014-04-23T16:35:55.661500+04:00 linux-2uju kernel: [    0.386481] Ring render ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:35:55.661501+04:00 linux-2uju kernel: [    0.388218] Ring render ring after initialisation: 0001f001 00000008 00000008 009f1000
2014-04-23T16:35:55.661502+04:00 linux-2uju kernel: [    0.388270] Ring bsd ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:35:55.661503+04:00 linux-2uju kernel: [    0.388283] Ring bsd ring after initialisation: 0001f001 00000008 00000008 00a13000
2014-04-23T16:35:55.661505+04:00 linux-2uju kernel: [    0.388307] Ring blitter ring before initialisation: 00000000 00000000 00000000 00000000
2014-04-23T16:35:55.661506+04:00 linux-2uju kernel: [    0.388320] Ring blitter ring after initialisation: 0001f001 00000008 00000008 00a34000
2014-04-23T16:35:55.661631+04:00 linux-2uju kernel: [    0.503503] [drm:cpt_serr_int_handler] *ERROR* PCH transcoder A FIFO underrun

Is this ok?
Comment 7 Ildar Nurislamov 2014-04-23 12:53:50 UTC
3.14.1 kernel from opensuse repos doesn't have these messages.
Comment 8 Chris Wilson 2014-04-23 13:00:04 UTC
(In reply to comment #5)
> 3.15rc2 from bug76554 branch regressed even more
> GtkPerf 0.40 - Starting testing: Wed Apr 23 16:18:54 2014
> 
> GtkEntry - time:  0.03
> GtkComboBox - time:  0.46
> GtkComboBoxEntry - time:  0.36
> GtkSpinButton - time:  0.04
> GtkProgressBar - time:  0.02
> GtkToggleButton - time:  0.03
> GtkCheckButton - time:  0.03
> GtkRadioButton - time:  0.04
> GtkTextView - Add text - time:  0.20
> GtkTextView - Scroll - time:  0.09
> GtkDrawingArea - Lines - time:  0.38
> GtkDrawingArea - Circles - time:  0.27
> GtkDrawingArea - Text - time:  0.12
> GtkDrawingArea - Pixbufs - time:  0.01
>  --- 
> Total time:  2.09
> 
> Lines and Circles regressed hard.

Yes. That's due to the new idiotic cmd parser. You have to disable it in order to get comparable results. :|

(In reply to comment #6)
> That was printed in VT1 before welcome message:
>
> 2014-04-23T16:35:55.660575+04:00 linux-2uju kernel: [    0.000000] Linux
> version 3.14.0-6.ga68bc7c-desktop+ (absorbb@linux-2uju) (gcc version 4.8.1
> 20130909 [gcc-4_8-branch revision 202388] (SUSE Linux) ) #1 SMP PREEMPT Tue
> Apr 22 17:11:42 MSK 2014
> ...
> 2014-04-23T16:35:55.661500+04:00 linux-2uju kernel: [    0.386481] Ring
> render ring before initialisation: 00000000 00000000 00000000 00000000
> 2014-04-23T16:35:55.661501+04:00 linux-2uju kernel: [    0.388218] Ring
> render ring after initialisation: 0001f001 00000008 00000008 009f1000
> 2014-04-23T16:35:55.661502+04:00 linux-2uju kernel: [    0.388270] Ring bsd
> ring before initialisation: 00000000 00000000 00000000 00000000
> 2014-04-23T16:35:55.661503+04:00 linux-2uju kernel: [    0.388283] Ring bsd
> ring after initialisation: 0001f001 00000008 00000008 00a13000
> 2014-04-23T16:35:55.661505+04:00 linux-2uju kernel: [    0.388307] Ring
> blitter ring before initialisation: 00000000 00000000 00000000 00000000
> 2014-04-23T16:35:55.661506+04:00 linux-2uju kernel: [    0.388320] Ring
> blitter ring after initialisation: 0001f001 00000008 00000008 00a34000
> 2014-04-23T16:35:55.661631+04:00 linux-2uju kernel: [    0.503503]
> [drm:cpt_serr_int_handler] *ERROR* PCH transcoder A FIFO underrun
> 
> Is this ok?

The ring messages are just debug for another issue. The fifo underrun shouldn't happen either, but doesn't affect things either.
Comment 9 Ildar Nurislamov 2014-04-28 07:54:58 UTC
Something changed in "powersave" CPU governor in 3.14 that caused this regression.
Setting it to "performance" resolve this problem.
Comment 10 Chris Wilson 2014-04-30 10:38:18 UTC
I am not sure if there is anything I can do to help... Maybe gather up the evidence and report it to

CPU FREQUENCY DRIVERS
M:      Rafael J. Wysocki <rjw@rjwysocki.net>
M:      Viresh Kumar <viresh.kumar@linaro.org>
L:      cpufreq@vger.kernel.org
L:      linux-pm@vger.kernel.org
Comment 11 Chris Wilson 2014-05-06 19:24:21 UTC
This sounds very much related: http://www.gossamer-threads.com/lists/linux/kernel/1917870
Comment 12 Ildar Nurislamov 2014-05-07 16:09:56 UTC
Yes. I think problem have enough attention http://www.phoronix.com/scan.php?page=news_item&px=MTY4NDE
Comment 13 Daniel Vetter 2014-05-15 21:38:40 UTC
I guess we can close this since it's a kernel issue. Needs to be tracked at bugzilla.kernel.org. anyway.
Comment 14 Daniel Vetter 2014-05-19 16:18:07 UTC
Tag as regression for stats.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.