Re: [PATCH] mm/debug: Use BUILD_BUG_ON_INVALID() for VIRTUAL_BUG_ON()

From: Tal Zussman
Date: Sat Jun 07 2025 - 12:22:33 EST


On Sat, Jun 7, 2025 at 3:59 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
> On 07.06.25 09:09, Tal Zussman wrote:
> > This allows the compiler to validate the condition even with
> > CONFIG_DEBUG_VIRTUAL disabled, and aligns VIRTUAL_BUG_ON() with the
> > other macros in mmdebug.h.
> >
>
> In the light of recent discussions, I think we should get rid of
> VIRTUAL_BUG_ON completely.
>
> There are only a hand full of callers, and I am preety sure for most of
> them VM_WARN_ON is a suitable replacement.

Makes sense. However, all of the callers (except for vmalloc) are already
gated by CONFIG_DEBUG_VIRTUAL, which doesn't depend on CONFIG_DEBUG_VM, so
using VM_WARN_ON_ONCE() would break DEBUG_VIRTUAL on its own.

Perhaps it makes sense to convert the non-vmalloc callers to WARN_ON_ONCE()
instead so DEBUG_VIRTUAL still works. The vmalloc caller would then become

if (IS_ENABLED(CONFIG_DEBUG_VIRTUAL))
WARN_ON_ONCE(...);

as opposed to VM_WARN_ON_ONCE(), in order to maintain the existing
DEBUG_VIRTUAL behavior.

Alternatively, DEBUG_VIRTUAL could be folded into DEBUG_VM, but that seems
like a slightly more invasive change...

Thanks,
Tal