All of lore.kernel.org
 help / color / mirror / Atom feed
From: 김재원 <jaewon31.kim@samsung.com>
To: "'T.J. Mercier'" <tjmercier@google.com>,
	"'Juan Yescas'" <jyescas@google.com>
Cc: "'Sumit Semwal'" <sumit.semwal@linaro.org>,
	"'Benjamin Gaignard'" <benjamin.gaignard@collabora.com>,
	"'Brian Starkey'" <Brian.Starkey@arm.com>,
	"'John Stultz'" <jstultz@google.com>,
	"'Christian König'" <christian.koenig@amd.com>,
	linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
	baohua@kernel.org, dmitry.osipenko@collabora.com,
	Guangming.Cao@mediatek.com, surenb@google.com,
	kaleshsingh@google.com
Subject: RE: [PATCH] dma-buf: heaps: Set allocation orders for larger page sizes
Date: Wed, 16 Apr 2025 11:28:35 +0900	[thread overview]
Message-ID: <106c301dbae77$414454a0$c3ccfde0$@samsung.com> (raw)
In-Reply-To: <CABdmKX3Ht=bCcPFxK5mGX2qD4riXQ7Ucw6H_-+1PupXy-1ABGQ@mail.gmail.com>



> -----Original Message-----
> From: T.J. Mercier [mailto:tjmercier@google.com]
> Sent: Wednesday, April 16, 2025 5:57 AM
> To: Juan Yescas <jyescas@google.com>
> Cc: Sumit Semwal <sumit.semwal@linaro.org>; Benjamin Gaignard
> <benjamin.gaignard@collabora.com>; Brian Starkey <Brian.Starkey@arm.com>;
> John Stultz <jstultz@google.com>; Christian König
> <christian.koenig@amd.com>; linux-media@vger.kernel.org; dri-
> devel@lists.freedesktop.org; linaro-mm-sig@lists.linaro.org; linux-
> kernel@vger.kernel.org; baohua@kernel.org; dmitry.osipenko@collabora.com;
> jaewon31.kim@samsung.com; Guangming.Cao@mediatek.com; surenb@google.com;
> kaleshsingh@google.com
> Subject: Re: [PATCH] dma-buf: heaps: Set allocation orders for larger page
> sizes
> 
> On Tue, Apr 15, 2025 at 10:20 AM Juan Yescas <jyescas@google.com> wrote:
> >
> > This change sets the allocation orders for the different page sizes
> > (4k, 16k, 64k) based on PAGE_SHIFT. Before this change, the orders for
> > large page sizes were calculated incorrectly, this caused system heap
> > to allocate from 2% to 4% more memory on 16KiB page size kernels.
> >
> > This change was tested on 4k/16k page size kernels.
> >
> > Signed-off-by: Juan Yescas <jyescas@google.com>
> 
> I think "dma-buf: system_heap:" would be better for the subject since this
> is specific to the system heap.
> 
> Would you mind cleaning up the extra space on line 321 too?
> @@ -318,7 +318,7 @@ static struct page
> *alloc_largest_available(unsigned long size,
>         int i;
> 
>         for (i = 0; i < NUM_ORDERS; i++) {
> -               if (size <  (PAGE_SIZE << orders[i]))
> +               if (size < (PAGE_SIZE << orders[i]))
> 
> With that,
> Reviewed-by: T.J. Mercier <tjmercier@google.com>
> 
> Fixes: d963ab0f15fb ("dma-buf: system_heap: Allocate higher order pages if
> available") is also probably a good idea.
> 


Hi Juan.

Yes. This system_heap change should be changed for 16KB page. Actually,
we may need to check other drivers using page order number. I guess
gpu drivers may be one of them.

> > ---
> >  drivers/dma-buf/heaps/system_heap.c | 9 ++++++++-
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/dma-buf/heaps/system_heap.c
> > b/drivers/dma-buf/heaps/system_heap.c
> > index 26d5dc89ea16..54674c02dcb4 100644
> > --- a/drivers/dma-buf/heaps/system_heap.c
> > +++ b/drivers/dma-buf/heaps/system_heap.c
> > @@ -50,8 +50,15 @@ static gfp_t order_flags[] = {HIGH_ORDER_GFP,
> HIGH_ORDER_GFP, LOW_ORDER_GFP};
> >   * to match with the sizes often found in IOMMUs. Using order 4 pages
> instead
> >   * of order 0 pages can significantly improve the performance of many
> IOMMUs
> >   * by reducing TLB pressure and time spent updating page tables.
> > + *
> > + * Note: When the order is 0, the minimum allocation is PAGE_SIZE.
> > + The possible
> > + * page sizes for ARM devices could be 4K, 16K and 64K.
> >   */
> > -static const unsigned int orders[] = {8, 4, 0};
> > +#define ORDER_1M (20 - PAGE_SHIFT)
> > +#define ORDER_64K (16 - PAGE_SHIFT)
> > +#define ORDER_FOR_PAGE_SIZE (0)
> > +static const unsigned int orders[] = {ORDER_1M, ORDER_64K,
> > +ORDER_FOR_PAGE_SIZE};
> > +
> >  #define NUM_ORDERS ARRAY_SIZE(orders)
> >
> >  static struct sg_table *dup_sg_table(struct sg_table *table)
> > --
> > 2.49.0.604.gff1f9ca942-goog
> >



  reply	other threads:[~2025-04-16  7:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-15 17:19 [PATCH] dma-buf: heaps: Set allocation orders for larger page sizes Juan Yescas
2025-04-15 20:14 ` John Stultz
2025-04-15 20:57 ` T.J. Mercier
2025-04-16  2:28   ` 김재원 [this message]
2025-04-16  3:58     ` Juan Yescas
2025-04-16 11:34 ` Christian König
2025-04-16 21:51   ` Juan Yescas
2025-04-17  8:06     ` Christian König
2025-04-17 20:30       ` Juan Yescas

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='106c301dbae77$414454a0$c3ccfde0$@samsung.com' \
    --to=jaewon31.kim@samsung.com \
    --cc=Brian.Starkey@arm.com \
    --cc=Guangming.Cao@mediatek.com \
    --cc=baohua@kernel.org \
    --cc=benjamin.gaignard@collabora.com \
    --cc=christian.koenig@amd.com \
    --cc=dmitry.osipenko@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jstultz@google.com \
    --cc=jyescas@google.com \
    --cc=kaleshsingh@google.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=sumit.semwal@linaro.org \
    --cc=surenb@google.com \
    --cc=tjmercier@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.