我面临一个奇怪的问题,即程序在调用 PAPI_start_counters 函数时冻结。
例如,当我使用此处的代码并编译为“gcc -o papitest high_level.c -lpapi”并运行 ./papitest 后,我得到输出:该系统中有 11 个计数器,然后什么也没有。如果我尝试使用Ctrl+来终止程序,则C不会发生任何事情,而 kill -9 也不会发生任何事情。我的系统如下:
操作系统:Debian GNU/Linux 8 (jessie) 内核:Linux 3.16.0-5-amd64 架构:x86-64 采用 32 核 Intel(R) Xeon(R) CPU E5-4603 v2 @ 2.20GHz
我记得过去在运行旧内核的同一台服务器上使用 PAPI。
编辑:这是运行 dmesg 时显示的内容:
[ 2039.025224] INFO: task papitest:2022 blocked for more than 120 seconds.
[ 2039.025284] Tainted: G C 3.16.0-5-amd64 #1
[ 2039.025335] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 2039.025421] papitest D ffff88081daf0050 0 2022 2008 0x00000000
[ 2039.025427] ffff88081fb180d0 0000000000000086 0000000000013b40 ffff88081e823fd8
[ 2039.025431] 0000000000013b40 ffff88081daf0050 ffff88103f4619f8 ffff88081e823de0
[ 2039.025435] ffff88103f4619fc ffff88081daf0050 00000000ffffffff ffff88103f461a00
[ 2039.025439] Call Trace:
[ 2039.025447] [<ffffffff815227c5>] ? schedule_preempt_disabled+0x25/0x70
[ 2039.025452] [<ffffffff81524263>] ? __mutex_lock_slowpath+0xd3/0x1d0
[ 2039.025457] [<ffffffff81133fc0>] ? remote_function+0x40/0x50
[ 2039.025461] [<ffffffff8152437b>] ? mutex_lock+0x1b/0x2a
[ 2039.025466] [<ffffffff81134800>] ? perf_event_read_value+0x30/0xd0
[ 2039.025470] [<ffffffff811348cd>] ? __perf_read_group_add+0x2d/0x190
[ 2039.025475] [<ffffffff81136e1a>] ? _perf_event_disable+0x5a/0xb0
[ 2039.025479] [<ffffffff8113500f>] ? perf_read+0xbf/0x250
[ 2039.025483] [<ffffffff811afca3>] ? vfs_read+0x93/0x170
[ 2039.025486] [<ffffffff811b08d2>] ? SyS_read+0x42/0xa0
[ 2039.025492] [<ffffffff81525c00>] ? system_call_fast_compare_end+0x10/0x15