I would like some help on installing PAPi to the latest linux 2.6.31 kernel with PCL support.
So as it seems i have correctly built and installed the kernel,modules,headers with PCL support
in an ubuntu (9.10) still beta system but i can't install PAPI. I read in the manual that this mode
(not requiring a kernel patch) is still experimental and i would like to post some problems i
encounter. At first i realized that there is no need for a custom kernel built in Ubuntu because the
kernel is by default built with PCL. Also it has APIC and SMT support by default.
I have correctly installed perfctr under /lib/udev/devices/
and modified the /etc/udev/rules.d/50-udev-default.rules (in this distribution looks more than suse config) as :
KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid", MODE="0444" #This was the initial kernel mode under /lib/udev/rules.d
KERNEL=="msr[0-9]*", NAME="cpu/%n/msr", MODE="0444" # so i kept the permissions unchanged.
KERNEL=="microcode", NAME="cpu/microcode", MODE="0600"
KERNEL=="perfctr", NAME="perfctr", MODE="0666" # I also tried 0644. Failed as well.
so when i make ./configure --with-pcl=yes
the dump is :
checking for architecture... i686
checking for OS... linux
checking for OS version... 2.6.31-11-generic
checking for CPU type... core
checking for 32 or 64 bit mode... default
checking for working MMTIMER... no
checking for working CLOCK_REALTIME_HR POSIX 1b timer... no
checking for working CLOCK_REALTIME POSIX 1b timer... yes
checking for real time clock or cycle counter... clock_realtime
checking for working __thread... yes
checking for high performance thread local storage... __thread
checking for working CLOCK_THREAD_CPUTIME_ID POSIX 1b timer... yes
checking for thread virtual clock or cycle counter... clock_thread_cputime_id
checking for /sys/class/perfctr... no
checking for /dev/perfctr... yes
checking for /sys/kernel/perfmon/version... no
checking for /proc/perfmon... no
configure: Generating perfmon_events_table.h
checking for building tests static... no
checking for which libraries to build... shared static
checking for perfctr version... 2.6
checking for Makefile to use... linux-pcl
checking for library to link... static
configure: Compiling genpapifdef with gcc
configure: Generating fpapi.h
configure: Generating f77papi.h
configure: Generating f90papi.h
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
This far perfctr version is detected as 2.6 and /dev/perfctr is detected but /sys/class/perfctr seems to be missing.
The GCC is 4.4.1.
When i try to make the lib i get the following errors.
gcc -fPIC -DPIC -shared -Wl,-soname -Wl,libpapi.so -Xlinker "-rpath" -Xlinker "/usr/local/lib" -Wl,-rpath-link -Wl,/home/koukos/Desktop/papi-3.7.0/src/libpfm-3.y/lib -I. -g -O2 -DSTATIC_PERFMON_EVENTS_TABLE -D_GNU_SOURCE -Wall -DUSE_COMPILER_TLS -DPAPI_NO_MEMORY_MANAGEMENT -D_REENTRANT -DSTATIC_PERFMON_EVENTS_TABLE -I/home/koukos/Desktop/papi-3.7.0/src/libpfm-3.y/include -DSUBSTRATE_USES_LIBPFM -DSUBSTRATE=\"pcl.h\" papi_pfm_events.c sys_perf_counter_open.c x86_cache_info.c papi.c papi_internal.c papi_hl.c extras.c multiplex.c papi_fwrappers.c papi_fwrappers_.c papi_fwrappers__.c PAPI_FWRAPPERS.c papi_data.c threads.c perfmon-memory.c pcl.c papi_preset.c papi_vector.c papi_memory.c -o libpapi.so -Bdynamic -L/home/koukos/Desktop/papi-3.7.0/src/libpfm-3.y/lib -lpfm
In file included from papi_internal.h:177,
pcl.h:37:26: error: perf_counter.h: No such file or directory
in did the perf_counter.h exists and it is located under : /usr/src/linux-headers-2.6.31-11/arch/x86/include/asm.
i also notice that in the above gcc command -I doesn't have a path but a dot(.) instead ?
A lot of other errors occurs during compilation but i think it's because of the missing header file so i don't post them.
Am i doing something wrong or forgetting something? What i can do to compile the lib?
Sorry if i am posting on wrong section i didn't found any bugs or help section.
Computer Architecture and VLSI Systems,
Institute of Computer Science [at] forth.gr