On Thu, Jun 13, 2019 at 07:59:32PM -0700, Florian Fainelli wrote:
> Make ARM64_MODULE_PLTS a selectable Kconfig symbol, since some people
> might have very big modules spilling out of the dedicated module area
> into vmalloc. Help text is copied from the ARM 32-bit counterpart.
> 
> Signed-off-by: Florian Fainelli <f.faine...@gmail.com>
> ---
>  arch/arm64/Kconfig | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 697ea0510729..36befe987b73 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1418,8 +1418,20 @@ config ARM64_SVE
>         KVM in the same kernel image.
>  
>  config ARM64_MODULE_PLTS
> -     bool
> +     bool "Use PLTs to allow module memory to spill over into vmalloc area"
>       select HAVE_MOD_ARCH_SPECIFIC
> +     help
> +       Allocate PLTs when loading modules so that jumps and calls whose
> +       targets are too far away for their relative offsets to be encoded
> +       in the instructions themselves can be bounced via veneers in the
> +       module's PLT. This allows modules to be allocated in the generic
> +       vmalloc area after the dedicated module memory area has been
> +       exhausted. The modules will use slightly more memory, but after
> +       rounding up to page size, the actual memory footprint is usually
> +       the same.

Isn't the worry really about the runtime performance overhead introduced
by the veneers, as opposed to the memory usage of the module?

> +       Disabling this is usually safe for small single-platform
> +       configurations. If unsure, say y.

So should this be on by default?

Will

Reply via email to