summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorChristian Gmeiner <cgmeiner@igalia.com>2026-11-02 11:18:53 +0100
committerChristian Gmeiner <cgmeiner@igalia.com>2026-11-05 12:17:30 +0100
commitc1a757f8df1363032623fa9b1baaba0dcf34de6d (patch)
tree05097e7039e3857a150ab323895642aec8b821a3 /scripts/Makefile.thinlto
parenta0560a12d8c1a03e925c5d9be8479da75663a40f (diff)
downloadlinux-next-c1a757f8df1363032623fa9b1baaba0dcf34de6d.tar.gz
linux-next-c1a757f8df1363032623fa9b1baaba0dcf34de6d.zip
drm/etnaviv: Flush the tile status cache through both the PE and BLT
Since commit f232d9ec029c ("drm/etnaviv: fix TS cache flushing on GPUs with BLT engine"), jobs on GPUs with a BLT engine use a BLT command to flush the tile status cache instead of TS_FLUSH_CACHE, which is broken on most of these GPUs. GC7000 r6008/r6009 and GC8200 r6401 are the other way around: TS_FLUSH_CACHE works, but the BLT command does not flush the cache. The vendor driver handles these GPUs using TS_FLUSH_CACHE, but the etnaviv kernel driver has no way to identify them. As a result, dirty tile status cache lines survive the end of a job. They are written back by the next cache flush, using the page table of the job issuing it. If that job belongs to another process, the write goes to the wrong address space. On GC7000 r6009 this causes MMU faults and GPU recoveries blamed on an innocent process. I see around 1100 per run of a multisample depth/stencil test running alongside two other GPU clients. Emit both flushes at the end of every job on GPUs with a BLT engine. Whichever does not work on a given GPU is a no-op. Since dirty lines are only written back once, this costs one additional state load per job. Fixes: f232d9ec029c ("drm/etnaviv: fix TS cache flushing on GPUs with BLT engine") Cc: stable@vger.kernel.org Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Link: https://patch.msgid.link/20261102-etna-pe-ts-flush-v1-1-e4454ed86f85@igalia.com Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions