Commit 2b1d3c06 authored by Stéphane Eranian's avatar Stéphane Eranian Committed by David Mosberger

[PATCH] ia64: perfmon update

Here is what I got so far on perfmon for 2.5.31. It includes:

- your randomization patch with some rework to make it visible to user.
  (your existing program does not need to change or recompilation).

- 3 error conditions cleanups, a missing unlock fix

- copy_*user() replaced with __copy_*_user() or get/put user when appropriate.
  (This gives us a 15% speed improvement on PFM_READ_PMDS).

- sys_perfmonctl(), only check for read-only OR read-write arguments
  (read and write are not separated anymore)

- Non 64-bit overflow do not reset hardware pmd to zero anymore: not needed

- incorporated changes from 2.4.18/9: debug registers when used are
  all restored on ctxsw in.

- added automatic reset on inheritance, no more PMU specific knowledge.
parent 51d8b7a3
This diff is collapsed.
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
* PMC flags * PMC flags
*/ */
#define PFM_REGFL_OVFL_NOTIFY 0x1 /* send notification on overflow */ #define PFM_REGFL_OVFL_NOTIFY 0x1 /* send notification on overflow */
#define PFM_REGFL_RANDOM 0x2 /* randomize sampling interval */ #define PFM_REGFL_RANDOM 0x2 /* randomize sampling periods */
/* /*
* PMD/PMC/IBR/DBR return flags (ignored on input) * PMD/PMC/IBR/DBR return flags (ignored on input)
...@@ -87,8 +87,10 @@ typedef struct { ...@@ -87,8 +87,10 @@ typedef struct {
unsigned long reg_short_reset;/* reset after counter overflow (small) */ unsigned long reg_short_reset;/* reset after counter overflow (small) */
unsigned long reg_reset_pmds[4]; /* which other counters to reset on overflow */ unsigned long reg_reset_pmds[4]; /* which other counters to reset on overflow */
unsigned long reg_random_seed; /* seed value when randomization is used */
unsigned long reg_random_mask; /* bitmask used to limit random value */
unsigned long reserved[16]; /* for future use */ unsigned long reserved[14]; /* for future use */
} pfarg_reg_t; } pfarg_reg_t;
typedef struct { typedef struct {
......
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