xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* LVTPC masking in Intel VPMU code
@ 2013-03-27 21:34 Boris Ostrovsky
  2013-03-28 11:26 ` Jan Beulich
  0 siblings, 1 reply; 6+ messages in thread
From: Boris Ostrovsky @ 2013-03-27 21:34 UTC (permalink / raw)
  To: xen-devel

Can someone explain why we have these lines in 
vpmu_core2.c:core2_vpmu_do_interrupt():
     apic_write_around(APIC_LVTPC, apic_read(APIC_LVTPC) & 
~APIC_LVT_MASKED);
     ...
     vlapic_set_reg(vlapic, APIC_LVTPC, vlapic_lvtpc | APIC_LVT_MASKED);

There is similar code in Linux oprofile with a comment that this is done 
due to some sort of
a quirk on P4 and PentiumM. Is this why it's in 
core2_vpmu_do_interrupt() as well?

I don't see a quirk like this in Linux perf code.


-boris

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: LVTPC masking in Intel VPMU code
@ 2013-03-29 12:39 Boris Ostrovsky
  2013-04-01 20:53 ` Boris Ostrovsky
  0 siblings, 1 reply; 6+ messages in thread
From: Boris Ostrovsky @ 2013-03-29 12:39 UTC (permalink / raw)
  To: haitao.shan; +Cc: JBeulich, xen-devel


----- haitao.shan@intel.com wrote:

> Hi, Jan,
> 
> This is a pretty old code. :) I did not copy or borrow the oprofile
> and perf code at all. Thus, I am not aware of the quirk. (Actually, I
> don't know what quirk you mean).
> For Xen's PMI handler, I just unmask the source and deliver a virtual
> one. Here in this code, I see I unmasked the physical one and mask the
> virtual LVTPC.

The reason I am asking is because I am trying to factor out common code
from VMX and SVM into VPMU code. AMD code doesn't have this and I can run
on Intel (at least on the HW that I have) without these two lines as well.

But more importantly I am not sure I understand why this is needed.

> 
> Can you tell me more about the oprofile/perf background?

http://lxr.linux.no/#linux+v3.8.5/arch/x86/oprofile/op_model_ppro.c#L143
and
http://lxr.linux.no/#linux+v3.8.5/arch/x86/oprofile/op_model_p4.c#L660

-boris


> 
> Shan Haitao
> 
> -----Original Message-----
> From: Jan Beulich [mailto:JBeulich@suse.com] 
> Sent: Thursday, March 28, 2013 7:26 PM
> To: Shan, Haitao
> Cc: xen-devel; Boris Ostrovsky
> Subject: Re: [Xen-devel] LVTPC masking in Intel VPMU code
> 
> >>> On 27.03.13 at 22:34, Boris Ostrovsky <boris.ostrovsky@oracle.com>
> wrote:
> > Can someone explain why we have these lines in 
> > vpmu_core2.c:core2_vpmu_do_interrupt():
> >      apic_write_around(APIC_LVTPC, apic_read(APIC_LVTPC) & 
> > ~APIC_LVT_MASKED);
> >      ...
> >      vlapic_set_reg(vlapic, APIC_LVTPC, vlapic_lvtpc |
> APIC_LVT_MASKED);
> > 
> > There is similar code in Linux oprofile with a comment that this is
> done 
> > due to some sort of
> > a quirk on P4 and PentiumM. Is this why it's in 
> > core2_vpmu_do_interrupt() as well?
> > 
> > I don't see a quirk like this in Linux perf code.
> 
> Haitao, you contributed that code a long while back. Any comment?
> 
> Jan

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-04-02  1:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-27 21:34 LVTPC masking in Intel VPMU code Boris Ostrovsky
2013-03-28 11:26 ` Jan Beulich
2013-03-29  9:12   ` Shan, Haitao
  -- strict thread matches above, loose matches on Subject: below --
2013-03-29 12:39 Boris Ostrovsky
2013-04-01 20:53 ` Boris Ostrovsky
2013-04-02  1:29   ` Shan, Haitao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).