Vivek,

On Mon, Sep 03, 2007 at 01:27:54PM -0400, [EMAIL PROTECTED] wrote:
> Stephane,
> 
> Thanks a lot for such a prompt reply ! Please see my inlined comments.
> 
> On Monday 03 September 2007 12:28, Stephane Eranian wrote:
> > Vivek,
> >
> > On Mon, Sep 03, 2007 at 11:49:11AM -0400, [EMAIL PROTECTED] wrote:
> > > Hi !
> > >
> > > I am trying to use perfmon on Itanium 2 server (HP's testdrive td178
> > > machine ). I have a multi-threaded program but each thread can be pinned
> > > to a different CPU (total 16 cores here). Each thread is going to monitor
> > > its own overflow (i.e. receive its own overflow notification).  For
> > > configuring this, do i need to set PFM_FL_SYSTEM_WIDE while creating
> > > PFM_CONTEXT ?
> >
> > In system-wide perfmon requires that you create as many contexts and you
> > have CPU core to monitor. That each context is loaded onto the right CPU
> > core via pfm_load_context(). On IA-64 currently, you are using the v2.0
> > interface which has the PFM_LOAD_CONTEXT command. On this version, perfmon
> > will pick the CPU used to mke the PFM_LOAD_CONTEXT call as the CPU to
> > monitor. This means you need to ensure that you have pinned the caller
> > thread to the right CPU core prior to making the call. Each context needs
> > to be created with the PFM_FL_SYSTEM_WIDE flag set.
> >
> 
> Setting the PFM_FL_SYSTEM_WIDE  flag at the context creation time gives me 
> the 
> following error at the time I write to PMCs. 
> PFM_WRITE_PMCS:: Invalid argument
> perfmonctl error PFM_WRITE_PMCS errno 22
> 
> The flags I am passing with PFM_WRITE_PMCS are :
>  /*
>    * indicate we want notification when buffer is full
>    */
>   pc[0].reg_flags |= PFM_REGFL_OVFL_NOTIFY;
>   /*
>    * indicate which PMD to include in the sample
>    */
>   pc[0].reg_smpl_pmds[0] = DEAR_REGS_MASK;
> 
> This code works if I remove PFM_FL_SYSTEM_WIDE flag at the time of context 
> creation. 
> 
Oh, I think for this kernel version, there was an explicit check for the PMC.pm 
bit
when running in system wide. You need to use the libpfm PFMLIB_PFP_SYSTEMWIDE
on the pfmlib_input_param_t.pfp_flags of pfm_dispatch_events().

This restriction has been removed for current versions, the kernel automatically
forces the PMC.pm bit for system-wide contexts.

--
-Stephane.
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/

Reply via email to