2021-05-19 20:10:56

by Sergei Trofimovich

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

Hi Christoph and i915 maintainers!

vanilla 5.13-rc2 got some rendering regression on gen2(?) i915 chips:

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 <[email protected]>
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/[email protected]
Signed-off-by: Christoph Hellwig <[email protected]>
Cc: Chris Wilson <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Rodrigo Vivi <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>

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!

--

Sergei


2021-05-19 20:21:50

by Jani Nikula

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

On Wed, 19 May 2021, Sergei Trofimovich <[email protected]> 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 <[email protected]>
> 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/[email protected]
> Signed-off-by: Christoph Hellwig <[email protected]>
> Cc: Chris Wilson <[email protected]>
> Cc: Daniel Vetter <[email protected]>
> Cc: Jani Nikula <[email protected]>
> Cc: Joonas Lahtinen <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Rodrigo Vivi <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> Signed-off-by: Linus Torvalds <[email protected]>
>
> 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