Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp3389420pxy; Tue, 4 May 2021 00:36:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwnzQel8VQFrNSWkFSPdFiHuJK2XmUN3MAas8LY67mYA+iZQW0boVfLLu9822xDhOyiX1Ea X-Received: by 2002:a63:5757:: with SMTP id h23mr4353296pgm.279.1620113760771; Tue, 04 May 2021 00:36:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620113760; cv=none; d=google.com; s=arc-20160816; b=Feqplo+KWrLfaYesTfQV02rS6gdKSE4GwpPda6EVy0KVAMYHIIYQHF39f5nmQY8AvR kWlbbFG2YMTLTxlDIDOWd1p37tWTbNKQR4JmXx5izbB6LYcBmnGLRAcY91z6lY8ljeQF JCmEcFG/gzgXgj8yjVcxoDOUHemSp98zmkt73x+UX1i8MqZGpTfb0wO7JsdnHaRIFFsD fNfUWO1scUnIqZblSDmDqH1PoYCvLrEKLOlESuNsGNwtF8C3ZxnOAvUX7EX14oCogAYJ L9vdS0VkH6VyFVwUMatz310eA/hq89r75nXcuykvR5fB7vbBeaJKqYtQDZ/KbTIzJ1bE bsyA== 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=KtB3iWG4xtRTmiY7cVCtElUOKLhxOwRwF6Wn0N/f2+I=; b=A4Qhpi90wvLx40UG4moU4Guo9KUmLriKzYR+KagwiTWtRYxTFDR+EOZZIeuD82zmzx f9MvfX58q/eGbJJTD5delC6B7eJIsFSRSmYIOhLJV/aEXUaS6V+XYV9WiJfSBVqRp1vc pRxuPkrjYNwbwvHvbLPSN8DZpAm48msY7UYLKEbgDkNWF7ucVTLsA94keeT7ny971QU+ t+j1lBqyO5Dhx23OazwYHgIXlYus2Fa0X6sL2n5acIEt7lFe7Nxz/gNAWjbV4m/x0YW3 1SdzOQiOh0ooJWLyC6CjTgi2O2QAgKWgDsZo2Zxo0m9JskKx0FRTGpHAHTQXfSvxrZxf 5bng== 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 r64si9836969pfc.234.2021.05.04.00.35.47; Tue, 04 May 2021 00:36:00 -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 S230003AbhEDHG0 (ORCPT + 99 others); Tue, 4 May 2021 03:06:26 -0400 Received: from mga11.intel.com ([192.55.52.93]:41320 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229999AbhEDHGZ (ORCPT ); Tue, 4 May 2021 03:06:25 -0400 IronPort-SDR: erow1ct98Pq7cvCY/VzjTj4D/0zbAy22h4waFOVNvaxfbSKPVS6Lav2GZJ1pzqwYlvlns3Dh8w URikwaTpkhKw== X-IronPort-AV: E=McAfee;i="6200,9189,9973"; a="194779391" X-IronPort-AV: E=Sophos;i="5.82,271,1613462400"; d="scan'208";a="194779391" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 May 2021 00:05:30 -0700 IronPort-SDR: SMHS0vqS+txAwrR9MP9Wqh3UKni2pnG95yAUKRvBO2eN+LFhqECGrudJKjqRc9Qp9rn6IQjsDn tCsSWPxGB61g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,271,1613462400"; d="scan'208";a="450895354" Received: from nntpat99-84.inn.intel.com ([10.125.99.84]) by fmsmga004.fm.intel.com with ESMTP; 04 May 2021 00:05:27 -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 v5 06/20] perf record: introduce data file at mmap buffer object Date: Tue, 4 May 2021 10:04:41 +0300 Message-Id: <2a22322b5bfa3b37d940d5c10347810875cf8530.1619781188.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 baf9646c4ac9..b0ca61f1d265 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