x86: fix performance drop for glx
authorSuresh Siddha <suresh.b.siddha@intel.com>
Wed, 26 Mar 2008 00:39:12 +0000 (17:39 -0700)
committerIngo Molnar <mingo@elte.hu>
Wed, 26 Mar 2008 21:23:41 +0000 (22:23 +0100)
commitd546b67a940eb42a99f56b86c5cd8d47c8348c2a
tree5382b2d1800756aedad0a25643081de2eec6a4bf
parent76c324182bbd29dfe4298ca65efb15be18055df1
x86: fix performance drop for glx

fix the 3D performance drop reported at:

   http://bugzilla.kernel.org/show_bug.cgi?id=10328

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.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/ioremap.c
arch/x86/mm/pageattr.c
include/asm-x86/pgtable.h