Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754208AbbKXPYL (ORCPT ); Tue, 24 Nov 2015 10:24:11 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:35815 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753388AbbKXPYK (ORCPT ); Tue, 24 Nov 2015 10:24:10 -0500 Subject: Re: [PATCH] perf record: Add snapshot mode support for perf's regular events To: Arnaldo Carvalho de Melo References: <1448373632-8806-1-git-send-email-yunlong.song@huawei.com> <1448373632-8806-2-git-send-email-yunlong.song@huawei.com> <56547D01.8020606@gmail.com> <20151124152023.GE18140@kernel.org> Cc: Yunlong Song , a.p.zijlstra@chello.nl, paulus@samba.org, mingo@redhat.com, linux-kernel@vger.kernel.org, wangnan0@huawei.com, namhyung@kernel.org, ast@kernel.org, masami.hiramatsu.pt@hitachi.com, kan.liang@intel.com, adrian.hunter@intel.com, jolsa@kernel.org, bp@alien8.de, jean.pihet@linaro.org, rric@kernel.org, xiakaixu@huawei.com, hekuang@huawei.com From: David Ahern Message-ID: <56548117.9080704@gmail.com> Date: Tue, 24 Nov 2015 08:24:07 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <20151124152023.GE18140@kernel.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1964 Lines: 63 On 11/24/15 8:20 AM, Arnaldo Carvalho de Melo wrote: > Em Tue, Nov 24, 2015 at 08:06:41AM -0700, David Ahern escreveu: >> On 11/24/15 7:00 AM, Yunlong Song wrote: >>> +static int record__write(struct record *rec, void *bf, size_t size) >>> +{ >>> + if (rec->memory.size && memory_enabled) { >>> + if (perf_memory__write(&rec->memory, bf, size) < 0) { >>> + pr_err("failed to write memory data, error: %m\n"); >>> + return -1; >>> + } >>> + } else { >>> + if (perf_data_file__write(rec->session->file, bf, size) < 0) { >>> + pr_err("failed to write perf data, error: %m\n"); >>> + return -1; >>> + } >>> + rec->bytes_written += size; >>> } >>> >>> - rec->bytes_written += size; >>> return 0; >>> } >>> >>> @@ -86,6 +214,8 @@ static int record__mmap_read(struct record *rec, int idx) >>> if (old == head) >>> return 0; >>> >>> + memory_enabled = 1; >>> + >>> rec->samples++; >>> >>> size = head - old; >>> @@ -113,6 +243,7 @@ static int record__mmap_read(struct record *rec, int idx) >>> md->prev = old; >>> perf_evlist__mmap_consume(rec->evlist, idx); >>> out: >>> + memory_enabled = 0; >>> return rc; >>> } >>> >> >> So you are basically ignoring all samples until SIGUSR2 is received. That > > No, he is not, its just that his code is difficult to follow, has to be > rewritten, but he is ignoring just PERF_RECORD_SAMPLE events, so it > will.. > >> means the resulting data file will have limited history of task events for > > ... have a complete history of task events, since PERF_RECORD_FORK, etc > are not being ignored. > > No? perf-record does not process events, it only writes to a file. If that is skipped then it skips all events regardless of type. David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/