aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/perf_counter.h1
-rw-r--r--kernel/perf_counter.c8
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
1291static void perf_counter_reset(struct perf_counter *counter)
1292{
1293 atomic_set(&counter->count, 0);
1294}
1295
1291static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 1296static 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 }