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