Re: [PATCH 7/7] Remove expensive WARN_ON in pagefault_disabled_dec
From: Andrew Morton
Date: Wed Mar 15 2017 - 17:49:10 EST
On Tue, 14 Mar 2017 19:14:31 -0700 Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> pagefault_disabled_dec is frequently used inline, and it has a WARN_ON
> for underflow that expands to about 6.5k of extra code. The warning
> doesn't seem to be that useful and worth so much code so remove it.
>
> If it was needed could make it depending on some debug kernel option.
>
> Saves ~6.5k in my kernel
>
> text data bss dec hex filename
> 9039417 5367568 11116544 25523529 1857549 vmlinux-before-pf
> 9032805 5367568 11116544 25516917 1855b75 vmlinux-pf
>
> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> ---
> include/linux/uaccess.h | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
> index f30c187ed785..b691aad918fb 100644
> --- a/include/linux/uaccess.h
> +++ b/include/linux/uaccess.h
> @@ -12,7 +12,6 @@ static __always_inline void pagefault_disabled_inc(void)
> static __always_inline void pagefault_disabled_dec(void)
> {
> current->pagefault_disabled--;
> - WARN_ON(current->pagefault_disabled < 0);
> }
Fair enough. We could switch to VM_WARN_ON but apparently even that is now
being enabled in some production systems, which somewhat defeats its
intent...