Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp6309358imd; Wed, 31 Oct 2018 09:46:22 -0700 (PDT) X-Google-Smtp-Source: AJdET5c4GXj1IIsd/6aO9QgKbnGwc3vK19D2TLIHv9dxu1VqDmUqe6KilwBBt5Jlr7Zpa87ON4m/ X-Received: by 2002:a62:9c8c:: with SMTP id u12-v6mr4137267pfk.162.1541004382817; Wed, 31 Oct 2018 09:46:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541004382; cv=none; d=google.com; s=arc-20160816; b=CX+cc8LT/UleTBYyGj12gYHNmuYUpxkklrUBQNGwomtWQgCsL6wtUaHE6zh+X7CUio 4u0fCDwzUPgIhC8by+//XatUoSUMVwInNoil0qJog1O3rxaIhCp9ay2DU2Xi612Xxxbe ccz/vJoIOb3VV4R53gG87SQLuyamGX8RnTDljxFyLTMIvqOu18JUUn+V/r0XxD7wIsES UKM99DBk0v1et+Zdpu44r1ELduvpY00MA+Jx5spQ3Kc4mMgalgzsGDhIGuHWHsqfHHGn f/BjdEdj65rUjFv9cXSPpiHbQ6G0h5gNcrGJRAugdKCrukwUhPKMPE6qciErphZdpxlj oE6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=5oAL7qj+WHTJo7WxuFDz6XUteEiH6s2xnz0PfUl/amE=; b=A4dfopLBjS07xR1qM99nrTd7TpkliMG7f6NodIzy5XQE13xLZjuBAUxf7WmJ+cOOBl Sk6bzQbTBuyqxUOw+EBdhfsucIHgvsCHpiVlAbf0BSCvIBj4P7IdLWhfX6urSWAMwKFE S3ayaYUDYCzksqXk31inudYmIyYhxsRgIm11ARfdD93/448gQnQ0PHjJGAUkhmOhsuXo +dGziZecGAoLMdh9Hikn/7vZyIZihWXr6sPssPgiLD6PDGIizPEB7iew/qjEAq2bpALX S4PHPlCZ7yKfKwhRowfToXwiOngqG19xhmaEQwJLQI8ctFHE3CzDEcgaF22sj5VBFTlm pDpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=T5hWA862; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x8-v6si27838984pge.545.2018.10.31.09.46.06; Wed, 31 Oct 2018 09:46:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=T5hWA862; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729925AbeKABoS (ORCPT + 99 others); Wed, 31 Oct 2018 21:44:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:58748 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729341AbeKABoS (ORCPT ); Wed, 31 Oct 2018 21:44:18 -0400 Received: from jouet.infradead.org (unknown [179.97.41.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8EAEA20821; Wed, 31 Oct 2018 16:45:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541004330; bh=xvRiPVjZTvt1vkXbXwOpRJvoX7pvuJ98iXMHC6XDivY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T5hWA862AdQOLqQTQdEEfn5f1AQTKLM433gHZRvR7vzMGJ2j8ACpHLPoaIg8VOx0t HpnJbvli9G33Kku+eSyNc1RgiLLkJ28auGFRUe0p2vMzCCX5OQfbzaasaRv7UeFIcw IhJGRCoSHvVetJFdVHqHxwEzbugNqSoyjdhbpwpw= From: Arnaldo Carvalho de Melo To: Ingo Molnar Cc: Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , Benjamin Peterson , David Ahern , Jiri Olsa , Namhyung Kim , Wang Nan Subject: [PATCH 02/28] perf beauty: Add a generator for MS_ mount/umount's flag constants Date: Wed, 31 Oct 2018 13:44:42 -0300 Message-Id: <20181031164508.4784-3-acme@kernel.org> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20181031164508.4784-1-acme@kernel.org> References: <20181031164508.4784-1-acme@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnaldo Carvalho de Melo It'll use tools/include copy of linux/fs.h to generate a table to be used by tools, initially by the 'mount' and 'umount' beautifiers in 'perf trace', but that could also be used to translate from a string constant to the integer value to be used in a eBPF or tracefs tracepoint filter. When used without any args it produces: $ tools/perf/trace/beauty/mount_flags.sh static const char *mount_flags[] = { [1 ? (ilog2(1) + 1) : 0] = "RDONLY", [2 ? (ilog2(2) + 1) : 0] = "NOSUID", [4 ? (ilog2(4) + 1) : 0] = "NODEV", [8 ? (ilog2(8) + 1) : 0] = "NOEXEC", [16 ? (ilog2(16) + 1) : 0] = "SYNCHRONOUS", [32 ? (ilog2(32) + 1) : 0] = "REMOUNT", [64 ? (ilog2(64) + 1) : 0] = "MANDLOCK", [128 ? (ilog2(128) + 1) : 0] = "DIRSYNC", [1024 ? (ilog2(1024) + 1) : 0] = "NOATIME", [2048 ? (ilog2(2048) + 1) : 0] = "NODIRATIME", [4096 ? (ilog2(4096) + 1) : 0] = "BIND", [8192 ? (ilog2(8192) + 1) : 0] = "MOVE", [16384 ? (ilog2(16384) + 1) : 0] = "REC", [32768 ? (ilog2(32768) + 1) : 0] = "SILENT", [16 + 1] = "POSIXACL", [17 + 1] = "UNBINDABLE", [18 + 1] = "PRIVATE", [19 + 1] = "SLAVE", [20 + 1] = "SHARED", [21 + 1] = "RELATIME", [22 + 1] = "KERNMOUNT", [23 + 1] = "I_VERSION", [24 + 1] = "STRICTATIME", [25 + 1] = "LAZYTIME", [26 + 1] = "SUBMOUNT", [27 + 1] = "NOREMOTELOCK", [28 + 1] = "NOSEC", [29 + 1] = "BORN", [30 + 1] = "ACTIVE", [31 + 1] = "NOUSER", }; $ Cc: Adrian Hunter Cc: Benjamin Peterson Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-mgutbbkmip9gfnmd28ikg7xt@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/trace/beauty/mount_flags.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 tools/perf/trace/beauty/mount_flags.sh diff --git a/tools/perf/trace/beauty/mount_flags.sh b/tools/perf/trace/beauty/mount_flags.sh new file mode 100755 index 000000000000..45547573a1db --- /dev/null +++ b/tools/perf/trace/beauty/mount_flags.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# SPDX-License-Identifier: LGPL-2.1 + +[ $# -eq 1 ] && header_dir=$1 || header_dir=tools/include/uapi/linux/ + +printf "static const char *mount_flags[] = {\n" +regex='^[[:space:]]*#[[:space:]]*define[[:space:]]+MS_([[:alnum:]_]+)[[:space:]]+([[:digit:]]+)[[:space:]]*.*' +egrep $regex ${header_dir}/fs.h | egrep -v '(MSK|VERBOSE|MGC_VAL)\>' | \ + sed -r "s/$regex/\2 \2 \1/g" | sort -n | \ + xargs printf "\t[%s ? (ilog2(%s) + 1) : 0] = \"%s\",\n" +regex='^[[:space:]]*#[[:space:]]*define[[:space:]]+MS_([[:alnum:]_]+)[[:space:]]+\(1<<([[:digit:]]+)\)[[:space:]]*.*' +egrep $regex ${header_dir}/fs.h | \ + sed -r "s/$regex/\2 \1/g" | \ + xargs printf "\t[%s + 1] = \"%s\",\n" +printf "};\n" -- 2.14.4