From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Dmitry Monakhov <dmonakhov@gmail.com>
Cc: linux-ext4@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 1/2] ext4: fix symbolic enum printing in trace output
Date: Thu, 14 Nov 2019 13:01:17 -0800 [thread overview]
Message-ID: <20191114210117.GC6213@magnolia> (raw)
In-Reply-To: <20191114200147.1073-1-dmonakhov@gmail.com>
On Thu, Nov 14, 2019 at 08:01:46PM +0000, Dmitry Monakhov wrote:
> Trace's macro __print_flags() produce raw event's decraration w/o knowing actual
> flags value
>
> cat /sys/kernel/debug/tracing/events/ext4/ext4_ext_map_blocks_exit/format
> ..
> __print_flags(REC->mflags, "", { (1 << BH_New),
>
> For that reason we have to explicitly define it via special macro TRACE_DEFINE_ENUM()
> Also add missed EXTENT_STATUS_REFERENCED flag.
>
> #Before patch
> ext4:ext4_ext_map_blocks_exit: dev 253,0 ino 2 flags lblk 0 pblk 4177 len 1 mflags 0x20 ret 1
> ext4:ext4_ext_map_blocks_exit: dev 253,0 ino 12 flags CREATE lblk 0 pblk 34304 len 1 mflags 0x60 ret 1
>
> #With patch
> ext4:ext4_ext_map_blocks_exit: dev 253,0 ino 2 flags lblk 0 pblk 4177 len 1 mflags M ret 1
> ext4:ext4_ext_map_blocks_exit: dev 253,0 ino 12 flags CREATE lblk 0 pblk 34816 len 1 mflags NM ret 1
>
> Signed-off-by: Dmitry Monakhov <dmonakhov@gmail.com>
> ---
> include/trace/events/ext4.h | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
> index 182c9fe..3bf7128 100644
> --- a/include/trace/events/ext4.h
> +++ b/include/trace/events/ext4.h
> @@ -48,6 +48,16 @@ struct partial_cluster;
> { EXT4_GET_BLOCKS_KEEP_SIZE, "KEEP_SIZE" }, \
> { EXT4_GET_BLOCKS_ZERO, "ZERO" })
>
> +/*
> + * __print_flags() requires that all enum values be wrapped in the
> + * TRACE_DEFINE_ENUM macro so that the enum value can be encoded in the ftrace
> + * ring buffer.
> + */
> +TRACE_DEFINE_ENUM(BH_New);
> +TRACE_DEFINE_ENUM(BH_Mapped);
> +TRACE_DEFINE_ENUM(BH_Unwritten);
> +TRACE_DEFINE_ENUM(BH_Boundary);
> +
> #define show_mflags(flags) __print_flags(flags, "", \
> { EXT4_MAP_NEW, "N" }, \
> { EXT4_MAP_MAPPED, "M" }, \
> @@ -62,11 +72,18 @@ struct partial_cluster;
> { EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER,"1ST_CLUSTER" },\
> { EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER, "LAST_CLUSTER" })
>
> +TRACE_DEFINE_ENUM(ES_WRITTEN_B);
> +TRACE_DEFINE_ENUM(ES_UNWRITTEN_B);
> +TRACE_DEFINE_ENUM(ES_DELAYED_B);
> +TRACE_DEFINE_ENUM(ES_HOLE_B);
> +TRACE_DEFINE_ENUM(ES_REFERENCED_B);
I wonder if it's worth leaving a comment wherever this enum is defined
warning developers to keep this TRACE_DEFINE_NUM list (and the string
mapping) up to date?
--D
> #define show_extent_status(status) __print_flags(status, "", \
> { EXTENT_STATUS_WRITTEN, "W" }, \
> { EXTENT_STATUS_UNWRITTEN, "U" }, \
> { EXTENT_STATUS_DELAYED, "D" }, \
> - { EXTENT_STATUS_HOLE, "H" })
> + { EXTENT_STATUS_HOLE, "H" }, \
> + { EXTENT_STATUS_REFERENCED, "R" })
>
> #define show_falloc_mode(mode) __print_flags(mode, "|", \
> { FALLOC_FL_KEEP_SIZE, "KEEP_SIZE"}, \
> --
> 2.7.4
>
next prev parent reply other threads:[~2019-11-14 21:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-14 20:01 [PATCH 1/2] ext4: fix symbolic enum printing in trace output Dmitry Monakhov
2019-11-14 20:01 ` [PATCH 2/2] ext4: fix extent_status trace points Dmitry Monakhov
2020-01-25 7:03 ` Theodore Y. Ts'o
2019-11-14 21:01 ` Darrick J. Wong [this message]
2020-01-25 7:03 ` [PATCH 1/2] ext4: fix symbolic enum printing in trace output Theodore Y. Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191114210117.GC6213@magnolia \
--to=darrick.wong@oracle.com \
--cc=dmonakhov@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.