Issue

Xen 4.3 Build With Performance Counter

posted in Hypervisor
Wednesday, November 13 2013, 09:19 AM
0
I use the source of Xen 4.3. By following the official guide, I can start xen and use it. But if I want to use the xenperf(one of the xen-tools). The output is "Error getting number of perf counters: 38 (Function not implemented)". I google it and someone says xen should build with performance counter. So I execute: perfc=y perfc_arrays=y make dist. And then make install. But the following error arise.

/home/binary/workspace/xen-4.3.0/xen/common/symbols-dummy.o -o /home/binary/workspace/xen-4.3.0/xen/.xen-syms.0
prelink.o:在函数‘do_multicall’中:
/home/binary/workspace/xen-4.3.0/xen/common/multicall.c:102:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/multicall.c:102:(.text+0x151aa): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
/home/binary/workspace/xen-4.3.0/xen/common/multicall.c:96:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/multicall.c:96:(.text+0x15228): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
prelink.o:在函数‘alloc_heap_pages’中:
/home/binary/workspace/xen-4.3.0/xen/common/page_alloc.c:723:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/page_alloc.c:723:(.text+0x15c3c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
prelink.o:在函数‘csched_vcpu_remove’中:
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:897:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:897:(.text+0x18e63): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
prelink.o:在函数‘csched_vcpu_sleep’中:
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:918:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:918:(.text+0x18ff3): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
prelink.o:/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:866: more undefined references to `per_cpu__perfcounters' follow
prelink.o:在函数‘csched_alloc_vdata’中:
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:866:(.text+0x1910a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
prelink.o:在函数‘csched_acct’中:
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:1215:(.text+0x19a90): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:1349:(.text+0x19c56): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:1332:(.text+0x19d22): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:1325:(.text+0x19e93): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `per_cpu__perfcounters'
/home/binary/workspace/xen-4.3.0/xen/common/sched_credit.c:1204:(.text+0x19f1c): additional relocation overflows omitted from the output
prelink.o:在函数‘do_sysctl’中:
/home/binary/workspace/xen-4.3.0/xen/common/sysctl.c:118:对‘perfc_control’未定义的引用
prelink.o:在函数‘compat_multicall’中:
/home/binary/workspace/xen-4.3.0/xen/common/compat/../multicall.c:102:对‘per_cpu__perfcounters’未定义的引用
/home/binary/workspace/xen-4.3.0/xen/common/compat/../multicall.c:96:对‘per_cpu__perfcounters’未定义的引用
prelink.o:在函数‘apic_timer_interrupt’中:
/home/binary/workspace/xen-4.3.0/xen/arch/x86/apic.c:1303:对‘per_cpu__perfcounters’未定义的引用
prelink.o:在函数‘map_domain_page’中:
/home/binary/workspace/xen-4.3.0/xen/arch/x86/domain_page.c:82:对‘per_cpu__perfcounters’未定义的引用
prelink.o:在函数‘search_pre_exception_table’中:
/home/binary/workspace/xen-4.3.0/xen/arch/x86/extable.c:96:对‘per_cpu__perfcounters’未定义的引用
prelink.o:/home/binary/workspace/xen-4.3.0/xen/arch/x86/irq.c:813: more undefined references to `per_cpu__perfcounters' follow
prelink.o:(.data.rel+0x28):对‘perfc_printall’未定义的引用
prelink.o:(.data.rel+0x48):对‘perfc_reset’未定义的引用
ld: /home/binary/workspace/xen-4.3.0/xen/.xen-syms.0: hidden symbol `perfc_control' isn't defined
ld: 最终连接失败: 错误的值
make[3]: *** [/home/binary/workspace/xen-4.3.0/xen/xen-syms] 错误 1
make[3]:正在离开目录 `/home/binary/workspace/xen-4.3.0/xen/arch/x86'
make[2]: *** [/home/binary/workspace/xen-4.3.0/xen/xen] 错误 2
make[2]:正在离开目录 `/home/binary/workspace/xen-4.3.0/xen'
make[1]: *** [install] 错误 2
make[1]:正在离开目录 `/home/binary/workspace/xen-4.3.0/xen'
make: *** [install-xen] 错误 2


Anyone have a solution to fix it??
Responses (2)
  • Accepted Answer

    Friday, November 15 2013, 11:53 AM - #permalink
    0
    I have sent a copy of this question to the xen-users mailing list. If I receive a response, I will post it here.
    The reply is currently minimized Show
  • Accepted Answer

    Tuesday, November 19 2013, 05:25 PM - #permalink
    0
    A response from Ian Campbell on xen-users indicates you "should try 'make clean' before rebuilding. These command line options
    don't typically trigger as much rebuilding as they should."
    The reply is currently minimized Show
Your Reply