From: Hui Wang <hui.wang@canonical.com>
To: Steven Rostedt <rostedt@goodmis.org>,
"Masami Hiramatsu (Google)" <mhiramat@kernel.org>
Cc: mathieu.desnoyers@efficios.com, pjw@kernel.org,
linux-trace-kernel@vger.kernel.org, shuah@kernel.org,
wangfushuai@baidu.com, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH 1/2] ring-buffer: Fix event length with forced 8-byte alignment
Date: Tue, 9 Jun 2026 12:22:47 +0800 [thread overview]
Message-ID: <ea9d00cb-54c6-4635-aa13-e5a688375132@canonical.com> (raw)
In-Reply-To: <20260608125254.2598ef4e@fedora>
On 6/9/26 00:52, Steven Rostedt wrote:
> On Mon, 8 Jun 2026 18:02:45 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
>
>> On Sun, 7 Jun 2026 15:24:30 +0800
>> Hui Wang <hui.wang@canonical.com> wrote:
>>
>>> When RB_FORCE_8BYTE_ALIGNMENT is true, rb_calculate_event_length()
>>> reserves the space of event->array[0] for placing the data length and
>>> rb_update_event() stores the data length in event->array[0]
>>> accordingly. As a result the whole event length will add extra 4 bytes
>>> for sizeof(event.array[0]) unconditionally.
>>>
>>> But ring_buffer_event_length() only subtracts the
>>> sizeof(event->array[0]) for events larger than RB_MAX_SMALL_DATA +
>>> sizeof(event->array[0]). As a result, small events on architectures
>>> with RB_FORCE_8BYTE_ALIGNMENT=true report a data length that is 4
>>> bytes larger than expected.
>>>
>>> To fix it, add the RB_FORCE_8BYTE_ALIGNMENT as a condition to subtract
>>> the size of that length field whenever RB_FORCE_8BYTE_ALIGNMENT is
>>> true.
>>>
>>> This issue is observed in a riscv64 kernel with
>>> CONFIG_HAVE_64BIT_ALIGNED_ACCESS set to y, when we run ftrace selftest
>>> trace_marker_raw.tc, we get the weird log: for cases where the id is
>>> 1..100, the number of data field is 8*N, but once id exceeds 100, the
>>> number of data field becomes 8*N+4:
>>> # 1 buf: 58 00 00 00 80 5e d1 63 (number of data field is 8*1)
>>> ...
>>> # a buf: 58 ... (number of data field is 8*2)
>>> ...
>>> # 64 buf: 58 ... (number of data field is 8*13)
>>> # 65 buf: 58 ... (number of data field is 8*13+4)
>>>
>>> After applying this change, the number of data field keeps being 8*N+4
>>> consistently.
>>>
>> Good catch!
>>
>> This looks good to me.
>>
>> Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> This is the patch I meant to reply to.
>
> NACK as the test is broken and not the kernel.
>
> There's a pending fix already:
>
> https://lore.kernel.org/all/20260601023251.1916483-1-dtcccc@linux.alibaba.com/
>
>
> -- Steve
Hi Steven,
Thanks for the pointer. I reverted my two patches and applied the patch
you referenced, but unfortunately it doesn't resolve the problem — the
testcase still fails in my environment (riscv64 kernel with
CONFIG_HAVE_64BIT_ALIGNED_ACCESS enabled).
From what I can tell, that fix addresses a different problem than the
one I'm hitting: it targets a 64K page-size issue, whereas my failure is
caused by the 64-bit alignment requirement
(CONFIG_HAVE_64BIT_ALIGNED_ACCESS). So I don't think they're the same
root cause.
So can you please take a look at them again.
Thanks,
Hui.
next prev parent reply other threads:[~2026-06-09 4:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-07 7:24 [PATCH 0/2] ring-buffer: Fix forced 8-byte alignment event length Hui Wang
2026-06-07 7:24 ` [PATCH 1/2] ring-buffer: Fix event length with forced 8-byte alignment Hui Wang
2026-06-08 9:02 ` Masami Hiramatsu
2026-06-08 16:52 ` Steven Rostedt
2026-06-09 4:22 ` Hui Wang [this message]
2026-06-07 7:24 ` [PATCH 2/2] selftests/ftrace: Account for 8-byte aligned trace_marker_raw events Hui Wang
2026-06-08 9:17 ` Masami Hiramatsu
2026-06-08 14:51 ` Hui Wang
2026-06-08 16:50 ` Steven Rostedt
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=ea9d00cb-54c6-4635-aa13-e5a688375132@canonical.com \
--to=hui.wang@canonical.com \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=pjw@kernel.org \
--cc=rostedt@goodmis.org \
--cc=shuah@kernel.org \
--cc=wangfushuai@baidu.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox