• 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: Pinning IO Thread to a particular processor
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pinning IO Thread to a particular processor


  • Subject: Re: Pinning IO Thread to a particular processor
  • From: Jeff Moore <email@hidden>
  • Date: Mon, 30 Jan 2006 11:41:52 -0800


On Jan 30, 2006, at 11:02 AM, Stefan Haller wrote:

We are observing that on a Quad G5 we get glitches or dropouts when we
lower the buffer size under high audio load (of course); but with all
four cores enabled, we get these glitches far earlier (with a higher
buffer size) than with only one core enabled.

What buffer size and sample rate are you seeing the problems?

1) Why is this?

You'll have to tell us. You can use HALLab's IO cycle telemetry window to track what the IO thread is doing. If you run it as root, you can also take kernel traces under a variety of circumstances based on the telemetry.


2) Is there anything we can do about this? (Short of telling our users
to turn off three of their four cores.)

Hard to say without knowing what's causing the problem. It could be anything from your IOProc spiking to rogue hardware interrupts causing additional scheduling latency in the IO thread.


We were thinking if it were possible to "pin" the HAL IO thread to a
particular processor/core, maybe that would help.  Is this possible?

I don't know that the scheduler has a notion of processor affinity. Even if it did, the HAL owns the thread and as such it can come and go ou from under you.


At any rate, while bouncing around between processors can cause caches thrash a bit more often, there isn't exactly a whole lot of cache on a G5 anyway. So the effect wouldn't be as pronounced. Besides, when you pin a thread to a particular processor, you are trading cache coherency for increased scheduling latency. As the IO buffer size gets smaller, the scheduling latency, which is generally always the same, will take an increasing amount of the available time. So, I'm not sure that the trade off would actually result in better performance.

--

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: Pinning IO Thread to a particular processor
      • From: Shaun Wexler <email@hidden>
References: 
 >Pinning IO Thread to a particular processor (From: email@hidden (Stefan Haller))

  • Prev by Date: Pinning IO Thread to a particular processor
  • Next by Date: Re: MIDISysexSendRequest => virtual source?
  • Previous by thread: Pinning IO Thread to a particular processor
  • Next by thread: Re: Pinning IO Thread to a particular processor
  • Index(es):
    • Date
    • Thread