Re: KVM PMU virtualization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2010-03-03 at 17:27 +0800, Zhang, Yanmin wrote:
> +static inline u64 perf_instruction_pointer(struct pt_regs *regs)
> +{
> +       u64 ip;
> +       ip = percpu_read(perf_virt_ip.ip);
> +       if (!ip)
> +               ip = instruction_pointer(regs);
> +       else
> +               perf_reset_virt_ip();
> +       return ip;
> +}
> +
> +static inline unsigned int perf_misc_flags(struct pt_regs *regs)
> +{
> +       if (percpu_read(perf_virt_ip.ip)) {
> +               return percpu_read(perf_virt_ip.user_mode) ?
> +                       PERF_RECORD_MISC_GUEST_USER :
> +                       PERF_RECORD_MISC_GUEST_KERNEL;
> +       } else
> +               return user_mode(regs) ? PERF_RECORD_MISC_USER :
> +                                PERF_RECORD_MISC_KERNEL;
> +} 

This codes in the assumption that perf_misc_flags() must only be called
before perf_instruction_pointer(), which is currently true, but you
might want to put a comment near to remind us of this.

--
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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux