NetBSD Problem Report #56860

From www@netbsd.org  Thu Jun  2 21:45:35 2022
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 6E9201A921F
	for <gnats-bugs@gnats.NetBSD.org>; Thu,  2 Jun 2022 21:45:35 +0000 (UTC)
Message-Id: <20220602214533.78E071A923A@mollari.NetBSD.org>
Date: Thu,  2 Jun 2022 21:45:33 +0000 (UTC)
From: vezhlys@gmail.com
Reply-To: vezhlys@gmail.com
To: gnats-bugs@NetBSD.org
Subject: viadrmums module fails to load after drm update
X-Send-Pr-Version: www-1.0

>Number:         56860
>Category:       port-i386
>Synopsis:       viadrmums module fails to load after drm update
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 02 21:50:00 +0000 2022
>Closed-Date:    Sun Oct 23 20:09:13 +0000 2022
>Last-Modified:  Sun Oct 23 20:09:13 +0000 2022
>Originator:     Andrius V
>Release:        current (9.99.97 Jun 2)
>Organization:
>Environment:
NetBSD legacy-nas 9.99.97 NetBSD 9.99.97 (VT-310DP) #0: Thu Jun  2 23:11:51 EEST 2022  andriusv@main-pc:/home/andriusv/obj/sys/arch/i386/compile/VT-310DP i386
>Description:
Since viadrmums driver is not included in the kernel by default, I preferred to load driver as module (instead of compiling built-in support). Considering drmkms_linux, drm, drmkms_linux modules were present in the kernel (built-in by default because of other drm drivers) or loaded as modules, the driver was loading and working as expected, improving occasional Xorg experience from unbearable to quite usable. After DRM upgrade built-in driver still works well, however module stopped loading with the errors below:

kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_idlelock_release' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_getsarea' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_idlelock_take' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_findmap' not found
WARNING: module error: unable to affix module `viadrmums', error 8

full dmesg:
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
    2018, 2019, 2020, 2021, 2022
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 9.99.97 (VT-310DP) #0: Thu Jun  2 23:11:51 EEST 2022
	andriusv@main-pc:/home/andriusv/obj/sys/arch/i386/compile/VT-310DP
total memory = 1981 MB
avail memory = 1926 MB
timecounter: Timecounters tick every 10.000 msec
Kernelized RAIDframe activated
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_idlelock_release' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_getsarea' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_idlelock_take' not found
kobj_checksyms, 994: [viadrmums]: linker error: symbol `drm_legacy_findmap' not found
WARNING: module error: unable to affix module `viadrmums', error 8
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
mainbus0 (root)
ACPI: RSDP 0x00000000000F8940 000014 (v00 CN400 )
ACPI: RSDT 0x000000007BDE3040 00002C (v01 CN400  AWRDACPI 42302E31 AWRD 00000000)
ACPI: FACP 0x000000007BDE30C0 000074 (v01 CN400  AWRDACPI 42302E31 AWRD 00000000)
ACPI: DSDT 0x000000007BDE3180 004D8C (v01 CN400  AWRDACPI 00001000 MSFT 0100000E)
ACPI: FACS 0x000000007BDE0000 000040
ACPI: APIC 0x000000007BDE7F80 000068 (v01 CN400  AWRDACPI 42302E31 AWRD 00000000)
ACPI: 1 ACPI AML tables successfully acquired and loaded
ioapic0 at mainbus0 apid 2: pa 0xfec00000, version 0x3, 24 pins
cpu0 at mainbus0 apid 0
cpu0: Use cpuid to serialize rdtsc
cpu0: VIA Nehemiah, id 0x69a
cpu0: node 0, package 0, core 0, smt 0
cpu1 at mainbus0 apid 1
cpu1: VIA Nehemiah, id 0x69a
cpu1: node 0, package 0, core 0, smt 0
acpi0 at mainbus0: Intel ACPICA 20211217
acpi0: X/RSDT: OemId <CN400 ,AWRDACPI,42302e31>, AslId <AWRD,00000000>
acpi0: SCI interrupting at int 9
acpi0: fixed power button present
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
acpibut0 at acpi0 (PWRB, PNP0C0C): ACPI Power Button
MEM (PNP0C01) at acpi0 not configured
attimer1 at acpi0 (TMR, PNP0100): io 0x40-0x43 irq 0
pcppi1 at acpi0 (SPKR, PNP0800): io 0x61
midi0 at pcppi1: PC speaker
sysbeep0 at pcppi1
COPR (PNP0C04) at acpi0 not configured
UAR1 (PNP0501) at acpi0 not configured
UAR2 (PNP0501) at acpi0 not configured
pckbc1 at acpi0 (PS2K, PNP0303) (kbd port): io 0x60,0x64 irq 1
acpifan0 at acpi0 (FAN, PNP0C0B): ACPI Fan
acpitz0 at acpi0 (THRM): cpu0
acpitz0: active cooling level 0: 70.0C
acpitz0: levels: critical 75.0 C, passive 70.0 C
apm0 at acpi0: Power Management spec V1.2
ACPI: Enabled 1 GPEs in block 00 to 0F
attimer1: attached to pcppi1
pckbd0 at pckbc1 (kbd slot)
pckbc1: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: VIA Technologies product 0259 (rev. 0x00)
agp0 at pchb0: aperture at 0xe8000000, size 0x8000000
pchb1 at pci0 dev 0 function 1: VIA Technologies product 1259 (rev. 0x00)
pchb2 at pci0 dev 0 function 2: VIA Technologies product 2259 (rev. 0x00)
pchb3 at pci0 dev 0 function 3: VIA Technologies product 3259 (rev. 0x00)
pchb4 at pci0 dev 0 function 4: VIA Technologies product 4259 (rev. 0x00)
pchb5 at pci0 dev 0 function 7: VIA Technologies product 7259 (rev. 0x00)
ppb0 at pci0 dev 1 function 0: VIA Technologies VT8377CE CPU-AGP Bridge (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga0 at pci1 dev 0 function 0: VIA Technologies product 3118 (rev. 0x02)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
drm at vga0 not configured
fxp0 at pci0 dev 9 function 0: i82551 Ethernet (rev. 0x10)
fxp0: interrupting at ioapic0 pin 17
fxp0: Ethernet address 00:e0:81:xx:xx:xx
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vge0 at pci0 dev 10 function 0: VIA VT612X Gigabit Ethernet (rev. 0x11)
vge0: interrupting at ioapic0 pin 18
vge0: Ethernet address 00:e0:81:xx:xx:xx
ciphy0 at vge0 phy 1: Cicada CIS8201 10/100/1000TX PHY, rev. 2
ciphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
viaide0 at pci0 dev 15 function 0: VIA Technologies VT8237 SATA Controller (rev. 0x80)
viaide0: bus-master DMA support present
viaide0: primary channel wired to native-PCI mode
viaide0: using ioapic0 pin 20 for native-PCI interrupt
atabus0 at viaide0 channel 0
viaide0: secondary channel wired to native-PCI mode
atabus1 at viaide0 channel 1
viaide1 at pci0 dev 15 function 1
viaide1: VIA Technologies VT8237 ATA133 controller
viaide1: bus-master DMA support present
viaide1: primary channel configured to compatibility mode
viaide1: primary channel interrupting at ioapic0 pin 14
atabus2 at viaide1 channel 0
viaide1: secondary channel configured to compatibility mode
viaide1: secondary channel ignored (disabled)
uhci0 at pci0 dev 16 function 0: VIA Technologies VT83C572 USB Controller (rev. 0x81)
uhci0: interrupting at ioapic0 pin 21
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 16 function 1: VIA Technologies VT83C572 USB Controller (rev. 0x81)
uhci1: interrupting at ioapic0 pin 21
usb1 at uhci1: USB revision 1.0
uhci2 at pci0 dev 16 function 2: VIA Technologies VT83C572 USB Controller (rev. 0x81)
uhci2: interrupting at ioapic0 pin 21
usb2 at uhci2: USB revision 1.0
uhci3 at pci0 dev 16 function 3: VIA Technologies VT83C572 USB Controller (rev. 0x81)
uhci3: interrupting at ioapic0 pin 21
usb3 at uhci3: USB revision 1.0
ehci0 at pci0 dev 16 function 4: VIA Technologies VT8237 EHCI USB Controller (rev. 0x86)
ehci0: 32-bit DMA
ehci0: interrupting at ioapic0 pin 21
ehci0: dropped intr workaround enabled
ehci0: BIOS refuses to give up ownership, using force
ehci0: EHCI version 1.0
ehci0: 4 companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
ehci0: Using DMA subregion for control data structures
usb4 at ehci0: USB revision 2.0
viapcib0 at pci0 dev 17 function 0: VIA Technologies VT8237 PCI-LPC Bridge (rev. 0x00)
viapcib0: SMBus found at 0x500 (revision 0x0)
iic0 at viapcib0: I2C bus
auvia0 at pci0 dev 17 function 5: VIA Technologies VT8237 AC'97 Audio (rev 0x60)
auvia0: interrupting at ioapic0 pin 22
auvia0: ac97: VIA Technologies VT1616i codec; headphone, 18 bit DAC, 18 bit ADC, KS Waves 3D
auvia0: ac97: ext id 0x1c1<LDAC,SDAC,CDAC,VRA>
audio0 at auvia0: playback, capture, full duplex, independent
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for playback
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for recording
vr0 at pci0 dev 18 function 0: VIA Technologies VT6102 (Rhine II) 10/100 Ethernet (rev. 0x78)
vr0: interrupting at ioapic0 pin 23
vr0: Ethernet address 00:e0:81:xx:xx:xx
ukphy0 at vr0 phy 1: Data Track Technology VT6103 10/100 PHY (OUI 0x0002c6, model 0x0032), rev. 10
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isa0 at viapcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, 16-byte FIFO
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, 16-byte FIFO
acpicpu0 at cpu0: ACPI CPU
acpicpu0: C1: HLT, lat   0 us, pow     0 mW
padlock0 at cpu0: VIA PadLock
acpicpu1 at cpu1: ACPI CPU
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
padlock0: RNG ACE
IPsec: Initialized Security Association Processing.
aes: VIA ACE
chacha: Portable C ChaCha
uhub0 at usb0: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhub2 at usb2: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhub3 at usb3: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
uhub4 at usb4: NetBSD (0x0000) EHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
viaide0 port 1: device present, speed: 1.5Gb/s
umass0 at uhub4 port 1 configuration 1 interface 0
umass0: Generic (0x21c4) USB Storage (0xb064), rev 2.10/0.09, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 3 luns per target
sd0 at scsibus0 target 0 lun 0: <Generic, MassStorageClass, 0009> disk removable
wd0 at atabus1 drive 0
sd0: drive offline
wd0: <SAMSUNG HD160JJ>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 149 GB, 310098 cyl, 16 head, 63 sec, 512 bytes/sect x 312579695 sectors
sd1 at scsibus0 target 0 lun 1: <Generic, MassStorageClass, 0009> disk removable
sd1: drive offline
sd2 at scsibus0 target 0 lun 2: <Generic, MassStorageClass, 0009> disk removable
sd2: drive offline
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 7, NCQ (32 tags)
wd0(viaide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
atapibus0 at atabus2: 2 targets
cd0 at atapibus0 drive 1: <TSSTcorp CDDVDW SH-S202H, , SB02> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
cd0(viaide1:0:1): using PIO mode 4, Ultra-DMA mode 4 (Ultra/66) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
kern.module.path=/stand/i386/9.99.97/modules
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)

>How-To-Repeat:
Add load=viadrmums to boot.cfg and boot system on hardware supported by viadrmums (without built-in driver).
>Fix:

>Release-Note:

>Audit-Trail:
From: Paul Goyette <paul@whooppee.com>
To: gnats-bugs@netbsd.org
Cc: vezhlys@gmail.com
Subject: Re: port-i386/56860: viadrmums module fails to load after drm update
Date: Thu, 2 Jun 2022 15:16:22 -0700 (PDT)

 port-i386-maintainer@netbsd.org, 
 gnats-admin@netbsd.org, 
 netbsd-bugs@netbsd.org
 Try the following patch.  This Makefile sets drm_bufs.c's COPTS but
 never includes the source file, which is where the missing symbols
 are defined!

 XXX Not sure if this file belongs in the "NetBSD additions" section
 XXX of at the end of the file in the "Upstream source files" section.

 Index: modules/drmkms/Makefile
 ===================================================================
 RCS file: /cvsroot/src/sys/modules/drmkms/Makefile,v
 retrieving revision 1.15
 diff -u -p -r1.15 Makefile
 --- modules/drmkms/Makefile     19 Dec 2021 11:54:24 -0000      1.15
 +++ modules/drmkms/Makefile     2 Jun 2022 22:11:02 -0000
 @@ -19,6 +19,7 @@ SRCS+=        drm_gem_vm.c
   SRCS+= drm_hdcp.c
   SRCS+= drm_module.c
   SRCS+= drm_sysctl.c
 +SRCS+= drm_bufs.c

   SRCS+=  drm_pci_busid.c

 ===================================================================

 +--------------------+--------------------------+----------------------+
 | Paul Goyette       | PGP Key fingerprint:     | E-mail addresses:    |
 | (Retired)          | FA29 0E3B 35AF E8AE 6651 | paul@whooppee.com    |
 | Software Developer | 0786 F758 55DE 53BA 7731 | pgoyette@netbsd.org  |
 | & Network Engineer |                          | pgoyette99@gmail.com |
 +--------------------+--------------------------+----------------------+

Responsible-Changed-From-To: port-i386-maintainer->pgoyette
Responsible-Changed-By: pgoyette@NetBSD.org
Responsible-Changed-When: Thu, 02 Jun 2022 22:32:35 +0000
Responsible-Changed-Why:
take


State-Changed-From-To: open->feedback
State-Changed-By: pgoyette@NetBSD.org
State-Changed-When: Thu, 02 Jun 2022 22:32:35 +0000
State-Changed-Why:
potential fix proposed, let's see if it works


From: Andrius V <vezhlys@gmail.com>
To: gnats-bugs@netbsd.org
Cc: port-i386-maintainer@netbsd.org, netbsd-bugs@netbsd.org
Subject: Re: port-i386/56860: viadrmums module fails to load after drm update
Date: Fri, 3 Jun 2022 12:31:55 +0300

 Hi,

 Currently my setup has drmkms as a built-in driver (since kernel
 includes other drm drivers), the patch doesn't seem to have any effect
 to viadrmums module. For testing purposes I built a kernel without any
 drm drivers, however separate drmkms module is obsolete and not
 included in the list of modules. If it is supposed to load with drm
 module, it also fails to load:
 kobj_checksyms, 1026: [drm]: linker error: global symbol `drm_ioctl' redefined
 WARNING: module error: unable to load `drm' pushed by boot loader, error 8


 On Fri, Jun 3, 2022 at 1:20 AM Paul Goyette <paul@whooppee.com> wrote:
 >
 > The following reply was made to PR port-i386/56860; it has been noted by GNATS.
 >
 > From: Paul Goyette <paul@whooppee.com>
 > To: gnats-bugs@netbsd.org
 > Cc: vezhlys@gmail.com
 > Subject: Re: port-i386/56860: viadrmums module fails to load after drm update
 > Date: Thu, 2 Jun 2022 15:16:22 -0700 (PDT)
 >
 >  port-i386-maintainer@netbsd.org,
 >  gnats-admin@netbsd.org,
 >  netbsd-bugs@netbsd.org
 >  Try the following patch.  This Makefile sets drm_bufs.c's COPTS but
 >  never includes the source file, which is where the missing symbols
 >  are defined!
 >
 >  XXX Not sure if this file belongs in the "NetBSD additions" section
 >  XXX of at the end of the file in the "Upstream source files" section.
 >
 >  Index: modules/drmkms/Makefile
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/modules/drmkms/Makefile,v
 >  retrieving revision 1.15
 >  diff -u -p -r1.15 Makefile
 >  --- modules/drmkms/Makefile     19 Dec 2021 11:54:24 -0000      1.15
 >  +++ modules/drmkms/Makefile     2 Jun 2022 22:11:02 -0000
 >  @@ -19,6 +19,7 @@ SRCS+=        drm_gem_vm.c
 >    SRCS+= drm_hdcp.c
 >    SRCS+= drm_module.c
 >    SRCS+= drm_sysctl.c
 >  +SRCS+= drm_bufs.c
 >
 >    SRCS+=  drm_pci_busid.c
 >
 >  ===================================================================
 >
 >  +--------------------+--------------------------+----------------------+
 >  | Paul Goyette       | PGP Key fingerprint:     | E-mail addresses:    |
 >  | (Retired)          | FA29 0E3B 35AF E8AE 6651 | paul@whooppee.com    |
 >  | Software Developer | 0786 F758 55DE 53BA 7731 | pgoyette@netbsd.org  |
 >  | & Network Engineer |                          | pgoyette99@gmail.com |
 >  +--------------------+--------------------------+----------------------+
 >

Responsible-Changed-From-To: pgoyette->port-i386-maintainer
Responsible-Changed-By: pgoyette@NetBSD.org
Responsible-Changed-When: Fri, 03 Jun 2022 12:55:26 +0000
Responsible-Changed-Why:
Needs some real work from the drm experts


State-Changed-From-To: feedback->open
State-Changed-By: pgoyette@NetBSD.org
State-Changed-When: Fri, 03 Jun 2022 12:55:26 +0000
State-Changed-Why:
problem is not resolved


From: Paul Goyette <paul@whooppee.com>
To: Andrius V <vezhlys@gmail.com>
Cc: gnats-bugs@netbsd.org
Subject: Re: port-i386/56860: viadrmums module fails to load after drm update
Date: Fri, 3 Jun 2022 05:55:35 -0700 (PDT)

 On Fri, 3 Jun 2022, Andrius V wrote:

 > Hi,
 >
 > Currently my setup has drmkms as a built-in driver (since kernel
 > includes other drm drivers), the patch doesn't seem to have any effect
 > to viadrmums module. For testing purposes I built a kernel without any
 > drm drivers, however separate drmkms module is obsolete and not
 > included in the list of modules. If it is supposed to load with drm
 > module, it also fails to load:
 > kobj_checksyms, 1026: [drm]: linker error: global symbol `drm_ioctl' redefined
 > WARNING: module error: unable to load `drm' pushed by boot loader, error 8

 Yeah, as I discussed with riastradh@ on IRC, the drmkms module and
 related modules are unlikely to work as loadable modules without a
 significant amount of effort.



 +--------------------+--------------------------+----------------------+
 | Paul Goyette       | PGP Key fingerprint:     | E-mail addresses:    |
 | (Retired)          | FA29 0E3B 35AF E8AE 6651 | paul@whooppee.com    |
 | Software Developer | 0786 F758 55DE 53BA 7731 | pgoyette@netbsd.org  |
 | & Network Engineer |                          | pgoyette99@gmail.com |
 +--------------------+--------------------------+----------------------+

State-Changed-From-To: open->closed
State-Changed-By: andvar@NetBSD.org
State-Changed-When: Sun, 23 Oct 2022 20:09:13 +0000
State-Changed-Why:
DRM_LEGACY property allows to load viadrmums as a module now (some drmkms driver should be part of the kernel)

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2022 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.