Russian Qt Forum
Ноябрь 25, 2024, 01:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtCreator & Perf  (Прочитано 7895 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« : Март 18, 2021, 17:06 »

Никак не могу запустить Perf для QtCreayor В замешательстве

Операционная система Linux(XUbuntu  18.04) Ядро 5.4.0-67, Qt Creator 4.11.0

Савил Perf так:
Код:
sudo apt install linux-tools-common 
sudo linux-tools-generic linux-tools-`uname -r`
Итог:
Версия Perf
Код:
perv -v
perf version 5.4.94

Но...
Запускаю анализатор производительности - ругается на версию ядра якобы, "типа старая"
Хотя в окне вывода приложений пишет типа надо запускать из под суперпользователя

Ладно
Попробовал вот это
https://superuser.com/questions/980632/run-perf-without-root-rights?newreg=2f81b6d2ba2a4143af62fa81c188aa9a
Ну или набрал две команды как описанно в статье
Код:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
sudo sysctl -w kernel.perf_event_paranoid=1

Помогло, но...
Код:
WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted,
check /proc/sys/kernel/kptr_restrict and /proc/sys/kernel/perf_event_paranoid.

Samples in kernel functions may not be resolved if a suitable vmlinux
file is not found in the buildid cache or in the vmlinux path.

Samples in kernel modules won't be resolved at all.

If some relocation was applied (e.g. kexec) symbols may be misresolved
even with a suitable vmlinux or kallsyms file.

Couldn't record kernel reference relocation symbol
Symbol resolution may be skewed if relocation was used (e.g. kexec).
Check /proc/kallsyms permission or run as root.
QHostAddress("127.0.0.1")
[ perf record: Woken up 27 times to write data ]
[ perf record: Captured and wrote 0,000 MB - ]

Кто сталкивался с этим, подскажите что делать Непонимающий
Спасибо!!!
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Март 19, 2021, 11:39 »

запустить perf от рута - не вариант ?
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #2 : Март 19, 2021, 20:03 »

запустить perf от рута - не вариант ?


QtCreator  из под рута , в нем запускал анализатор производительности...
Эффект такой же. Жалобы на то что версия ядра линуха не соответствует версии perf

Код:
Perf 5.4.94
Linux 5.4.0-67
« Последнее редактирование: Март 19, 2021, 20:05 от demaker » Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #3 : Март 19, 2021, 20:07 »

Вы бы лучше сюда ошибку скопировали. "Жалобы на то что версия ядра линуха не соответствует версии perf" - это не совсем понятно.
P.S. Хотя, есть подозрение, что вы взяли версию perf одну, а само ядро другое. Если вы говорите за https://perf.wiki.kernel.org/index.php/Main_Page, то вашем случае либо ставить ядро под perf, либо брать perf под ядро.
P.P.S. Допустим ядро 5.4.0-67 != 5.4.94
« Последнее редактирование: Октябрь 15, 2022, 22:23 от tux » Записан

demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #4 : Март 20, 2021, 00:35 »

Вы бы лучше сюда ошибку скопировали. "Жалобы на то что версия ядра линуха не соответствует версии perf" - это не совсем понятно.
P.S. Хотя, есть подозрение, что вы взяли версию perf одну, а само ядро другое. Если вы говорите за https://perf.wiki.kernel.org/index.php/Main_Page, то в ашем случае либо ставить ядро под perf, либо брать perf под ядро.
P.P.S. Допустим ядро 5.4.0-67 != 5.4.94

Вывод в приложения
Код:
perf_event_open(..., PERF_FLAG_FD_CLOEXEC) failed with unexpected error 13 (Отказано в доступе)
perf_event_open(..., 0) failed unexpectedly with error 13 (Отказано в доступе)
Error:
You may not have permission to collect stats.

Consider tweaking /proc/sys/kernel/perf_event_paranoid,
which controls use of the performance events system by
unprivileged users (without CAP_SYS_ADMIN).

The current value is 3:

  -1: Allow use of (almost) all events by all users
      Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
>= 0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN
      Disallow raw tracepoint access by users without CAP_SYS_ADMIN
>= 1: Disallow CPU event access by users without CAP_SYS_ADMIN
>= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN

To make this setting permanent, edit /etc/sysctl.conf too, e.g.:

kernel.perf_event_paranoid = -1

« Последнее редактирование: Март 20, 2021, 00:41 от demaker » Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #5 : Март 20, 2021, 23:16 »

У вас, скорее прав не хватает.
Попробуйте
Код:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
Записан

demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #6 : Март 21, 2021, 10:04 »

У вас, скорее прав не хватает.
Попробуйте
Код:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'

 Я это уже пробовал это , в самом первом сообщении это:
Цитировать
Ну или набрал две команды как описанно в статье
Код:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
sudo sysctl -w kernel.perf_event_paranoid=1

Помогло, но...
Код:
WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted,
check /proc/sys/kernel/kptr_restrict and /proc/sys/kernel/perf_event_paranoid.

Samples in kernel functions may not be resolved if a suitable vmlinux
file is not found in the buildid cache or in the vmlinux path.

Samples in kernel modules won't be resolved at all.

If some relocation was applied (e.g. kexec) symbols may be misresolved
even with a suitable vmlinux or kallsyms file.

Couldn't record kernel reference relocation symbol
Symbol resolution may be skewed if relocation was used (e.g. kexec).
Check /proc/kallsyms permission or run as root.
QHostAddress("127.0.0.1")
[ perf record: Woken up 27 times to write data ]
[ perf record: Captured and wrote 0,000 MB - ]

« Последнее редактирование: Март 21, 2021, 10:10 от demaker » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #7 : Март 22, 2021, 08:38 »

QtCreator  из под рута , в нем запускал анализатор производительности...

1. хм, а есть смысл запускать именно из креатора ?
2. работает ли sudo perf top ?
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #8 : Март 22, 2021, 12:54 »

QtCreator  из под рута , в нем запускал анализатор производительности...

1. хм, а есть смысл запускать именно из креатора ?
2. работает ли sudo perf top ?

По второму пункту: да, работает
По первому пункту
Мне кажется что да, хотелось проанализировать свой код. Это вроде и удобнее...
Я понимаю что есть другие варианты, но этот самый простой и удобный , опять же как мне показалось.

Если есть другая хорошая альтернатива, чтобы можно было оценить свой код и места большой
загруженности процессора в коде - то подскажите, буду признателен, я всегда готов выслушать
« Последнее редактирование: Март 22, 2021, 12:59 от demaker » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #9 : Март 22, 2021, 13:15 »

показать вызовы в коде можно через callgrind:
1. valgrind --tool=callgrind --callgrind-out-file=MYPROG.callgrind --collect-atstart=no  ./MYPROG
2. kcachegrind MYPROG.callgrind
но это всё на порядки замедлит программу

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

Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #10 : Март 22, 2021, 14:28 »

мастерством использования perf я не владею, кроме как увидеть что "гдето чтото - тормозит"
И как тогда с помощью Perf узнать" где и что тормозит"?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #11 : Март 22, 2021, 15:39 »

интуитивно, методом проб и ошибок
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 962


Просмотр профиля
« Ответ #12 : Март 22, 2021, 19:04 »

интуитивно, методом проб и ошибок


"Ты кем, работаешь?"
"Инженером - чем меньше работаю, тем меньше вреда!"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.137 секунд. Запросов: 22.