linux/drivers/char
Alan Hourihane 88d51967f5 [PATCH] AGP performance fixes
AGP allocation/deallocation is suffering major performance issues due to
the nature of global_flush_tlb() being called on every change_page_attr()
call.

For small allocations this isn't really seen, but when you start allocating
50000 pages of AGP space, for say, texture memory, then things can take
seconds to complete.

In some cases the situation is doubled or even quadrupled in the time due
to SMP, or a deallocation, then a new reallocation.  I've had a case of
upto 20 seconds wait time to deallocate and reallocate AGP space.

This patch fixes the problem by making it the caller's responsibility to
call global_flush_tlb(), and so removes it from every instance of mapping a
page into AGP space until the time that all change_page_attr() changes are
done.

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
2005-11-08 13:43:54 -08:00
..
agp [PATCH] AGP performance fixes 2005-11-08 13:43:54 -08:00
drm [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
ftape [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
ip2 [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
ipmi [PATCH] ipmi: fix watchdog timeout panic handling 2005-11-07 07:53:45 -08:00
mwave [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
pcmcia [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
rio [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
tpm [PATCH] tpm: Fix lack of driver_unregister in init failcases 2005-11-07 07:53:36 -08:00
watchdog [WATCHDOG] adds device_driver .owner field 2005-11-01 19:31:59 +01:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
ChangeLog Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] Telecom Clock Driver for MPCBL0010 ATCA computer blade 2005-10-30 17:37:25 -08:00
Makefile [PATCH] Telecom Clock Driver for MPCBL0010 ATCA computer blade 2005-10-30 17:37:25 -08:00
amiserial.c [PATCH] Remove unnecessary check_region references in comments 2005-09-13 08:22:29 -07:00
applicom.c [PATCH] applicom: fix error handling 2005-09-10 10:06:25 -07:00
applicom.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cd1865.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
consolemap.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
cp437.uni Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cyclades.c [PATCH] Typo fix: explictly -> explicitly 2005-10-30 17:37:20 -08:00
decserial.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defkeymap.c_shipped Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defkeymap.map Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
digi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
digi1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digiFep1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digiPCI.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1286.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1302.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1620.c [PATCH] char/ds1620: use msleep() instead of schedule_timeout() 2005-06-25 16:24:57 -07:00
dsp56k.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
dtlk.c [PATCH] misc verify_area cleanups 2005-05-01 08:59:08 -07:00
ec3104_keyb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efirtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
epca.c [PATCH] epca: update .owner field of struct pci_driver 2005-10-30 17:37:26 -08:00
epca.h [PATCH] epca iomem annotations + several missing readw() 2005-09-16 10:38:10 -07:00
epcaconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
esp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
generic_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
generic_serial.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genrtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hangcheck-timer.c [PATCH] CONFIG_IA32 2005-10-30 17:37:10 -08:00
hpet.c [PATCH] hpet: hpet driver cleanups 2005-10-30 17:37:31 -08:00
hvc_console.c [PATCH] hvc_console: start kernel thread before registering tty 2005-09-14 14:34:17 -07:00
hvc_vio.c powerpc: don't duplicate name between vio_driver and device_driver 2005-10-24 15:42:12 +10:00
hvcs.c powerpc: set the driver.owner field for all vio drivers 2005-10-24 16:59:13 +10:00
hvsi.c [PATCH] hvc_console: Use hvc_get_chars in hvsi code 2005-07-07 18:23:40 -07:00
hw_random.c [PATCH] drivers/char: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
i8k.c [PATCH] I8K: add new BIOS signatures 2005-06-25 16:24:25 -07:00
ip2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip2main.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
ip27-rtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
isicom.c [PATCH] drivers/char/isicom.c: section fixes 2005-06-25 16:25:00 -07:00
istallion.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
ite_gpio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
keyboard.c Input: clean up whitespace and formatting in drivers/char/keyboard.c 2005-09-10 12:03:38 -05:00
lcd.c Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lcd.h Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lp.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
mbcs.c [IA64] mbcs_init() should give up unless running on sn2 2005-10-04 09:39:18 -07:00
mbcs.h [PATCH] mbcs trivial user annotations 2005-05-04 07:33:13 -07:00
mem.c Merge ../linux-2.6 by hand 2005-10-31 13:37:12 +11:00
misc.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
mmtimer.c [IA64] Two more uses of cpuid_to_cnodeid() must go. 2005-09-15 17:00:10 -07:00
moxa.c [SERIAL] Fix moxa tty driver name 2005-09-03 16:26:49 +01:00
mxser.c [PATCH] serial moxa: fix wrong BUG 2005-11-07 07:53:36 -08:00
mxser.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
n_hdlc.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
n_r3964.c [PATCH] n_r3964 mod_timer() fix 2005-10-17 17:03:57 -07:00
n_tty.c [PATCH] gfp_t: remaining bits of drivers/* 2005-10-28 08:16:51 -07:00
nvram.c [PATCH] ARM: Reverted 2921/1: Support for the RTC / nvram on the Comdial MP1000 2005-11-04 17:26:57 +00:00
nwbutton.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwbutton.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwflash.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppdev.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
pty.c [PATCH] pty_chars_in_buffer oops fix 2005-09-09 13:57:31 -07:00
qtronix.c qtronix.c: Handle kmalloc failure. 2005-10-29 19:30:55 +01:00
qtronixmap.c_shipped Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
qtronixmap.map Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
random.c [RANDOM]: Introduce secure_dccp_sequence_number 2005-08-29 15:49:40 -07:00
raw.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
riscom8.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
riscom8.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
riscom8_reg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rocket.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
rocket.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rocket_int.h [PATCH] drivers/char/rocket.c: cleanups 2005-06-25 16:25:04 -07:00
rtc.c [PATCH] Fix wrong irq enable via rtc_control() 2005-11-07 11:14:57 +01:00
s3c2410-rtc.c Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
scan_keyb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scan_keyb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scx200_gpio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
selection.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
ser_a2232.c [PATCH] Typo fix: dot after newline in printk strings 2005-10-30 17:37:20 -08:00
ser_a2232.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ser_a2232fw.ax Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ser_a2232fw.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial167.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
snsc.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2005-10-28 21:09:26 -07:00
snsc.h [IA64] Altix system controller event handling 2005-04-25 13:28:52 -07:00
snsc_event.c [IA64-SGI] fix unaligned memory access in snsc_event.c 2005-08-15 14:17:49 -07:00
sonypi.c Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
specialix.c [PATCH] remove some more check_region stuff 2005-10-30 17:37:18 -08:00
specialix_io8.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
stallion.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
sx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sxboards.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sxwindow.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
synclink.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
synclinkmp.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
sysrq.c [PATCH] Update sysrq-B to use emergency_restart() 2005-07-26 14:35:43 -07:00
tb0219.c Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
tipar.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
tlclk.c [PATCH] tlclk build fix 2005-11-01 21:44:46 -08:00
toshiba.c [PATCH] Toshiba driver cleanup 2005-06-25 16:24:24 -07:00
tty_io.c [PATCH] kfree cleanup: drivers/char 2005-11-07 07:54:02 -08:00
tty_ioctl.c [PATCH] coverity: tty_ldisc_ref return null check 2005-06-28 21:20:34 -07:00
vc_screen.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
viocons.c merge filename and modify references to iseries/vio.h 2005-11-02 15:13:57 +11:00
viotape.c merge filename and modify references to iseries/vio.h 2005-11-02 15:13:57 +11:00
vme_scc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vr41xx_giu.c Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
vr41xx_rtc.c Create platform_device.h to contain all the platform device details. 2005-10-29 19:07:23 +01:00
vt.c [PATCH] vc: Use correct size on buffer copy in vc_resize 2005-09-15 08:24:09 -07:00
vt_ioctl.c [PATCH] Only disallow _setting_ of function key string 2005-11-07 07:53:39 -08:00