[wdmaudiodev] Re: WavePciStream runs out of mappings

  • From: Eugene Muzychenko <eugene@xxxxxxxxxxxxxx>
  • To: Markus Bollinger <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 21 Feb 2012 22:59:20 +0700

Hello Markus,

> Perhaps each miniport should use a different CPU (if available)

Yes, if you experience a heavy load, splitting data processing among
CPUs is a good idea.

> but would this still fix the issue/problem/bug ?

In my experiments, mapping problems were caused by a kind of internal
PortCls synchronization. If data IRPs came from different CPUs, even
an issuing thread was the same, PortCls sometimes stopped providing
mappings and returned a stalled stream position in
KSPROPERTY_AUDIO_POSITION, regardless of the value returned from
GetPosition. As I restricted affinity of each calling thread to a
single CPU, this problem was gone.

> When should the affinity restriction be canceled ? at
> SetState(KSSTATE_STOP) ?

There is no reason to restore thread affinity because system audio engine
creates a dedicated thread for each pin instance.

Regards,
Eugene

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: