Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1013052pxb; Tue, 17 Aug 2021 01:26:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy74N5ZTC4MbxeCKFgCJSuOSjWnBeJU8/AmI9IlIF0hYLm6KyfsiBZaqKX/oBdol2DZ5N/p X-Received: by 2002:a17:906:704e:: with SMTP id r14mr2676229ejj.293.1629188786366; Tue, 17 Aug 2021 01:26:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629188786; cv=none; d=google.com; s=arc-20160816; b=MWUoBAEUcLO0EqhCEII1V1LpxjcqjW5OeVVzrZtvAhwlf99WwQU44ad9DNeeQC94V1 XWl2MxEoorhTfTzRnBce1kKn3VgkTrv826Gef9ZVKra6CZ4liEWWSuE5Mk0971xZfhcG 0/xWpdS12facRBWyPhujo8subQ6LTdHQW97pzV8a/baW9FjlKuPdKP9RpYgMyvCG2rtQ fbiCjArh1zkUSng4GKA1K6e4ikdIh04D1jKl4gIduct7WrwzTk+GUTXNX2RwD0by9K8L nd3zVWAVtR0bYpE0PufGIEcuu2SpT+fO7dpFlREEkOcnDuBzjy1t8SX0caYheZT4Jbi2 C3sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=acJuD4bX76fgnnELSi7yVZ0lroyxTXetbsws66LqxiU=; b=gaKKUnSpkWyRe/C2z6gVg2yJgJpfP0CZ14hsGmqXankTdK9OAdz+kauQHeJv2+e9F7 LTWQm/Ewm0V2o4UReSnZWIBGpKrZKJB+ENmHhBNU8Z5kgBVo4wXKIrhWIb2YMgXfgsDf LWLXStUKGMdVnJj3JGy5teDthaB1Q8g0xotbS7Ag20vVQ2TDQf20s+OlfPGHVMBOIkDG 7nitnuT72dSGa6lM1nikzNpaf63oEZZuOyg2I45X9pLwQFZ1IbKM5PkFNO6VHBLoYbht 1JQaFwUHz9NHqMh/+ToSXxp5QUNY9rmAAyRX+JpCLDcVx70ZwUryHk7oyjBIcQaTVz5e 4NfQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lu2si1667178ejb.166.2021.08.17.01.26.03; Tue, 17 Aug 2021 01:26:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239295AbhHQIYp (ORCPT + 99 others); Tue, 17 Aug 2021 04:24:45 -0400 Received: from mga07.intel.com ([134.134.136.100]:11537 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239300AbhHQIY3 (ORCPT ); Tue, 17 Aug 2021 04:24:29 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10078"; a="279763221" X-IronPort-AV: E=Sophos;i="5.84,328,1620716400"; d="scan'208";a="279763221" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Aug 2021 01:23:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,328,1620716400"; d="scan'208";a="471080254" Received: from nntpat99-84.inn.intel.com ([10.125.99.84]) by orsmga008.jf.intel.com with ESMTP; 17 Aug 2021 01:23:54 -0700 From: Alexey Bayduraev To: Arnaldo Carvalho de Melo Cc: Jiri Olsa , Namhyung Kim , Alexander Shishkin , Peter Zijlstra , Ingo Molnar , linux-kernel , Andi Kleen , Adrian Hunter , Alexander Antonov , Alexei Budankov , Riccardo Mancini Subject: [PATCH v11 08/24] perf record: Introduce data file at mmap buffer object Date: Tue, 17 Aug 2021 11:23:11 +0300 Message-Id: X-Mailer: git-send-email 2.19.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce data file and compressor objects into mmap object so they could be used to process and store data stream from the corresponding kernel data buffer. Make use of the introduced per mmap file and compressor when they are initialized and available. Acked-by: Andi Kleen Acked-by: Namhyung Kim Signed-off-by: Alexey Bayduraev --- tools/perf/builtin-record.c | 3 +++ tools/perf/util/mmap.c | 10 ++++++++++ tools/perf/util/mmap.h | 3 +++ 3 files changed, 16 insertions(+) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index fb1c1b46dd04..eff6f8db60b2 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -197,6 +197,9 @@ static int record__write(struct record *rec, struct mmap *map __maybe_unused, { struct perf_data_file *file = &rec->session->data->file; + if (map && map->file) + file = map->file; + if (perf_data_file__write(file, bf, size) < 0) { pr_err("failed to write perf data, error: %m\n"); return -1; diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c index ab7108d22428..b693b828a840 100644 --- a/tools/perf/util/mmap.c +++ b/tools/perf/util/mmap.c @@ -230,6 +230,10 @@ void mmap__munmap(struct mmap *map) { bitmap_free(map->affinity_mask.bits); +#ifndef PYTHON_PERF + zstd_fini(&map->zstd_data); +#endif + perf_mmap__aio_munmap(map); if (map->data != NULL) { munmap(map->data, mmap__mmap_len(map)); @@ -291,6 +295,12 @@ int mmap__mmap(struct mmap *map, struct mmap_params *mp, int fd, int cpu) map->core.flush = mp->flush; map->comp_level = mp->comp_level; +#ifndef PYTHON_PERF + if (zstd_init(&map->zstd_data, map->comp_level)) { + pr_debug2("failed to init mmap commpressor, error %d\n", errno); + return -1; + } +#endif if (map->comp_level && !perf_mmap__aio_enabled(map)) { map->data = mmap(NULL, mmap__mmap_len(map), PROT_READ|PROT_WRITE, diff --git a/tools/perf/util/mmap.h b/tools/perf/util/mmap.h index 9d5f589f02ae..c4aed6e89549 100644 --- a/tools/perf/util/mmap.h +++ b/tools/perf/util/mmap.h @@ -13,6 +13,7 @@ #endif #include "auxtrace.h" #include "event.h" +#include "util/compress.h" struct aiocb; @@ -43,6 +44,8 @@ struct mmap { struct mmap_cpu_mask affinity_mask; void *data; int comp_level; + struct perf_data_file *file; + struct zstd_data zstd_data; }; struct mmap_params { -- 2.19.0