Idein / py-videocore6

Python library for GPGPU programming on Raspberry Pi 4
https://idein.jp
GNU General Public License v2.0
247 stars 28 forks source link

Test and examples execution issues appearing only sometimes #48

Closed sxz0 closed 3 years ago

sxz0 commented 3 years ago

Hi,

First, I would like to thank the team for this amazing work. Thank you for your effort on Videocore analysis, you are making things much easier for people like me who want to test the QPU functionalities.

I am having a weird error that is only appearing some times when I execute the examples and the code tries to load the Driver, and it is solved by rebooting the device until the error does not appear... I suppose it is some issue with the driver module loading when the device is started or something like that, but I could not find the problem...

Here it is the error that appears when I execute sgemmm.py example:

File "examples/sgemm.py", line 222, in sgemm_rnn_naive with Driver() as drv File "/home/pi/py-videocore6/sandbox/videocore6/driver.py", line 171, in init raise e File "/home/pi/py-videocore6/sandbox/videocore6/driver.py", line 164, in init self.memory = Memory(self.drm, total_size) File "/home/pi/py-videocore6/sandbox/videocore6/driver.py", line 76, in init raise e File "/home/pi/py-videocore6/sandbox/videocore6/driver.py", line 66, in init self.handle, self.phyaddr = drm.v3d_create_bo(size) File "/home/pi/py-videocore6/sandbox/videocore6/drm_v3d.py", line 143, in v3d_create_bo ioctl(self.fd, self.IOCTL_V3D_CREATE_BO, st) OSError: [Errno 22] Invalid argument

Terminus-IMRC commented 3 years ago

Thank you for reporting, but unfortunately, we couldn't reproduce the error with stable and latest kernels. Can you show us the output of cat /etc/rpi-issue, vcgencmd version, uname -a, and sudo cat /sys/kernel/debug/dri/0/v3d_ident?

sxz0 commented 3 years ago

Thank you for your quick response, here are the outputs in a Raspberry falling right now:

cat /etc/rpi-issue : Raspberry Pi reference 2020-02-13 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 5f884374b6ac6e155330c58caa1fb7249b8badf1, stage5

vcgencmd version: Jan 8 2021 14:31:16 Copyright (c) 2012 Broadcom version 194a85abd768c7334bbadc3f1911c10a7d18ed14 (clean) (release) (start)

uname -a: Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux

and the file v3d_ident is not available under /sys/kernel/debug/dri/0/, the files in that directory are: bo_stats clients framebuffer gem_names hvs_load_tracker internal_clients name state

Terminus-IMRC commented 3 years ago

Thank you for the report. I remembered that some times ago we've encountered a similar problem that vc4 module is weirdly loaded as the primary one instead of v3d. I'm sorry for asking many times, but could you show us the outputs of

sxz0 commented 3 years ago

Nothing to apologize for, I just want to help solve this possible issue.

cat /boot/cmdline.txt /boot/config.txt output:

console=serial0,115200 console=tty1 root=PARTUUID=97709164-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

For more options and information see

http://rpf.io/configtxt

Some settings may impact device functionality. See link above for details

uncomment if you get no picture on HDMI for a default "safe" mode

hdmi_safe=1

uncomment this if your display has a black border of unused pixels visible

and your display can output without overscan

disable_overscan=1

uncomment the following to adjust overscan. Use positive numbers if console

goes off screen, and negative if there is too much border

overscan_left=16

overscan_right=16

overscan_top=16

overscan_bottom=16

uncomment to force a console size. By default it will be display's size minus

overscan.

framebuffer_width=1280

framebuffer_height=720

uncomment if hdmi display is not detected and composite is being output

hdmi_force_hotplug=1

uncomment to force a specific HDMI mode (this will force VGA)

hdmi_group=1

hdmi_mode=1

uncomment to force a HDMI mode rather than DVI. This can make audio work in

DMT (computer monitor) modes

hdmi_drive=2

uncomment to increase signal to HDMI, if you have interference, blanking, or

no display

config_hdmi_boost=4

uncomment for composite PAL

sdtv_mode=2

uncomment to overclock the arm. 700 MHz is the default.

arm_freq=800

Uncomment some or all of these to enable the optional hardware interfaces

dtparam=i2c_arm=on

dtparam=i2s=on

dtparam=spi=on

Uncomment this to enable infrared communication.

dtoverlay=gpio-ir,gpio_pin=17

dtoverlay=gpio-ir-tx,gpio_pin=18

Additional overlays and parameters are documented /boot/overlays/README

Enable audio (loads snd_bcm2835)

dtparam=audio=on

[pi4]

Enable DRM VC4 V3D driver on top of the dispmanx display stack

dtoverlay=vc4-fkms-v3d max_framebuffers=2

[all]

dtoverlay=vc4-fkms-v3d

sudo dmesg output:

[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.4.83-v7l+ (dom@buildbot) (gcc version 8.4.0 (Ubuntu/Linaro 8.4.0-3ubuntu1)) #1379 SMP Mon Dec 14 13:11:54 GMT 2020 [ 0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache [ 0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.1 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.000000] On node 0 totalpages: 504832 [ 0.000000] DMA zone: 2304 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 196608 pages, LIFO batch:63 [ 0.000000] HighMem zone: 308224 pages, LIFO batch:63 [ 0.000000] percpu: Embedded 20 pages/cpu s49804 r8192 d23924 u81920 [ 0.000000] pcpu-alloc: s49804 r8192 d23924 u81920 alloc=20*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 502528 [ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=DC:A6:32:14:A6:53 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=97709164-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: mapped [mem 0x19400000-0x1d400000] (64MB) [ 0.000000] Memory: 1647796K/2019328K available (10240K kernel code, 739K rwdata, 2816K rodata, 2048K init, 854K bss, 109388K reserved, 262144K cma-reserved, 1232896K highmem) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] ftrace: allocating 31115 entries in 61 pages [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] random: get_random_bytes called from start_kernel+0x344/0x518 with crng_init=0 [ 0.000007] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns [ 0.000022] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns [ 0.000098] bcm2835: system timer (irq = 17) [ 0.000737] arch_timer: cp15 timer(s) running at 54.00MHz (phys). [ 0.000753] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns [ 0.000769] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns [ 0.000782] Switching to timer-based delay loop, resolution 18ns [ 0.001019] Console: colour dummy device 80x30 [ 0.001051] printk: console [tty1] enabled [ 0.001103] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=540000) [ 0.001124] pid_max: default: 32768 minimum: 301 [ 0.001271] LSM: Security Framework initializing [ 0.001461] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.001485] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) [ 0.002824] Disabling memory control group subsystem [ 0.002947] CPU: Testing write buffer coherency: ok [ 0.003449] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.004359] Setting up static identity map for 0x200000 - 0x20003c [ 0.004564] rcu: Hierarchical SRCU implementation. [ 0.005240] smp: Bringing up secondary CPUs ... [ 0.006419] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.007742] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 [ 0.008999] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 [ 0.009157] smp: Brought up 1 node, 4 CPUs [ 0.009174] SMP: Total of 4 processors activated (432.00 BogoMIPS). [ 0.009187] CPU: All CPU(s) started in HYP mode. [ 0.009199] CPU: Virtualization extensions available. [ 0.010014] devtmpfs: initialized [ 0.023913] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0 [ 0.024171] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.024199] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.030993] pinctrl core: initialized pinctrl subsystem [ 0.031973] NET: Registered protocol family 16 [ 0.035878] DMA: preallocated 1024 KiB pool for atomic coherent allocations [ 0.036459] audit: initializing netlink subsys (disabled) [ 0.036731] audit: type=2000 audit(0.030:1): state=initialized audit_enabled=0 res=1 [ 0.037873] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [ 0.037887] hw-breakpoint: maximum watchpoint size is 8 bytes. [ 0.038206] Serial: AMBA PL011 UART driver [ 0.041733] bcm2835-mbox fe00b880.mailbox: mailbox enabled [ 0.060809] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-01-08 14:31, variant start [ 0.070824] raspberrypi-firmware soc:firmware: Firmware hash is 194a85abd768c7334bbadc3f1911c10a7d18ed14 [ 0.125953] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1 [ 0.129825] vgaarb: loaded [ 0.130291] SCSI subsystem initialized [ 0.130526] usbcore: registered new interface driver usbfs [ 0.130595] usbcore: registered new interface driver hub [ 0.130717] usbcore: registered new device driver usb [ 0.131078] usb_phy_generic phy: phy supply vcc not found, using dummy regulator [ 0.132886] clocksource: Switched to clocksource arch_sys_counter [ 0.891791] VFS: Disk quotas dquot_6.6.0 [ 0.891890] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.892066] FS-Cache: Loaded [ 0.892258] CacheFiles: Loaded [ 0.902492] thermal_sys: Registered thermal governor 'step_wise' [ 0.903046] NET: Registered protocol family 2 [ 0.903784] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) [ 0.903815] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.903877] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.903948] TCP: Hash tables configured (established 8192 bind 8192) [ 0.904095] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.904128] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.904379] NET: Registered protocol family 1 [ 0.905106] RPC: Registered named UNIX socket transport module. [ 0.905119] RPC: Registered udp transport module. [ 0.905132] RPC: Registered tcp transport module. [ 0.905145] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.905166] PCI: CLS 0 bytes, default 64 [ 0.907072] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available [ 0.909297] Initialise system trusted keyrings [ 0.909539] workingset: timestamp_bits=14 max_order=19 bucket_order=5 [ 0.920545] FS-Cache: Netfs 'nfs' registered for caching [ 0.921275] NFS: Registering the id_resolver key type [ 0.921330] Key type id_resolver registered [ 0.921344] Key type id_legacy registered [ 0.921366] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.922460] Key type asymmetric registered [ 0.922474] Asymmetric key parser 'x509' registered [ 0.922664] bounce: pool size: 64 pages [ 0.922713] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249) [ 0.923006] io scheduler mq-deadline registered [ 0.923020] io scheduler kyber registered [ 0.926987] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges: [ 0.927010] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff] [ 0.927082] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x0603ffffff -> 0x00f8000000 [ 0.927153] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x007fffffff -> 0x0400000000 [ 0.985031] brcm-pcie fd500000.pcie: link up, 5 GT/s x1 (SSC) [ 0.985353] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00 [ 0.985372] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.985392] pci_bus 0000:00: root bus resource [mem 0x600000000-0x603ffffff] (bus address [0xf8000000-0xfbffffff]) [ 0.985449] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400 [ 0.985718] pci 0000:00:00.0: PME# supported from D0 D3hot [ 0.988976] PCI: bus0: Fast back to back transfers disabled [ 0.989205] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330 [ 0.989353] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit] [ 0.989786] pci 0000:01:00.0: PME# supported from D0 D3cold [ 0.993061] PCI: bus1: Fast back to back transfers disabled [ 0.993122] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff] [ 0.993145] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit] [ 0.993228] pci 0000:00:00.0: PCI bridge to [bus 01] [ 0.993252] pci 0000:00:00.0: bridge window [mem 0x600000000-0x6000fffff] [ 0.993566] pcieport 0000:00:00.0: enabling device (0140 -> 0142) [ 0.993821] pcieport 0000:00:00.0: PME: Signaling with IRQ 55 [ 0.994232] pcieport 0000:00:00.0: AER: enabled with IRQ 55 [ 0.994568] pci 0000:01:00.0: enabling device (0140 -> 0142) [ 1.001501] iproc-rng200 fe104000.rng: hwrng registered [ 1.001848] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB) [ 1.002513] vc-sm: Videocore shared memory driver [ 1.003131] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000 [ 1.015373] brd: module loaded [ 1.027855] loop: module loaded [ 1.029253] Loading iSCSI transport class v2.0-870. [ 1.031227] libphy: Fixed MDIO Bus: probed [ 1.031844] bcmgenet fd580000.ethernet: failed to get enet clock [ 1.031865] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000 [ 1.031888] bcmgenet fd580000.ethernet: failed to get enet-wol clock [ 1.031909] bcmgenet fd580000.ethernet: failed to get enet-eee clock [ 1.031936] bcmgenet: Skipping UMAC reset [ 1.042927] libphy: bcmgenet MII bus: probed [ 1.133080] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus [ 1.134210] usbcore: registered new interface driver r8152 [ 1.134277] usbcore: registered new interface driver lan78xx [ 1.134335] usbcore: registered new interface driver smsc95xx [ 1.134825] xhci_hcd 0000:01:00.0: xHCI Host Controller [ 1.134860] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1 [ 1.138181] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000003000000890 [ 1.139499] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04 [ 1.139517] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 1.139533] usb usb1: Product: xHCI Host Controller [ 1.139549] usb usb1: Manufacturer: Linux 5.4.83-v7l+ xhci-hcd [ 1.139564] usb usb1: SerialNumber: 0000:01:00.0 [ 1.140176] hub 1-0:1.0: USB hub found [ 1.140272] hub 1-0:1.0: 1 port detected [ 1.140801] xhci_hcd 0000:01:00.0: xHCI Host Controller [ 1.140828] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2 [ 1.140852] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed [ 1.141338] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.04 [ 1.141355] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 1.141371] usb usb2: Product: xHCI Host Controller [ 1.141386] usb usb2: Manufacturer: Linux 5.4.83-v7l+ xhci-hcd [ 1.141401] usb usb2: SerialNumber: 0000:01:00.0 [ 1.142007] hub 2-0:1.0: USB hub found [ 1.142079] hub 2-0:1.0: 4 ports detected [ 1.143534] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 1.143824] dwc_otg: FIQ enabled [ 1.143837] dwc_otg: NAK holdoff enabled [ 1.143849] dwc_otg: FIQ split-transaction FSM enabled [ 1.143877] Module dwc_common_port init [ 1.144333] usbcore: registered new interface driver uas [ 1.144438] usbcore: registered new interface driver usb-storage [ 1.144633] mousedev: PS/2 mouse device common for all mice [ 1.146492] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer [ 1.149923] sdhci: Secure Digital Host Controller Interface driver [ 1.149936] sdhci: Copyright(c) Pierre Ossman [ 1.150569] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe [ 1.151177] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.155154] ledtrig-cpu: registered to indicate activity on CPUs [ 1.155465] hidraw: raw HID events driver (C) Jiri Kosina [ 1.155647] usbcore: registered new interface driver usbhid [ 1.155659] usbhid: USB HID core driver [ 1.156699] vchiq: vchiq_init_state: slot_zero = (ptrval)

[ 1.167450] [vc_sm_connected_init]: end - returning 0 [ 1.169698] Initializing XFRM netlink socket [ 1.169737] NET: Registered protocol family 17 [ 1.169864] Key type dns_resolver registered [ 1.170270] Registering SWP/SWPB emulation handler [ 1.170580] registered taskstats version 1 [ 1.170600] Loading compiled-in X.509 certificates [ 1.171147] Key type ._fscrypt registered [ 1.171161] Key type .fscrypt registered [ 1.182061] uart-pl011 fe201000.serial: cts_event_workaround enabled [ 1.182133] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 29, base_baud = 0) is a PL011 rev2 [ 1.188321] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver [ 1.189295] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0 [ 1.189311] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated [ 1.238076] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 1.239746] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 1.241464] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 1.245465] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 1.247156] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 1.252922] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA [ 1.255954] of_cfs_init [ 1.256073] of_cfs_init: OK [ 1.257161] Waiting for root device PARTUUID=97709164-02... [ 1.297740] random: fast init done [ 1.358748] mmc0: new ultra high speed DDR50 SDHC card at address aaaa [ 1.359743] mmcblk0: mmc0:aaaa SC16G 14.8 GiB [ 1.364545] mmcblk0: p1 p2 [ 1.364935] mmc1: new high speed SDIO card at address 0001 [ 1.381395] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 1.381465] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [ 1.387263] devtmpfs: mounted [ 1.395990] Freeing unused kernel memory: 2048K [ 1.423198] Run /sbin/init as init process [ 1.502967] usb 1-1: new high-speed USB device number 2 using xhci_hcd [ 1.685626] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21 [ 1.685645] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 1.685661] usb 1-1: Product: USB2.0 Hub [ 1.687952] hub 1-1:1.0: USB hub found [ 1.688233] hub 1-1:1.0: 4 ports detected [ 1.857146] systemd[1]: System time before build time, advancing clock. [ 1.947586] NET: Registered protocol family 10 [ 1.948930] Segment Routing with IPv6 [ 1.983104] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid) [ 1.983880] systemd[1]: Detected architecture arm. [ 2.039050] systemd[1]: Set hostname to . [ 2.832251] random: systemd: uninitialized urandom read (16 bytes read) [ 2.849226] random: systemd: uninitialized urandom read (16 bytes read) [ 2.849779] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ 2.850024] random: systemd: uninitialized urandom read (16 bytes read) [ 2.850850] systemd[1]: Listening on Journal Socket. [ 2.853165] systemd[1]: Created slice User and Session Slice. [ 2.853805] systemd[1]: Listening on fsck to fsckd communication Socket. [ 2.854691] systemd[1]: Listening on Journal Audit Socket. [ 2.855283] systemd[1]: Condition check resulted in Huge Pages File System being skipped. [ 2.857468] systemd[1]: Created slice system-getty.slice. [ 2.957894] i2c /dev entries driver [ 3.454765] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 3.569938] systemd-journald[122]: Received request to flush runtime journal from PID 1 [ 4.103012] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x00010000 [ 4.103455] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00001000 [ 4.103873] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x00010000 [ 4.104323] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x00010000 [ 4.230077] mc: Linux media interface: v0.10 [ 4.267582] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned. [ 4.279212] videodev: Linux video capture interface: v2.00 [ 4.291281] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned. [ 4.293965] bcm2835_vc_sm_cma_probe: Videocore shared memory driver

