[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46eca355-930c-4f6a-97cc-6787b6041a0c@redhat.com>
Date: Wed, 19 Feb 2025 22:29:14 -0500
From: Waiman Long <llong@...hat.com>
To: Steven Rostedt <rostedt@...dmis.org>, Waiman Long <llong@...hat.com>
Cc: "Masami Hiramatsu (Google)" <mhiramat@...nel.org>,
Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
Will Deacon <will@...nel.org>, Andrew Morton <akpm@...ux-foundation.org>,
Boqun Feng <boqun.feng@...il.com>, Joel Granados <joel.granados@...nel.org>,
Anna Schumaker <anna.schumaker@...cle.com>, Lance Yang
<ioworker0@...il.com>, Kent Overstreet <kent.overstreet@...ux.dev>,
Yongliang Gao <leonylgao@...cent.com>, Tomasz Figa <tfiga@...omium.org>,
Sergey Senozhatsky <senozhatsky@...omium.org>, linux-kernel@...r.kernel.org,
Linux Memory Management List <linux-mm@...ck.org>
Subject: Re: [PATCH 1/2] hung_task: Show the blocker task if the task is hung
on mutex
On 2/19/25 9:27 PM, Steven Rostedt wrote:
> On Wed, 19 Feb 2025 21:15:08 -0500
> Waiman Long <llong@...hat.com> wrote:
>
>> Writer - setting them:
>>
>> WRITE_ONCE(lock)
>> smp_wmb()
>> WRITE_ONCE(type)
>>
>> Clearing them:
>>
>> WRITE_ONCE(type, 0)
>> smp_wmb()
>> WRITE_ONCE(lock, NULL)
>>
>> Reader:
>>
>> READ_ONCE(type)
>> again:
>> smp_rmb()
>> READ_ONCE(lock)
>> smp_rmb()
>> if (READ_ONCE(type) != type)
>> goto again
> Do you really need the READ/WRITE_ONCE() with the memory barriers? From
> what I understand, the compiler can't even assume what it read is the same
> after passing a memory barrier like that. So there should be no reason it
> can reread the memory location after a barrier.
You may be right. However, without using a READ_ONCE/WRITE_ONLY, a
compiler can potentially break up the read/write into multiple smaller
trunks resulting in partial data. So I will use them to be on the safe
side. In this particular scenario above, we may not need to use them on
type as we are going to reread it. I will keep them for lock though.
Cheers,
Longman
> -- Steve
>
Powered by blists - more mailing lists