On 03/10/2017 01:45 AM, Minchan Kim wrote: > Hi Andrew, > > On Thu, Mar 09, 2017 at 01:27:06PM -0800, Andrew Morton wrote: >> On Thu, 9 Mar 2017 15:02:26 +0900 Minchan Kim <minc...@kernel.org> wrote: >> >>> Sergey reported VM_WARN_ON_ONCE returns void with !CONFIG_DEBUG_VM >>> so we cannot use it as if's condition unlike WARN_ON. >> >> Can we instead fix VM_WARN_ON_ONCE()? > > I thought the direction but the reason to decide WARN_ON_ONCE in this case > is losing of benefit with using CONFIG_DEBU_VM if we go that way. > > I think the benefit with VM_WARN_ON friends is that it should be completely > out from the binary in !CONFIG_DEBUG_VM. However, if we fix VM_WARN_ON > like WARN_ON to !!condition, at least, compiler should generate condition > check and return so it's not what CONFIG_DEBUG_VM want, IMHO. > However, if guys believe it's okay to add some instructions to debug VM > although we disable CONFIG_DEBUG_VM, we can go that way. > It's a just policy matter. ;-) > > Anyway, Even though we fix VM_WARN_ON_ONCE, in my case, WARN_ON_ONCE is > better because we should do !!condition regardless of CONFIG_DEBUG_VM > and if so, WARN_ON is more wide coverage than VM_WARN_ON which only works > with CONFIG_DEBUG_VM.
Agreed. WARN_ON...() can work that way as one can't disable them (AFAIK), but VM_* variants are optional for overhead reasons.