Re: Ver 2 of the patch [was: Re: i915 driver update testing]

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Wed, 29 Oct 2014 09:56:03 +0200
On Mon, Oct 27, 2014 at 12:02:11AM +0300, Chagin Dmitry wrote:
> On Thu, Oct 23, 2014 at 10:03:29PM +0300, Konstantin Belousov wrote:
> > On Wed, Oct 22, 2014 at 03:59:23PM -0400, Adam McDougall wrote:
> > > On 10/22/2014 08:26, Konstantin Belousov wrote:
> > 
> > Use https://www.kib.kiev.ua/kib/drm/i915.6.patch.  I already have one
> > private report of the patch worked from person who got the same panic
> > in iicbb.
> 
> Hi, Kostik!
> 
> i915.6.patch & i7-4700. 
> 
> 
> FreeBSD dchagin.static.corbina.net 11.0-CURRENT FreeBSD 11.0-CURRENT #93 r273708+3ca71ce(lemul)-dirty: Sun Oct 26 23:38:47 MSK 2014     root_at_dchagin.static.corbina.net:/home/rootobj/home/dchagin/head/sys/YOY  amd64
> 
> Unread portion of the kernel message buffer:
> FDI TX state assertion failure (expected off, current on)
> error: [drm:pid840:assert_fdi_rx] *ERROR* Attempting to enable FDI_RX on Haswell pipe > 0
> error: [drm:pid840:assert_fdi_rx] *ERROR* Attempting to enable FDI_RX on Haswell pipe > 0
> drmn1: taking over the fictitious range 0xe0000000-0xf0000000
> info: [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off
> info: [drm] GMBUS [gmbus dpb] timed out, falling back to bit banging on pin 5
> panic: _sx_xlock_hard: recursed on non-recursive sx gmbus _at_ /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c:370
> 
> cpuid = 2
> Uptime: 27s
> Dumping 582 out of 11954 MB:..3%..11%..22%..31%..42%..53%..61%..72%..83%..91%
> 
> Reading symbols from /boot/kernel/acpi_ibm.ko.symbols...done.
> Loaded symbols for /boot/kernel/acpi_ibm.ko.symbols
> Reading symbols from /boot/kernel/i915kms.ko.symbols...done.
> Loaded symbols for /boot/kernel/i915kms.ko.symbols
> Reading symbols from /boot/kernel/drm2.ko.symbols...done.
> Loaded symbols for /boot/kernel/drm2.ko.symbols
> #0  doadump (textdump=1) at /home/dchagin/head/sys/kern/kern_shutdown.c:261
> 261		dumptid = curthread->td_tid;
> (kgdb) #0  doadump (textdump=1) at /home/dchagin/head/sys/kern/kern_shutdown.c:261
> #1  0xffffffff80691a75 in kern_reboot (howto=260)
>     at /home/dchagin/head/sys/kern/kern_shutdown.c:447
> #2  0xffffffff80692670 in vpanic (
>     fmt=0xffffffff80c763b9 "_sx_xlock_hard: recursed on non-recursive sx %s _at_ %s:%d\n", ap=0xfffffe033c750d60)
>     at /home/dchagin/head/sys/kern/kern_shutdown.c:746
> #3  0xffffffff8069204c in kassert_panic (
>     fmt=0xffffffff80c763b9 "_sx_xlock_hard: recursed on non-recursive sx %s _at_ %s:%d\n") at /home/dchagin/head/sys/kern/kern_shutdown.c:634
> #4  0xffffffff806a09b0 in _sx_xlock_hard (sx=0xfffffe00039480e8, 
>     tid=18446735277793944768, opts=0, 
>     file=0xffffffff8166d4e7 "/home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c", line=370)
>     at /home/dchagin/head/sys/kern/kern_sx.c:519
> #5  0xffffffff8069f9ed in __sx_xlock (sx=0xfffffe00039480e8, 
>     td=0xfffff8000a9324c0, opts=0, 
>     file=0xffffffff8166d4e7 "/home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c", line=370) at sx.h:154
> #6  0xffffffff8069f893 in _sx_xlock (sx=0xfffffe00039480e8, opts=0, 
>     file=0xffffffff8166d4e7 "/home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c", line=370)
>     at /home/dchagin/head/sys/kern/kern_sx.c:311
> #7  0xffffffff816464e6 in intel_gmbus_transfer (idev=0xfffff80080a99900, 
>     msgs=0xfffffe033c7511e0, nmsgs=2)
>     at /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c:370
> #8  0xffffffff81646ac7 in intel_gmbus_transfer (idev=<value optimized out>, 
>     msgs=<value optimized out>, nmsgs=<value optimized out>)
>     at iicbus_if.h:131
> #9  0xffffffff8044a445 in IICBUS_TRANSFER (dev=0xfffff80080a99900, 
>     msgs=0xfffffe033c7511e0, nmsgs=2) at iicbus_if.h:131
> #10 0xffffffff8044a39b in iicbus_transfer (bus=0xfffff80080a99800, 
>     msgs=0xfffffe033c7511e0, nmsgs=2)
>     at /home/dchagin/head/sys/dev/iicbus/iiconf.c:355
> #11 0xffffffff8169309d in drm_do_probe_ddc_edid (adapter=0xfffff80080a99800, 
>     buf=0xfffffe033c751257 ""y", block=<value optimized out>, len=1)
>     at /home/dchagin/head/sys/modules/drm2/drm2/../../../dev/drm2/drm_edid.c:290
> #12 0xffffffff816909bc in drm_get_edid (connector=0xfffff80080826c00, 
>     adapter=0xfffff80080a99800)
>     at /home/dchagin/head/sys/modules/drm2/drm2/../../../dev/drm2/drm_edid.c:388
> #13 0xffffffff81645690 in intel_hdmi_detect (connector=0xfffff80080826c00, 
>     force=<value optimized out>)
>     at /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_hdmi.c:465
> #14 0xffffffff8168adf5 in drm_helper_probe_single_connector_modes (
>     connector=0xfffff80080826c00, maxX=8192, maxY=8192)
>     at /home/dchagin/head/sys/modules/drm2/drm2/../../../dev/drm2/drm_crtc_helper.c:135
> #15 0xffffffff8169387f in drm_fb_helper_initial_config (
>     fb_helper=0xfffff8008093b200, bpp_sel=32)
>     at /home/dchagin/head/sys/modules/drm2/drm2/../../../dev/drm2/drm_fb_helper.c:1164
> #16 0xffffffff81643e41 in intel_fbdev_init (dev=<value optimized out>)
>     at /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_fb.c:245
> #17 0xffffffff81617082 in i915_driver_load (dev=0xfffff80009807800, flags=0)
>     at /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/i915_dma.c:1181
> #18 0xffffffff8168ece5 in drm_attach (kdev=0xfffff800071b6e00, 
>     idlist=<value optimized out>)
>     at /home/dchagin/head/sys/modules/drm2/drm2/../../../dev/drm2/drm_drv.c:591
> #19 0xffffffff806dd737 in DEVICE_ATTACH (dev=0xfffff800071b6e00)
>     at device_if.h:180
> #20 0xffffffff806dd19c in device_attach (dev=0xfffff800071b6e00)
>     at /home/dchagin/head/sys/kern/subr_bus.c:2836
> #21 0xffffffff806dd0c4 in device_probe_and_attach (dev=0xfffff800071b6e00)
>     at /home/dchagin/head/sys/kern/subr_bus.c:2794
> #22 0xffffffff806df8ba in bus_generic_driver_added (dev=0xfffff80003e3f200, 
>     driver=0xffffffff816726e0) at /home/dchagin/head/sys/kern/subr_bus.c:3845
> #23 0xffffffff806e330f in BUS_DRIVER_ADDED (_dev=0xfffff80003e3f200, 
>     _driver=0xffffffff816726e0) at bus_if.h:204
> #24 0xffffffff806da51a in devclass_driver_added (dc=0xfffff80003e3c880, 
>     driver=0xffffffff816726e0) at /home/dchagin/head/sys/kern/subr_bus.c:1065
> #25 0xffffffff806da302 in devclass_add_driver (dc=0xfffff80003e3c880, 
>     driver=0xffffffff816726e0, pass=2147483647, dcp=0xffffffff816b8cb8)
>     at /home/dchagin/head/sys/kern/subr_bus.c:1138
> #26 0xffffffff806e1779 in driver_module_handler (mod=0xfffff80003dbb980, 
>     what=0, arg=0xffffffff81672710)
>     at /home/dchagin/head/sys/kern/subr_bus.c:4694
> #27 0xffffffff8066e2a0 in module_register_init (arg=0xffffffff816726c8)
>     at /home/dchagin/head/sys/kern/kern_module.c:123
> #28 0xffffffff8065d334 in linker_file_sysinit (lf=0xfffff8008012e200)
>     at /home/dchagin/head/sys/kern/kern_linker.c:224
> #29 0xffffffff8065cad3 in linker_load_file (
>     filename=0xfffff8000a90a120 "/boot/kernel/i915kms.ko", 
>     result=0xfffffe033c751858)
>     at /home/dchagin/head/sys/kern/kern_linker.c:424
> #30 0xffffffff80658ec1 in linker_load_module (kldname=0x0, 
>     modname=0xfffff8000a6bf800 "i915kms", parent=0x0, verinfo=0x0, 
>     lfpp=0xfffffe033c7518b8) at /home/dchagin/head/sys/kern/kern_linker.c:1999
> #31 0xffffffff8065aeb9 in kern_kldload (td=0xfffff8000a9324c0, 
>     file=0xfffff8000a6bf800 "i915kms", fileid=0xfffffe033c751900)
>     at /home/dchagin/head/sys/kern/kern_linker.c:1031
> #32 0xffffffff8065afbb in sys_kldload (td=0xfffff8000a9324c0, 
>     uap=0xfffffe033c751a58) at /home/dchagin/head/sys/kern/kern_linker.c:1057
> #33 0xffffffff80b5a098 in syscallenter (td=0xfffff8000a9324c0, 
>     sa=0xfffffe033c751a48) at subr_syscall.c:133
> #34 0xffffffff80b59a4f in amd64_syscall (td=0xfffff8000a9324c0, traced=0)
>     at /home/dchagin/head/sys/amd64/amd64/trap.c:987
> #35 0xffffffff80b2eacb in Xfast_syscall ()
>     at /home/dchagin/head/sys/amd64/amd64/exception.S:390
> #36 0x000000080088d42a in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> Current language:  auto; currently minimal
> (kgdb) 
> 
> 
> Sun Oct 26 23:41:48 MSK 2014
> Oct 26 23:41:54 dchagin login: ROOT LOGIN (root) ON ttyv0
> info: [drm] Initialized drm 1.1.0 20060810
> drmn1: <Intel Haswell (M)> on vgapci1
> info: [drm] MSI enabled 1 message(s)
> info: [drm] AGP at 0xe0000000 256MB
> iicbus0: <Philips I2C bus> on iicbb0 addr 0xff
> iic0: <I2C generic I/O> on iicbus0
> iic1: <I2C generic I/O> on iicbus1
> iicbus2: <Philips I2C bus> on iicbb1 addr 0xff
> iic2: <I2C generic I/O> on iicbus2
> iic3: <I2C generic I/O> on iicbus3
> iicbus4: <Philips I2C bus> on iicbb2 addr 0xff
> iic4: <I2C generic I/O> on iicbus4
> iic5: <I2C generic I/O> on iicbus5
> iicbus6: <Philips I2C bus> on iicbb3 addr 0xff
> iic6: <I2C generic I/O> on iicbus6
> iic7: <I2C generic I/O> on iicbus7
> iicbus8: <Philips I2C bus> on iicbb4 addr 0xff
> iic8: <I2C generic I/O> on iicbus8
> iic9: <I2C generic I/O> on iicbus9
> iicbus10: <Philips I2C bus> on iicbb5 addr 0xff
> iic10: <I2C generic I/O> on iicbus10
> iic11: <I2C generic I/O> on iicbus11
> iicbus12: <Philips I2C bus> on iicbb6 addr 0xff
> iic12: <I2C generic I/O> on iicbus12
> iic13: <I2C generic I/O> on iicbus13
> info: [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
> info: [drm] Driver supports precise vblank timestamp query.
> XXXKIB HACK: HSW RC OFF
> FDI TX state assertion failure (expected off, current on)
> error: [drm:pid840:assert_fdi_rx] *ERROR* Attempting to enable FDI_RX on Haswell pipe > 0
> error: [drm:pid840:assert_fdi_rx] *ERROR* Attempting to enable FDI_RX on Haswell pipe > 0
> drmn1: taking over the fictitious range 0xe0000000-0xf0000000
> info: [drm] Enabling RC6 states: RC6 off, RC6p off, RC6pp off
> info: [drm] GMBUS [gmbus dpb] timed out, falling back to bit banging on pin 5
> panic: _sx_xlock_hard: recursed on non-recursive sx gmbus _at_ /home/dchagin/head/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_iic.c:370
> 
> cpuid = 2
> Uptime: 27s
> Dumping 582 out of 11954 MB:..3%..11%..22%..31%..42%..53%..61%..72%..83%..91%

I am not sure what happens there. Recursion on gmbus_sx could only
occur if IICBUS_TRANSFER() on bbbus devices somehow called back to
intel_gmbus_transfer(). I do not see how this is possible.

I set force_bit_dev manually (in a hackish way) on my two test boxes,
one sandy bridge, one haswell, and both machines loaded i915kms and
startx Xorg server successfully.

Did you performed clean build after applying the patch ?
Received on Wed Oct 29 2014 - 06:56:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:53 UTC