linux_dsm_epyc7002/drivers
Chris Wilson e58f637bb9 drm/kms: Add a module parameter to disable polling
Polling for a VGA device on an old system can be quite expensive,
causing latencies on the order of 600ms. As we hold the mode mutex for
this time and also need the same mutex to move the cursor, we trigger a
user-visible stall.

The real solution would involve improving the granulatity of the
locking and so perhaps performing some of the probing not under the lock
or some other updates can be done under different locks. Also reducing the
cost of probing for a non-existent monitor would be worthwhile. However,
exposing a parameter to disable polling is a simple workaround in the
meantime.

In order to accommodate users turning polling on and off at runtime, the
polling is potentially re-enabled on every probe. This is coupled to
the user calling xrandr, which seems to be a vaild time to reset the
polling timeout since the information on the connection has just been
updated. (The presumption being that all connections are probed in a
single xrandr pass, which is currently valid.)

References:

  Bug 29536 - 2.6.35 causes ~600ms latency every 10s
  https://bugs.freedesktop.org/show_bug.cgi?id=29536

  Bug 16265 - Why is kslowd accumulating so much CPU time?
  https://bugzilla.kernel.org/show_bug.cgi?id=16265

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reported-and-tested-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-09-07 08:04:11 +10:00
..
accessibility
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-08-15 17:37:07 -07:00
amba
ata libata-sff: remove harmful BUG_ON from ata_bmdma_qc_issue 2010-08-25 19:24:16 -04:00
atm Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
auxdisplay
base firmware_class: fix typo in error path 2010-08-23 18:12:46 -07:00
block Merge branch 'for-upstream/pvhvm' of git://xenbits.xensource.com/people/ianc/linux-2.6 2010-08-23 18:29:18 -07:00
bluetooth
cdrom
char Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
clocksource
connector
cpufreq
cpuidle
crypto [S390] zcrypt: fix Kconfig dependencies 2010-08-13 10:06:54 +02:00
dca
dio
dma Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
edac amd64_edac: Do not report error overflow as a separate error 2010-08-26 12:46:03 +02:00
eisa
firewire firewire: ohci: work around VIA and NEC PHY packet reception bug 2010-08-29 09:17:31 +02:00
firmware Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-08-14 12:34:34 -07:00
gpio gpiolib: Implement set_debounce for WM831x GPIOs 2010-08-12 11:27:57 +02:00
gpu drm/kms: Add a module parameter to disable polling 2010-09-07 08:04:11 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2010-08-18 15:29:38 -07:00
hwmon hwmon: (k8temp) Differentiate between AM2 and ASB1 2010-08-25 15:42:12 +02:00
i2c Merge branch 'for-linus/i2c-2636' of git://git.fluff.org/bjdooks/linux 2010-08-14 11:57:54 -07:00
ide ide: use module_param_named rather than module_param_call 2010-08-11 23:04:39 +09:30
idle Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-08-15 11:17:52 -07:00
ieee1394
ieee802154
infiniband Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
input Input: pxa27x_keypad - remove input_free_device() in pxa27x_keypad_remove() 2010-08-25 07:51:40 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-23 18:30:30 -07:00
leds Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
lguest
macintosh via-pmu: Add compat_pmu_ioctl 2010-08-24 15:28:28 +10:00
mca
md md raid-1/10 Fix bio_rw bit manipulations again 2010-08-18 16:16:05 +10:00
media V4L/DVB: mantis: Fix IR_CORE dependency 2010-08-24 10:42:08 -07:00
memstick memstick: fix hangs on unexpected device removal in mspro_blk 2010-08-12 08:43:31 -07:00
message fusion: add function parameter names to kernel-doc 2010-08-14 16:21:00 -07:00
mfd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6 2010-08-12 10:01:30 -07:00
misc Merge branch 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2010-08-12 10:01:59 -07:00
mmc drivers/mmc/host/sdhci-s3c.c: use the correct mutex and card detect function 2010-08-20 09:34:55 -07:00
mtd Merge git://git.infradead.org/mtd-2.6 2010-08-21 12:47:05 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-28 15:42:44 -07:00
nubus
of
oprofile
parisc
parport Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
pci Merge git://git.infradead.org/iommu-2.6 2010-08-15 17:34:20 -07:00
pcmcia Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
platform intel_scu_ipc: fix IPC i2c write bug 2010-08-24 10:42:09 -07:00
pnp
power Merge git://git.infradead.org/battery-2.6 2010-08-12 09:58:33 -07:00
pps
ps3
rapidio
regulator regulator: Remove default DEBUG define from TPS6586x 2010-08-11 11:38:03 +01:00
rtc Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2010-08-12 09:11:31 -07:00
s390 Input: sysrq - drop tty argument form handle_sysrq() 2010-08-21 00:34:45 -07:00
sbus
scsi drivers/scsi/qla4xxx: fix build 2010-08-20 09:34:56 -07:00
serial Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
sfi
sh
sn
spi m68knommu: include sched.h in ColdFire/SPI driver 2010-08-18 12:44:31 +10:00
ssb
staging Staging: sep: remove driver 2010-08-23 18:15:38 -07:00
tc
telephony
thermal
uio
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
uwb
vhost
video matroxfb: fix incorrect use of memcpy_toio() 2010-08-20 09:34:54 -07:00
virtio
vlynq
w1
watchdog watchdog: hpwdt (12/12): Make NMI decoding a compile-time option 2010-08-13 20:54:53 +00:00
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
zorro
Kconfig
Makefile