Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp437132pxv; Wed, 30 Jun 2021 08:58:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAEcV6B+CwiwXt+mhciSu4YshcVVKI8Acvcaj2t64if0Yp9xnwHtdKjOVWY6aVqFP7/6Vc X-Received: by 2002:a05:6402:448:: with SMTP id p8mr34221918edw.60.1625068681165; Wed, 30 Jun 2021 08:58:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625068681; cv=none; d=google.com; s=arc-20160816; b=xYzyQTi34yyOK9WdPfyTIxain+NMGFJedBZzcvHkZSt3EX5tz9Auy6dL4nzYuyll0k ZdKdvQw/nyGBndfk1jO86XQGbdP/PhG8h0LHWa7mADJOxAwj+zSK/otQl9hwyIizBvtc A8AsrKqOmTzTj9pYvcO/c50UXq+OjQjRSdmJAs9OtEQZ2SV07OzKdM8zl0dMNo5Xh/Is kl60/qp3cgyPq72dATECH+2sg3o5Bn/fCzmIm1RAKmacGF1dW/MUAOOxJopKVImZyvSC aDluUQB7ZvejYUt3cQIg6RFhUyMHsG3qh01HeLBNlv2w09PqLXFWmMVwfwBIAOtAVvf8 J0eQ== 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=nGmlOjG8uXeEehJ9YITfMf0IoW9VCYCDRPSeyhjotZ0=; b=mxhKoYPD830aV47sGZvnI5BtXnGgsqz9WrPriS8DmxJtqGWOizzEWxJ5OtbCXUqXAM PYQWpIcXoAHKnq0XQrAG5BQ6qNKor3mSdGb1HUomeNB4JuZA0jT37+acPo7oqEW2nyGW aYxi9THJmHljl7O6D7+JFTW14Qip0LNlWUtAczsoj/8dQqrAVSt18cRN9C3dSEUogj8D y/+7u+9uf7wdGip62GdWKUUQlQRpY63tu9dVDh/ouPzb85Kc1ySS4+hM05APOHrqW40b JBkL0jEHrE1PfSmLDE7YXOW5JPYUr2P2LgQy72aawU8/DCcnoVgrHlps532TUYE+t1mn 8jjA== 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 y8si15780884eda.170.2021.06.30.08.57.37; Wed, 30 Jun 2021 08:58:01 -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 S236010AbhF3P6k (ORCPT + 99 others); Wed, 30 Jun 2021 11:58:40 -0400 Received: from mga01.intel.com ([192.55.52.88]:3990 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236005AbhF3P6h (ORCPT ); Wed, 30 Jun 2021 11:58:37 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10031"; a="230015623" X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="230015623" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2021 08:55:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,312,1616482800"; d="scan'208";a="559099623" Received: from nntpat99-84.inn.intel.com ([10.125.99.84]) by fmsmga001.fm.intel.com with ESMTP; 30 Jun 2021 08:55:22 -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 v8 06/22] perf record: Introduce data file at mmap buffer object Date: Wed, 30 Jun 2021 18:54:45 +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 | 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 cead2b3c56d7..9b7e7a5dc116 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