LINUX.ORG.RU

[oprofile] Daemon not running


0

1

Есть небольшая проблема с oprofile, он всего-лишь... не работает вообще...

#!/bin/bash
rm oprofile.png
sudo ls -l

sudo opcontrol -c=100 --setup --event=GLOBAL_POWER_EVENTS:90000:0x1:1:1
sudo opcontrol --no-vmlinux
sudo opcontrol --reset
sudo opcontrol --start-daemon
sudo opcontrol --start

sudo opcontrol --status
echo "oprofile START: -------------------------"

server/server & sleep 2; client/client

echo "oprofile END: -------------------------"
sudo opcontrol --status

sudo opcontrol --shutdown
sudo opcontrol --dump

opreport -cgf | ./gprof2dot.py -f oprofile | dot -Tpng -o oprofile.png

echo "oprofile OK"

Тестируемые программы запускаются и работают нормально и корректно завершаются. Отлаживаю многопоточные программы на Qt, поэтому gprof выдает результат который можно изучить на картинке, но для многопоточных он некорректен. Что бы я ни делал, какие комбинации из интернета ни вбивал, всегда одно и то же - «Daemon not running». Всегда.

lsmod | grep oprof
oprofile               50311  1 

+ в конфиге ядра oprofile включен, ядро 3.0.0-16-generic

ЧЯДНТ? Возможно упустил что-то важное.

Задача: отлаживать время работы тех или иных функций, чтобы определить что именно создает лишнюю нагрузку на процессор.

ЧЯДНТ? Возможно упустил что-то важное.

вместо того, чтобы выполнить все команды указанного скрипта руками отдельно друг от друга в голом шеле, чтобы понять какая именно команда выдает «Daemon not running», затем подумать пять секунд (ну хорошо, для любителя M$ - пять минут) и понять в чем дело (а оно, вероятно, в том, что снимается дамп накопленных данных после остановки демона, хотя выгружать этот дамп должен именно демон, а --dump это лишь команда ему), так вот, вместо этого надо обязательно запостить вопрос на ЛОРе, чтобы показать всем свою упоротость :)

anonymous
()
Ответ на: комментарий от anonymous

зайчик, ты такой умный, чтоб мы без тебя делали :) разумеется я пробовал все эти команды поотдельности и после каждой запускал --status и всегда, после каждой я виду daemon not running, а общий скрипт я привел лишь чтобы показать что я вообще делаю и запускаю

что такое daemon в контексте oprofile? что гарантированно его запустит и какими другими способами убедиться что он запущен? в процессах? в dmesg?

в общем, проблема...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

белочка, ты такая смешная :) тебе знаком принцип причинно-следственной связи? нахера здесь весь твой скрипт, когда ошибка возникает в какой-то конкретной команде, и после нее (ошибки) все остальное уже неактуально? и даже во втором сообщении ты не осилил указать конкретную команду, в которой первый раз возникает ошибка, уж не говоря о том, чтобы привести здесь полный кусок работы указанного сценария с выхлопом каждой команды;

что такое daemon в контексте oprofile?

то же, что и в любом другом контексте - процесс, работающий в фоне;

что гарантированно его запустит и какими другими способами убедиться что он запущен? в процессах? в dmesg?

# ps aux | grep oprof
root     16901  0.0  0.0  87068   848 pts/3    S+   18:13   0:00 grep oprof
#
# opcontrol --start-daemon
Using 2.6+ OProfile kernel interface.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
#
# ps aux | grep oprof
root     17102  0.0  0.0   8864   344 ?        S    18:13   0:00 /usr/bin/oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=DATA_CACHE_MISSES:65:0:1047366:0:0:1,CPU_CLK_UNHALTED:118:1:1000000:0:0:1, --no-vmlinux
root     17113  0.0  0.0  87068   844 pts/3    S+   18:13   0:00 grep oprof
#
# opcontrol --status
Daemon running: pid 17102
Event 0: DATA_CACHE_MISSES:1047366:0:0:1
Event 1: CPU_CLK_UNHALTED:1000000:0:0:1
Separate options: none
vmlinux file: none
Image filter: none
Call-graph depth: 20
Buffer size: 65536
#
# opcontrol --shutdown
Stopping profiling.
Killing daemon.
#
# opcontrol --status
Daemon not running
Event 0: DATA_CACHE_MISSES:1047366:0:0:1
Event 1: CPU_CLK_UNHALTED:1000000:0:0:1
Separate options: none
vmlinux file: none
Image filter: none
Call-graph depth: 20
Buffer size: 65536

в общем, проблема...

нахера лезть в такие дебри, как профайлинг программ, коли нет даже элементарных общих знаний? каждый мнит себя программистом, хуле...

anonymous
()
Ответ на: комментарий от anonymous

1) странно, вот сейчас запустил opcontrol --no-vmlinux а затем opcontrol --start-daemon, это на чистой машине, где после загрузки никакие команды oprofile не использовались

отсюда и вопрос - что я делаю не так, после каких команд демон отказывается стартовать и вообще какие критерии?

в большинстве обзоров того как пользоваться oprofile вообще не фигурирует --start-daemon что приводит к путанице у таких как я

2) ну а обсуждение чьих-либо профессиональных качеств и навыков, критериев достаточности знаний и т.п. - вообще не интересует, ибо не конструктивно, официально заявляю что не являюсь программистом, но делать задачу все равно надо...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

ты меня устал
вот, погляди здесь: http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/ch-opr...
там, кстати, есть и про гуевую морду описание, тебе, наверно, лучше пользоваться ей

не являюсь программистом, но делать задачу все равно надо

я только не понял, а что ты будешь делать, когда найдешь, что тормозит такая-то функция где-то в недрах qt?

anonymous
()
Ответ на: комментарий от anonymous

спасибки, будем почитать :)

если в недрах Qt - перепишу часть кода иначе

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

странный результат профилирования, показывает какие программы сколько кушали процессора, но как заставить его смотреть именно мою программу? точнее ее потоки? буду изучать

а проблема пока решена - sudo opcontrol --event=CPU_CLK_UNHALTED:750000 - вот без этого вызова не работало, на другом компе не было проблема, а на моем жаловалось что 750000 это минимум - опять же не понятно что это за число

sudo opcontrol --event=CPU_CLK_UNHALTED:750000
sudo opcontrol --no-vmlinux
sudo opcontrol --reset
sudo opcontrol --start-daemon
sudo opcontrol --start
sudo opcontrol --status

тут работает программа

sudo opcontrol --status
sudo opcontrol --stop
sudo opcontrol --dump

opreport -cgf <тут обработка в dot формат>
I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.