Bug 56017 - [Regression i965]Piglit texturing/max-texture-size causes call trace
Summary: [Regression i965]Piglit texturing/max-texture-size causes call trace
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: high major
Assignee: Daniel Vetter
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-16 06:12 UTC by lu hua
Modified: 2017-10-06 14:48 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (64.39 KB, text/plain)
2012-10-16 06:12 UTC, lu hua
no flags Details
make the WARN more useful (693 bytes, patch)
2012-10-16 07:30 UTC, Daniel Vetter
no flags Details | Splinter Review

Description lu hua 2012-10-16 06:12:42 UTC
Created attachment 68600 [details]
dmesg

System Environment:
--------------------------
Arch:             x86_64
Platform:         Ironlake
Libdrm:	(master)libdrm-2.4.39-18-g844d75e5a0b3b8f3466a24256955e886275fb298
Mesa:	(master)4004620d34a580c8fdb965d9b640e97453fc8b28
Xserver:(master)xorg-server-1.13.0-55-ga69429a17bf4630f6e26f61630a1c2b287202627
Xf86_video_intel:(master)2.20.10
Libva:	(staging)86484495155e65fd8ac33ed3ede43fb42defd966
Libva_intel_driver:(staging)f557dd6ad06c31bcf787468e804c948ecc4cf39b
Kernel:	(drm-intel-nightly) ac0fd6e24d724fc52b47e5aa2233206146071eff

Bug detailed description:
-------------------------
It happens on ironlake, sandybridge and ivybridge with -queued kernel.It doesn't happen on -fixes kernel.

The last known good commit: 3bcedbe5f2a3da65326d99803cac71c1e89bc93f
The last known bad commit: 861b675336a1f686f480d92990251e99a3ec0956

dmesg:
[   45.152855] ------------[ cut here ]------------
[   45.152887] WARNING: at drivers/gpu/drm/i915/i915_gem.c:1412 i915_gem_fault+0x212/0x22a [i915]()
[   45.152889] Hardware name: H55M-UD2H
[   45.152890] Modules linked in: lockd iTCO_wdt iTCO_vendor_support snd_hda_codec_hdmi usb_storage snd_hda_codec_realtek r8169 mii lpc_ich mfd_core snd_hda_intel snd_hda_codec coretemp snd_hwdep hwmon kvm_intel kvm snd_seq snd_seq_device i2c_i801 serio_raw snd_pcm snd_timer snd soundcore snd_page_alloc pcspkr uinput microcode sg sunrpc ipv6 autofs4 ext3 jbd mbcache ata_generic pata_acpi sd_mod firewire_ohci firewire_core crc_itu_t pata_jmicron uhci_hcd ehci_hcd floppy i915 drm_kms_helper drm i2c_algo_bit button i2c_core video dm_mirror dm_region_hash dm_log dm_mod
[   45.152923] Pid: 2828, comm: max-texture-siz Not tainted 3.6.0-rc7_unstable_20121015+ #1
[   45.152925] Call Trace:
[   45.152932]  [<ffffffff8102e500>] warn_slowpath_common+0x7e/0x96
[   45.152934]  [<ffffffff8102e52d>] warn_slowpath_null+0x15/0x17
[   45.152941]  [<ffffffffa00b22d9>] i915_gem_fault+0x212/0x22a [i915]
[   45.152946]  [<ffffffff810dd0ea>] __do_fault+0xab/0x3a1
[   45.152948]  [<ffffffff810df7c9>] handle_pte_fault+0x266/0x630
[   45.152950]  [<ffffffff810e0be5>] handle_mm_fault+0x162/0x177
[   45.152954]  [<ffffffff813fae52>] do_page_fault+0x3b9/0x3de
[   45.152958]  [<ffffffff8121364e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[   45.152960]  [<ffffffff8103bd02>] ? run_timer_softirq+0x3f/0x318
[   45.152963]  [<ffffffff810a03ff>] ? rcu_irq_exit+0x75/0x87
[   45.152965]  [<ffffffff813f7f19>] ? retint_restore_args+0xe/0xe
[   45.152967]  [<ffffffff810df680>] ? handle_pte_fault+0x11d/0x630
[   45.152969]  [<ffffffff8121368d>] ? trace_hardirqs_off_thunk+0x3a/0x3c
[   45.152971]  [<ffffffff813f80ff>] page_fault+0x1f/0x30
[   45.152973] ---[ end trace 66ad3ebc440ef917 ]---

output:
GL_PROXY_TEXTURE_1D, Internal Format = GL_RGBA8, Largest Texture Size = 8192
GL_PROXY_TEXTURE_1D, Internal Format = GL_RGBA16, Largest Texture Size = 8192
GL_PROXY_TEXTURE_1D, Internal Format = GL_RGBA32F, Largest Texture Size = 8192
GL_PROXY_TEXTURE_2D, Internal Format = GL_RGBA8, Largest Texture Size = 8192
GL_PROXY_TEXTURE_2D, Internal Format = GL_RGBA16, Largest Texture Size = 8192
GL_PROXY_TEXTURE_2D, Internal Format = GL_RGBA32F, Largest Texture Size = 8192
GL_PROXY_TEXTURE_RECTANGLE, Internal Format = GL_RGBA8, Largest Texture Size = 4096
GL_PROXY_TEXTURE_RECTANGLE, Internal Format = GL_RGBA16, Largest Texture Size = 4096
GL_PROXY_TEXTURE_RECTANGLE, Internal Format = GL_RGBA32F, Largest Texture Size = 4096
GL_PROXY_TEXTURE_CUBE_MAP, Internal Format = GL_RGBA8, Largest Texture Size = 2048
GL_PROXY_TEXTURE_CUBE_MAP, Internal Format = GL_RGBA16, Largest Texture Size = 2048
GL_PROXY_TEXTURE_CUBE_MAP, Internal Format = GL_RGBA32F, Largest Texture Size = 2048
GL_PROXY_TEXTURE_3D, Internal Format = GL_RGBA8, Largest Texture Size = 256
GL_PROXY_TEXTURE_3D, Internal Format = GL_RGBA16, Largest Texture Size = 256
GL_PROXY_TEXTURE_3D, Internal Format = GL_RGBA32F, Largest Texture Size = 256
GL_TEXTURE_1D, Internal Format = GL_RGBA8, Largest Texture Size = 8192
GL_TEXTURE_1D, Internal Format = GL_RGBA16, Largest Texture Size = 8192
GL_TEXTURE_1D, Internal Format = GL_RGBA32F, Largest Texture Size = 8192
GL_TEXTURE_2D, Internal Format = GL_RGBA8, Largest Texture Size = 8192
Bus error (core dumped)

Reproduce steps:
----------------------------
1. xinit
2. ./bin/max-texture-size -auto
Comment 1 Daniel Vetter 2012-10-16 07:30:51 UTC
Created attachment 68602 [details] [review]
make the WARN more useful

Can you please retest with this patch applied, so that we know which error code we've failed to handle?
Comment 2 lu hua 2012-10-16 08:35:53 UTC
(In reply to comment #1)
> Created attachment 68602 [details] [review] [review]
> make the WARN more useful
> 
> Can you please retest with this patch applied, so that we know which error
> code we've failed to handle?

Add this patch into -queued commit cd9a8c405d532bb74c6e2431008161a05fd5cf84.
The call trace goes away.
Comment 3 Daniel Vetter 2012-10-16 08:59:37 UTC
On Tue, Oct 16, 2012 at 10:35 AM, <bugzilla-daemon@freedesktop.org> wrote:

> (In reply to comment #1 <https://bugs.freedesktop.org/show_bug.cgi?id=56017#c1>)> Created attachment 68602 [details] [review] <https://bugs.freedesktop.org/attachment.cgi?id=68602> [details] <https://bugs.freedesktop.org/attachment.cgi?id=68602&action=edit> [review] <https://bugs.freedesktop.org/page.cgi?id=splinter.html&bug=56017&attachment=68602> [review]
> > make the WARN more useful
> >
> > Can you please retest with this patch applied, so that we know which error
> > code we've failed to handle?
>
> Add this patch into -queued commit cd9a8c405d532bb74c6e2431008161a05fd5cf84.
> The call trace goes away.
>
>
That's unexpected. Can you retest without the patch and check how reliable
you can hit this issue? Maybe you need the full testsuite run to provoke
the exact timing that made things fail ...
Comment 4 Chris Wilson 2012-10-16 10:00:48 UTC
The WARN is expected as userspace is attempting to map a buffer that can only sometimes fit into the GTT (depending on GTT size and fragmentation due to pinned objects).
Comment 5 Chris Wilson 2012-10-16 10:02:28 UTC
So we should do:
default:
  WARN(1, "unexpected error: %d\n", ret);
case -ENOSPC:
  return SIGBUS;
Comment 6 Daniel Vetter 2012-10-17 13:40:46 UTC
Fix merged to d-i-f:

commit a7c2e1aad6c846f316641bbaa54cf999aeaa7ebc
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Oct 17 11:17:16 2012 +0200

    drm/i915: shut up spurious WARN in the gtt fault handler
Comment 7 lu hua 2012-10-19 05:26:53 UTC
Verified. Fixed on -nightly branch(commit ffc170a47)
commit ffc170a47b568c28bcad917e03deaf8fee46f4d6
Merge: 6547fef 0a3af26
Comment 8 Elizabeth 2017-10-06 14:48:04 UTC
Closing old verified.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.