Messages in this thread | | | Date | Fri, 23 Jan 2015 07:57:24 -0800 | From | Shaohua Li <> | Subject | Re: [RFC 2/2] perf: update userspace page info for software event |
| |
On Fri, Jan 23, 2015 at 09:44:51AM +0100, Peter Zijlstra wrote: > On Thu, Jan 22, 2015 at 01:09:02PM -0800, Shaohua Li wrote: > > --- > > kernel/events/core.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/kernel/events/core.c b/kernel/events/core.c > > index 4edde3e..4221240 100644 > > --- a/kernel/events/core.c > > +++ b/kernel/events/core.c > > @@ -5950,6 +5950,7 @@ static int perf_swevent_add(struct perf_event *event, int flags) > > } > > > > hlist_add_head_rcu(&event->hlist_entry, head); > > + perf_event_update_userpage(event); > > > > return 0; > > } > > @@ -6419,6 +6420,7 @@ static int cpu_clock_event_add(struct perf_event *event, int flags) > > { > > if (flags & PERF_EF_START) > > cpu_clock_event_start(event, flags); > > + perf_event_update_userpage(event); > > > > return 0; > > } > > @@ -6493,6 +6495,7 @@ static int task_clock_event_add(struct perf_event *event, int flags) > > { > > if (flags & PERF_EF_START) > > task_clock_event_start(event, flags); > > + perf_event_update_userpage(event); > > > > return 0; > > } > > How about the one I sent; which adds it to {start,stop} instead of add? > {start,stop} is the right place to add them, although this add might be > sufficient for your use case. Hi Peter, I tried {start, stop}, it doesn't work (doesn't get called in context switch) and I still get a CLOCK_MONOTONIC. So I added it to .add, which is called in context switch and I got correct thread time. Am I missing anything?
Thanks, Shaohua
| |