Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5139996pxj; Wed, 26 May 2021 03:55:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOCx9lz2wqvDd/YI4ChXX15/K8lE5ON2tNEWEOogLz21WqxU4ttRHHsDXVLPkQ1TExjEPR X-Received: by 2002:a17:906:2dd4:: with SMTP id h20mr33051393eji.131.1622026534895; Wed, 26 May 2021 03:55:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622026534; cv=none; d=google.com; s=arc-20160816; b=RTAZrrZRNPBfRXDkYpoJYYKtL+3Cv/h4/Rpgo1LXc3hv3ipIYJhHjTu9bNMm2heDSc KXoaHyMVfHewHpMo1kV0UuOnV1itL5FF6OtujP5lzWL+0BjbYxz/DQ8V6E6fdUg5GwnP c7ICbkG4JuQtInqtk9zt4vjsBhnvrAIv4KCxLFN4PuY9YECaHXj/COpFvP3ReJxr6CR/ 9DNpizcjtD+QQ1mTUJk2JfbY/zAkX2qzbmLLLcpG4m8DvN4mj9YNAg/b/TOKooNFuY9c dOPhv+0w7v5aMKysvV8EpTftkWepE3CPFEjs1ST/8bB3naYxHww4vtQGAcuDaou/rBIb orZA== 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 :ironport-sdr:ironport-sdr; bh=d9T8MKytMBcX/fLS2s8Bj95E+O3wk2MhoKu2/dkWHCE=; b=CRJ7mBVTbMqNwM0qQVJljlhwnbG1TAfcp1dDTIMDSuUJdXFBgbfsInH1AB0vqk41/n OHtUZscHRqaKyH1I/EpZVIJ/j97qXtGXLtqLsmpnDheQq1hcsZ1AKa1bKuhzkehidDBd pigVNDpdHAuucZDfglWLu/pkS9POP6kgNHC5lKl2ZBuLlRdo23Q1lYGzh3hZBJS37dF4 5NB+YIMmf/AYuGy16jgEPTDvdvfFS7hj3ebwHGYjZtv3pmGOlsWDZN5odaISYiU7Kj1X kQSE3jXlHBmZpYPK9KCfUT4FpD6z1S68bNycshZP1+Tw8P1AMo/qAnWmxAlqH1YIN8+E GZ5w== 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 m9si20864239ejj.281.2021.05.26.03.55.11; Wed, 26 May 2021 03:55:34 -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 S234296AbhEZKzY (ORCPT + 99 others); Wed, 26 May 2021 06:55:24 -0400 Received: from mga02.intel.com ([134.134.136.20]:1577 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234256AbhEZKzK (ORCPT ); Wed, 26 May 2021 06:55:10 -0400 IronPort-SDR: mZ1rLP/A/U0l6GzVkC7a44ad7SPN9Jjl+dAkIHD414nxQ0eh2hjI/IQ/7VPsJgNLohIfUnGYmf GGlHByWTVGUg== X-IronPort-AV: E=McAfee;i="6200,9189,9995"; a="189556432" X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="189556432" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2021 03:53:35 -0700 IronPort-SDR: 4ejDZAzDbp9KIQb49t9vUEmlaKiI+B0wy2C3Dl9KFQFq3qMnTAoQmJzG875b1jZDN//ZqgR/W1 ZrkD/8Xow3hg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,331,1613462400"; d="scan'208";a="436079208" Received: from nntpat99-84.inn.intel.com ([10.125.99.84]) by orsmga007.jf.intel.com with ESMTP; 26 May 2021 03:53:33 -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 Subject: [PATCH v6 06/20] perf record: Introduce data file at mmap buffer object Date: Wed, 26 May 2021 13:52:59 +0300 Message-Id: <40ee53dd4552b796e4ecb3f74c1f1590116e6c31.1622025774.git.alexey.v.bayduraev@linux.intel.com> 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 Signed-off-by: Alexey Bayduraev --- tools/perf/builtin-record.c | 3 +++ tools/perf/util/mmap.c | 6 ++++++ tools/perf/util/mmap.h | 3 +++ 3 files changed, 12 insertions(+) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 88fad12cbe5b..a43b96ecea9e 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -190,6 +190,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..a2c5e4237592 100644 --- a/tools/perf/util/mmap.c +++ b/tools/perf/util/mmap.c @@ -230,6 +230,8 @@ void mmap__munmap(struct mmap *map) { bitmap_free(map->affinity_mask.bits); + zstd_fini(&map->zstd_data); + perf_mmap__aio_munmap(map); if (map->data != NULL) { munmap(map->data, mmap__mmap_len(map)); @@ -291,6 +293,10 @@ 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; + if (zstd_init(&map->zstd_data, map->comp_level)) { + pr_debug2("failed to init mmap commpressor, error %d\n", errno); + return -1; + } 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