• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Error 0xE00002EE with PCI audio driver
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
  • Follow-Ups:
    • Re: Error 0xE00002EE with PCI audio driver
      • From: Eugene Gavrilov <email@hidden>
References: 
 >Error 0xE00002EE with PCI audio driver (From: Eugene Gavrilov <email@hidden>)

  • Prev by Date: Error 0xE00002EE with PCI audio driver
  • Next by Date: Examples for AudioFileStream and AudioConverter?
  • Previous by thread: Error 0xE00002EE with PCI audio driver
  • Next by thread: Re: Error 0xE00002EE with PCI audio driver
  • Index(es):
    • Date
    • Thread