sndiod: psycho0: uncorrectable DMA error

Patrik Lundin <[email protected]>
Newsgroups gmane.os.openbsd.sparc
Message-ID <[email protected]>
Hello,

I have discovered a problem when attempting to play music on a Sun Blade
100 through sndiod. The machine will simply panic.

mplayer output:
==========
# mplayer song51.ogg
Creating config file: /root/.mplayer/config
MPlayer SVN-r33060 (C) 2000-2011 MPlayer Team

Playing song51.ogg.
libavformat file format detected.
[lavf] stream 0: audio (vorbis), -aid 0
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, s16be, 192.0 kbit/13.61% (ratio: 24000->176400)
Selected audio codec: [ffvorbis] afm: ffmpeg (FFmpeg Vorbis)
==========================================================================
AO: [sndio] 44100Hz 2ch s16be (2 bytes per sample)
Video: no video
Starting playback...
==========

The resulting panic:
==========
panic: psycho0: uncorrectable DMA error AFAR 200f6150 (pa=0 tte=0/6482012                                                                                                                                                             ) AFSR 210000ff40000000
kdb breakpoint at 146b000
Stopped at      Debugger+0x4:   nop
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
psycho_ue(400003cbe00, 7, e0017ec8, 0, 14307e0, e0018000) at psycho_ue+0x7c
sparc_interrupt(20f41a000, 125, 8, 0, 1000000, 6) at sparc_interrupt+0x2a0
pmap_protect(18cdb28, 20f41a000, 125, 5, 18cd000, 3fffff) at pmap_protect+0x210

uvm_map_protect(4000488ac40, 20f41a000, 20f41c000, 5, 0, 180c040) at uvm_map_pr
otect+0x1c8
syscall(40008e1ded0, 44a, 2056032f0, 2056032f4, 0, 800005) at syscall+0x2bc
softtrap(20f41a000, 2000, 5, 20f112b48, 2081ee548, fffffffffffc4e90) at softtra
p+0x19c
ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
 28320   5630  28320      0  2           0                mplayer
 11734  26530  11734      0  3        0x80  ttyin         ksh
 26530   3026  26530      0  3        0x80  select        sshd
  5630  13050   5630      0  3        0x88  pause         ksh
 13050   3026  13050      0  3        0x80  select        sshd
   153      1    153      0  3        0x80  ttyin         getty
 11643      1  11643      0  3        0x80  select        cron
* 5501      1   5501     99  7           0                sndiod
  9094      1   9094      0  3        0x80  select        inetd
 19156      1  19156      0  3        0x80  select        sendmail
  3026      1   3026      0  3        0x80  select        sshd
 12434  30100  30100     74  3        0x80  bpf           pflogd
 30100      1  30100      0  3        0x80  netio         pflogd
 22941  29587  29587     73  3        0x80  poll          syslogd
 29587      1  29587      0  3        0x80  netio         syslogd
 30978      1  30978     77  3        0x80  poll          dhclient
  2327      1  32094      0  3        0x80  poll          dhclient
    13      0      0      0  3    0x100200  aiodoned      aiodoned
    12      0      0      0  3    0x100200  syncer        update
    11      0      0      0  3    0x100200  cleaner       cleaner
    10      0      0      0  3    0x100200  reaper        reaper
     9      0      0      0  3    0x100200  pgdaemon      pagedaemon
     8      0      0      0  3    0x100200  bored         crypto
     7      0      0      0  3    0x100200  pftm          pfpurge
     6      0      0      0  3    0x100200  usbtsk        usbtask
     5      0      0      0  3    0x100200  usbatsk       usbatsk
     4      0      0      0  3    0x100200  bored         syswq
     3      0      0      0  3  0x40100200                idle0
     2      0      0      0  3    0x100200  kmalloc       kmthread
     1      0      1      0  3        0x80  wait          init
     0     -1      0      0  3       0x200  scheduler     swapper
ddb>
==========

Running this a second time after reboot resulted in the following:
==========
# mplayer song51.ogg
parse error at line 1
==========

It turned out this was because the config that was generated on the first try contained garbage:
==========
# cat .mplayer/config
ELF+@#
==========

After removing the config file the system would panic again (this time
generating an empty config which could then be used to crash the system
reliably).

I then tried killing sndiod, and this stopped the system from crashing and I
actually got music on the headset output.

dmesg:
==========
console is /pci@1f,0/isa@7/serial@0,3f8
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2012 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 5.2-beta (GENERIC) #198: Mon Jul  2 01:59:07 MDT 2012
    [email protected]:/usr/src/sys/arch/sparc64/compile/GENERIC
real mem = 268435456 (256MB)
avail mem = 251224064 (239MB)
mainbus0 at root: Sun Blade 100 (UltraSPARC-IIe)
cpu0 at mainbus0: SUNW,UltraSPARC-IIe (rev 1.4) @ 502 MHz
cpu0: physical 16K instruction (32 b/l), 16K data (32 b/l), 256K external (64 b/l)
psycho0 at mainbus0: pci108e,a001, impl 0, version 0, ign 7c0
psycho0: bus range 0-1, PCI bus 0
psycho0: dvma map c0000000-dfffffff
pci0 at psycho0
ebus0 at pci0 dev 12 function 0 "Sun RIO EBus" rev 0x01
"flashprom" at ebus0 addr 0-fffff not configured
clock1 at ebus0 addr 0-1fff: mk48t59
ebus1 at pci0 dev 7 function 0 "Acer Labs M1533 ISA" rev 0x00
"dma" at ebus1 addr 0-ffff ivec 0x2a not configured
power0 at ebus1 addr 800-82f ivec 0x20
com0 at ebus1 addr 3f8-3ff ivec 0x2b: ns16550a, 16 byte fifo
com0: console
com1 at ebus1 addr 2e8-2ef ivec 0x2b: ns16550a, 16 byte fifo
alipm0 at pci0 dev 3 function 0 "Acer Labs M7101 Power" rev 0x00: 223KHz clock
iic0 at alipm0
"max1617" at alipm0 addr 0x18 skipped due to alipm0 bugs
"scm001" at alipm0 addr 0x20 skipped due to alipm0 bugs
spdmem0 at iic0 addr 0x50: 128MB SDRAM ECC PC133CL2
spdmem1 at iic0 addr 0x51: 128MB SDRAM ECC PC133CL2
gem0 at pci0 dev 12 function 1 "Sun ERI Ether" rev 0x01: ivec 0x7c6, address 00:03:ba:11:92:d2
ukphy0 at gem0 phy 1: Generic IEEE 802.3u media interface, rev. 1: OUI 0x0010dd, model 0x0002
"Sun FireWire" rev 0x01 at pci0 dev 12 function 2 not configured
ohci0 at pci0 dev 12 function 3 "Sun USB" rev 0x01: ivec 0x7e4, version 1.0, legacy support
autri0 at pci0 dev 8 function 0 "Acer Labs M5451 Audio" rev 0x01: ivec 0x7e3
ac97: codec id 0x41445348 (Analog Devices AD1881A)
ac97: codec features headphone, Analog Devices Phat Stereo
audio0 at autri0
midi0 at autri0: <4DWAVE MIDI UART>
pciide0 at pci0 dev 13 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc3: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI
pciide0: using ivec 0x7cc for native-PCI interrupt
wd0 at pciide0 channel 0 drive 0: <IC35L080AVVA07-0>
wd0: 16-sector PIO, LBA, 76293MB, 156250000 sectors
atapiscsi0 at pciide0 channel 0 drive 1
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <LITEON, CD-ROM LTN486S, Y3S2> ATAPI 5/cdrom removable
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
cd0(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 2
pciide0: channel 1 disabled (no drives)
ppb0 at pci0 dev 5 function 0 "DEC 21152 PCI-PCI" rev 0x03
pci1 at ppb0 bus 1
machfb0 at pci0 dev 19 function 0 "ATI Rage XL" rev 0x27
machfb0: ATY,RageXL, 1152x900
wsdisplay0 at machfb0 mux 1
wsdisplay0: screen 0 added (std, sun emulation)
usb0 at ohci0: USB revision 1.0
uhub0 at usb0 "Sun OHCI root hub" rev 1.00/1.00 addr 1
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
bootpath: /pci@1f,0/ide@d,0/disk@0,0
root on wd0a (5fce3420b74e65ff.a) swap on wd0b dump on wd0b
==========

Regards,
Patrik Lundin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.