[Bug 86644] New: [IVB Bisected]3cc134e drm/i915: sanitize rps irq enabling

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Nov 23 16:49:14 PST 2014


https://bugs.freedesktop.org/show_bug.cgi?id=86644

            Bug ID: 86644
           Summary: [IVB Bisected]3cc134e drm/i915: sanitize rps irq
                    enabling
           Product: DRI
           Version: XOrg git
          Hardware: Other
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: DRM/Intel
          Assignee: intel-gfx-bugs at lists.freedesktop.org
          Reporter: jinxianx.guo at intel.com
        QA Contact: intel-gfx-bugs at lists.freedesktop.org
                CC: intel-gfx-bugs at lists.freedesktop.org

==System Environment==
--------------------------
Regression: Yes

Non-working platforms: IVB

==kernel==
--------------------------
origin/drm-intel-nightly: 0f8cb1fb8e01c53f9ad47344e9448d72df49fcf2
    drm-intel-nightly: 2014y-11m-21d-19h-18m-03s UTC integration manifest

==Bug detailed description==
(IVB)igt/gem_bad_reloc/negative-reloc PASS->NSPT
(IVB)igt/gem_reset_stats/ban-render PASS->DMESG_WARN
(IVB)igt/gem_reset_stats/ban-blt PASS->DMESG_WARN


Dmesg:
[ 277.025554] WARNING: CPU: 7 PID: 957 at drivers/gpu/drm/i915/i915_irq.c:275
gen6_enable_rps_interrupts+0x42/0xa6 [i915]()
[ 277.025592] WARN_ON(dev_priv->rps.pm_iir)
[ 277.025607] Modules linked in:
[ 277.025622] ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4
nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4
iptable_mangle xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc ipv6
dm_mod snd_hda_codec_hdmi joydev iTCO_wdt tpm_infineon iTCO_vendor_support
ppdev snd_hda_codec_realtek snd_hda_codec_generic serio_raw pcspkr
snd_hda_intel i2c_i801 snd_hda_controller snd_hda_codec snd_hwdep snd_pcm
firewire_ohci snd_timer firewire_core lpc_ich crc_itu_t snd mfd_core soundcore
wmi battery parport_pc parport tpm_tis tpm acpi_cpufreq i915 button video
drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea
[ 277.025921] CPU: 7 PID: 957 Comm: kworker/7:1 Not tainted
3.18.0-rc5_prts_6f2dca_20141121_debug+ #64
[ 277.025955] Hardware name: Hewlett-Packard HP Compaq Elite 8300 CMT/3396,
BIOS K01 v02.05 05/07/2012
[ 277.025998] Workqueue: events intel_gen6_powersave_work [i915]
[ 277.026021] 0000000000000009 ffff8800d4c8fc38 ffffffff8182909d
00000000d4dae2e1
[ 277.026055] ffff8800d4c8fc88 ffff8800d4c8fc78 ffffffff8103b9cf
0000000000000000
[ 277.026089] ffffffffa00c4431 ffff88020d650000 ffff88020d658238
0000000000060000
[ 277.026123] Call Trace:
[ 277.026138] [] dump_stack+0x46/0x58
[ 277.026161] [] warn_slowpath_common+0x81/0x9b
[ 277.026195] [] ? gen6_enable_rps_interrupts+0x42/0xa6 [i915]
[ 277.026223] [] warn_slowpath_fmt+0x46/0x48
[ 277.026246] [] ? _raw_spin_lock_irq+0x3f/0x46
[ 277.026278] [] ? gen6_enable_rps_interrupts+0x1f/0xa6 [i915]
[ 277.026314] [] gen6_enable_rps_interrupts+0x42/0xa6 [i915]
[ 277.026350] [] intel_gen6_powersave_work+0xf69/0xf8a [i915]
[ 277.026379] [] ? process_one_work+0x1ac/0x400
[ 277.026402] [] process_one_work+0x228/0x400
[ 277.026425] [] ? process_one_work+0x1ac/0x400
[ 277.026449] [] worker_thread+0x288/0x37c
[ 277.026471] [] ? cancel_delayed_work_sync+0x15/0x15
[ 277.026497] [] kthread+0xf6/0xfe
[ 277.026517] [] ? kthread_create_on_node+0x1ac/0x1ac
[ 277.026541] [] ret_from_fork+0x7c/0xb0
[ 277.026562] [] ? kthread_create_on_node+0x1ac/0x1ac
[ 277.026586] ---[ end trace c6e8c793b9781d0f ]---

==Reproduce steps==
---------------------------- 
1. ./gem_bad_reloc --run-subtest negative-reloc

==Bisect results from PRTS==
----------------------------
Bisect shows: 3cc134e3ee09055d5a87193fc7eb0ecf4a59eaa1 is the first bad commit
Author:     Imre Deak <imre.deak at intel.com>
AuthorDate: Wed Nov 19 15:30:03 2014 +0200
Commit:     Daniel Vetter <daniel.vetter at ffwll.ch>
CommitDate: Wed Nov 19 15:03:17 2014 +0100

    drm/i915: sanitize rps irq enabling

    Atm we first enable the RPS interrupts then we clear any pending ones.
    By this we could lose an interrupt arriving after we unmasked it. This
    may not be a problem as the caller should handle such a race, but logic
    still calls for the opposite order. Also we can delay enabling the
    interrupts until after all the RPS initialization is ready with the
    following order:

    1. disable left-over RPS (earlier via intel_uncore_sanitize)
    2. clear any pending RPS interrupts
    3. initialize RPS
    4. enable RPS interrupts

    This also allows us to do the 2. and 4. step the same way for all
    platforms, so let's follow this order to simplifying things.

    Also make sure any queued interrupts are also cleared.

    v2:
    - rebase on the GEN9 patches where we don't support RPS yet, so we
      musn't enable RPS interrupts on it (Paulo)
    v3:
    - avoid enabling RPS interrupts on GEN>9 too (Paulo)
    - clarify the RPS init sequence in the log message (Chris)
    - add POSTING_READ to gen6_reset_rps_interrupts() (Paulo)
    - WARN if any PM_IIR bits are set in gen6_enable_rps_interrupts()
      (Paulo)

    Signed-off-by: Imre Deak <imre.deak at intel.com>
    Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20141124/8d196dcc/attachment.html>


More information about the intel-gfx-bugs mailing list