Re: [PATCH] mm/mmu_notifier.c: micro-optimization substitute kzalloc with kmalloc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sun, Sep 06, 2020 at 01:43:21PM +0200, mateusznosek0@xxxxxxxxx wrote:
> From: Mateusz Nosek <mateusznosek0@xxxxxxxxx>
> 
> 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 <mateusznosek0@xxxxxxxxx>
> ---
>  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.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux