Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp1505384pxv; Fri, 2 Jul 2021 05:34:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzBDaYZketHvbTeZ/AXU4Ke1kUAzWzX1u9TZo1G3fX6H4p1Q7BZ5iwSuZiugkTD4f7+a1ik X-Received: by 2002:aa7:d9c9:: with SMTP id v9mr6472357eds.42.1625229294635; Fri, 02 Jul 2021 05:34:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625229294; cv=none; d=google.com; s=arc-20160816; b=iwiVSypbZ+Ov5Ys6OR7fKbv9HJDWcX/nc/vxSpFDBoBl4BEXkT6JNYvjPjt5NjjFiM RMaM8rupEuRjPuLQRgJnaWEuuLnwy6drdIg6ae3+DNqhzZFfpaRpWK2GJ0xpZvzCYxwe G7OqBh2Q7QcKD4Qec9RecR/UiD5A3SJcXRVvlQZfin31nWCTQSYTPbcLljdR9XHi9S0X 5CcK3KUKa2CX+a2mSZLHg9N1uCIKGCa3vj8J0a5aHn4y4NbZ4EoiiXs37D+7XcmRTUez B6GZoOrF3L6OqgMyQEXQJP0s8aI/WkaiVjuFaoJW+d/S34/z7uN0XKd68ObhSzBlSTdU w36A== 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=UE6fsldsxY4eyNbms63WEksNieOdZWQ1RORD2v2wZwQ=; b=DTs3rNMio1jGdaKv4JHRjLvShf5fkdpCoz2vuwC9+YLeRnQQsKmzUkwW91pB9bTFxd N3a+F1klO2oWVYhNK2MzWrh9jRGwZCcV8E2Q7Tos5onCD9gKMkaA/LtY394WZTgMZDwh or0GJYQQtUoyfVipASbhabqJiq71ZWpqmHYThnmwSiJ6Xa25V6RCvmG1fNjAtv2fGaUi ia2EVRee6k9EAvi8GI7xA/2lgCjICbgUBn7xteRKQn4VX4tp3APVkr2IghBJvuiyxBL4 c3G5lMcGnULq/dKETVJALvAdFKPvRjDED8XGBf3u2Bt75tNVraLIDryPrqax9jDzNDI/ iZcQ== 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 n2si4196396ejl.693.2021.07.02.05.34.31; Fri, 02 Jul 2021 05:34:54 -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 S232375AbhGBMfh (ORCPT + 99 others); Fri, 2 Jul 2021 08:35:37 -0400 Received: from mga01.intel.com ([192.55.52.88]:3514 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232356AbhGBMfd (ORCPT ); Fri, 2 Jul 2021 08:35:33 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10032"; a="230397115" X-IronPort-AV: E=Sophos;i="5.83,317,1616482800"; d="scan'208";a="230397115" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2021 05:33:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,317,1616482800"; d="scan'208";a="642660238" Received: from nntpat99-84.inn.intel.com ([10.125.99.84]) by fmsmga006.fm.intel.com with ESMTP; 02 Jul 2021 05:32:58 -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 v9 08/24] perf record: Introduce data file at mmap buffer object Date: Fri, 2 Jul 2021 15:32:16 +0300 Message-Id: <3c2a7ec01bbdf76b45fa68f51bb5bcb60e1129e8.1625227739.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 Acked-by: Namhyung Kim 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 8be20d8f73fc..ac9bc1bbdff4 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..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