From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751808AbcFWOPp (ORCPT ); Thu, 23 Jun 2016 10:15:45 -0400 Received: from mail-io0-f193.google.com ([209.85.223.193]:34565 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751141AbcFWOPm (ORCPT ); Thu, 23 Jun 2016 10:15:42 -0400 MIME-Version: 1.0 In-Reply-To: <1466659667-99144-5-git-send-email-wangnan0@huawei.com> References: <1466659667-99144-1-git-send-email-wangnan0@huawei.com> <1466659667-99144-5-git-send-email-wangnan0@huawei.com> From: Nilay Vaish Date: Thu, 23 Jun 2016 09:15:02 -0500 Message-ID: Subject: Re: [PATCH v10 04/10] perf evlist: Introduce aux evlist To: Wang Nan Cc: acme@kernel.org, Linux Kernel list , pi3orama@163.com, He Kuang , Jiri Olsa , Masami Hiramatsu , Namhyung Kim , Zefan Li Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23 June 2016 at 00:27, Wang Nan wrote: > An auxiliary evlist is created by perf_evlist__new_aux() using an > existing evlist as its parent. An auxiliary evlist can have its own > 'struct perf_mmap', but can't have any other data. User should use its > parent instead when accessing other data. > > Auxiliary evlists are containers of 'struct perf_mmap'. It is introduced > to allow its parent evlist to map different events into separated mmaps. > > Following commits create an auxiliary evlist for overwritable > events, because overwritable events need a read only and backwards ring > buffer, which is different from normal events. > > To achieve this goal, this patch carefully changes 'evlist' to > 'evlist->parent' in all functions in the path of 'perf_evlist__mmap_ex', > except 'evlist->mmap' related operations, to make sure all evlist > modifications (like pollfd and event id hash tables) goes to original > evlist. > > A 'evlist->parent' pointer is added to 'struct perf_evlist' and points to > the evlist itself for normal evlists. > > Children of one evlist are linked into it so one can find all children > from its parent. > > To avoid potential complexity, forbid creating aux evlist from another > aux evlist. > > Improve perf_evlist__munmap_filtered(), so when recording, if an event > is terminated, unmap mmaps, from parent and children. > > Signed-off-by: Wang Nan > Cc: He Kuang > Cc: Jiri Olsa > Cc: Masami Hiramatsu > Cc: Namhyung Kim > Cc: Zefan Li > Cc: pi3orama@163.com > --- > tools/perf/util/evlist.c | 49 +++++++++++++++++++++++++++++++++++++----------- > tools/perf/util/evlist.h | 12 ++++++++++++ > 2 files changed, 50 insertions(+), 11 deletions(-) Wang, thanks for making the change. The patch seems perfectly fine to me. -- Nilay