All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: "Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/5] debugobjects: Fix the misuse of global variables in fill_pool()
Date: Tue, 03 Sep 2024 13:43:00 +0200	[thread overview]
Message-ID: <87a5gp7ykb.ffs@tglx> (raw)
In-Reply-To: <5cf23898-892c-c0a6-2525-206e21732665@huawei.com>

On Tue, Sep 03 2024 at 19:14, Leizhen wrote:
> On 2024/9/3 17:37, Thomas Gleixner wrote:
>> On Tue, Sep 03 2024 at 15:00, Leizhen wrote:
>>>>> @@ -84,10 +85,7 @@ static int __data_racy                       debug_objects_fixups __read_mostly;
>>>>>  static int __data_racy                 debug_objects_warnings __read_mostly;
>>>>>  static int __data_racy                 debug_objects_enabled __read_mostly
>>>>>                                         = CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT;
>>>>> -static int __data_racy                 debug_objects_pool_size __read_mostly
>>>>> -                                       = ODEBUG_POOL_SIZE;
>>>>> -static int __data_racy                 debug_objects_pool_min_level __read_mostly
>>>>> -                                       = ODEBUG_POOL_MIN_LEVEL;
>>>>> +static int __data_racy                 obj_pool_min_free = ODEBUG_POOL_SIZE;
>>>
>>> Sorry, I rechecked it again. After this patch, obj_pool_min_free is referenced in the
>>> same way as obj_pool_max_used. The only race point is located in debug_stats_show().
>>> However, this reference point does not need to be included in the race analysis. So
>>> there is no need to add __data_racy for obj_pool_min_free.
>> 
>> The read races against the write, so KCSAN can detect it and complain, no?
>
> Oh, I just saw that there were a lot of other global variables in that function
> that didn't mask KCSAN's detection. So I'll recheck each global variable.
> However, for obj_pool_min_free, it seems that it would be better to just add
> READ_ONCE() in debug_stats_show(). This does not prevent the compiler from
> optimizing variable references in the lock.
>
> # define __data_racy volatile

This is only when KCSAN is enabled. Otherwise it's empty.

And if you do a READ_ONCE() then you need a corresponding WRITE_ONCE()
to make sense. __data_racy is much simpler for that.

Thanks,

        tglx

  reply	other threads:[~2024-09-03 11:43 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-02 14:05 [PATCH 0/5] debugobjects: Do some minor optimizations, fixes and cleaups Zhen Lei
2024-09-02 14:05 ` [PATCH 1/5] debugobjects: Fix the misuse of global variables in fill_pool() Zhen Lei
2024-09-02 16:22   ` Thomas Gleixner
2024-09-03  2:16     ` Leizhen (ThunderTown)
2024-09-03  3:22       ` Leizhen (ThunderTown)
2024-09-03  7:00         ` Leizhen (ThunderTown)
2024-09-03  9:37           ` Thomas Gleixner
2024-09-03 11:14             ` Leizhen (ThunderTown)
2024-09-03 11:43               ` Thomas Gleixner [this message]
2024-09-03 12:22                 ` Leizhen (ThunderTown)
2024-09-02 14:05 ` [PATCH 2/5] debugobjects: Remove redundant checks " Zhen Lei
2024-09-03  9:44   ` Thomas Gleixner
2024-09-03 11:23     ` Leizhen (ThunderTown)
2024-09-02 14:05 ` [PATCH 3/5] debugobjects: Don't start fill if there are remaining nodes locally Zhen Lei
2024-09-03  9:52   ` Thomas Gleixner
2024-09-03 12:06     ` Leizhen (ThunderTown)
2024-09-02 14:05 ` [PATCH 4/5] debugobjects: Use hlist_splice_init() to reduce lock conflicts Zhen Lei
2024-09-03 10:09   ` Thomas Gleixner
2024-09-03 12:14     ` Leizhen (ThunderTown)
2024-09-02 14:05 ` [PATCH 5/5] debugobjects: Delete a piece of redundant code Zhen Lei
2024-09-03 10:14   ` Thomas Gleixner

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=87a5gp7ykb.ffs@tglx \
    --to=tglx@linutronix.de \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thunder.leizhen@huawei.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 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.