diff options
-rw-r--r-- | include/linux/perf_counter.h | 1 | ||||
-rw-r--r-- | kernel/perf_counter.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h index 17b63105f2aa..0fcbf34a4f73 100644 --- a/include/linux/perf_counter.h +++ b/include/linux/perf_counter.h | |||
@@ -160,6 +160,7 @@ struct perf_counter_hw_event { | |||
160 | #define PERF_COUNTER_IOC_ENABLE _IO ('$', 0) | 160 | #define PERF_COUNTER_IOC_ENABLE _IO ('$', 0) |
161 | #define PERF_COUNTER_IOC_DISABLE _IO ('$', 1) | 161 | #define PERF_COUNTER_IOC_DISABLE _IO ('$', 1) |
162 | #define PERF_COUNTER_IOC_REFRESH _IOW('$', 2, u32) | 162 | #define PERF_COUNTER_IOC_REFRESH _IOW('$', 2, u32) |
163 | #define PERF_COUNTER_IOC_RESET _IO ('$', 3) | ||
163 | 164 | ||
164 | /* | 165 | /* |
165 | * Structure of the page that can be mapped via mmap | 166 | * Structure of the page that can be mapped via mmap |
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c index ba5e921e1f36..6e6834e0587e 100644 --- a/kernel/perf_counter.c +++ b/kernel/perf_counter.c | |||
@@ -1288,6 +1288,11 @@ static unsigned int perf_poll(struct file *file, poll_table *wait) | |||
1288 | return events; | 1288 | return events; |
1289 | } | 1289 | } |
1290 | 1290 | ||
1291 | static void perf_counter_reset(struct perf_counter *counter) | ||
1292 | { | ||
1293 | atomic_set(&counter->count, 0); | ||
1294 | } | ||
1295 | |||
1291 | static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | 1296 | static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg) |
1292 | { | 1297 | { |
1293 | struct perf_counter *counter = file->private_data; | 1298 | struct perf_counter *counter = file->private_data; |
@@ -1303,6 +1308,9 @@ static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
1303 | case PERF_COUNTER_IOC_REFRESH: | 1308 | case PERF_COUNTER_IOC_REFRESH: |
1304 | perf_counter_refresh(counter, arg); | 1309 | perf_counter_refresh(counter, arg); |
1305 | break; | 1310 | break; |
1311 | case PERF_COUNTER_IOC_RESET: | ||
1312 | perf_counter_reset(counter); | ||
1313 | break; | ||
1306 | default: | 1314 | default: |
1307 | err = -ENOTTY; | 1315 | err = -ENOTTY; |
1308 | } | 1316 | } |