forked from Minki/linux
7ce99d24ed
An interesting discussion regarding "hybrid interrupt polling" for NVMe came to the conclusion that the ideal busyspin before sleeping was half of the expected request latency (and better if it was already halfway through that request). This suggested that we too should look again at our tradeoff between spinning and waiting. Currently, our spin simply tries to hide the cost of enabling the interrupt, which is good to avoid penalising nop requests (i.e. test throughput) and not much else. Studying real world workloads suggests that a spin of upto 500us can dramatically boost performance, but the suggestion is that this is not from avoiding interrupt latency per-se, but from secondary effects of sleeping such as allowing the CPU reduce cstate and context switch away. In a truly hybrid interrupt polling scheme, we would aim to sleep until just before the request completed and then wake up in advance of the interrupt and do a quick poll to handle completion. This is tricky for ourselves at the moment as we are not recording request times, and since we allow preemption, our requests are not on as a nicely ordered timeline as IO. However, the idea is interesting, for it will certainly help us decide when busyspinning is worthwhile. v2: Expose the spin setting via Kconfig options for easier adjustment and testing. v3: Don't get caught sneaking in a change to the busyspin parameters. v4: Explain more about the "hybrid interrupt polling" scheme that we want to migrate towards. Suggested-by: Sagar Kamble <sagar.a.kamble@intel.com> References: http://events.linuxfoundation.org/sites/events/files/slides/lemoal-nvme-polling-vault-2017-final_0.pdf Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Sagar Kamble <sagar.a.kamble@intel.com> Cc: Eero Tamminen <eero.t.tamminen@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Ben Widawsky <ben@bwidawsk.net> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Sagar Kamble <sagar.a.kamble@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190419182625.11186-1-chris@chris-wilson.co.uk
142 lines
4.5 KiB
Plaintext
142 lines
4.5 KiB
Plaintext
config DRM_I915
|
|
tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
|
|
depends on DRM
|
|
depends on X86 && PCI
|
|
select INTEL_GTT
|
|
select INTERVAL_TREE
|
|
# we need shmfs for the swappable backing store, and in particular
|
|
# the shmem_readpage() which depends upon tmpfs
|
|
select SHMEM
|
|
select TMPFS
|
|
select DRM_KMS_HELPER
|
|
select DRM_PANEL
|
|
select DRM_MIPI_DSI
|
|
select RELAY
|
|
select IRQ_WORK
|
|
# i915 depends on ACPI_VIDEO when ACPI is enabled
|
|
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
|
|
select BACKLIGHT_LCD_SUPPORT if ACPI
|
|
select BACKLIGHT_CLASS_DEVICE if ACPI
|
|
select INPUT if ACPI
|
|
select ACPI_VIDEO if ACPI
|
|
select ACPI_BUTTON if ACPI
|
|
select SYNC_FILE
|
|
select IOSF_MBI
|
|
select CRC32
|
|
select SND_HDA_I915 if SND_HDA_CORE
|
|
select CEC_CORE if CEC_NOTIFIER
|
|
help
|
|
Choose this option if you have a system that has "Intel Graphics
|
|
Media Accelerator" or "HD Graphics" integrated graphics,
|
|
including 830M, 845G, 852GM, 855GM, 865G, 915G, 945G, 965G,
|
|
G35, G41, G43, G45 chipsets and Celeron, Pentium, Core i3,
|
|
Core i5, Core i7 as well as Atom CPUs with integrated graphics.
|
|
|
|
This driver is used by the Intel driver in X.org 6.8 and
|
|
XFree86 4.4 and above. It replaces the older i830 module that
|
|
supported a subset of the hardware in older X.org releases.
|
|
|
|
Note that the older i810/i815 chipsets require the use of the
|
|
i810 driver instead, and the Atom z5xx series has an entirely
|
|
different implementation.
|
|
|
|
If "M" is selected, the module will be called i915.
|
|
|
|
config DRM_I915_ALPHA_SUPPORT
|
|
bool "Enable alpha quality support for new Intel hardware by default"
|
|
depends on DRM_I915
|
|
default n
|
|
help
|
|
Choose this option if you have new Intel hardware and want to enable
|
|
the alpha quality i915 driver support for the hardware in this kernel
|
|
version. You can also enable the support at runtime using the module
|
|
parameter i915.alpha_support=1; this option changes the default for
|
|
that module parameter.
|
|
|
|
It is recommended to upgrade to a kernel version with proper support
|
|
as soon as it is available. Generally fixes for platforms with alpha
|
|
support are not backported to older kernels.
|
|
|
|
If in doubt, say "N".
|
|
|
|
config DRM_I915_CAPTURE_ERROR
|
|
bool "Enable capturing GPU state following a hang"
|
|
depends on DRM_I915
|
|
default y
|
|
help
|
|
This option enables capturing the GPU state when a hang is detected.
|
|
This information is vital for triaging hangs and assists in debugging.
|
|
Please report any hang to
|
|
https://bugs.freedesktop.org/enter_bug.cgi?product=DRI
|
|
for triaging.
|
|
|
|
If in doubt, say "Y".
|
|
|
|
config DRM_I915_COMPRESS_ERROR
|
|
bool "Compress GPU error state"
|
|
depends on DRM_I915_CAPTURE_ERROR
|
|
select ZLIB_DEFLATE
|
|
default y
|
|
help
|
|
This option selects ZLIB_DEFLATE if it isn't already
|
|
selected and causes any error state captured upon a GPU hang
|
|
to be compressed using zlib.
|
|
|
|
If in doubt, say "Y".
|
|
|
|
config DRM_I915_USERPTR
|
|
bool "Always enable userptr support"
|
|
depends on DRM_I915
|
|
select MMU_NOTIFIER
|
|
default y
|
|
help
|
|
This option selects CONFIG_MMU_NOTIFIER if it isn't already
|
|
selected to enabled full userptr support.
|
|
|
|
If in doubt, say "Y".
|
|
|
|
config DRM_I915_GVT
|
|
bool "Enable Intel GVT-g graphics virtualization host support"
|
|
depends on DRM_I915
|
|
depends on 64BIT
|
|
default n
|
|
help
|
|
Choose this option if you want to enable Intel GVT-g graphics
|
|
virtualization technology host support with integrated graphics.
|
|
With GVT-g, it's possible to have one integrated graphics
|
|
device shared by multiple VMs under different hypervisors.
|
|
|
|
Note that at least one hypervisor like Xen or KVM is required for
|
|
this driver to work, and it only supports newer device from
|
|
Broadwell+. For further information and setup guide, you can
|
|
visit: http://01.org/igvt-g.
|
|
|
|
Now it's just a stub to support the modifications of i915 for
|
|
GVT device model. It requires at least one MPT modules for Xen/KVM
|
|
and other components of GVT device model to work. Use it under
|
|
you own risk.
|
|
|
|
If in doubt, say "N".
|
|
|
|
config DRM_I915_GVT_KVMGT
|
|
tristate "Enable KVM/VFIO support for Intel GVT-g"
|
|
depends on DRM_I915_GVT
|
|
depends on KVM
|
|
depends on VFIO_MDEV && VFIO_MDEV_DEVICE
|
|
default n
|
|
help
|
|
Choose this option if you want to enable KVMGT support for
|
|
Intel GVT-g.
|
|
|
|
menu "drm/i915 Debugging"
|
|
depends on DRM_I915
|
|
depends on EXPERT
|
|
source "drivers/gpu/drm/i915/Kconfig.debug"
|
|
endmenu
|
|
|
|
menu "drm/i915 Profile Guided Optimisation"
|
|
visible if EXPERT
|
|
depends on DRM_I915
|
|
source "drivers/gpu/drm/i915/Kconfig.profile"
|
|
endmenu
|