On Wed, 2010-03-03 at 11:15 +0100, Peter Zijlstra wrote: > On Wed, 2010-03-03 at 17:27 +0800, Zhang, Yanmin wrote: > > -#ifndef perf_misc_flags > > -#define perf_misc_flags(regs) (user_mode(regs) ? PERF_RECORD_MISC_USER : \ > > - PERF_RECORD_MISC_KERNEL) > > -#define perf_instruction_pointer(regs) instruction_pointer(regs) > > -#endif > > Ah, that #ifndef is for powerpc, which I think you just broke. Thanks for the reminder. I deleted powerpc codes when building cscope lib. It seems perf_save_virt_ip/perf_reset_virt_ip interfaces are ugly. I plan to change them to a callback function struct and kvm registers its version to perf. Such like: struct perf_guest_info_callbacks { int (*is_in_guest)(); u64 (*get_guest_ip)(); int (*copy_guest_stack)(); int (*reset_in_guest)(); ... }; int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *); int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *); It's more scalable and neater. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html