Re: Error 0xE00002EE with PCI audio driver
Re: Error 0xE00002EE with PCI audio driver
- Subject: Re: Error 0xE00002EE with PCI audio driver
- From: Jeff Moore <email@hidden>
- Date: Tue, 09 Sep 2008 08:54:53 -0700
0x2ee == kIOReturnIsoTooOld from <IOKit/IOReturn.h>. This is usually
what happens when the HAL is falling behind or if it has run ahead so
far that it has wrapped back around the ring buffer. This is usually
indicative of a clock problem with the driver.
The telemetry here looks problematic. If this is really from 5-10
minutes into the IO, there is no way that the rate scalar should still
be 1.0. There just isn't any real hardware that runs with a perfect
rate scalar. Typically, this means that the time stamps coming from
the driver are causing the HAL to reset it's clock all the time.
Further, there appears to be a wobble in IO cycle pattern. Normally
you'd expect the difference between successive cycles (the Offset
column) to be pretty much the same each time. In addition, there
appears to be a huge scheduling latency (1.256ms) for a few of the
cycles. So, in addition to bad time stamps, this probably means your
driver is doing way too much work on the primary interrupt and that
extra work is impacting the rest of the system adversely in the form
of additional scheduling latency.
So, there is definitely evidence of a badly behaving driver here. I'd
look first at why your driver seems to be causing so much scheduling
latency. That's a fatal issue since it impacts everything in the system.
On Sep 9, 2008, at 5:33 AM, Eugene Gavrilov wrote:
Hello,
I'm developing an audio driver for a PCI device and faced a strange
issue: the audio is streaming properly without any artifacts or
clicks or glitches for the first 5-10 minutes. After that, I hear
drop-outs and clicks, and their amount increases dramatically. I
tried to analyze audio performance with HALLab and here's part of
its output:
================
Start Offset Late Rate Now:samp Now:host In:samp In:host Out:samp
Out:host Wake:samp Wake:host Zero:samp Zero:host
(...)
144405.569 10.853 0.267 1.000000 28459303 144405.569 0 0.000
28459803 144415.969 28459305 144405.605
144416.466 10.896 0.496 1.000000 28459826 144416.466 0 0.000
28460315 144426.636 28459828 144416.502
144427.892 11.426 1.256 1.000000 28460375 144427.892 0 0.000
28460827 144437.303 28460377 144427.929
144437.554 9.662 0.252 1.000000 28460839 144437.554 0 0.000 28461339
144447.969 28460840 144437.589
!!! 144447.988 10.434 0.018 1.000000 28461339 144447.988 0 0.000
28461851 144458.636 28461341 144448.029
->Write
<-Write: Error: 0xE00002EE
->Over:
<-Over:
<-Cycle:
144459.247 11.259 0.549 1.000000 28461880 144459.247 0 0.000
28462366 144469.365 28461882 144459.283
144469.796 10.548 0.430 1.000000 28462386 144469.796 0 0.000
28462878 144480.032 28462388 144469.829
(...)
144737.338 11.712 1.306 1.000000 28475228 144737.338 0 0.000
28475678 144746.699 28475230 144737.372
144746.778 9.440 0.079 1.000000 28475681 144746.778 0 0.000 28476190
144757.365 28475683 144746.823
144757.641 10.863 0.276 1.000000 28476203 144757.641 0 0.000
28476702 144768.032 28476204 144757.675
!!! 144768.052 10.411 0.020 1.000000 28476702 144768.052 0 0.000
28477214 144778.699 28476704 144768.081
144778.828 10.775 0.087 1.000000 28477220 144778.828 0 0.000
28477728 144789.407 28477221 144778.863
144789.478 10.650 0.071 1.000000 28477731 144789.478 0 0.000
28478240 144800.074 28477733 144789.512
144800.469 10.991 0.396 1.000000 28478258 144800.469 0 0.000
28478752 144810.740 28478260 144800.503
=================
The lines with '!!!' were red in the output, and they contained
error 0xE00002EE and overload. (Subsequent host buffers were not 512
bytes, but 507 bytes). This error is only present after 5-10 minutes
of audio playback and it becomes very frequent in 5-10 seconds.
What does this error mean? According to IOReturn.h the error is
kIOReturnIsoTooOld ('isochronous I/O request for distant past'), but
why am I getting this error? I could not find any timestamp errors
in HALLab. I googled for this value in the Internet, but it seems
this error is returned for USB audio drivers, and I'm writing a PCI
driver.
Any hints or tips?
--
Jeff Moore
Core Audio
Apple
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden