lkml.org 
[lkml]   [2022]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[patch 2/3] x86/fpu: Rename irq_fpu_usable()
    Date
    This can be invoked from almost any context, except NMI. The only
    requirement is that the context is not migrateable.

    Rename it to kernel_fpu_usable().

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/um/include/asm/fpu/api.h | 2 +-
    arch/x86/include/asm/fpu/api.h | 4 ++--
    arch/x86/include/asm/simd.h | 2 +-
    arch/x86/kernel/fpu/core.c | 13 +++++++------
    net/netfilter/nft_set_pipapo_avx2.c | 2 +-
    5 files changed, 12 insertions(+), 11 deletions(-)

    --- a/arch/um/include/asm/fpu/api.h
    +++ b/arch/um/include/asm/fpu/api.h
    @@ -11,7 +11,7 @@
    #define kernel_fpu_begin() (void)0
    #define kernel_fpu_end() (void)0

    -static inline bool irq_fpu_usable(void)
    +static inline bool kernel_fpu_usable(void)
    {
    return true;
    }
    --- a/arch/x86/include/asm/fpu/api.h
    +++ b/arch/x86/include/asm/fpu/api.h
    @@ -19,7 +19,7 @@
    * disables preemption so be careful if you intend to use it for long periods
    * of time.
    * If you intend to use the FPU in irq/softirq you need to check first with
    - * irq_fpu_usable() if it is possible.
    + * kernel_fpu_usable() if it is possible.
    */

    /* Kernel FPU states to initialize in kernel_fpu_begin_mask() */
    @@ -28,7 +28,7 @@

    extern void kernel_fpu_begin_mask(unsigned int kfpu_mask);
    extern void kernel_fpu_end(void);
    -extern bool irq_fpu_usable(void);
    +extern bool kernel_fpu_usable(void);
    extern void fpregs_mark_activate(void);

    /* Code that is unaware of kernel_fpu_begin_mask() can use this */
    --- a/arch/x86/include/asm/simd.h
    +++ b/arch/x86/include/asm/simd.h
    @@ -8,5 +8,5 @@
    */
    static __must_check inline bool may_use_simd(void)
    {
    - return irq_fpu_usable();
    + return kernel_fpu_usable();
    }
    --- a/arch/x86/kernel/fpu/core.c
    +++ b/arch/x86/kernel/fpu/core.c
    @@ -49,11 +49,12 @@ static DEFINE_PER_CPU(bool, in_kernel_fp
    */
    DEFINE_PER_CPU(struct fpu *, fpu_fpregs_owner_ctx);

    -/*
    - * Can we use the FPU in kernel mode with the
    - * whole "kernel_fpu_begin/end()" sequence?
    +/**
    + * kernel_fpu_usable - Check whether kernel FPU usage is possible
    + *
    + * Has to be invoked before calling kernel_fpu_begin().
    */
    -bool irq_fpu_usable(void)
    +bool kernel_fpu_usable(void)
    {
    if (WARN_ON_ONCE(in_nmi()))
    return false;
    @@ -81,7 +82,7 @@ bool irq_fpu_usable(void)
    */
    return !softirq_count();
    }
    -EXPORT_SYMBOL(irq_fpu_usable);
    +EXPORT_SYMBOL(kernel_fpu_usable);

    /*
    * Track AVX512 state use because it is known to slow the max clock
    @@ -409,7 +410,7 @@ void kernel_fpu_begin_mask(unsigned int
    {
    preempt_disable();

    - WARN_ON_FPU(!irq_fpu_usable());
    + WARN_ON_FPU(!kernel_fpu_usable());
    WARN_ON_FPU(this_cpu_read(in_kernel_fpu));

    this_cpu_write(in_kernel_fpu, true);
    --- a/net/netfilter/nft_set_pipapo_avx2.c
    +++ b/net/netfilter/nft_set_pipapo_avx2.c
    @@ -1128,7 +1128,7 @@ bool nft_pipapo_avx2_lookup(const struct
    bool map_index;
    int i, ret = 0;

    - if (unlikely(!irq_fpu_usable()))
    + if (unlikely(!kernel_fpu_usable()))
    return nft_pipapo_lookup(net, set, key, ext);

    m = rcu_dereference(priv->match);
    \
     
     \ /
      Last update: 2022-05-01 21:32    [W:4.771 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site