[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250107180224.54c3d3c6@gandalf.local.home>
Date: Tue, 7 Jan 2025 18:02:24 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: Shiju Jose <shiju.jose@...wei.com>
Cc: "mhiramat@...nel.org" <mhiramat@...nel.org>,
"mathieu.desnoyers@...icios.com" <mathieu.desnoyers@...icios.com>,
"linux-trace-kernel@...r.kernel.org" <linux-trace-kernel@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Linuxarm
<linuxarm@...wei.com>, Jonathan Cameron <jonathan.cameron@...wei.com>,
tanxiaofei <tanxiaofei@...wei.com>, "Zengtao (B)"
<prime.zeng@...ilicon.com>
Subject: Re: [PATCH 1/1] tracing: Support reading trace event format file
larger than PAGE_SIZE
On Tue, 7 Jan 2025 11:04:57 +0000
Shiju Jose <shiju.jose@...wei.com> wrote:
> Please find attached format file, which might have failed to parse because of the
> unsupported formats in the libtraceevent you mentioned in the following thread.
> https://lore.kernel.org/lkml/20241127104132.6c1729e1@gandalf.local.home/#t
>
> Please find the improvement in the libraceevent which I mentioned for not returning error
> when parsing failed,
> ===========================================
> diff --git a/src/event-parse.c b/src/event-parse.c index 0427061..b9264cb 100644
> --- a/src/event-parse.c
> +++ b/src/event-parse.c
> @@ -7905,9 +7905,14 @@ __parse_event(struct tep_handle *tep,
> const char *buf, unsigned long size,
> const char *sys)
> {
> - int ret = parse_format(eventp, tep, buf, size, sys);
> - struct tep_event *event = *eventp;
> + int ret;
> + struct tep_event *event;
> +
> + ret = parse_format(eventp, tep, buf, size, sys);
> + if (ret)
> + return ret;
>
> + event = *eventp;
> if (event == NULL)
> return ret;
Actually, this is the proper patch:
diff --git a/src/event-parse.c b/src/event-parse.c
index 33ed7fb47fff..f2e50b0e8992 100644
--- a/src/event-parse.c
+++ b/src/event-parse.c
@@ -7841,7 +7841,7 @@ static enum tep_errno parse_format(struct tep_event **eventp,
ret = event_read_format(event);
if (ret < 0) {
ret = TEP_ERRNO__READ_FORMAT_FAILED;
- goto event_parse_failed;
+ goto event_alloc_failed;
}
/*
As it's OK if it returns that it failed to parse the print format, as it
can still read the event. But if it fails to read the fields, then it is
basically useless.
-- Steve
Powered by blists - more mailing lists