Re: [bisected] 5.13-rc2 i915 regression in b12d691ea5e01d "i915: fix remap_io_sg to verify the pgprot"

From: Jani Nikula
Date: Wed May 19 2021 - 13:54:22 EST


On Wed, 19 May 2021, Sergei Trofimovich <slyfox@xxxxxxxxxx> wrote:
> Hi Christoph and i915 maintainers!
>
> vanilla 5.13-rc2 got some rendering regression on gen2(?) i915 chips:

293837b9ac8d ("Revert "i915: fix remap_io_sg to verify the pgprot"")
will be included in v5.13-rc3.

BR,
Jani.


>
> In gtk apps cursor gets corrupted for a short period of time.
>
> In firefox text selection and text scrolling shows artifacts for a short
> time (seconds). As if tiny horisontal tiles (1 pixel high, ~20-50 pixels
> long) fail to refresh in time.
>
> I was not able get a screenshot with artifacts: pictures are always clean.
> I can grab a photo or tiny video if needed.
>
> Bisection was straightforward and landed on:
>
> b12d691ea5e01db42ccf3b4207e57cb3ce7cfe91 is the first bad commit
> commit b12d691ea5e01db42ccf3b4207e57cb3ce7cfe91
> Author: Christoph Hellwig <hch@xxxxxx>
> Date: Thu Apr 29 22:57:38 2021 -0700
>
> i915: fix remap_io_sg to verify the pgprot
>
> remap_io_sg claims that the pgprot is pre-verified using an io_mapping,
> but actually does not get passed an io_mapping and just uses the pgprot in
> the VMA. Remove the apply_to_page_range abuse and just loop over
> remap_pfn_range for each segment.
>
> Note: this could use io_mapping_map_user by passing an iomap to
> remap_io_sg if the maintainers can verify that the pgprot in the iomap in
> the only caller is indeed the desired one here.
>
> Link: https://lkml.kernel.org/r/20210326055505.1424432-5-hch@xxxxxx
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>
> Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>
> drivers/gpu/drm/i915/i915_mm.c | 73 +++++++++++++-----------------------------
> 1 file changed, 23 insertions(+), 50 deletions(-)
>
> System:
> $ Linux sf 5.12.0-11146-g8ca5297e7e38 #302 SMP PREEMPT Thu Apr 29 23:30:52 BST 2021 x86_64 Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz GenuineIntel GNU/Linux
> $ lspci -v
> 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
> Subsystem: Gigabyte Technology Co., Ltd 2nd Generation Core Processor Family Integrated Graphics Controller
> Flags: bus master, fast devsel, latency 0, IRQ 27
> Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
> Memory at e0000000 (64-bit, prefetchable) [size=256M]
> I/O ports at f000 [size=64]
> Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
> Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Capabilities: [d0] Power Management version 2
> Capabilities: [a4] PCI Advanced Features
> Kernel driver in use: i915
>
> Software:
> mesa-20.3.5 : i965 driver
> glamor X acceleration enabled on Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)
> xorg-server-1.20.11
>
> Thanks!

--
Jani Nikula, Intel Open Source Graphics Center