Hi,

On Sun, Sep 06, 2020 at 01:43:21PM +0200, mateusznos...@gmail.com wrote:
> From: Mateusz Nosek <mateusznos...@gmail.com>
> 
> Most fields in struct pointed by 'subscriptions' are initialized explicitly
> after the allocation. By changing kzalloc to kmalloc the call to memset
> is avoided. As the only new code consists of 2 simple memory accesses,
> the performance is increased.

Is there a measurable performance increase?

The __mmu_notifier_register() is not used that frequently to trade off
robustness of kzalloc() for slight (if visible at all) performance gain.

> Signed-off-by: Mateusz Nosek <mateusznos...@gmail.com>
> ---
>  mm/mmu_notifier.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
> index 4fc918163dd3..190e198dc5be 100644
> --- a/mm/mmu_notifier.c
> +++ b/mm/mmu_notifier.c
> @@ -625,7 +625,7 @@ int __mmu_notifier_register(struct mmu_notifier 
> *subscription,
>                * know that mm->notifier_subscriptions can't change while we
>                * hold the write side of the mmap_lock.
>                */
> -             subscriptions = kzalloc(
> +             subscriptions = kmalloc(
>                       sizeof(struct mmu_notifier_subscriptions), GFP_KERNEL);
>               if (!subscriptions)
>                       return -ENOMEM;
> @@ -636,6 +636,8 @@ int __mmu_notifier_register(struct mmu_notifier 
> *subscription,
>               subscriptions->itree = RB_ROOT_CACHED;
>               init_waitqueue_head(&subscriptions->wq);
>               INIT_HLIST_HEAD(&subscriptions->deferred_list);
> +             subscriptions->active_invalidate_ranges = 0;
> +             subscriptions->has_itree = false;
>       }
>  
>       ret = mm_take_all_locks(mm);
> -- 
> 2.20.1
> 
> 

-- 
Sincerely yours,
Mike.

Reply via email to