OpenCloudOS-Kernel/drivers
Chris Wilson 56f581bad4 drm/i915/gt: Only transfer the virtual context to the new engine if active
One more complication of preempt-to-busy with respect to the virtual
engine is that we may have retired the last request along the virtual
engine at the same time as preparing to submit the completed request to
a new engine. That submit will be shortcircuited, but not before we have
updated the context with the new register offsets and marked the virtual
engine as bound to the new engine (by calling swap on ve->siblings[]).
As we may have just retired the completed request, we may also be in the
middle of calling virtual_context_exit() to turn off the power management
associated with the virtual engine, and that in turn walks the
ve->siblings[]. If we happen to call swap() on the array as we walk, we
will call intel_engine_pm_put() twice on the same engine.

In this patch, we prevent this by only updating the bound engine after a
successful submission which weeds out the already completed requests.

Alternatively, we could walk a non-volatile array for the pm, such as
using the engine->mask. The small advantage to performing the update
after the submit is that we then only have to do a swap for active
requests.

Fixes: 22b7a426bb ("drm/i915/execlists: Preempt-to-busy")
References: 6d06779e86 ("drm/i915: Load balancing across a virtual engine"
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: "Nayana, Venkata Ramana" <venkata.ramana.nayana@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200731154834.8378-3-chris@chris-wilson.co.uk
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2020-09-07 14:23:50 +03:00
..
accessibility TTY/Serial patches for 5.9-rc1 2020-08-06 14:56:11 -07:00
acpi More ACPI updates for 5.9-rc1 2020-08-15 08:18:22 -07:00
amba
android drivers: android: Fix the SPDX comment style 2020-07-29 17:05:44 +02:00
ata
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-08-05 20:13:21 -07:00
auxdisplay Minor cleanup for auxdisplay: 2020-08-06 18:09:34 -07:00
base More power management updates for 5.9-rc1 2020-08-07 13:13:09 -07:00
bcma bcma: gpio: Use irqchip template 2020-08-02 18:26:51 +03:00
block block-5.9-2020-08-14 2020-08-15 20:36:42 -07:00
bluetooth Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next 2020-07-31 15:11:52 -07:00
bus MIPS upates for v5.9 2020-08-06 10:54:07 -07:00
cdrom
char Linux 5.8 2020-08-11 11:58:31 +10:00
clk More ACPI updates for 5.9-rc1 2020-08-15 08:18:22 -07:00
clocksource RISC-V: Remove CLINT related code from timer and arch 2020-08-20 10:58:13 -07:00
connector
counter
cpufreq cpufreq: intel_pstate: Implement passive mode with HWP enabled 2020-08-11 17:29:45 +02:00
cpuidle powerpc updates for 5.9 2020-08-07 10:33:50 -07:00
crypto virtio: fixes, features 2020-08-11 14:34:17 -07:00
dax libnvdimm for 5.9 2020-08-11 10:59:19 -07:00
dca
devfreq PM / devfreq: Fix the wrong end with semicolon 2020-07-30 17:22:58 +09:00
dio
dma Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-07 21:14:30 -07:00
dma-buf A set of locking fixes and updates: 2020-08-10 19:07:44 -07:00
edac EDAC/{i7core,sb,pnd2,skx}: Fix error event severity 2020-08-18 15:40:30 +02:00
eisa
extcon
firewire
firmware efi/libstub: Handle unterminated cmdline 2020-08-20 11:18:58 +02:00
fpga Linux 5.8-rc7 2020-07-27 11:49:37 +02:00
fsi
gnss
gpio This is the bulk of GPIO changes for the v5.9 kernel cycle: 2020-08-05 12:56:27 -07:00
gpu drm/i915/gt: Only transfer the virtual context to the new engine if active 2020-09-07 14:23:50 +03:00
greybus greybus: Use fallthrough pseudo-keyword 2020-07-29 16:58:08 +02:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2020-08-10 16:33:54 -07:00
hsi
hv hyperv-fixes for 5.9-rc 2020-08-14 13:31:25 -07:00
hwmon pwm: Changes for v5.9-rc1 2020-08-14 16:00:09 -07:00
hwspinlock
hwtracing
i2c More ACPI updates for 5.9-rc1 2020-08-15 08:18:22 -07:00
i3c
ide
idle Remove uninitialized_var() macro for v5.9-rc1 2020-08-04 13:49:43 -07:00
iio
infiniband Revert "RDMA/hns: Reserve one sge in order to avoid local length error" 2020-08-20 08:35:19 -03:00
input Cleanup, SECCOMP_FILTER support, message printing fixes, and other 2020-08-15 18:50:32 -07:00
interconnect Char/Misc driver patches for 5.9-rc1 2020-08-05 11:43:47 -07:00
iommu dma-pool: fix coherent pool allocations for IOMMU mappings 2020-08-14 16:27:00 +02:00
ipack
irqchip The usual boring updates from the interrupt subsystem: 2020-08-04 18:11:58 -07:00
isdn mISDN: Don't try to print a sockptr_t from debug logging code. 2020-07-24 16:36:13 -07:00
leds LEDs changes for 5.9-rc1. 2020-08-05 19:24:27 -07:00
lightnvm
macintosh powerpc updates for 5.9 2020-08-07 10:33:50 -07:00
mailbox iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
mcb
md block-5.9-2020-08-14 2020-08-15 20:36:42 -07:00
media IOMMU Updates for Linux v5.9 2020-08-11 14:13:24 -07:00
memory IOMMU Updates for Linux v5.9 2020-08-11 14:13:24 -07:00
memstick MMC core: 2020-08-05 13:23:24 -07:00
message
mfd - Core Frameworks 2020-08-15 08:09:38 -07:00
misc Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-07 21:14:30 -07:00
mmc This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
most drivers: most: add USB adapter driver 2020-07-31 14:38:12 +02:00
mtd This pull request contains changes for JFFS2, UBI and UBIFS 2020-08-10 18:20:04 -07:00
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-08-23 10:52:33 -07:00
nfc
ntb ntb: intel: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
nubus
nvdimm mm: add thp_size 2020-08-14 19:56:56 -07:00
nvme for-5.9/block-merge-20200804 2020-08-05 11:12:34 -07:00
nvmem nvmem: qcom-spmi-sdam: Enable multiple devices 2020-07-29 17:12:09 +02:00
of of: address: Work around missing device_type property in pcie nodes 2020-08-19 16:30:57 -06:00
opp opp: Enable resources again if they were disabled earlier 2020-08-20 11:30:22 +05:30
oprofile
parisc Merge branch 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2020-08-12 12:41:15 -07:00
parport
pci s390 fixes for 5.9-rc2 2020-08-22 10:12:49 -07:00
pcmcia
perf It looks like a smaller batch of clk updates this time around. In the core 2020-08-07 13:35:51 -07:00
phy
pinctrl This is the bulk of the pin control changes for the v5.9 2020-08-09 12:52:28 -07:00
platform linux-watchdog 5.9-rc1 tag 2020-08-12 12:13:44 -07:00
pnp
power power supply and reset changes for the v5.9 series 2020-08-07 21:27:37 -07:00
powercap This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
pps
ps3
ptp ptp: ptp_clockmatrix: use i2c_master_send for i2c write 2020-08-19 16:23:22 -07:00
pwm pwm: Changes for v5.9-rc1 2020-08-14 16:00:09 -07:00
rapidio rapidio/rio_mport_cdev: use array_size() helper in copy_{from,to}_user() 2020-08-12 10:58:01 -07:00
ras
regulator Merge remote-tracking branch 'regulator/for-5.9' into regulator-next 2020-07-30 23:27:08 +01:00
remoteproc remoteproc updates for v5.9 2020-08-11 11:17:45 -07:00
reset SOC: TI Keystone driver update for v5.9 2020-07-27 14:24:51 +02:00
rpmsg
rtc RTC for 5.9 2020-08-12 17:17:00 -07:00
s390 s390 fixes for 5.9-rc2 2020-08-22 10:12:49 -07:00
sbus
scsi Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe" 2020-08-17 22:43:55 -04:00
sfi
sh iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
siox
slimbus
soc Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-08-07 21:14:30 -07:00
soundwire
spi spi: Fixes for v5.9 2020-08-18 14:27:12 -07:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-08-05 20:13:21 -07:00
staging pci-v5.9-changes 2020-08-07 18:48:15 -07:00
target SCSI misc on 20200814 2020-08-14 16:01:59 -07:00
tc
tee
thermal - Core Frameworks 2020-08-15 08:09:38 -07:00
thunderbolt thunderbolt: merge fix for kunix_resource changes 2020-08-09 11:06:10 -07:00
tty TTY/Serial patches for 5.9-rc1 2020-08-06 14:56:11 -07:00
uio
usb media updates for v5.9-rc1 2020-08-07 13:00:53 -07:00
vdpa virtio: fixes, features 2020-08-11 14:34:17 -07:00
vfio vfio/type1: Add proper error unwind for vfio_iommu_replay() 2020-08-17 11:09:13 -06:00
vhost virtio: fixes, features 2020-08-11 14:34:17 -07:00
video drm-misc-next for 5.10: 2020-08-28 12:38:06 +10:00
virt
virtio virtio: fix build for configs without dma-bufs 2020-08-19 06:43:28 +02:00
visorbus
vlynq
vme
w1
watchdog linux-watchdog 5.9-rc1 tag 2020-08-12 12:13:44 -07:00
xen xen: branch for v5.9-rc1b 2020-08-14 13:34:37 -07:00
zorro
Kconfig
Makefile