Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Jun 2012 14:07:04 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Andrey Kosachenko <andrey.kosachenko@gmail.com>
Cc:        freebsd-x11@freebsd.org
Subject:   Re: intel GPU hangs
Message-ID:  <20120612110704.GM2337@deviant.kiev.zoral.com.ua>
In-Reply-To: <4FD63519.1090507@gmail.com>
References:  <4E8DF3F9.3090201@gmail.com> <20111006184623.GS1511@deviant.kiev.zoral.com.ua> <4E8E02E8.9000402@gmail.com> <4FD63519.1090507@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--g6DVDhPhk1bqxDrC
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jun 11, 2012 at 09:12:41PM +0300, Andrey Kosachenko wrote:
> I'd like to revive this topic.
> (It was started pretty much ago=20
> http://lists.freebsd.org/pipermail/freebsd-x11/2011-October/011210.html)
>=20
> Briefly:
> I've experienced sporadic GPU hangs (using 10-Current and trying=20
> different kms patches starting from the very beginning up to the latest=
=20
> all.15.*.patch). It has happened on my "workhorse" ThinkPad T410 (intel=
=20
> integrated graphics, chipset "Arrandale"). GPU hungs were not tied to=20
> usage of heavy 3D apps or whatever. Indeed I've never managed to=20
> identify what was wrong and I don't remember that smb. reported the=20
> same. Moreover somewhere around all.12.x.patch issue occurrence=20
> decreased almost to zero (once or twice per month) and so I abandoned to=
=20
> report it (recompiled kernel w/o debug stuff and forgot about it).
>=20
> Several weeks ago I had to use software for my private needs that is not=
=20
> working under BSD (I'm talking about Google Sketchup actually, free=20
> software (basic version) that allows to make 3D sketches easily). So I=20
> employed a VM for this (VirtualBox). So far so good. But as the=20
> complexity of models grew I started to catch more GPU hangups. It made=20
> me crazy. At last point it was enough to load model + perform 2-3=20
> rotates and GPU reliably hanged
> --- smth. like below was in dmesg output
> [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
> ---
This part of the report is meaningless, since almost all GPU problems
are reported as hung GPU with hangcheck timer report. The real information
about problem should be obtained after the hang. The procedure is
described on Intel_GPU wiki page.

>=20
> I googled for a while and found several pretty similar reports in linux=
=20
> world. They experienced the same issue with SandyBridge hardware. I=20
> tried various patches (at least those I could apply) and it appeared=20
> that the following patch eliminates GPU hangs in my case:
>=20
>=20
> Index: sys/dev/drm2/i915/i915_irq.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys/dev/drm2/i915/i915_irq.c        (revision 236796)
> +++ sys/dev/drm2/i915/i915_irq.c        (working copy)
> @@ -1524,7 +1524,19 @@
>             dev->dev_private);
>=20
>         I915_WRITE(HWSTAM, 0xeffe);
> +       if (IS_GEN6(dev)) {
> +               /* Workaround stalls observed on Sandy Bridge GPUs by
> +               * making the blitter command streamer generate a
> +               * write to the Hardware Status Page for
> +               * MI_USER_INTERRUPT.  This appears to serialize the
> +               * previous seqno write out before the interrupt
> +               * happens.
> +               */
> +               I915_WRITE(GEN6_BLITTER_HWSTAM,=20
> ~GEN6_BLITTER_USER_INTERRUPT);
> +               I915_WRITE(GEN6_BSD_HWSTAM, ~GEN6_BSD_USER_INTERRUPT);
> +       }
>=20
> +
>         /* XXX hotplug from PCH */
>=20
>         I915_WRITE(DEIMR, 0xffffffff);
I remember this workaround and its removal. I am not in the position to
actually have access to any erratas to the chip. I think the only route
forward there is to try to reproduce your hang on recent Linux kernel
with same version of usermode and then ask on intel-gfx@.

--g6DVDhPhk1bqxDrC
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)

iEYEARECAAYFAk/XItgACgkQC3+MBN1Mb4jaQgCg76gr/w73QI6DVimMKVdvuVf7
/UYAoN81xahx8JSIsx5cNEYFj8ZIVyP1
=kZ8X
-----END PGP SIGNATURE-----

--g6DVDhPhk1bqxDrC--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120612110704.GM2337>