On Dec 04 12:23:42, [email protected] wrote:
> On Dec 01 09:07:43, [email protected] wrote:
> > > > > On 24/11/21(Wed) 11:16, Martin Pieuchot wrote:
> > > > > > Diff below unlock the bottom part of the UVM fault handler.  I'm
> > > > > > interested in squashing the remaining bugs.  Please test with your 
> > > > > > usual
> > > > > > setup & report back.
> > > > > 
> > > > > Thanks to all the testers, here's a new version that includes a bug 
> > > > > fix.
> > > > > Tests on !x86 architectures are much appreciated!
> > > > 
> 
> This is current/arm64 on a Thinkpad W500 (dmesg below),

Sorry, current/amd64, obviously.

> running with the patch and option WITNESS and kern.witness.watch=2.
> Three reversals are reported after boot:
> 
> witness: lock order reversal:
>  1st 0xfffffd8217a167c0 uobjlk (&uobj->vmobjlock)
>  2nd 0xffff8000013e1b00 objmm (&obj->mm.lock)
> lock order "&obj->mm.lock"(rwlock) -> "&uobj->vmobjlock"(rwlock) first seen 
> at:
> #0  rw_enter+0x65
> #1  uvm_obj_wire+0x46
> #2  shmem_get_pages+0xaf
> #3  __i915_gem_object_get_pages+0x9d
> #4  i915_vma_pin_ww+0x49b
> #5  i915_ggtt_pin+0x61
> #6  __intel_context_do_pin_ww+0x2d1
> #7  __intel_context_do_pin+0x4b
> #8  intel_engines_init+0x4a1
> #9  intel_gt_init+0x133
> #10 i915_gem_init+0xa3
> #11 i915_driver_probe+0x75a
> #12 inteldrm_attachhook+0x45
> #13 config_process_deferred_mountroot+0x6b
> #14 main+0x743
> lock order "&uobj->vmobjlock"(rwlock) -> "&obj->mm.lock"(rwlock) first seen 
> at:
> #0  rw_enter+0x65
> #1  __i915_gem_object_get_pages+0x30
> #2  i915_gem_fault+0x1aa
> #3  drm_fault+0x156
> #4  uvm_fault+0x179
> #5  upageflttrap+0x62
> #6  usertrap+0x18b
> #7  recall_trap+0x8
> 
> witness: lock order reversal:
>  1st 0xfffffd8218c24a98 uobjlk (&uobj->vmobjlock)
>  2nd 0xffff800000117070 vmlk (&vm->mutex)
> lock order data w2 -> w1 missing
> lock order "&uobj->vmobjlock"(rwlock) -> "&vm->mutex"(rwlock) first seen at:
> #0  rw_enter+0x65
> #1  i915_vma_pin_ww+0x2f2
> #2  i915_gem_object_ggtt_pin_ww+0x222
> #3  i915_gem_fault+0x450
> #4  drm_fault+0x156
> #5  uvm_fault+0x179
> #6  upageflttrap+0x62
> #7  usertrap+0x18b
> #8  recall_trap+0x8
> 
> witness: lock order reversal:
>  1st 0xfffffd8217731670 uobjlk (&uobj->vmobjlock)
>  2nd 0xffff8000014154c8 vmapg (&vma->pages_mutex)
> lock order data w2 -> w1 missing
> lock order "&uobj->vmobjlock"(rwlock) -> "&vma->pages_mutex"(rwlock) first 
> seen at:
> #0  rw_enter+0x65
> #1  i915_vma_pin_ww+0x1c7
> #2  i915_gem_object_ggtt_pin_ww+0x222
> #3  i915_gem_fault+0x450
> #4  drm_fault+0x156
> #5  uvm_fault+0x179
> #6  upageflttrap+0x62
> #7  usertrap+0x18b
> #8  recall_trap+0x8
> 
> 
>       Jan
> 
> OpenBSD 7.0-current (GENERIC.MP) #0: Sat Dec  4 10:02:46 CET 2021
>     [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 8463781888 (8071MB)
> avail mem = 8122720256 (7746MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0010 (80 entries)
> bios0: vendor LENOVO version "6FET79WW (3.09 )" date 10/02/2009
> bios0: LENOVO 40612JG
> acpi0 at bios0: ACPI 3.0
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP SSDT ECDT APIC MCFG HPET SLIC BOOT ASF! SSDT TCPA 
> SSDT SSDT SSDT
> acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP0(S4) EXP1(S4) EXP2(S4) 
> EXP3(S4) EXP4(S4) PCI1(S4) USB0(S3) USB3(S3) USB5(S3) EHC0(S3) EHC1(S3) 
> HDEF(S4)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpiec0 at acpi0
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Core(TM)2 Duo CPU P9500 @ 2.53GHz, 2527.42 MHz, 06-17-06
> cpu0: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,NXE,LONG,LAHF,PERF,SENSOR,MELTDOWN
> cpu0: 6MB 64b/line 16-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 7 var ranges, 88 fixed ranges
> cpu0: apic clock running at 265MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.2.2.2.1.3, IBE
> cpu1 at mainbus0: apid 1 (application processor)
> cpu1: Intel(R) Core(TM)2 Duo CPU P9500 @ 2.53GHz, 2527.01 MHz, 06-17-06
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,NXE,LONG,LAHF,PERF,SENSOR,MELTDOWN
> cpu1: 6MB 64b/line 16-way L2 cache
> cpu1: smt 0, core 1, package 0
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins, remapped
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-63
> acpihpet0 at acpi0: 14318179 Hz
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 1 (AGP_)
> acpiprt2 at acpi0: bus 2 (EXP0)
> acpiprt3 at acpi0: bus 3 (EXP1)
> acpiprt4 at acpi0: bus -1 (EXP2)
> acpiprt5 at acpi0: bus 5 (EXP3)
> acpiprt6 at acpi0: bus 13 (EXP4)
> acpiprt7 at acpi0: bus 21 (PCI1)
> acpibtn0 at acpi0: LID_
> acpibtn1 at acpi0: SLPB
> acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
> acpicmos0 at acpi0
> acpibat0 at acpi0: BAT0 model "COMPATIBLE" serial  1388 type LION oem "SANYO"
> acpiac0 at acpi0: AC unit online
> acpithinkpad0 at acpi0: version 1.0
> "PNP0C14" at acpi0 not configured
> acpicpu0 at acpi0: !C3(100@57 mwait.3@0x30), !C2(500@1 mwait.1@0x10), 
> C1(1000@1 mwait.1), PSS
> acpicpu1 at acpi0: !C3(100@57 mwait.3@0x30), !C2(500@1 mwait.1@0x10), 
> C1(1000@1 mwait.1), PSS
> acpipwrres0 at acpi0: PUBS, resource for USB0, USB3, USB5, EHC0, EHC1
> acpitz0 at acpi0: critical temperature is 127 degC
> acpitz1 at acpi0: critical temperature is 100 degC
> acpidock0 at acpi0: GDCK not docked (0)
> acpivideo0 at acpi0: VID_
> acpivout0 at acpivideo0: LCD0
> acpivideo1 at acpi0: VID_
> acpivout1 at acpivideo1: LCD0
> cpu0: Enhanced SpeedStep 2527 MHz: speeds: 2534, 2533, 1600, 800 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel GM45 Host" rev 0x07
> ppb0 at pci0 dev 1 function 0 "Intel GM45 PCIE" rev 0x07: msi
> pci1 at ppb0 bus 1
> 1:0:0: io address conflict 0x2000/0x100
> radeondrm0 at pci1 dev 0 function 0 "ATI Mobility Radeon HD 3650" rev 0x00
> drm1 at radeondrm0
> radeondrm0: msi
> inteldrm0 at pci0 dev 2 function 0 "Intel GM45 Video" rev 0x07
> drm0 at inteldrm0
> intagp0 at inteldrm0
> agp0 at intagp0: aperture at 0xd0000000, size 0x10000000
> inteldrm0: apic 1 int 16, GM45, gen 4
> "Intel GM45 HECI" rev 0x07 at pci0 dev 3 function 0 not configured
> em0 at pci0 dev 25 function 0 "Intel ICH9 IGP M AMT" rev 0x03: msi, address 
> 00:1c:25:97:c2:f5
> uhci0 at pci0 dev 26 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 20
> uhci1 at pci0 dev 26 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 21
> uhci2 at pci0 dev 26 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 22
> ehci0 at pci0 dev 26 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 23
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 
> addr 1
> azalia0 at pci0 dev 27 function 0 "Intel 82801I HD Audio" rev 0x03: msi
> azalia0: codecs: Conexant CX20561
> audio0 at azalia0
> ppb1 at pci0 dev 28 function 0 "Intel 82801I PCIE" rev 0x03: msi
> pci2 at ppb1 bus 2
> ppb2 at pci0 dev 28 function 1 "Intel 82801I PCIE" rev 0x03: msi
> pci3 at ppb2 bus 3
> iwn0 at pci3 dev 0 function 0 "Intel WiFi Link 5300" rev 0x00: msi, MIMO 
> 3T3R, MoW, address 00:16:ea:b2:58:ec
> ppb3 at pci0 dev 28 function 3 "Intel 82801I PCIE" rev 0x03: msi
> pci4 at ppb3 bus 5
> ppb4 at pci0 dev 28 function 4 "Intel 82801I PCIE" rev 0x03: msi
> pci5 at ppb4 bus 13
> uhci3 at pci0 dev 29 function 0 "Intel 82801I USB" rev 0x03: apic 1 int 16
> uhci4 at pci0 dev 29 function 1 "Intel 82801I USB" rev 0x03: apic 1 int 17
> uhci5 at pci0 dev 29 function 2 "Intel 82801I USB" rev 0x03: apic 1 int 18
> ehci1 at pci0 dev 29 function 7 "Intel 82801I USB" rev 0x03: apic 1 int 19
> usb1 at ehci1: USB revision 2.0
> uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 
> addr 1
> ppb5 at pci0 dev 30 function 0 "Intel 82801BAM Hub-to-PCI" rev 0x93
> pci6 at ppb5 bus 21
> cbb0 at pci6 dev 0 function 0 "Ricoh 5C476 CardBus" rev 0xba: apic 1 int 16
> "Ricoh 5C832 Firewire" rev 0x04 at pci6 dev 0 function 1 not configured
> sdhc0 at pci6 dev 0 function 2 "Ricoh 5C822 SD/MMC" rev 0x21: apic 1 int 18
> sdhc0: SDHC 1.0, 33 MHz base clock
> sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed
> "Ricoh 5C843 MMC" rev 0x11 at pci6 dev 0 function 3 not configured
> "Ricoh 5C592 Memory Stick" rev 0x11 at pci6 dev 0 function 4 not configured
> "Ricoh 5C852 xD" rev 0x11 at pci6 dev 0 function 5 not configured
> cardslot0 at cbb0 slot 0 flags 0
> cardbus0 at cardslot0: bus 22 device 0 cacheline 0x10, lattimer 0xb0
> pcmcia0 at cardslot0
> pcib0 at pci0 dev 31 function 0 "Intel 82801IEM LPC" rev 0x03
> ahci0 at pci0 dev 31 function 2 "Intel 82801I AHCI" rev 0x03: msi, AHCI 1.2
> ahci0: port 0: 3.0Gb/s
> ahci0: port 1: 1.5Gb/s
> scsibus1 at ahci0: 32 targets
> sd0 at scsibus1 targ 0 lun 0: <ATA, TOSHIBA Q300., SAFM> naa.500080dc00405039
> sd0: 457862MB, 512 bytes/sector, 937703088 sectors, thin
> cd0 at scsibus1 targ 1 lun 0: <HL-DT-ST, DVDRAM GSA-U20N, HX10> removable
> ichiic0 at pci0 dev 31 function 3 "Intel 82801I SMBus" rev 0x03: apic 1 int 23
> iic0 at ichiic0
> usb2 at uhci0: USB revision 1.0
> uhub2 at usb2 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> usb3 at uhci1: USB revision 1.0
> uhub3 at usb3 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> usb4 at uhci2: USB revision 1.0
> uhub4 at usb4 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> usb5 at uhci3: USB revision 1.0
> uhub5 at usb5 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> usb6 at uhci4: USB revision 1.0
> uhub6 at usb6 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> usb7 at uhci5: USB revision 1.0
> uhub7 at usb7 configuration 1 interface 0 "Intel UHCI root hub" rev 1.00/1.00 
> addr 1
> isa0 at pcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0: console keyboard
> pms0 at pckbc0 (aux slot)
> wsmouse0 at pms0 mux 0
> wsmouse1 at pms0 mux 0
> pms0: Synaptics touchpad, firmware 7.0, 0x1c0b1 0xb00000 0x0 0xd04791 0x20000
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> aps0 at isa0 port 0x1600/31
> dt: 451 probes
> ugen0 at uhub3 port 1 "AuthenTec Fingerprint Sensor" rev 2.00/17.03 addr 2
> ugen1 at uhub3 port 2 "Lenovo Computer Corp ThinkPad Bluetooth with Enhanced 
> Data Rate II" rev 2.00/3.52 addr 3
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> root on sd0a (f926ff4ff44f498e.a) swap on sd0b dump on sd0b
> radeondrm0: RV635
> radeondrm0: 1920x1200, 32bpp
> wsdisplay1 at radeondrm0
> wsdisplay1: screen 0-5 added (std, vt100 emulation)
> inteldrm0: 1920x1200, 32bpp
> wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> 
> 

Reply via email to