[ 4.296694] [vc_sm_connected_init]: installed successfully [ 4.299932] bcm2835_audio bcm2835_audio: card created with 8 channels [ 4.340758] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 4.346851] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 4.348528] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 4.361276] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned. [ 4.362623] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned. [ 4.377487] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned. [ 4.381331] bcm2835-codec bcm2835-codec: Device registered as /dev/video10 [ 4.381378] bcm2835-codec bcm2835-codec: Loaded V4L2 decode [ 4.389103] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13 [ 4.389563] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14 [ 4.390051] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15 [ 4.391905] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16 [ 4.391934] bcm2835-isp bcm2835-isp: Register output node 0 with media controller [ 4.391957] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller [ 4.391978] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller [ 4.392058] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller [ 4.392288] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp [ 4.392784] bcm2835-codec bcm2835-codec: Device registered as /dev/video11 [ 4.392823] bcm2835-codec bcm2835-codec: Loaded V4L2 encode [ 4.401968] bcm2835-codec bcm2835-codec: Device registered as /dev/video12 [ 4.402012] bcm2835-codec bcm2835-codec: Loaded V4L2 isp [ 4.560350] [drm] No displays found. Consider forcing hotplug if HDMI is attached [ 4.560483] vc4-drm gpu: bound fe600000.firmwarekms (ops vc4_fkms_ops [vc4]) [ 4.560511] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 4.560528] [drm] No driver support for vblank timestamp query. [ 4.560541] [drm] Setting vblank_disable_immediate to false because get_vblank_timestamp == NULL [ 4.561034] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 0 [ 4.584352] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 4.700311] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 1 [ 4.727143] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 4.856455] brcmfmac: F1 signature read @0x18000000=0x15264345 [ 4.872094] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6 [ 4.872705] usbcore: registered new interface driver brcmfmac [ 4.896814] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2 [ 5.146807] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6 [ 5.158174] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Jan 4 2021 19:56:29 version 7.45.229 (617f1f5 CY) FWID 01-2dbd9d2e [ 6.858852] random: crng init done [ 6.858876] random: 7 urandom warning(s) missed due to ratelimiting [ 7.091905] 8021q: 802.1Q VLAN Support v1.8 [ 7.168708] uart-pl011 fe201000.serial: no DMA platform data [ 7.493839] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS [ 7.745782] bcmgenet: Skipping UMAC reset [ 7.747528] bcmgenet fd580000.ethernet: configuring instance for external RGMII [ 7.748733] bcmgenet fd580000.ethernet eth0: Link is Down [ 10.873073] bcmgenet fd580000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx [ 10.873119] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 13.941986] Bluetooth: Core ver 2.22 [ 13.942057] NET: Registered protocol family 31 [ 13.942067] Bluetooth: HCI device and connection manager initialized [ 13.942089] Bluetooth: HCI socket layer initialized [ 13.942105] Bluetooth: L2CAP socket layer initialized [ 13.942129] Bluetooth: SCO socket layer initialized [ 13.954976] Bluetooth: HCI UART driver ver 2.3 [ 13.954991] Bluetooth: HCI UART protocol H4 registered [ 13.955052] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 13.955288] Bluetooth: HCI UART protocol Broadcom registered [ 14.167282] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 14.167293] Bluetooth: BNEP filters: protocol multicast [ 14.167311] Bluetooth: BNEP socket layer initialized [ 14.201069] Bluetooth: RFCOMM TTY layer initialized [ 14.201091] Bluetooth: RFCOMM socket layer initialized [ 14.201108] Bluetooth: RFCOMM ver 1.11

lsmod output:

Module Size Used by cmac 16384 1 rfcomm 45056 4 bnep 20480 2 hci_uart 40960 1 btbcm 16384 1 hci_uart bluetooth 360448 29 hci_uart,bnep,btbcm,rfcomm ecdh_generic 16384 2 bluetooth ecc 36864 1 ecdh_generic 8021q 32768 0 garp 16384 1 8021q stp 16384 1 garp llc 16384 2 garp,stp brcmfmac 319488 0 brcmutil 20480 1 brcmfmac sha256_generic 16384 0 libsha256 20480 1 sha256_generic v3d 69632 0 cfg80211 675840 1 brcmfmac gpu_sched 36864 1 v3d vc4 237568 0 rfkill 28672 6 bluetooth,cfg80211 cec 49152 1 vc4 drm_kms_helper 184320 2 vc4 raspberrypi_hwmon 16384 0 bcm2835_isp 32768 0 bcm2835_codec 36864 0 bcm2835_v4l2 45056 0 bcm2835_mmal_vchiq 28672 3 bcm2835_isp,bcm2835_codec,bcm2835_v4l2 v4l2_mem2mem 32768 1 bcm2835_codec videobuf2_dma_contig 20480 2 bcm2835_isp,bcm2835_codec videobuf2_vmalloc 16384 1 bcm2835_v4l2 drm 458752 5 v3d,vc4,gpu_sched,drm_kms_helper videobuf2_memops 16384 2 videobuf2_dma_contig,videobuf2_vmalloc videobuf2_v4l2 28672 4 bcm2835_isp,bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem videobuf2_common 57344 5 bcm2835_isp,bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2 drm_panel_orientation_quirks 16384 1 drm vc_sm_cma 32768 2 bcm2835_isp,bcm2835_mmal_vchiq snd_bcm2835 28672 1 snd_soc_core 200704 1 vc4 videodev 237568 6 bcm2835_isp,bcm2835_codec,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2 snd_compress 20480 1 snd_soc_core snd_pcm_dmaengine 16384 1 snd_soc_core mc 40960 6 bcm2835_isp,bcm2835_codec,videobuf2_common,videodev,v4l2_mem2mem,videobuf2_v4l2 snd_pcm 94208 4 vc4,snd_pcm_dmaengine,snd_bcm2835,snd_soc_core snd_timer 32768 1 snd_pcm snd 73728 7 snd_compress,snd_timer,snd_bcm2835,snd_soc_core,snd_pcm syscopyarea 16384 1 drm_kms_helper sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper fb_sys_fops 16384 1 drm_kms_helper rpivid_mem 16384 0 uio_pdrv_genirq 16384 0 uio 20480 1 uio_pdrv_genirq i2c_dev 20480 0 ip_tables 28672 0 x_tables 32768 1 ip_tables ipv6 458752 26

