[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fba5b2ca7472ea06690e4a92ba0fbd4dd8557f86.camel@gmx.de>
Date: Sun, 18 Jul 2021 17:43:05 +0200
From: Mike Galbraith <efault@....de>
To: Thomas Gleixner <tglx@...utronix.de>,
LKML <linux-kernel@...r.kernel.org>
Cc: linux-rt-users@...r.kernel.org,
Mel Gorman <mgorman@...hsingularity.net>,
Vlastimil Babka <vbabka@...e.cz>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Subject: Re: [patch] v2 mm/slub: restore/expand unfreeze_partials() local
exclusion scope
It's moot, but for the record...
@@ -2418,6 +2418,17 @@ static void __unfreeze_partials(struct k
> if (n)
> spin_unlock_irqrestore(&n->list_lock, flags);
>
> + /*
> + * If we got here via __slab_free() -> put_cpu_partial(),
> + * memcg_free_page_obj_cgroups() ->kfree() may send us
> + * back to __slab_free() -> put_cpu_partial() for an
> + * unfortunate second encounter with cpu_slab->lock.
> + */
> + if (IS_ENABLED(CONFIG_PREEMPT_RT) && memcg_kmem_enabled()) {
> + lockdep_assert_held(this_cpu_ptr(&s->cpu_slab.lock.lock));
...that assert needs to hide behind something less transparent.
-Mike
Powered by blists - more mailing lists