All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy@arm.com>
To: Jichao Zou <zoujc@motorola.com>,
	David Hildenbrand <david@redhat.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"minchan@kernel.org" <minchan@kernel.org>,
	"song.bao.hua@hisilicon.com" <song.bao.hua@hisilicon.com>,
	"hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	JianQi Yang <yangj@motorola.com>,
	Yanjune Tian <tianyje@motorola.com>
Subject: Re: 回复: [External]Re: An cma optimization patch is used for cma_[alloc|free].
Date: Fri, 13 Aug 2021 10:15:59 +0100	[thread overview]
Message-ID: <ca497139-a6e8-cb66-e221-7fe4af2bda14@arm.com> (raw)
In-Reply-To: <HK0PR03MB41775573A48273BF128C7F72D5FA9@HK0PR03MB4177.apcprd03.prod.outlook.com>

On 2021-08-13 09:27, Jichao Zou wrote:
> Hi David,
> 	I'll git-send-email patch again.
> 	Your understanding is exactly right.
> 	Let me explain the background of Patch, we are developing Android phone, kernel is 5.10.43 LTS, we encounter cma_alloc failed during kernel startup, buddy system is ready,
> 01-11 14:22:08.650   216   216 E cma     : cma_alloc([216][init]:cma(ffffffff00b50000:total 8192) linux,cma(ffffffe89d084cf0), count 2, align 1 gfp_mask 0xcc0)
> 01-11 14:22:08.650   216   216 E cma     : cma_alloc(): memory range at ffffffff00b62880 is busy, retrying
>   
> 	cma bitmap show memory is free, but alloc_contig_range failed, we checked it out that some drivers cma_alloc are
> 	"struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, bool no_warn)"
> 	In 5.10.43, cma_alloc is
> 	"struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, gfp_t gfp_mask)"
>   	After change cma_alloc parameter with GFP_KERNEL, issue is fixed, at the same time, we found that preallocate a portion of cma memory for audio&video resulted in better performance and guarantee AV function even under memory pressure, so we try to submit this patch.

The whole point of CMA is that the memory can be shared by moveable 
pages while it's not being used for DMA. If you want a dedicated DMA 
carveout, there are already mechanisms for that.

Robin.

> 
> Thanks.
> 
> Best Regards,
> 
> Zou Jichao 邹纪超
> Advisory Engineer, SW BSP
> MBG ROW SW BJ PF BSP (CN)
> Motorola Mobility, A Lenovo Company
> motorola.com
> M +86 18910860212
> E zoujc@lenovo.com
> twitter | facebook | instagram | blog | forums
> 
> 
> 
> 
> -----邮件原件-----
> 发件人: David Hildenbrand <david@redhat.com>
> 发送时间: 2021年8月13日 15:45
> 收件人: Jichao Zou <zoujc@motorola.com>; akpm@linux-foundation.org; linux-kernel@vger.kernel.org; linux-mm@kvack.org; minchan@kernel.org; song.bao.hua@hisilicon.com; hch@lst.de; m.szyprowski@samsung.com; robin.murphy@arm.com; iommu@lists.linux-foundation.org; JianQi Yang <yangj@motorola.com>; Yanjune Tian <tianyje@motorola.com>
> 主题: [External]Re: An cma optimization patch is used for cma_[alloc|free].
> 
> On 13.08.21 09:00, Jichao Zou wrote:
>> Pre-allocate CMA memory that configured in device tree, this greatly
>> improves the CMA memory allocation efficiency, cma_[alloc|free] is
>> less than 1ms, old way is took a few ms to tens or hundreds ms.
>>
> 
> Please send patches as proper emails (man git-format-patch; man git-send-email).
> 
> What you propose is turning cma reservations into something comparable to permanent boottime allocations. From the POV of the buddy, the pages are always allocated and cannot be repurposed for e.g., movable allocations until *actually* allocated via CMA.
> 
> I don't think we want this behavior upstream.
> 
> --
> Thanks,
> 
> David / dhildenb
> 

WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: Jichao Zou <zoujc@motorola.com>,
	David Hildenbrand <david@redhat.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"minchan@kernel.org" <minchan@kernel.org>,
	"song.bao.hua@hisilicon.com" <song.bao.hua@hisilicon.com>,
	"hch@lst.de" <hch@lst.de>,
	"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	JianQi Yang <yangj@motorola.com>,
	Yanjune Tian <tianyje@motorola.com>
Subject: Re: 回复: [External]Re: An cma optimization patch is used for cma_[alloc|free].
Date: Fri, 13 Aug 2021 10:15:59 +0100	[thread overview]
Message-ID: <ca497139-a6e8-cb66-e221-7fe4af2bda14@arm.com> (raw)
In-Reply-To: <HK0PR03MB41775573A48273BF128C7F72D5FA9@HK0PR03MB4177.apcprd03.prod.outlook.com>

On 2021-08-13 09:27, Jichao Zou wrote:
> Hi David,
> 	I'll git-send-email patch again.
> 	Your understanding is exactly right.
> 	Let me explain the background of Patch, we are developing Android phone, kernel is 5.10.43 LTS, we encounter cma_alloc failed during kernel startup, buddy system is ready,
> 01-11 14:22:08.650   216   216 E cma     : cma_alloc([216][init]:cma(ffffffff00b50000:total 8192) linux,cma(ffffffe89d084cf0), count 2, align 1 gfp_mask 0xcc0)
> 01-11 14:22:08.650   216   216 E cma     : cma_alloc(): memory range at ffffffff00b62880 is busy, retrying
>   
> 	cma bitmap show memory is free, but alloc_contig_range failed, we checked it out that some drivers cma_alloc are
> 	"struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, bool no_warn)"
> 	In 5.10.43, cma_alloc is
> 	"struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, gfp_t gfp_mask)"
>   	After change cma_alloc parameter with GFP_KERNEL, issue is fixed, at the same time, we found that preallocate a portion of cma memory for audio&video resulted in better performance and guarantee AV function even under memory pressure, so we try to submit this patch.

The whole point of CMA is that the memory can be shared by moveable 
pages while it's not being used for DMA. If you want a dedicated DMA 
carveout, there are already mechanisms for that.

Robin.

> 
> Thanks.
> 
> Best Regards,
> 
> Zou Jichao 邹纪超
> Advisory Engineer, SW BSP
> MBG ROW SW BJ PF BSP (CN)
> Motorola Mobility, A Lenovo Company
> motorola.com
> M +86 18910860212
> E zoujc@lenovo.com
> twitter | facebook | instagram | blog | forums
> 
> 
> 
> 
> -----邮件原件-----
> 发件人: David Hildenbrand <david@redhat.com>
> 发送时间: 2021年8月13日 15:45
> 收件人: Jichao Zou <zoujc@motorola.com>; akpm@linux-foundation.org; linux-kernel@vger.kernel.org; linux-mm@kvack.org; minchan@kernel.org; song.bao.hua@hisilicon.com; hch@lst.de; m.szyprowski@samsung.com; robin.murphy@arm.com; iommu@lists.linux-foundation.org; JianQi Yang <yangj@motorola.com>; Yanjune Tian <tianyje@motorola.com>
> 主题: [External]Re: An cma optimization patch is used for cma_[alloc|free].
> 
> On 13.08.21 09:00, Jichao Zou wrote:
>> Pre-allocate CMA memory that configured in device tree, this greatly
>> improves the CMA memory allocation efficiency, cma_[alloc|free] is
>> less than 1ms, old way is took a few ms to tens or hundreds ms.
>>
> 
> Please send patches as proper emails (man git-format-patch; man git-send-email).
> 
> What you propose is turning cma reservations into something comparable to permanent boottime allocations. From the POV of the buddy, the pages are always allocated and cannot be repurposed for e.g., movable allocations until *actually* allocated via CMA.
> 
> I don't think we want this behavior upstream.
> 
> --
> Thanks,
> 
> David / dhildenb
> 
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  reply	other threads:[~2021-08-13  9:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-13  7:00 An cma optimization patch is used for cma_[alloc|free] Jichao Zou
2021-08-13  7:00 ` Jichao Zou
2021-08-13  7:45 ` David Hildenbrand
2021-08-13  7:45   ` David Hildenbrand
2021-08-13  8:27   ` 回复: [External]Re: " Jichao Zou
2021-08-13  8:27     ` Jichao Zou
2021-08-13  9:15     ` Robin Murphy [this message]
2021-08-13  9:15       ` Robin Murphy
2021-08-13  9:46       ` 回复: " Jichao Zou
2021-08-13  9:46         ` Jichao Zou
2021-08-13 10:08         ` Robin Murphy
2021-08-13 10:08           ` Robin Murphy
2021-08-13 11:26           ` 回复: " Jichao Zou
2021-08-13 11:26             ` Jichao Zou

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=ca497139-a6e8-cb66-e221-7fe4af2bda14@arm.com \
    --to=robin.murphy@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=m.szyprowski@samsung.com \
    --cc=minchan@kernel.org \
    --cc=song.bao.hua@hisilicon.com \
    --cc=tianyje@motorola.com \
    --cc=yangj@motorola.com \
    --cc=zoujc@motorola.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.