public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Lei Liu <liulei.rjpt@vivo.com>
Cc: "Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Martijn Coenen" <maco@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Carlos Llamas" <cmllamas@google.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	linux-kernel@vger.kernel.org, opensource.kernel@vivo.com
Subject: Re: [PATCH] binder_alloc: replace kcalloc with kvcalloc to mitigate OOM issues
Date: Wed, 12 Jun 2024 11:58:57 +0200	[thread overview]
Message-ID: <2024061216-faster-cufflink-ceac@gregkh> (raw)
In-Reply-To: <20240611085629.25088-1-liulei.rjpt@vivo.com>

On Tue, Jun 11, 2024 at 04:56:28PM +0800, Lei Liu wrote:
> In binder_alloc, there is a frequent need for order3 memory allocation,
> especially on small-memory mobile devices, which can lead to OOM and
> cause foreground applications to be killed, resulting in flashbacks.
> 
> We use kvcalloc to allocate memory, which can reduce system OOM
> occurrences, as well as decrease the time and probability of failure for
> order3 memory allocations. Additionally, it can also improve the
> throughput of binder (as verified by Google's binder_benchmark testing
> tool).
> 
> We have conducted multiple tests on an 8GB memory phone, and the
> performance of kvcalloc is better. Below is a partial excerpt of the
> test data.
> 
> throughput = (size * Iterations)/Time
> Benchmark-kvcalloc	Time	CPU	Iterations	throughput(Gb/s)
> ----------------------------------------------------------------
> BM_sendVec_binder-4096	30926 ns	20481 ns	34457	4563.66↑
> BM_sendVec_binder-8192	42667 ns	30837 ns	22631	4345.11↑
> BM_sendVec_binder-16384	67586 ns	52381 ns	13318	3228.51↑
> BM_sendVec_binder-32768	116496 ns	94893 ns	7416	2085.97↑
> BM_sendVec_binder-65536	265482 ns	209214 ns	3530	871.40↑
> 
> Benchmark-kvcalloc	Time	CPU	Iterations	throughput(Gb/s)

Both benchmarks are the same?  Or is this labeled incorrectly?

> ----------------------------------------------------------------
> BM_sendVec_binder-4096	39070 ns	24207 ns	31063	3256.56
> BM_sendVec_binder-8192	49476 ns	35099 ns	18817	3115.62
> BM_sendVec_binder-16384	76866 ns	58924 ns	11883	2532.86
> BM_sendVec_binder-32768	134022 ns	102788 ns	6535	1597.78
> BM_sendVec_binder-65536	281004 ns	220028 ns	3135	731.14
> 
> Signed-off-by: Lei Liu <liulei.rjpt@vivo.com>
> ---
>  drivers/android/binder_alloc.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
> index 2e1f261ec5c8..5dcab4a5e341 100644
> --- a/drivers/android/binder_alloc.c
> +++ b/drivers/android/binder_alloc.c
> @@ -836,7 +836,7 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,
>  
>  	alloc->buffer = vma->vm_start;
>  
> -	alloc->pages = kcalloc(alloc->buffer_size / PAGE_SIZE,
> +	alloc->pages = kvcalloc(alloc->buffer_size / PAGE_SIZE,
>  			       sizeof(alloc->pages[0]),
>  			       GFP_KERNEL);

Nit, update the indentation please.

thanks,

greg k-h

  reply	other threads:[~2024-06-12  9:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-11  8:56 [PATCH] binder_alloc: replace kcalloc with kvcalloc to mitigate OOM issues Lei Liu
2024-06-12  9:58 ` Greg Kroah-Hartman [this message]
2024-06-13 12:01   ` Lei Liu
2024-06-13 13:42     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2024061216-faster-cufflink-ceac@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=arve@android.com \
    --cc=brauner@kernel.org \
    --cc=cmllamas@google.com \
    --cc=joel@joelfernandes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liulei.rjpt@vivo.com \
    --cc=maco@android.com \
    --cc=opensource.kernel@vivo.com \
    --cc=surenb@google.com \
    --cc=tkjos@android.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox