我是否需要以perf系统管理员(root)身份运行用户空间工具,还是可以以普通用户身份运行它(或至少一些子命令)?
是否可以检查给定的程序是否是使用 GNU gprof 工具编译的,即“-pg”标志传递给编译器和链接器,而不运行它来检查它是否会生成gmon.out文件?
是否可以将 Gentoo 软件包(支持 ebuild 的程序、支持 portage 的程序)作为普通用户(非 root)安装到自己的主目录(--prefix=$HOME或类似的目录)?
根据我的检查,我工作的计算机上似乎启用了“perf”子系统的内核端。
检查内核配置显示以下内容
$ zgrep "_PERF[_= ]" /proc/config.gz
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
# CONFIG_PERF_COUNTERS is not set
CONFIG_HAVE_PERF_EVENTS_NMI=y
Run Code Online (Sandbox Code Playgroud)
我还做了perf_events FAQ 中描述的检查:
$ cat /proc/sys/kernel/perf_event_paranoid
1
Run Code Online (Sandbox Code Playgroud)
但是没有安装该perf工具:
$ perf
-bash: perf: command not found
$ /sbin/perf
-bash: /sbin/perf: No such file or directory
$ /usr/sbin/perf
-bash: /usr/sbin/perf: No such file or directory
Run Code Online (Sandbox Code Playgroud)
是否可以将 perf userland 作为普通用户安装到自己的主目录(对于“2.6.36-gentoo-r4”内核)?
或者我需要问有问题的机器管理员来安装它吗?更不幸的dev-util/perf是,Gentoo 上的包在 amd64 上被屏蔽(阻止):
$ emerge --search perf
[...]
* dev-util/perf [ Masked ]
Latest version available: 2.6.35_rc4
Latest version installed: …Run Code Online (Sandbox Code Playgroud) 我有三星 NP360E5A-A07PL 笔记本电脑,配备 ELAN 智能板(ETPS/2 Elantech 触摸板,根据 gpointing-device-settings)和罗技 M195 无线鼠标(带 USB 接收器)。在 Linux (LUbuntu 12.04 LTS) 上,无线鼠标不时停止工作(非常频繁,可能每隔几分钟)大约一秒钟。
禁用触摸板(通过 gpointing-device-setting)没有帮助。切换到有线 USB 鼠标也无济于事,甚至使情况变得更糟;使用有线鼠标使其在冻结后重新开始工作我不得不重新插入 USB,而使用无线鼠标我只需要移动它。
完全相同的硬件设置在 MS Windows 7(双启动)上运行没有任何问题。
下面是运行结果xinput:
jnareb@llaptok:~$ xinput
? 虚拟核心指针id=2【主指针(3)】
? ? 虚拟核心XTEST指针id=4【从指针(2)】
? ? 罗技USB接收器id=10【从指针(2)】
? ? 罗技USB接收器id=11【从指针(2)】
? ? ETPS/2 Elantech Touchpad id=13 [从指针(2)]
? 虚拟核心键盘id=3【主键盘(2)】
? 虚拟核心XTEST键盘id=5【从键盘(3)】
? 电源按钮 id=6 [从属键盘 (3)]
? Video Bus id=7 [从键盘(3)]
? 电源按钮 id=8 [从属键盘 (3)]
? 网络摄像头 SC-0311139N id=9 [从属键盘 (3)]
? AT Translated Set 2 keyboard … 管理员在系统范围内安装了 FFTW 库,在 中/usr/lib64,它包括/usr/lib64/libfftw3_threads.so.3.2.4.
当我自己编译这个库时,在系统管理员安装它之前,我注意到你必须在OpenMP和pthreads版本之间进行选择:
--enable-openmp: 类似--enable-threads,但使用 OpenMP 编译器指令来诱导并行性,而不是直接产生自己的线程。对已经使用此类指令的程序特别有用,以最大程度地减少不同并行化机制之间的冲突。使用--enable-openmp或--enable-threads,不要同时使用;在任何一种情况下,都会编译多线程 FFTW 接口/库(请参阅多线程 FFTW)(具有不同的后端)。
发行版是 Gentoo,所以理论上两者都是可能的。
如何检查所述库是使用 OpenMP 支持(最好)还是使用 pthread 编译的?