On 09.08.22 20:27, Linus Torvalds wrote:
I'm still reading through this, but
STOP DOING THIS
On Mon, Aug 8, 2022 at 12:32 AM David Hildenbrand david@redhat.com wrote:
VM_BUG_ON(!is_cow_mapping(vma->vm_flags));
Using BUG_ON() for debugging is simply not ok.
And saying "but it's just a VM_BUG_ON()" does not change *anything*. At least Fedora enables that unconditionally for normal people, it is not some kind of "only VM people do this".
Really. BUG_ON() IS NOT FOR DEBUGGING.
I totally agree with BUG_ON ... but if I get talked to in all-caps on a Thursday evening and feel like I just touched the forbidden fruit, I have to ask for details about VM_BUG_ON nowadays.
VM_BUG_ON is only active with CONFIG_DEBUG_VM. ... which indicated some kind of debugging at least to me. I *know* that Fedora enables it and I *know* that this will make Fedora crash.
I know why Fedora enables this debug option, but it somewhat destorys the whole purpose of VM_BUG_ON kind of nowadays?
For this case, this condition will never trigger and I consider it much more a hint to the reader that we can rest assured that this condition holds. And on production systems, it will get optimized out.
Should we forbid any new usage of VM_BUG_ON just like we mostly do with BUG_ON?
Stop it. Now.
If you have a condition that must not happen, you either write that condition into the code, or - if you are convinced it cannot happen - you make it a WARN_ON_ONCE() so that people can report it to you.
I can just turn that into a WARN_ON_ONCE() or even a VM_WARN_ON_ONCE().