sudo ls -R /sys/kernel/debug/dri output:

/sys/kernel/debug/dri: 0 1 128

/sys/kernel/debug/dri/0: bo_stats clients framebuffer gem_names hvs_load_tracker internal_clients name state

/sys/kernel/debug/dri/1: bo_stats clients gem_names measure_clock name v3d_ident v3d_regs

/sys/kernel/debug/dri/128: bo_stats clients gem_names measure_clock name v3d_ident v3d_regs

Terminus-IMRC commented 3 years ago

Thanks! It seems the order of loading v3d and vc4 modules is swapped for an unknown reason. Though being unable to reproduce the issue, we've made a possible fix for it. Can you pull the fix by running

$ git fetch origin dri-dev-path
$ git checkout dri-dev-path

and check if the tests now run correctly by

$ python3 -m pip install --target sandbox/ --upgrade . nose
$ python3 setup.py build_ext --inplace
$ PYTHONPATH=sandbox/ python3 examples/sgemm.py
$ PYTHONPATH=sandbox/ python3 -m nose -v -s

in the py-videocore6 directory?

sxz0 commented 3 years ago

Wow, thank you very much for your quick response and fix for the error!

For some reason, this error is not happening today after I rebooted my RPi4s several times... I will try this solution when it happens again. Thank you again!

Terminus-IMRC commented 3 years ago

Strangely enough, our board that was failing with this issue is now working in a good condition even though we just rebooted it some times :-)

Closing this issue. If you reproduced the problem, please feel free to reopen this.