Hi everyone,

I know it's beta time (and probably not the most opportune time to pester
the mailing list with bug reports), but I am currently unable to use my
MK2 with mixxx. The MK2 is recognized correctly and most keys work, but
the CPU is 100% busy, and playback is impossible. Removing the console
makes the CPU hog disappear, so I am pretty confident that it must be an
MK2 issue. I profiled a run, and here are the results.

- Environment: Debian lenny, linux kernel 2.6.25 (unpatched)

- Compilation flags (tell me if these are inopportune):
scons prefix=/usr/local djconsole=1 hifieq=1 ladspa=1 vinylcontrol=1
shoutcast=1 tuned=1 gprof=1

- Gprof flat profile (top 50 or so functions):
Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
 46.23      1.96     1.96    24924     0.08     0.08 
EngineFilterIIR::process(float const*, float const*, int)
  4.95      2.17     0.21     4154     0.05     0.63 
EngineMaster::process(float const*, float const*, int)
  3.77      2.33     0.16        2    80.00   125.00  timecoder_build_lookup
  3.30      2.47     0.14     4154     0.03     0.75 
SoundDevicePortAudio::callbackProcess(unsigned long, float*, short*,
int)
  2.71      2.58     0.12  9689054     0.00     0.00 
q_atomic_increment(int volatile*)
  2.24      2.68     0.10  9817696     0.00     0.00 
q_atomic_decrement(int volatile*)
  2.12      2.77     0.09  1424000     0.00     0.00  lfsr
  1.65      2.84     0.07    16616     0.00     0.00 
EngineClipping::process(float const*, float const*, int)
  1.65      2.91     0.07     8308     0.01     0.01 
EnginePregain::process(float const*, float const*, int)
  1.53      2.98     0.07  9689054     0.00     0.00  QBasicAtomic::ref()
  1.42      3.04     0.06  6010026     0.00     0.00 
QColor::QColor(QColor const&)
  1.42      3.10     0.06  1717112     0.00     0.00 
ImgAdd::doColorCorrection(QColor)
  1.42      3.15     0.06    16616     0.00     0.00 
EngineVolume::process(float const*, float const*, int)
  1.42      3.21     0.06     8308     0.01     0.01 
EngineBuffer::rampOut(float const*, int)
  1.18      3.27     0.05  4685009     0.00     0.00 
QString::QString(QString const&)
  1.18      3.31     0.05    12462     0.00     0.00 
EngineVuMeter::process(float const*, float const*, int)
  1.18      3.37     0.05     4154     0.01     0.01 
EngineLADSPA::process(float const*, float const*, int)
  0.94      3.40     0.04  2936895     0.00     0.00 
QList<_AudioSource>::~QList()
  0.94      3.44     0.04     8308     0.00     0.24 
EngineFilterBlock::process(float const*, float const*, int)
  0.94      3.48     0.04      358     0.11     0.18 
EngineRecord::process(float const*, float const*, int)
  0.94      3.52     0.04      232     0.17     0.78 
ImgColorProcessor::getImage(QString)
  0.83      3.56     0.04  5865451     0.00     0.00 
QListIterator<_AudioSource>::hasNext() const
  0.71      3.59     0.03  5865451     0.00     0.00 
QList<_AudioSource>::const_iterator::operator!=(QList<_AudioSource>::const_iterator
const&) const
  0.71      3.62     0.03     8308     0.00     0.00 
EngineVinylSoundEmu::process(float const*, float const*, int)
  0.59      3.65     0.03  9817696     0.00     0.00  QBasicAtomic::deref()
  0.59      3.67     0.03  5869834     0.00     0.00 
ControlObjectThread::get()
  0.59      3.69     0.03  2938762     0.00     0.00 
q_atomic_set_ptr(void volatile*, void*)
  0.59      3.72     0.03  1924696     0.00     0.00  QMap<char,
char>::QMap(QMap<char, char> const&)
  0.47      3.74     0.02  5865451     0.00     0.00 
QList<_AudioSource>::constEnd() const
  0.47      3.76     0.02  2938706     0.00     0.00  QListData::Data*
qAtomicSetPtr<QListData::Data*>(QListData::Data* volatile*,
QListData::Data*)
  0.47      3.78     0.02  2932726     0.00     0.00 
QListIterator<_AudioSource>::~QListIterator()
  0.47      3.80     0.02  2932725     0.00     0.00 
QListIterator<_AudioSource>::next()
  0.47      3.82     0.02  2932725     0.00     0.00 
QList<_AudioSource>::const_iterator::operator++(int)
  0.47      3.84     0.02  1924696     0.00     0.00 
ConfigValueMidi::ConfigValueMidi(ConfigValueMidi const&)
  0.47      3.86     0.02  1302272     0.00     0.00  ControlObject::getKey()
  0.47      3.88     0.02    67995     0.00     0.00 
Q3PtrQueue<ControlObject>::dequeue()
  0.47      3.90     0.02    36582     0.00     0.00 
ControlObject::getControl(ConfigKey)
  0.47      3.92     0.02     8308     0.00     0.00  Reader::tryLock()
  0.47      3.94     0.02        2    10.00    10.00 
ReaderExtractWave::ReaderExtractWave(Reader*, EngineBuffer*)
  0.47      3.96     0.02                            
MixxxKeyboard::eventFilter(QObject*, QEvent*)
  0.47      3.98     0.02                            
MixxxApp::eventFilter(QObject*, QEvent*)
  0.35      4.00     0.01  2932725     0.00     0.00 
QList<_AudioSource>::Node::t()
  0.24      4.00     0.01 11730902     0.00     0.00 
QList<_AudioSource>::const_iterator::const_iterator(QList<_AudioSource>::Node*)
  0.24      4.01     0.01  2936880     0.00     0.00 
QList<_AudioSource>::QList(QList<_AudioSource> const&)
  0.24      4.03     0.01  1981363     0.00     0.00  QMap<char,
char>::~QMap()
  0.24      4.04     0.01   926428     0.00     0.00 
Q3PtrList<ConfigOption<ConfigValueMidi> >::getLast() const
  0.24      4.04     0.01   858556     0.00     0.00 
ImgHueInv::doColorCorrection(QColor)
  0.24      4.05     0.01   858556     0.00     0.00 
ImgInvert::doColorCorrection(QColor)
  0.24      4.07     0.01   188248     0.00     0.00 
ControlObjectThread::setExtern(double)
  0.24      4.08     0.01    56677     0.00     0.00 
MidiLedHandler::controlChanged(double)
  0.24      4.08     0.01    56667     0.00     0.00 
ConfigObject<ConfigValueMidi>::get(ConfigValueMidi)
  0.24      4.09     0.01    35897     0.00     0.00 
ConfigObject<ConfigValueMidi>::get(ConfigKey)
  0.24      4.11     0.01    35897     0.00     0.00 
ConfigValueMidi::ComputeValue(MidiType, double, double)
  0.24      4.12     0.01     4529     0.00     0.00 
EngineXfader::getXfadeGains(float&, float&, float, float, float)
  0.24      4.12     0.01     3416     0.00     0.00 
EngineBuffer::getBufferPlaypos()

- Call graph (7 most critical paths):
                     Call graph (explanation follows)


granularity: each sample hit covers 4 byte(s) for 0.24% of 4.24 seconds

index % time    self  children    called     name
                0.14    2.99    4154/4154        paV19Callback(void
const*, void*, unsigned long, PaStreamCallbackTimeInfo
const*, unsigned long, void*) [2]
[1]     73.9    0.14    2.99    4154        
SoundDevicePortAudio::callbackProcess(unsigned long, float*, short*, int)
[1]
                0.00    2.63    4154/4154       
SoundManager::requestBuffer(QList<_AudioSource>, unsigned
long) [3]
                0.02    0.12 2932724/2932726    
QListIterator<_AudioSource>::~QListIterator() [25]
                0.03    0.05 5865448/5865451    
QListIterator<_AudioSource>::hasNext() const [34]
                0.00    0.07 2932724/2932726    
QListIterator<_AudioSource>::QListIterator(QList<_AudioSource>
const&) [37]
                0.02    0.04 2932724/2932725    
QListIterator<_AudioSource>::next() [50]
                0.00    0.00    4154/2936895    
QList<_AudioSource>::~QList() [28]
                0.00    0.00    4154/2936880    
QList<_AudioSource>::QList(QList<_AudioSource> const&)
[42]
                0.00    0.00       1/36582      
ControlObject::getControl(ConfigKey) [24]
                0.00    0.00       1/1876       
ConfigKey::ConfigKey(QString, QString) [237]
                0.00    0.00       2/4876549     QString::~QString() [48]
                0.00    0.00       1/1377600     ConfigKey::~ConfigKey() [56]
                0.00    0.00       2/6310        QString::QString(char
const*) [993]
-----------------------------------------------
                                                 <spontaneous>
[2]     73.9    0.00    3.13                 paV19Callback(void const*,
void*, unsigned long, PaStreamCallbackTimeInfo const*, unsigned long,
void*) [2]
                0.14    2.99    4154/4154       
SoundDevicePortAudio::callbackProcess(unsigned long,
float*, short*, int) [1]
-----------------------------------------------
                0.00    2.63    4154/4154       
SoundDevicePortAudio::callbackProcess(unsigned long,
float*, short*, int) [1]
[3]     62.1    0.00    2.63    4154        
SoundManager::requestBuffer(QList<_AudioSource>, unsigned long) [3]
                0.21    2.42    4154/4154       
EngineMaster::process(float const*, float const*, int) [4]
                0.00    0.00    4154/4154        SoundManager::sync() [124]
-----------------------------------------------
                0.21    2.42    4154/4154       
SoundManager::requestBuffer(QList<_AudioSource>, unsigned
long) [3]
[4]     62.0    0.21    2.42    4154         EngineMaster::process(float
const*, float const*, int) [4]
                0.06    0.00   16616/16616      
EngineVolume::process(float const*, float const*, int)
[46]
                0.05    0.00    4154/4154       
EngineLADSPA::process(float const*, float const*, int)
[52]
                0.05    0.00   12462/12462      
EngineVuMeter::process(float const*, float const*, int)
[53]
                0.04    0.00    8308/16616      
EngineClipping::process(float const*, float const*, int)
[38]
                0.03    0.00    8308/8308       
EngineVinylSoundEmu::process(float const*, float const*,
int) [62]
                0.01    0.00    4154/4529       
EngineXfader::getXfadeGains(float&, float&, float, float,
float) [95]
                0.00    0.00   49848/274797      ControlObject::get() [933]
                0.00    0.00    4154/4154       
EngineSideChain::submitSamples(float*, int) [1017]
-----------------------------------------------
                0.00    2.10    8308/8308       
EngineMaster::process(float const*, float const*, int) [4]
[5]     49.6    0.00    2.10    8308         EngineChannel::process(float
const*, float const*, int) [5]
                0.04    1.96    8308/8308       
EngineFilterBlock::process(float const*, float const*,
int) [6]
                0.07    0.00    8308/8308       
EnginePregain::process(float const*, float const*, int)
[39]
                0.04    0.00    8308/16616      
EngineClipping::process(float const*, float const*, int)
[38]
-----------------------------------------------
                0.04    1.96    8308/8308       
EngineChannel::process(float const*, float const*, int)
[5]
[6]     47.2    0.04    1.96    8308        
EngineFilterBlock::process(float const*, float const*, int) [6]
                1.96    0.00   24924/24924      
EngineFilterIIR::process(float const*, float const*, int)
[7]
                0.00    0.00   49848/274797      ControlObject::get() [933]
                0.00    0.00    8308/8310       
EngineFilterBlock::setFilters(bool) [983]
-----------------------------------------------
                1.96    0.00   24924/24924      
EngineFilterBlock::process(float const*, float const*,
int) [6]
[7]     46.2    1.96    0.00   24924        
EngineFilterIIR::process(float const*, float const*, int) [7]
                0.00    0.00  631408/631408      zap_denormal(double) [931]
-----------------------------------------------

I can email you the full profile on request.

Mauro


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to