Created attachment 376017 [details]
Since upgrading to F12 on a Lenovo T61P (using the nouveau driver on an nVidia
Quadro FX 570M) the UI performance of a Java application running under the Sun
1.6.0_11 x64 JDK has been abysmal. More specifically it's the IntelliJ IDE,
where basic things like moving the caret around in an editor was glacially
Installing the 1.7.1-12 xorg from bug 533620 has improved things enough to make it semi-usable, even though it's nowhere near the performance I have experienced
on previous Fedora releases. In return suspend and resume works very well :-)
I'm using Gnome, and so far I haven't experienced any problems with other
applications; it has only been IntelliJ which has suffered.
Created attachment 376018 [details]
It's clearly somewhere within Xorg that the performance problems arise. Whenever I do even basic things like moving the caret as mentioned above the Xorg process completely pegs one of the CPU's at 100% for a noticeable amount of time. Performing larger operations like redrawing hidden parts of the window takes many seconds with a CPU at 100%.
I'm not sure if this belongs in nouveau or not, but I'm pretty sure it's nouveau specific - there was no such issue on ATI X300 cards at some point using jmeter on F12.
I have just tested JMeter, and it doesn't show the same sluggishness as IntelliJ.
I don't suppose running IntelliJ at a console provides any useful error output?
Fedora Bugzappers volunteer triage team
No, I'm afraid not.
A couple of additional data points, though:
The problem is simply reproduceable by installing and running IntelliJ 8.1.4 using the 30 day evaluation license. It's extremely sluggish on the Thinkpad T61p with a Quadro FX, whereas it runs fine under F12 on a Dell Inspiron 6400 with an ATI x1400. JMeter runs fine on both machines.
I have tried using the -Dsun.java2d.trace JVM flag to look into what it is that IntelliJ does that JMeter doesn't. This might be a red herring, but an apparently significant difference is that IntelliJ heavily calls a function called sun.java2d.loops.MaskFill::MaskFill(AnyColor, SrcOver, IntRgb) which is highly time consuming.
A bit of Googling finds some info on the function:
"MaskFill 1) fills rectangles of pixels on a surface 2) performs compositing of colors based upon a Composite parameter 3) blends result of composite with destination using an alpha coverage mask 4) the mask may be null in which case it should be treated as if it were an array of all opaque values (0xff)"
CCing Lillian Angel, who seems to do most work on the OpenJDK package, in case she can help Ben understand what exactly Java is doing here. But I think this probably is an error in the driver, since it works OK with other hardware.
Fedora Bugzappers volunteer triage team
FWIW I've tried running IntelliJ on the latest Sun JDK (1.6.0_18 x64), and that makes the sluggishness disappear.
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '12'.
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 12's end of life.
Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 12 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora please change the 'version' of this
bug to the applicable version. If you are unable to change the version,
please add a comment here and someone will do it for you.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
The process we are following is described here:
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.
If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.
Thank you for reporting this bug and we are sorry it could not be fixed.