On Tue, Mar 25, 2008 at 03:28:09PM -0700, Andrew Morton wrote:(switched to email. Please respond via emailed reply-to-all, not via the
bugzilla web interface).
On Tue, 25 Mar 2008 15:11:15 -0700 (PDT)
bugme-daemon@xxxxxxxxxxxxxxxxxxx wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=10328It nearly halved.
Summary: [regression] performance drop for glx
after commit 4138cc3418f5eaa7524ff8e927102863f1ba0ea5 i expirience some grafik
related perfomance issues.
I used glxgears for test.
before this patch: 1281.005 FPS
and after: 765.000 FPS
latest tested commit a4083c9271e0a697278e089f2c0b9a95363ada0aThat's
still hase bad performance.
I use Pentium D with 2GB RAM, Grafick: i945G, ICH7
: commit 4138cc3418f5eaa7524ff8e927102863f1ba0ea5
: Author: Siddha, Suresh B <suresh.b.siddha@xxxxxxxxx>
: Date: Wed Jan 30 13:33:43 2008 +0100
: : x86: set strong uncacheable where UC is really desired
: : Also use _PAGE_PWT for all the mappings which need uncache mapping.
: Instead of existing PAT2 which is UC- (and can be overwritten by MTRRs),
: we now use PAT3 which is strong uncacheable.
: : This makes it consistent with pgprot_noncached()
Alexey, Can you please try the appended patch?
Andrew, can you please push the appended patch for 2.6.25? Thanks.
---
fb drivers are using ioremap()/ioremap_nocache(), followed by mtrr_add with
WC attribute. Recent changes in page attribute code made both
ioremap()/ioremap_nocache() mappings as UC (instead of previous UC-). This
breaks the graphics performance, as the effective memory type is UC instead
of expected WC.
The correct way to fix this is to add ioremap_wc() (which uses UC- in the
absence of PAT kernel support and WC with PAT) and change all the
fb drivers to use this new ioremap_wc() API.
We can take this correct and longer route for post 2.6.25. For now,
revert back to the UC- behavior for ioremap/ioremap_nocache.