Commit 4ab241d2 authored by Stéphane Eranian's avatar Stéphane Eranian Committed by David Mosberger

[PATCH] ia64: perfmon update

        - fix bug in pfm_unload(), not allowed when not on correct CPU for
          system-wide
        - some perf/cleanup in overflow handler
        - fix reset_pmds to be on a per PMD basis on counter overflow rather
          than global
        - remove timing debug code on messages
        - no kernel info leak on PFM_END_MSG
        - remove double-store on reg_flags for pfm_write_pmcs, pfm_write_pmds
        - on restart reset_pmds is 0 by default
        - cleanup useless macros
        - cleanup some debug prints
        - added ability to remove debug code
        - streamlined sys_perfmonctl(), pfm_read_pmds(), pfm_write_*()
        - added current->tgid to default format sample header by using one
          reserved field
parent 9fe55b95
This diff is collapsed.
...@@ -178,6 +178,7 @@ default_handler(struct task_struct *task, void *buf, pfm_ovfl_arg_t *arg, struct ...@@ -178,6 +178,7 @@ default_handler(struct task_struct *task, void *buf, pfm_ovfl_arg_t *arg, struct
ent->tstamp = stamp; ent->tstamp = stamp;
ent->cpu = smp_processor_id(); ent->cpu = smp_processor_id();
ent->set = arg->active_set; ent->set = arg->active_set;
ent->tgid = current->tgid;
/* /*
* selectively store PMDs in increasing index number * selectively store PMDs in increasing index number
......
...@@ -59,7 +59,7 @@ typedef struct { ...@@ -59,7 +59,7 @@ typedef struct {
* last_reset_value member indicates the initial value of the overflowed PMD. * last_reset_value member indicates the initial value of the overflowed PMD.
*/ */
typedef struct { typedef struct {
int pid; /* active process at PMU interrupt point */ int pid; /* thread id (for NPTL, this is gettid()) */
unsigned char reserved1[3]; /* reserved for future use */ unsigned char reserved1[3]; /* reserved for future use */
unsigned char ovfl_pmd; /* index of overflowed PMD */ unsigned char ovfl_pmd; /* index of overflowed PMD */
...@@ -69,7 +69,7 @@ typedef struct { ...@@ -69,7 +69,7 @@ typedef struct {
unsigned short cpu; /* cpu on which the overfow occured */ unsigned short cpu; /* cpu on which the overfow occured */
unsigned short set; /* event set active when overflow ocurred */ unsigned short set; /* event set active when overflow ocurred */
unsigned int reserved2; /* for future use */ int tgid; /* thread group id (for NPTL, this is getpid()) */
} pfm_default_smpl_entry_t; } pfm_default_smpl_entry_t;
#define PFM_DEFAULT_MAX_PMDS 64 /* how many pmds supported by data structures (sizeof(unsigned long) */ #define PFM_DEFAULT_MAX_PMDS 64 /* how many pmds supported by data structures (sizeof(unsigned long) */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment