[linux-audio-user] xruns vs. disk activity

Jon Ellis ashura666 at mac.com
Thu Apr 17 09:15:01 EDT 2003


I've had success with the latest gentoo-sources w/low latency turned 
on. I've never bothered with ext3 / reiser. In theory, one day xfs will 
be the right filesystem for multimedia, until then i'll stick with ext2 
as it's stabler.

The current jack from cvs seems flakier with apps other than ardour.

If you watch in top does any process regularly spike? It's all i can 
think of, unless the SB just can't take it...

j.

On Thursday, April 17, 2003, at 08:28  PM, rob fell wrote:

> Hello all
>
> I'm trying to get a gentoo based audio box (primarily Ardour) off the 
> ground. Despite my best efforts,
> I can't eliminate xruns to a level I could live with (10ms+ xruns 
> every 2 minutes on average seems
> excessive - esp. with stereo @ 44k1). There's some captured data at 
> the very end of this mail.
>
> My observations are made using;
> jackd -v -R -d... -r 44100 -p 128 2>&1 | tee jacklog (i.e. stereo SB16 
> @44k1)
> and ardour, session open but not actively playing
>
> I'll present my questions before wandering off into a tedious list 
> (apologies for length) of stuff I've
> already done. Would anyone care to offer an opinion on these questions;
>
> 1. Am I expecting too much? Either from my hardware, or the current 
> state of Linux.
> 2. Is there a vital piece of config that I've totally overlooked?
> 3. Is there a better way to measure this to home in on the source of 
> the problem?
> 4. Are the xruns incidental to the disk activity - is this all a 
> symptom of something else?
> 5. Insert any other question I should be asking here.
>
> Thanks in advance for any help/advice offered, I've run out of ideas.
>
> Ta
> R
>
>
> The (abridged) story so far...
>
> Google
> Patched 2.4.20 with everything I found on Andrew Mortons page
> Read http://myweb.cableone.net/eviltwin69/Arcana.html
> Read LAU resource links
> Fixed snd-card IRQ to 9
> PCI latency timers set up
> Killed cron/syslog
> Switched to reiserfs (in desperation)
> Tried hdparm incantations to no effect
> Run bonnie (if I understand this, I'm getting 25Mb/s sustained block 
> bandwidth)
>
>               -------Sequential Output-------- ---Sequential Input-- 
> --Random--
>               -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- 
> --Seeks---
> Machine    MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU  
> /sec %CPU
>          2000  7467 73.6 25491 24.5 12476  8.3 10739 75.3 25217 10.8  
> 90.8  1.2
>
> Checked /var/log/messages for signs of IDE bus failures
> Upgraded to alsa-driver 0.9.2
> Re-emerged jack from CVS
> Monkeyed with vm settings to try to smooth out the disk activity
>
>
> The hardware:
> Duron 1300MHz, Abit KT7A
> 512M PC133
> primary IDE: Seagate ST360021A, QUANTUM FIREBALLP AS40.0 (80 way 
> ribbon)
> secondary IDE: CD/CDRW
> AGP graphics card
> SB16/128 PCI (i know - it's junk)
> 3Com PCI 3c905
>
>   0:     674864          XT-PIC  timer
>   1:       7927          XT-PIC  keyboard
>   2:          0          XT-PIC  cascade
>   8:          2          XT-PIC  rtc
>   9:       1166          XT-PIC  Ensoniq AudioPCI
>  11:      21381          XT-PIC  eth0
>  12:      94912          XT-PIC  PS/2 Mouse
>  14:      13585          XT-PIC  ide0
>  15:          9          XT-PIC  ide1
> NMI:          0
> LOC:     674826
> ERR:        114
> MIS:          0
>
> lspci -vv
>
> 00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] 
> (rev 03)
>         Subsystem: ABIT Computer Corp. KT7/KT7-RAID/KT7A/KT7A-RAID 
> Mainboard
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort+ >SERR- <PERR-
>         Latency: 8
>         Region 0: Memory at e0000000 (32-bit, prefetchable) [size=64M]
>         Capabilities: [a0] AGP version 2.0
>                 Status: RQ=31 SBA+ 64bit- FW+ Rate=x1,x2,x4
>                 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>
>         Capabilities: [c0] Power Management version 2
>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> 00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 
> AGP] (prog-i
> f 00 [Normal decode])
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort+ >SERR- <PERR-
>         Latency: 0
>         Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>         Memory behind bridge: e6000000-e7ffffff
>         Prefetchable memory behind bridge: e4000000-e5ffffff
>         BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
>         Capabilities: [80] Power Management version 2
>                 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super 
> South] (rev 40
> )
>         Subsystem: ABIT Computer Corp.: Unknown device 0000
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping+ SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort- >SERR- <PERR-
>         Latency: 0
>         Capabilities: [c0] Power Management version 2
>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC 
> Bus Master
> IDE (rev 06) (prog-if 8a [Master SecP PriP])
>         Subsystem: VIA Technologies, Inc. VT8235 Bus Master 
> ATA133/100/66/33 IDE
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort- >SERR- <PERR-
>         Latency: 32
>         Region 4: I/O ports at d000 [size=16]
>         Capabilities: [c0] Power Management version 2
>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] 
> (rev 40)
>         Subsystem: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
>         Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort- >SERR- <PERR-
>         Interrupt: pin ? routed to IRQ 11
>         Capabilities: [68] Power Management version 2
>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> 00:09.0 Ethernet controller: 3Com Corporation 3c905 100BaseTX 
> [Boomerang]
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort- >SERR- <PERR-
>         Latency: 32 (750ns min, 2000ns max)
>         Interrupt: pin A routed to IRQ 11
>         Region 0: I/O ports at dc00 [size=64]
>         Expansion ROM at <unassigned> [disabled] [size=64K]
>
> 00:0d.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02)
>         Subsystem: Ensoniq Creative Sound Blaster AudioPCI128
>         Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- 
> <TAbort-
> <MAbort- >SERR- <PERR-
>         Latency: 248 (3000ns min, 32000ns max)
>         Interrupt: pin A routed to IRQ 9
>         Region 0: I/O ports at e000 [size=64]
>         Capabilities: [dc] Power Management version 1
>                 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>
> 01:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA 
> TNT2 Model 64
> /Model 64 Pro] (rev 15) (prog-if 00 [VGA])
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
> ParErr- Step
> ping- SERR- FastB2B-
>         Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium 
> >TAbort- <TAbort
> - <MAbort- >SERR- <PERR-
>         Latency: 32 (1250ns min, 250ns max)
>         Interrupt: pin A routed to IRQ 10
>         Region 0: Memory at e6000000 (32-bit, non-prefetchable) 
> [size=16M]
>         Region 1: Memory at e4000000 (32-bit, prefetchable) [size=32M]
>         Expansion ROM at <unassigned> [disabled] [size=64K]
>         Capabilities: [60] Power Management version 1
>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
> PME(D0-,D1-,D2-,D3hot
> -,D3cold-)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>         Capabilities: [44] AGP version 2.0
>                 Status: RQ=31 SBA- 64bit- FW- Rate=x1,x2,x4
>                 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none>
>
> ps ax
>
>   PID TTY      STAT   TIME COMMAND
>     1 ?        S      0:04 init
>     2 ?        SW     0:00 [keventd]
>     3 ?        SWN    0:00 [ksoftirqd_CPU0]
>     4 ?        SW     0:00 [kswapd]
>     5 ?        SW     0:00 [bdflush]
>     6 ?        SW     0:00 [kupdated]
>     7 ?        SW     0:00 [kreiserfsd]
>    31 ?        S      0:00 /sbin/devfsd /dev
>  1198 vc/1     S      0:00 login -- root
>  1199 vc/2     S      0:00 /sbin/agetty 38400 tty2 linux
>  1200 vc/3     S      0:00 /sbin/agetty 38400 tty3 linux
>  1201 vc/4     S      0:00 /sbin/agetty 38400 tty4 linux
>  1202 vc/5     S      0:00 /sbin/agetty 38400 tty5 linux
>  1203 vc/6     S      0:00 /sbin/agetty 38400 tty6 linux
>  1204 vc/1     S      0:00 -bash
>  1209 vc/1     S      0:00 /bin/sh /usr/X11R6/bin/startx
>  1220 vc/1     S      0:00 xinit /root/.xinitrc --
>  1221 ?        S<     0:33 X :0
>  1234 vc/1     S      0:00 fvwm2
>  1236 vc/1     S      0:01 xterm -geometry 120x70+0+0
>  1239 pts/0    S      0:00 bash
>  1284 vc/1     S      0:00 xterm
>  1285 pts/1    S      0:00 bash
>  1288 vc/1     S      0:00 xterm
>  1289 pts/2    S      0:00 bash
>  1313 vc/1     S      0:00 xterm
>  1314 pts/3    S      0:00 bash
>  1325 pts/3    S      0:00 alsamixer
>  1387 vc/1     S      0:00 xterm
>  1388 pts/4    S      0:00 bash
>  1398 vc/1     S      0:00 xterm
>  1399 pts/5    S      0:00 bash
>  1580 pts/0    S      0:00 jackd -v -R -d alsa -d card0 -r 44100 -p 128
>  1581 pts/0    S      0:00 tee jacklog
>  1582 pts/0    SL     0:11 jackd -v -R -d alsa -d card0 -r 44100 -p 128
>  1589 pts/2    SL     0:26 /usr/lib/ardour/ardourx
>  1616 pts/1    S      0:00 emacs jacklog.awk
>  1631 pts/1    R      0:00 ps ax
>
> I used this (jacklog.awk) to parse the output from jackd:
>>>>>
> $0 ~/load/ {
>
>     count++;
>     seconds++;
> }
>
> $0 ~/xrun/ {
>   cost = ($7 * 1000)/count;
>   print count "\t" $7 * 1000 "\t" cost;
>   count = 0;
>   xruns++;
> }
>
> END {
>   minutes = int(seconds / 60);
>   seconds = seconds - (minutes * 60);
>   time = (minutes * 60) + seconds;
>   print xruns " xruns in " minutes":"seconds " (" time " seconds) 
> average " time/xruns;
> }
>
> <<<<
>
> which gave me this (cost function is extremely crude);
> 108     675     6.25
> 207     690     3.33333
> 196     1400    7.14286
> 34      10608   312
> 69      2658    38.5217
> 44      14553   330.75
> 117     465     3.97436
> 39      913     23.4103
> 206     1724    8.36893
> 108     8710    80.6481
> 176     12596   71.5682
> 58      1237    21.3276
> 182     15688   86.1978
> 53      4315    81.4151
> 233     1100    4.72103
> 95      8932    94.0211
> 5       1917    383.4
> 83      6378    76.8434
> 44      226     5.13636
> 10      7923    792.3
> 10      825     82.5
> 44      6949    157.932
> 44      1094    24.8636
> 15      455     30.3333
> 88      1220    13.8636
> 25 xruns in 39:30 (2370 seconds) average 94.8
>




More information about the Linux-audio-user mailing list