Re: [PATCH RFC] perf kvm stat live: cache mmap()ed events

From: Jiri Olsa
Date: Sun Sep 14 2014 - 09:25:17 EST


On Fri, Sep 12, 2014 at 08:27:43PM +0400, Alexander Yarygin wrote:

SNIP

> +
> + list_for_each_safe(p, p2, &cache->list) {
> + struct events_cache *entry;
> +
> + entry = list_entry(p, struct events_cache, list);
> +
> + if (&entry->event == event) {
> + list_del(&entry->list);
> + free(entry);
> +
> + break;
> + }
> + }
> +}
> +
> +static void clear_events_cache(struct events_cache *cache)
> +{
> + struct list_head *p, *p2;
> +
> + list_for_each_safe(p, p2, &cache->list) {
> + struct event_cache *entry;

s/event_cache/events_cache/ ? does not compile for me otherwise

> +
> + entry = list_entry(p, struct events_cache, list);
> + list_del(&entry->list);
> + free(entry);
> + }
> + free(cache);
> +}

SNIP

> }
>
> static int cpu_isa_config(struct perf_kvm_stat *kvm)
> @@ -732,15 +800,15 @@ static s64 perf_kvm__mmap_read_idx(struct perf_kvm_stat *kvm, int idx,
> return -1;
> }
>
> - err = perf_session_queue_event(kvm->session, event, &sample, 0);
> - /*
> - * FIXME: Here we can't consume the event, as perf_session_queue_event will
> - * point to it, and it'll get possibly overwritten by the kernel.
> - */
> + event = alloc_event_cache(kvm->cache, event);
> +
> perf_evlist__mmap_consume(kvm->evlist, idx);
>
> + err = perf_session_queue_event(kvm->session, event, &sample, 0);

got conflict here, this got recently changed.. needs to have tool param:

- err = perf_session_queue_event(kvm->session, event, &sample, 0);
+ err = perf_session_queue_event(kvm->session, event, &kvm->tool, &sample, 0);

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/