* CMA broken in next-20120926 @ 2012-09-27 11:29 Thierry Reding 2012-09-27 15:59 ` Marek Szyprowski 2012-09-27 22:11 ` Andrew Morton 0 siblings, 2 replies; 61+ messages in thread From: Thierry Reding @ 2012-09-27 11:29 UTC (permalink / raw) To: Marek Szyprowski; +Cc: Michal Nazarewicz, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1096 bytes --] Hi Marek, any idea why CMA might be broken in next-20120926. I see that there haven't been any major changes to CMA itself, but there's been quite a bit of restructuring of various memory allocation bits lately. I wasn't able to track the problem down, though. What I see is this during boot (with CMA_DEBUG enabled): [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying ... [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation ... [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() [ 4.207988] coherent pool not initialised! So the pool isn't getting initialized properly because CMA can't get at the memory. Do you have any hints as to what might be going on? If it's any help, I started seeing this with next-20120926 and it is in today's next as well. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* RE: CMA broken in next-20120926 2012-09-27 11:29 CMA broken in next-20120926 Thierry Reding @ 2012-09-27 15:59 ` Marek Szyprowski 2012-09-27 17:49 ` Mark Brown 2012-09-27 22:11 ` Andrew Morton 1 sibling, 1 reply; 61+ messages in thread From: Marek Szyprowski @ 2012-09-27 15:59 UTC (permalink / raw) To: 'Thierry Reding'; +Cc: 'Michal Nazarewicz', linux-kernel Hello, On Thursday, September 27, 2012 1:29 PM Thierry Reding wrote: > any idea why CMA might be broken in next-20120926. I see that there > haven't been any major changes to CMA itself, but there's been quite a > bit of restructuring of various memory allocation bits lately. I wasn't > able to track the problem down, though. > > What I see is this during boot (with CMA_DEBUG enabled): > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > ... > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > ... > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma- > mapping.c:485 __alloc_from_pool+0xdc/0x110() > [ 4.207988] coherent pool not initialised! > > So the pool isn't getting initialized properly because CMA can't get at > the memory. Do you have any hints as to what might be going on? If it's > any help, I started seeing this with next-20120926 and it is in today's > next as well. Thanks for the report, I will check this issue asap. Best regards -- Marek Szyprowski Samsung Poland R&D Center ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-27 15:59 ` Marek Szyprowski @ 2012-09-27 17:49 ` Mark Brown 0 siblings, 0 replies; 61+ messages in thread From: Mark Brown @ 2012-09-27 17:49 UTC (permalink / raw) To: Marek Szyprowski Cc: 'Thierry Reding', 'Michal Nazarewicz', linux-kernel, Peter Ujfalusi On Thu, Sep 27, 2012 at 05:59:19PM +0200, Marek Szyprowski wrote: > On Thursday, September 27, 2012 1:29 PM Thierry Reding wrote: > > any idea why CMA might be broken in next-20120926. I see that there > > haven't been any major changes to CMA itself, but there's been quite a > > bit of restructuring of various memory allocation bits lately. I wasn't > > able to track the problem down, though. > > What I see is this during boot (with CMA_DEBUG enabled): > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > ... > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > ... > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma- > > mapping.c:485 __alloc_from_pool+0xdc/0x110() > > [ 4.207988] coherent pool not initialised! > > So the pool isn't getting initialized properly because CMA can't get at > > the memory. Do you have any hints as to what might be going on? If it's > > any help, I started seeing this with next-20120926 and it is in today's > > next as well. > Thanks for the report, I will check this issue asap. Myself and Peter have seen the same thing, though neither of us drilled down enough to make a sensible report. ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-27 11:29 CMA broken in next-20120926 Thierry Reding @ 2012-09-27 22:11 ` Andrew Morton 2012-09-27 22:11 ` Andrew Morton 1 sibling, 0 replies; 61+ messages in thread From: Andrew Morton @ 2012-09-27 22:11 UTC (permalink / raw) To: Thierry Reding Cc: Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park On Thu, 27 Sep 2012 13:29:11 +0200 Thierry Reding <thierry.reding@avionic-design.de> wrote: > Hi Marek, > > any idea why CMA might be broken in next-20120926. I see that there > haven't been any major changes to CMA itself, but there's been quite a > bit of restructuring of various memory allocation bits lately. I wasn't > able to track the problem down, though. > > What I see is this during boot (with CMA_DEBUG enabled): > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > ... > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > ... > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > [ 4.207988] coherent pool not initialised! > > So the pool isn't getting initialized properly because CMA can't get at > the memory. Do you have any hints as to what might be going on? If it's > any help, I started seeing this with next-20120926 and it is in today's > next as well. > Bart and Minchan have made recent changes to CMA. Let us cc them. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-27 22:11 ` Andrew Morton 0 siblings, 0 replies; 61+ messages in thread From: Andrew Morton @ 2012-09-27 22:11 UTC (permalink / raw) To: Thierry Reding Cc: Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Marek Szyprowski, Michal Nazarewicz, Minchan Kim, Mark Brown, Peter Ujfalusi On Thu, 27 Sep 2012 13:29:11 +0200 Thierry Reding <thierry.reding@avionic-design.de> wrote: > Hi Marek, > > any idea why CMA might be broken in next-20120926. I see that there > haven't been any major changes to CMA itself, but there's been quite a > bit of restructuring of various memory allocation bits lately. I wasn't > able to track the problem down, though. > > What I see is this during boot (with CMA_DEBUG enabled): > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > ... > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > ... > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > [ 4.207988] coherent pool not initialised! > > So the pool isn't getting initialized properly because CMA can't get at > the memory. Do you have any hints as to what might be going on? If it's > any help, I started seeing this with next-20120926 and it is in today's > next as well. > Bart and Minchan have made recent changes to CMA. Let us cc them. ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-27 22:11 ` Andrew Morton @ 2012-09-28 5:43 ` Minchan Kim -1 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-09-28 5:43 UTC (permalink / raw) To: Andrew Morton Cc: Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi, Mel Gorman On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > On Thu, 27 Sep 2012 13:29:11 +0200 > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > Hi Marek, > > > > any idea why CMA might be broken in next-20120926. I see that there > > haven't been any major changes to CMA itself, but there's been quite a > > bit of restructuring of various memory allocation bits lately. I wasn't > > able to track the problem down, though. > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > ... > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > ... > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > [ 4.207988] coherent pool not initialised! > > > > So the pool isn't getting initialized properly because CMA can't get at > > the memory. Do you have any hints as to what might be going on? If it's > > any help, I started seeing this with next-20120926 and it is in today's > > next as well. > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. Hi all, I have no time now so I look over the problem during short time so I mighte be wrong. Even I should leave the office soon and Korea will have long vacation from now on so I will be off by next week. So it's hard to reach on me. I hope this patch fixes the bug. If this patch fixes the problem but has some problem about description or someone has better idea, feel free to modify and resend to akpm, Please. Thierry, Could you test below patch? ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 5:43 ` Minchan Kim 0 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-09-28 5:43 UTC (permalink / raw) To: Andrew Morton Cc: Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi, Mel Gorman On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > On Thu, 27 Sep 2012 13:29:11 +0200 > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > Hi Marek, > > > > any idea why CMA might be broken in next-20120926. I see that there > > haven't been any major changes to CMA itself, but there's been quite a > > bit of restructuring of various memory allocation bits lately. I wasn't > > able to track the problem down, though. > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > ... > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > ... > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > [ 4.207988] coherent pool not initialised! > > > > So the pool isn't getting initialized properly because CMA can't get at > > the memory. Do you have any hints as to what might be going on? If it's > > any help, I started seeing this with next-20120926 and it is in today's > > next as well. > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. Hi all, I have no time now so I look over the problem during short time so I mighte be wrong. Even I should leave the office soon and Korea will have long vacation from now on so I will be off by next week. So it's hard to reach on me. I hope this patch fixes the bug. If this patch fixes the problem but has some problem about description or someone has better idea, feel free to modify and resend to akpm, Please. Thierry, Could you test below patch? >From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 From: Minchan Kim <minchan@kernel.org> Date: Fri, 28 Sep 2012 14:28:32 +0900 Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() and isolate_freepages_range() [1] made bug on CMA. The nr_scanned should be never equal to total_isolated for successful CMA. This patch reverts part of the patch. [1] mm: compaction: iron out isolate_freepages_block() and isolate_freepages_range() Cc: Mel Gorman <mgorman@suse.de> Signed-off-by: Minchan Kim <minchan@kernel.org> --- mm/compaction.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index 5037399..7721197 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -269,13 +269,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, int isolated, i; struct page *page = cursor; - nr_scanned++; if (!pfn_valid_within(blockpfn)) - continue; + goto strict_check; + nr_scanned++; + if (!valid_page) valid_page = page; if (!PageBuddy(page)) - continue; + goto strict_check; /* * The zone lock must be held to isolate freepages. @@ -296,12 +297,12 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* Recheck this is a buddy page under lock */ if (!PageBuddy(page)) - continue; + goto strict_check; /* Found a free page, break it into order-0 pages */ isolated = split_free_page(page); if (!isolated && strict) - break; + goto strict_check; total_isolated += isolated; for (i = 0; i < isolated; i++) { list_add(&page->lru, freelist); @@ -313,18 +314,20 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, blockpfn += isolated - 1; cursor += isolated - 1; } + + continue; + +strict_check: + /* Abort isolation if the caller requested strict isolation */ + if (strict) { + total_isolated = 0; + goto out; + } } trace_mm_compaction_isolate_freepages(nr_scanned, total_isolated); - /* - * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is - * returned and CMA will fail. - */ - if (strict && nr_scanned != total_isolated) - total_isolated = 0; - +out: if (locked) spin_unlock_irqrestore(&cc->zone->lock, flags); -- 1.7.9.5 > > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> -- Kind regards, Minchan Kim ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 5:43 ` Minchan Kim (?) @ 2012-09-28 6:10 ` Thierry Reding -1 siblings, 0 replies; 61+ messages in thread From: Thierry Reding @ 2012-09-28 6:10 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi, Mel Gorman [-- Attachment #1: Type: text/plain, Size: 3002 bytes --] On Fri, Sep 28, 2012 at 02:43:30PM +0900, Minchan Kim wrote: > On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > > On Thu, 27 Sep 2012 13:29:11 +0200 > > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > > > Hi Marek, > > > > > > any idea why CMA might be broken in next-20120926. I see that there > > > haven't been any major changes to CMA itself, but there's been quite a > > > bit of restructuring of various memory allocation bits lately. I wasn't > > > able to track the problem down, though. > > > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > > ... > > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > > ... > > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > > [ 4.207988] coherent pool not initialised! > > > > > > So the pool isn't getting initialized properly because CMA can't get at > > > the memory. Do you have any hints as to what might be going on? If it's > > > any help, I started seeing this with next-20120926 and it is in today's > > > next as well. > > > > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. > > Hi all, > > I have no time now so I look over the problem during short time > so I mighte be wrong. Even I should leave the office soon and > Korea will have long vacation from now on so I will be off by next week. > So it's hard to reach on me. > > I hope this patch fixes the bug. If this patch fixes the problem > but has some problem about description or someone has better idea, > feel free to modify and resend to akpm, Please. > > Thierry, Could you test below patch? > > >From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@kernel.org> > Date: Fri, 28 Sep 2012 14:28:32 +0900 > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > and isolate_freepages_range() > > [1] made bug on CMA. > The nr_scanned should be never equal to total_isolated for successful CMA. > This patch reverts part of the patch. > > [1] mm: compaction: iron out isolate_freepages_block() and isolate_freepages_range() > > Cc: Mel Gorman <mgorman@suse.de> > Signed-off-by: Minchan Kim <minchan@kernel.org> > --- > mm/compaction.c | 29 ++++++++++++++++------------- > 1 file changed, 16 insertions(+), 13 deletions(-) With that patch applied I see this now: [ 0.255177] DMA: preallocated 256 KiB pool for atomic coherent allocations so this fixes the bug for me. Tested-by: Thierry Reding <thierry.reding@avionic-design.de> [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 5:43 ` Minchan Kim @ 2012-09-28 7:44 ` Peter Ujfalusi -1 siblings, 0 replies; 61+ messages in thread From: Peter Ujfalusi @ 2012-09-28 7:44 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Mel Gorman On 09/28/2012 08:43 AM, Minchan Kim wrote: > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@kernel.org> > Date: Fri, 28 Sep 2012 14:28:32 +0900 > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > and isolate_freepages_range() > > [1] made bug on CMA. > The nr_scanned should be never equal to total_isolated for successful CMA. > This patch reverts part of the patch. > > [1] mm: compaction: iron out isolate_freepages_block() and isolate_freepages_range() With this patch applied on top of today's linux-next CMA enabled kernel works fine on OMAP platforms (without the patch audio was not working because dma_alloc_writecombine() was failing, probably other things were broken as well). Thank you for the quick fix! Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Cc: Mel Gorman <mgorman@suse.de> > Signed-off-by: Minchan Kim <minchan@kernel.org> > --- > mm/compaction.c | 29 ++++++++++++++++------------- > 1 file changed, 16 insertions(+), 13 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 5037399..7721197 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -269,13 +269,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > int isolated, i; > struct page *page = cursor; > > - nr_scanned++; > if (!pfn_valid_within(blockpfn)) > - continue; > + goto strict_check; > + nr_scanned++; > + > if (!valid_page) > valid_page = page; > if (!PageBuddy(page)) > - continue; > + goto strict_check; > > /* > * The zone lock must be held to isolate freepages. > @@ -296,12 +297,12 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > /* Recheck this is a buddy page under lock */ > if (!PageBuddy(page)) > - continue; > + goto strict_check; > > /* Found a free page, break it into order-0 pages */ > isolated = split_free_page(page); > if (!isolated && strict) > - break; > + goto strict_check; > total_isolated += isolated; > for (i = 0; i < isolated; i++) { > list_add(&page->lru, freelist); > @@ -313,18 +314,20 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > blockpfn += isolated - 1; > cursor += isolated - 1; > } > + > + continue; > + > +strict_check: > + /* Abort isolation if the caller requested strict isolation */ > + if (strict) { > + total_isolated = 0; > + goto out; > + } > } > > trace_mm_compaction_isolate_freepages(nr_scanned, total_isolated); > > - /* > - * If strict isolation is requested by CMA then check that all the > - * pages scanned were isolated. If there were any failures, 0 is > - * returned and CMA will fail. > - */ > - if (strict && nr_scanned != total_isolated) > - total_isolated = 0; > - > +out: > if (locked) > spin_unlock_irqrestore(&cc->zone->lock, flags); > > -- Peter -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 7:44 ` Peter Ujfalusi 0 siblings, 0 replies; 61+ messages in thread From: Peter Ujfalusi @ 2012-09-28 7:44 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Mel Gorman On 09/28/2012 08:43 AM, Minchan Kim wrote: > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@kernel.org> > Date: Fri, 28 Sep 2012 14:28:32 +0900 > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > and isolate_freepages_range() > > [1] made bug on CMA. > The nr_scanned should be never equal to total_isolated for successful CMA. > This patch reverts part of the patch. > > [1] mm: compaction: iron out isolate_freepages_block() and isolate_freepages_range() With this patch applied on top of today's linux-next CMA enabled kernel works fine on OMAP platforms (without the patch audio was not working because dma_alloc_writecombine() was failing, probably other things were broken as well). Thank you for the quick fix! Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Cc: Mel Gorman <mgorman@suse.de> > Signed-off-by: Minchan Kim <minchan@kernel.org> > --- > mm/compaction.c | 29 ++++++++++++++++------------- > 1 file changed, 16 insertions(+), 13 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 5037399..7721197 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -269,13 +269,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > int isolated, i; > struct page *page = cursor; > > - nr_scanned++; > if (!pfn_valid_within(blockpfn)) > - continue; > + goto strict_check; > + nr_scanned++; > + > if (!valid_page) > valid_page = page; > if (!PageBuddy(page)) > - continue; > + goto strict_check; > > /* > * The zone lock must be held to isolate freepages. > @@ -296,12 +297,12 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > /* Recheck this is a buddy page under lock */ > if (!PageBuddy(page)) > - continue; > + goto strict_check; > > /* Found a free page, break it into order-0 pages */ > isolated = split_free_page(page); > if (!isolated && strict) > - break; > + goto strict_check; > total_isolated += isolated; > for (i = 0; i < isolated; i++) { > list_add(&page->lru, freelist); > @@ -313,18 +314,20 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > blockpfn += isolated - 1; > cursor += isolated - 1; > } > + > + continue; > + > +strict_check: > + /* Abort isolation if the caller requested strict isolation */ > + if (strict) { > + total_isolated = 0; > + goto out; > + } > } > > trace_mm_compaction_isolate_freepages(nr_scanned, total_isolated); > > - /* > - * If strict isolation is requested by CMA then check that all the > - * pages scanned were isolated. If there were any failures, 0 is > - * returned and CMA will fail. > - */ > - if (strict && nr_scanned != total_isolated) > - total_isolated = 0; > - > +out: > if (locked) > spin_unlock_irqrestore(&cc->zone->lock, flags); > > -- Péter ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 5:43 ` Minchan Kim @ 2012-09-28 7:56 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 7:56 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Sep 28, 2012 at 02:43:30PM +0900, Minchan Kim wrote: > On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > > On Thu, 27 Sep 2012 13:29:11 +0200 > > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > > > Hi Marek, > > > > > > any idea why CMA might be broken in next-20120926. I see that there > > > haven't been any major changes to CMA itself, but there's been quite a > > > bit of restructuring of various memory allocation bits lately. I wasn't > > > able to track the problem down, though. > > > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > > ... > > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > > ... > > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > > [ 4.207988] coherent pool not initialised! > > > > > > So the pool isn't getting initialized properly because CMA can't get at > > > the memory. Do you have any hints as to what might be going on? If it's > > > any help, I started seeing this with next-20120926 and it is in today's > > > next as well. > > > > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. > > Hi all, > > I have no time now so I look over the problem during short time > so I mighte be wrong. Even I should leave the office soon and > Korea will have long vacation from now on so I will be off by next week. > So it's hard to reach on me. > > I hope this patch fixes the bug. If this patch fixes the problem > but has some problem about description or someone has better idea, > feel free to modify and resend to akpm, Please. > > Thierry, Could you test below patch? > > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@kernel.org> > Date: Fri, 28 Sep 2012 14:28:32 +0900 > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > and isolate_freepages_range() > > [1] made bug on CMA. > The nr_scanned should be never equal to total_isolated for successful CMA. > This patch reverts part of the patch. > Why should nr_scanned never be equal to total_isolated for CMA? Reverting the patch reintroduces Andrew's complaint that this function was "straggly" and getting a bit out of control so I'd much prefer to understand why this situation is not true and fix that. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 7:56 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 7:56 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Sep 28, 2012 at 02:43:30PM +0900, Minchan Kim wrote: > On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > > On Thu, 27 Sep 2012 13:29:11 +0200 > > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > > > Hi Marek, > > > > > > any idea why CMA might be broken in next-20120926. I see that there > > > haven't been any major changes to CMA itself, but there's been quite a > > > bit of restructuring of various memory allocation bits lately. I wasn't > > > able to track the problem down, though. > > > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > > ... > > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > > ... > > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > > [ 4.207988] coherent pool not initialised! > > > > > > So the pool isn't getting initialized properly because CMA can't get at > > > the memory. Do you have any hints as to what might be going on? If it's > > > any help, I started seeing this with next-20120926 and it is in today's > > > next as well. > > > > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. > > Hi all, > > I have no time now so I look over the problem during short time > so I mighte be wrong. Even I should leave the office soon and > Korea will have long vacation from now on so I will be off by next week. > So it's hard to reach on me. > > I hope this patch fixes the bug. If this patch fixes the problem > but has some problem about description or someone has better idea, > feel free to modify and resend to akpm, Please. > > Thierry, Could you test below patch? > > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > From: Minchan Kim <minchan@kernel.org> > Date: Fri, 28 Sep 2012 14:28:32 +0900 > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > and isolate_freepages_range() > > [1] made bug on CMA. > The nr_scanned should be never equal to total_isolated for successful CMA. > This patch reverts part of the patch. > Why should nr_scanned never be equal to total_isolated for CMA? Reverting the patch reintroduces Andrew's complaint that this function was "straggly" and getting a bit out of control so I'd much prefer to understand why this situation is not true and fix that. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 7:56 ` Mel Gorman @ 2012-09-28 8:09 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 8:09 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Sep 28, 2012 at 08:56:28AM +0100, Mel Gorman wrote: > On Fri, Sep 28, 2012 at 02:43:30PM +0900, Minchan Kim wrote: > > On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > > > On Thu, 27 Sep 2012 13:29:11 +0200 > > > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > > > > > Hi Marek, > > > > > > > > any idea why CMA might be broken in next-20120926. I see that there > > > > haven't been any major changes to CMA itself, but there's been quite a > > > > bit of restructuring of various memory allocation bits lately. I wasn't > > > > able to track the problem down, though. > > > > > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > > > ... > > > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > > > ... > > > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > > > [ 4.207988] coherent pool not initialised! > > > > > > > > So the pool isn't getting initialized properly because CMA can't get at > > > > the memory. Do you have any hints as to what might be going on? If it's > > > > any help, I started seeing this with next-20120926 and it is in today's > > > > next as well. > > > > > > > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. > > > > Hi all, > > > > I have no time now so I look over the problem during short time > > so I mighte be wrong. Even I should leave the office soon and > > Korea will have long vacation from now on so I will be off by next week. > > So it's hard to reach on me. > > > > I hope this patch fixes the bug. If this patch fixes the problem > > but has some problem about description or someone has better idea, > > feel free to modify and resend to akpm, Please. > > > > Thierry, Could you test below patch? > > > > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > > From: Minchan Kim <minchan@kernel.org> > > Date: Fri, 28 Sep 2012 14:28:32 +0900 > > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > > and isolate_freepages_range() > > > > [1] made bug on CMA. > > The nr_scanned should be never equal to total_isolated for successful CMA. > > This patch reverts part of the patch. > > > > Why should nr_scanned never be equal to total_isolated for CMA? > Ah crap, never mind. It's so obvious that you probably heard the face slap all the way in Korea. Am putting together an alternative fix to a revert that I'll post shortly. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 8:09 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 8:09 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Sep 28, 2012 at 08:56:28AM +0100, Mel Gorman wrote: > On Fri, Sep 28, 2012 at 02:43:30PM +0900, Minchan Kim wrote: > > On Thu, Sep 27, 2012 at 03:11:59PM -0700, Andrew Morton wrote: > > > On Thu, 27 Sep 2012 13:29:11 +0200 > > > Thierry Reding <thierry.reding@avionic-design.de> wrote: > > > > > > > Hi Marek, > > > > > > > > any idea why CMA might be broken in next-20120926. I see that there > > > > haven't been any major changes to CMA itself, but there's been quite a > > > > bit of restructuring of various memory allocation bits lately. I wasn't > > > > able to track the problem down, though. > > > > > > > > What I see is this during boot (with CMA_DEBUG enabled): > > > > > > > > [ 0.266904] cma: dma_alloc_from_contiguous(cma db474f80, count 64, align 6) > > > > [ 0.284469] cma: dma_alloc_from_contiguous(): memory range at c09d7000 is busy, retrying > > > > [ 0.293648] cma: dma_alloc_from_contiguous(): memory range at c09d7800 is busy, retrying > > > > ... > > > > [ 2.648619] DMA: failed to allocate 256 KiB pool for atomic coherent allocation > > > > ... > > > > [ 4.196193] WARNING: at /home/thierry.reding/src/kernel/linux-ipmp.git/arch/arm/mm/dma-mapping.c:485 __alloc_from_pool+0xdc/0x110() > > > > [ 4.207988] coherent pool not initialised! > > > > > > > > So the pool isn't getting initialized properly because CMA can't get at > > > > the memory. Do you have any hints as to what might be going on? If it's > > > > any help, I started seeing this with next-20120926 and it is in today's > > > > next as well. > > > > > > > > > > Bart and Minchan have made recent changes to CMA. Let us cc them. > > > > Hi all, > > > > I have no time now so I look over the problem during short time > > so I mighte be wrong. Even I should leave the office soon and > > Korea will have long vacation from now on so I will be off by next week. > > So it's hard to reach on me. > > > > I hope this patch fixes the bug. If this patch fixes the problem > > but has some problem about description or someone has better idea, > > feel free to modify and resend to akpm, Please. > > > > Thierry, Could you test below patch? > > > > From 24a547855fa2bd4212a779cc73997837148310b3 Mon Sep 17 00:00:00 2001 > > From: Minchan Kim <minchan@kernel.org> > > Date: Fri, 28 Sep 2012 14:28:32 +0900 > > Subject: [PATCH] revert mm: compaction: iron out isolate_freepages_block() > > and isolate_freepages_range() > > > > [1] made bug on CMA. > > The nr_scanned should be never equal to total_isolated for successful CMA. > > This patch reverts part of the patch. > > > > Why should nr_scanned never be equal to total_isolated for CMA? > Ah crap, never mind. It's so obvious that you probably heard the face slap all the way in Korea. Am putting together an alternative fix to a revert that I'll post shortly. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 5:43 ` Minchan Kim @ 2012-09-28 8:37 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 8:37 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi > I hope this patch fixes the bug. If this patch fixes the problem > but has some problem about description or someone has better idea, > feel free to modify and resend to akpm, Please. > A full revert is overkill. Can the following patch be tested as a potential replacement please? ---8<--- mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 CMA is reported to be broken in next-20120926. Minchan Kim pointed out that this was due to nr_scanned != total_isolated in the case of CMA because PageBuddy pages are one scan but many isolations in CMA. This patch should address the problem. This patch is a fix for mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index 8250b69..d6e260a 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, { int nr_scanned = 0, total_isolated = 0; struct page *cursor, *valid_page = NULL; + unsigned long nr_strict_required = end_pfn - blockpfn; unsigned long flags; bool locked = false; @@ -343,10 +344,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is + * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_scanned != total_isolated) + if (strict && nr_strict_required != total_isolated) total_isolated = 0; if (locked) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 8:37 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 8:37 UTC (permalink / raw) To: Minchan Kim Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi > I hope this patch fixes the bug. If this patch fixes the problem > but has some problem about description or someone has better idea, > feel free to modify and resend to akpm, Please. > A full revert is overkill. Can the following patch be tested as a potential replacement please? ---8<--- mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 CMA is reported to be broken in next-20120926. Minchan Kim pointed out that this was due to nr_scanned != total_isolated in the case of CMA because PageBuddy pages are one scan but many isolations in CMA. This patch should address the problem. This patch is a fix for mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index 8250b69..d6e260a 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, { int nr_scanned = 0, total_isolated = 0; struct page *cursor, *valid_page = NULL; + unsigned long nr_strict_required = end_pfn - blockpfn; unsigned long flags; bool locked = false; @@ -343,10 +344,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is + * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_scanned != total_isolated) + if (strict && nr_strict_required != total_isolated) total_isolated = 0; if (locked) ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 8:37 ` Mel Gorman @ 2012-09-28 8:48 ` Peter Ujfalusi -1 siblings, 0 replies; 61+ messages in thread From: Peter Ujfalusi @ 2012-09-28 8:48 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown Hi, On 09/28/2012 11:37 AM, Mel Gorman wrote: >> I hope this patch fixes the bug. If this patch fixes the problem >> but has some problem about description or someone has better idea, >> feel free to modify and resend to akpm, Please. >> > > A full revert is overkill. Can the following patch be tested as a > potential replacement please? > > ---8<--- > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > that this was due to nr_scanned != total_isolated in the case of CMA > because PageBuddy pages are one scan but many isolations in CMA. This > patch should address the problem. > > This patch is a fix for > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> linux-next + this patch alone also works for me. Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > --- > mm/compaction.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 8250b69..d6e260a 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > { > int nr_scanned = 0, total_isolated = 0; > struct page *cursor, *valid_page = NULL; > + unsigned long nr_strict_required = end_pfn - blockpfn; > unsigned long flags; > bool locked = false; > > @@ -343,10 +344,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > /* > * If strict isolation is requested by CMA then check that all the > - * pages scanned were isolated. If there were any failures, 0 is > + * pages requested were isolated. If there were any failures, 0 is > * returned and CMA will fail. > */ > - if (strict && nr_scanned != total_isolated) > + if (strict && nr_strict_required != total_isolated) > total_isolated = 0; > > if (locked) > -- Peter -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 8:48 ` Peter Ujfalusi 0 siblings, 0 replies; 61+ messages in thread From: Peter Ujfalusi @ 2012-09-28 8:48 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown Hi, On 09/28/2012 11:37 AM, Mel Gorman wrote: >> I hope this patch fixes the bug. If this patch fixes the problem >> but has some problem about description or someone has better idea, >> feel free to modify and resend to akpm, Please. >> > > A full revert is overkill. Can the following patch be tested as a > potential replacement please? > > ---8<--- > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > that this was due to nr_scanned != total_isolated in the case of CMA > because PageBuddy pages are one scan but many isolations in CMA. This > patch should address the problem. > > This patch is a fix for > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> linux-next + this patch alone also works for me. Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > --- > mm/compaction.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 8250b69..d6e260a 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > { > int nr_scanned = 0, total_isolated = 0; > struct page *cursor, *valid_page = NULL; > + unsigned long nr_strict_required = end_pfn - blockpfn; > unsigned long flags; > bool locked = false; > > @@ -343,10 +344,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > /* > * If strict isolation is requested by CMA then check that all the > - * pages scanned were isolated. If there were any failures, 0 is > + * pages requested were isolated. If there were any failures, 0 is > * returned and CMA will fail. > */ > - if (strict && nr_scanned != total_isolated) > + if (strict && nr_strict_required != total_isolated) > total_isolated = 0; > > if (locked) > -- Péter ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 8:48 ` Peter Ujfalusi @ 2012-09-28 10:27 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 10:27 UTC (permalink / raw) To: Peter Ujfalusi Cc: Minchan Kim, Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > Hi, > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > >> I hope this patch fixes the bug. If this patch fixes the problem > >> but has some problem about description or someone has better idea, > >> feel free to modify and resend to akpm, Please. > >> > > > > A full revert is overkill. Can the following patch be tested as a > > potential replacement please? > > > > ---8<--- > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > that this was due to nr_scanned != total_isolated in the case of CMA > > because PageBuddy pages are one scan but many isolations in CMA. This > > patch should address the problem. > > > > This patch is a fix for > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > linux-next + this patch alone also works for me. > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Thanks Peter. I expect it also works for Thierry as I expect you were suffering the same problem but obviously confirmation of that would be nice. Andrew, can you pick up this version of the patch instead of Minchan's revert? Thanks Minchan for pointing out the obvious flaw in "mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range()". -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 10:27 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 10:27 UTC (permalink / raw) To: Peter Ujfalusi Cc: Minchan Kim, Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > Hi, > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > >> I hope this patch fixes the bug. If this patch fixes the problem > >> but has some problem about description or someone has better idea, > >> feel free to modify and resend to akpm, Please. > >> > > > > A full revert is overkill. Can the following patch be tested as a > > potential replacement please? > > > > ---8<--- > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > that this was due to nr_scanned != total_isolated in the case of CMA > > because PageBuddy pages are one scan but many isolations in CMA. This > > patch should address the problem. > > > > This patch is a fix for > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > linux-next + this patch alone also works for me. > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Thanks Peter. I expect it also works for Thierry as I expect you were suffering the same problem but obviously confirmation of that would be nice. Andrew, can you pick up this version of the patch instead of Minchan's revert? Thanks Minchan for pointing out the obvious flaw in "mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range()". -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 10:27 ` Mel Gorman (?) @ 2012-09-28 10:32 ` Thierry Reding 2012-09-28 10:38 ` Thierry Reding -1 siblings, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-09-28 10:32 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 1781 bytes --] On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > Hi, > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > >> I hope this patch fixes the bug. If this patch fixes the problem > > >> but has some problem about description or someone has better idea, > > >> feel free to modify and resend to akpm, Please. > > >> > > > > > > A full revert is overkill. Can the following patch be tested as a > > > potential replacement please? > > > > > > ---8<--- > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > patch should address the problem. > > > > > > This patch is a fix for > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > linux-next + this patch alone also works for me. > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > Thanks Peter. I expect it also works for Thierry as I expect you were > suffering the same problem but obviously confirmation of that would be nice. I've been running a few tests and indeed this solves the obvious problem that the coherent pool cannot be created at boot (which in turn caused the ethernet adapter to fail on Tegra). However I've been working on the Tegra DRM driver, which uses CMA to allocate large chunks of framebuffer memory and these are now failing. I'll need to check if Minchan's patch solves that problem as well. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 10:32 ` Thierry Reding @ 2012-09-28 10:38 ` Thierry Reding 2012-09-28 10:51 ` Thierry Reding 2012-09-28 10:52 ` Mel Gorman 0 siblings, 2 replies; 61+ messages in thread From: Thierry Reding @ 2012-09-28 10:38 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 2050 bytes --] On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > Hi, > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > >> but has some problem about description or someone has better idea, > > > >> feel free to modify and resend to akpm, Please. > > > >> > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > potential replacement please? > > > > > > > > ---8<--- > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > patch should address the problem. > > > > > > > > This patch is a fix for > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > linux-next + this patch alone also works for me. > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > suffering the same problem but obviously confirmation of that would be nice. > > I've been running a few tests and indeed this solves the obvious problem > that the coherent pool cannot be created at boot (which in turn caused > the ethernet adapter to fail on Tegra). > > However I've been working on the Tegra DRM driver, which uses CMA to > allocate large chunks of framebuffer memory and these are now failing. > I'll need to check if Minchan's patch solves that problem as well. Indeed, with Minchan's patch the DRM can allocate the framebuffer without a problem. Something else must be wrong then. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 10:38 ` Thierry Reding @ 2012-09-28 10:51 ` Thierry Reding 2012-09-28 11:07 ` Mel Gorman 2012-09-28 10:52 ` Mel Gorman 1 sibling, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-09-28 10:51 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 3038 bytes --] On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > Hi, > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > >> but has some problem about description or someone has better idea, > > > > >> feel free to modify and resend to akpm, Please. > > > > >> > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > potential replacement please? > > > > > > > > > > ---8<--- > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > patch should address the problem. > > > > > > > > > > This patch is a fix for > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > suffering the same problem but obviously confirmation of that would be nice. > > > > I've been running a few tests and indeed this solves the obvious problem > > that the coherent pool cannot be created at boot (which in turn caused > > the ethernet adapter to fail on Tegra). > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > allocate large chunks of framebuffer memory and these are now failing. > > I'll need to check if Minchan's patch solves that problem as well. > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > without a problem. Something else must be wrong then. However, depending on the size of the allocation it also happens with Minchan's patch. What I see is this: [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 I'm pretty sure this did work before next-20120926. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 10:51 ` Thierry Reding @ 2012-09-28 11:07 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 11:07 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > Hi, > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > >> but has some problem about description or someone has better idea, > > > > > >> feel free to modify and resend to akpm, Please. > > > > > >> > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > potential replacement please? > > > > > > > > > > > > ---8<--- > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > patch should address the problem. > > > > > > > > > > > > This patch is a fix for > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > that the coherent pool cannot be created at boot (which in turn caused > > > the ethernet adapter to fail on Tegra). > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > allocate large chunks of framebuffer memory and these are now failing. > > > I'll need to check if Minchan's patch solves that problem as well. > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > without a problem. Something else must be wrong then. > > However, depending on the size of the allocation it also happens with > Minchan's patch. What I see is this: > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > I'm pretty sure this did work before next-20120926. > Can you double check this please? This is a separate bug but may be related to the same series. However, CMA should be ignoring the "skip" hints and because it's sync compaction it should not be exiting due to lock contention. Maybe Marek will spot it. Failing that, would you be in a position to bisect between v3.6-rc6 and current next to try pin-point exactly which patch introduced this problem please? -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 11:07 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 11:07 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > Hi, > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > >> but has some problem about description or someone has better idea, > > > > > >> feel free to modify and resend to akpm, Please. > > > > > >> > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > potential replacement please? > > > > > > > > > > > > ---8<--- > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > patch should address the problem. > > > > > > > > > > > > This patch is a fix for > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > that the coherent pool cannot be created at boot (which in turn caused > > > the ethernet adapter to fail on Tegra). > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > allocate large chunks of framebuffer memory and these are now failing. > > > I'll need to check if Minchan's patch solves that problem as well. > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > without a problem. Something else must be wrong then. > > However, depending on the size of the allocation it also happens with > Minchan's patch. What I see is this: > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > I'm pretty sure this did work before next-20120926. > Can you double check this please? This is a separate bug but may be related to the same series. However, CMA should be ignoring the "skip" hints and because it's sync compaction it should not be exiting due to lock contention. Maybe Marek will spot it. Failing that, would you be in a position to bisect between v3.6-rc6 and current next to try pin-point exactly which patch introduced this problem please? -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 11:07 ` Mel Gorman (?) @ 2012-09-28 11:39 ` Thierry Reding 2012-09-28 12:43 ` Mel Gorman -1 siblings, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-09-28 11:39 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 4433 bytes --] On Fri, Sep 28, 2012 at 12:07:12PM +0100, Mel Gorman wrote: > On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > > Hi, > > > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > > >> but has some problem about description or someone has better idea, > > > > > > >> feel free to modify and resend to akpm, Please. > > > > > > >> > > > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > > potential replacement please? > > > > > > > > > > > > > > ---8<--- > > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > > patch should address the problem. > > > > > > > > > > > > > > This patch is a fix for > > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > > that the coherent pool cannot be created at boot (which in turn caused > > > > the ethernet adapter to fail on Tegra). > > > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > > allocate large chunks of framebuffer memory and these are now failing. > > > > I'll need to check if Minchan's patch solves that problem as well. > > > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > > without a problem. Something else must be wrong then. > > > > However, depending on the size of the allocation it also happens with > > Minchan's patch. What I see is this: > > > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > > > I'm pretty sure this did work before next-20120926. > > > > Can you double check this please? > > This is a separate bug but may be related to the same series. However, CMA should > be ignoring the "skip" hints and because it's sync compaction it should > not be exiting due to lock contention. Maybe Marek will spot it. I've written a small test module that tries to allocate growing blocks of contiguous memory and it seems like with your patch this always fails at 8 MiB. Given the default size for CMA allocations is 16 MiB I thought I should try increasing that but it doesn't make a difference. The allocation still fails at 8 MiB. Maybe that'll give another clue. > Failing that, would you be in a position to bisect between v3.6-rc6 and > current next to try pin-point exactly which patch introduced this > problem please? I can possibly do that but probably not before sometime later next week unfortunately. But I'll see if I can find some time to double-check that some older linux-next version works and that my memory isn't failing me. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 11:39 ` Thierry Reding @ 2012-09-28 12:43 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 12:43 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 01:39:24PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 12:07:12PM +0100, Mel Gorman wrote: > > On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > > > Hi, > > > > > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > > > >> but has some problem about description or someone has better idea, > > > > > > > >> feel free to modify and resend to akpm, Please. > > > > > > > >> > > > > > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > > > potential replacement please? > > > > > > > > > > > > > > > > ---8<--- > > > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > > > patch should address the problem. > > > > > > > > > > > > > > > > This patch is a fix for > > > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > > > that the coherent pool cannot be created at boot (which in turn caused > > > > > the ethernet adapter to fail on Tegra). > > > > > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > > > allocate large chunks of framebuffer memory and these are now failing. > > > > > I'll need to check if Minchan's patch solves that problem as well. > > > > > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > > > without a problem. Something else must be wrong then. > > > > > > However, depending on the size of the allocation it also happens with > > > Minchan's patch. What I see is this: > > > > > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > > > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > > > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > > > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > > > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > > > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > > > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > > > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > > > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > > > > > I'm pretty sure this did work before next-20120926. > > > > > > > Can you double check this please? > > > > This is a separate bug but may be related to the same series. However, CMA should > > be ignoring the "skip" hints and because it's sync compaction it should > > not be exiting due to lock contention. Maybe Marek will spot it. > > I've written a small test module that tries to allocate growing blocks > of contiguous memory and it seems like with your patch this always fails > at 8 MiB. You earlier said it also happens with Minchan's but your statment here is less clear. Does Minchan's also fail on the 8MiB boundary? Second, did the test module work with next-20120926? > Given the default size for CMA allocations is 16 MiB I thought > I should try increasing that but it doesn't make a difference. The > allocation still fails at 8 MiB. > Maybe that'll give another clue. > It narrows down the possibilities at least. > > Failing that, would you be in a position to bisect between v3.6-rc6 and > > current next to try pin-point exactly which patch introduced this > > problem please? > > I can possibly do that but probably not before sometime later next week > unfortunately. But I'll see if I can find some time to double-check that > some older linux-next version works and that my memory isn't failing me. > That would be very much appreciated because it narrows down the possibilties. I don't have anything in place that allows me to test CMA so the more information I can get the better. Thanks. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 12:43 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 12:43 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 01:39:24PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 12:07:12PM +0100, Mel Gorman wrote: > > On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > > > Hi, > > > > > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > > > >> but has some problem about description or someone has better idea, > > > > > > > >> feel free to modify and resend to akpm, Please. > > > > > > > >> > > > > > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > > > potential replacement please? > > > > > > > > > > > > > > > > ---8<--- > > > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > > > patch should address the problem. > > > > > > > > > > > > > > > > This patch is a fix for > > > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > > > that the coherent pool cannot be created at boot (which in turn caused > > > > > the ethernet adapter to fail on Tegra). > > > > > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > > > allocate large chunks of framebuffer memory and these are now failing. > > > > > I'll need to check if Minchan's patch solves that problem as well. > > > > > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > > > without a problem. Something else must be wrong then. > > > > > > However, depending on the size of the allocation it also happens with > > > Minchan's patch. What I see is this: > > > > > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > > > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > > > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > > > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > > > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > > > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > > > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > > > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > > > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > > > > > I'm pretty sure this did work before next-20120926. > > > > > > > Can you double check this please? > > > > This is a separate bug but may be related to the same series. However, CMA should > > be ignoring the "skip" hints and because it's sync compaction it should > > not be exiting due to lock contention. Maybe Marek will spot it. > > I've written a small test module that tries to allocate growing blocks > of contiguous memory and it seems like with your patch this always fails > at 8 MiB. You earlier said it also happens with Minchan's but your statment here is less clear. Does Minchan's also fail on the 8MiB boundary? Second, did the test module work with next-20120926? > Given the default size for CMA allocations is 16 MiB I thought > I should try increasing that but it doesn't make a difference. The > allocation still fails at 8 MiB. > Maybe that'll give another clue. > It narrows down the possibilities at least. > > Failing that, would you be in a position to bisect between v3.6-rc6 and > > current next to try pin-point exactly which patch introduced this > > problem please? > > I can possibly do that but probably not before sometime later next week > unfortunately. But I'll see if I can find some time to double-check that > some older linux-next version works and that my memory isn't failing me. > That would be very much appreciated because it narrows down the possibilties. I don't have anything in place that allows me to test CMA so the more information I can get the better. Thanks. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 12:43 ` Mel Gorman (?) @ 2012-10-01 14:24 ` Thierry Reding 2012-10-02 12:48 ` Thierry Reding -1 siblings, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-10-01 14:24 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1.1: Type: text/plain, Size: 5869 bytes --] On Fri, Sep 28, 2012 at 01:43:32PM +0100, Mel Gorman wrote: > On Fri, Sep 28, 2012 at 01:39:24PM +0200, Thierry Reding wrote: > > On Fri, Sep 28, 2012 at 12:07:12PM +0100, Mel Gorman wrote: > > > On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > > > > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > > > > Hi, > > > > > > > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > > > > >> but has some problem about description or someone has better idea, > > > > > > > > >> feel free to modify and resend to akpm, Please. > > > > > > > > >> > > > > > > > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > > > > potential replacement please? > > > > > > > > > > > > > > > > > > ---8<--- > > > > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > > > > patch should address the problem. > > > > > > > > > > > > > > > > > > This patch is a fix for > > > > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > > > > that the coherent pool cannot be created at boot (which in turn caused > > > > > > the ethernet adapter to fail on Tegra). > > > > > > > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > > > > allocate large chunks of framebuffer memory and these are now failing. > > > > > > I'll need to check if Minchan's patch solves that problem as well. > > > > > > > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > > > > without a problem. Something else must be wrong then. > > > > > > > > However, depending on the size of the allocation it also happens with > > > > Minchan's patch. What I see is this: > > > > > > > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > > > > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > > > > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > > > > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > > > > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > > > > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > > > > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > > > > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > > > > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > > > > > > > I'm pretty sure this did work before next-20120926. > > > > > > > > > > Can you double check this please? > > > > > > This is a separate bug but may be related to the same series. However, CMA should > > > be ignoring the "skip" hints and because it's sync compaction it should > > > not be exiting due to lock contention. Maybe Marek will spot it. > > > > I've written a small test module that tries to allocate growing blocks > > of contiguous memory and it seems like with your patch this always fails > > at 8 MiB. > > You earlier said it also happens with Minchan's but your statment here > is less clear. Does Minchan's also fail on the 8MiB boundary? Second, > did the test module work with next-20120926? The cmatest module that I use tries to allocate blocks from 4 KiB to 256 MiB (in increments of powers of two). With next-20120926 this always fails at 8 MiB, independent of the CMA size setting (though I didn't test setting the CMA size to <= 8 MiB, I assumed that would make the 8 MiB allocation fail anyway). Note that I had to apply the attached patch which fixes a build failure on next-20120926. I believe that Mark Brown posted a similar fix a few days ago. I'm also attaching a log from the module's test run. There's also an interesting page allocation failure at the very end of that log which I have not seen with next-20120925. I've run the same tests on next-20120925 with the CMA size set to 256 MiB and only the 256 MiB allocation fails. This is normal since there are other modules that already allocate smaller buffers from CMA, so a whole 256 MiB won't be available. Vanilla 3.6-rc6 shows the same behaviour as next-20120925. I will try 3.6-rc7 next since that's what next-20120926 is based on. If that succeeds I'll try to bisect between 3.6-rc7 and next-20120926 to find the culprit, but that will probably take some more time as I need to apply at least one other commit on top to get the board to boot at all. So this really isn't all that new, but I just wanted to confirm my results from last week. We'll see if bisection shows up something interesting. Thierry [-- Attachment #1.2: mm-compaction-buildfix.patch --] [-- Type: text/plain, Size: 940 bytes --] diff --git a/include/linux/pageblock-flags.h b/include/linux/pageblock-flags.h index eed27f4..9ed5841 100644 --- a/include/linux/pageblock-flags.h +++ b/include/linux/pageblock-flags.h @@ -30,7 +30,7 @@ enum pageblock_bits { PB_migrate, PB_migrate_end = PB_migrate + 3 - 1, /* 3 bits required for migrate types */ -#ifdef CONFIG_COMPACTION +#if defined(CONFIG_COMPACTION) || defined(CONFIG_CMA) PB_migrate_skip,/* If set the block is skipped by compaction */ #endif /* CONFIG_COMPACTION */ NR_PAGEBLOCK_BITS @@ -68,7 +68,7 @@ unsigned long get_pageblock_flags_group(struct page *page, void set_pageblock_flags_group(struct page *page, unsigned long flags, int start_bitidx, int end_bitidx); -#ifdef CONFIG_COMPACTION +#if defined(CONFIG_COMPACTION) || defined(CONFIG_CMA) #define get_pageblock_skip(page) \ get_pageblock_flags_group(page, PB_migrate_skip, \ PB_migrate_skip + 1) [-- Attachment #1.3: cmatest.log --] [-- Type: text/plain, Size: 182197 bytes --] modprobe cmatest [ 241.358384] cma: dma_alloc_from_contiguous(cma cf473fc0, count 1, align 0) [ 241.365687] cma: dma_alloc_from_contiguous(): memory range at c08c6000 is busy, retrying [ 241.374024] cma: dma_alloc_from_contiguous(): memory range at c08c6020 is busy, retrying [ 241.382343] cma: dma_alloc_from_contiguous(): memory range at c08c6040 is busy, retrying [ 241.390630] cma: dma_alloc_from_contiguous(): memory range at c08c6060 is busy, retrying [ 241.398920] cma: dma_alloc_from_contiguous(): memory range at c08c6080 is busy, retrying [ 241.407203] cma: dma_alloc_from_contiguous(): memory range at c08c60a0 is busy, retrying [ 241.415455] cma: dma_alloc_from_contiguous(): memory range at c08c60c0 is busy, retrying [ 241.423742] cma: dma_alloc_from_contiguous(): memory range at c08c60e0 is busy, retrying [ 241.432021] cma: dma_alloc_from_contiguous(): memory range at c08c6100 is busy, retrying [ 241.440301] cma: dma_alloc_from_contiguous(): memory range at c08c6120 is busy, retrying [ 241.448581] cma: dma_alloc_from_contiguous(): memory range at c08c6140 is busy, retrying [ 241.456862] cma: dma_alloc_from_contiguous(): memory range at c08c6160 is busy, retrying [ 241.465118] cma: dma_alloc_from_contiguous(): memory range at c08c6180 is busy, retrying [ 241.473399] cma: dma_alloc_from_contiguous(): memory range at c08c61a0 is busy, retrying [ 241.481678] cma: dma_alloc_from_contiguous(): memory range at c08c61c0 is busy, retrying [ 241.489960] cma: dma_alloc_from_contiguous(): memory range at c08c61e0 is busy, retrying [ 241.498251] cma: dma_alloc_from_contiguous(): memory range at c08c6200 is busy, retrying [ 241.506535] cma: dma_alloc_from_contiguous(): memory range at c08c6220 is busy, retrying [ 241.514791] cma: dma_alloc_from_contiguous(): memory range at c08c6240 is busy, retrying [ 241.523072] cma: dma_alloc_from_contiguous(): memory range at c08c6260 is busy, retrying [ 241.531352] cma: dma_alloc_from_contiguous(): memory range at c08c6280 is busy, retrying [ 241.539634] cma: dma_alloc_from_contiguous(): memory range at c08c62a0 is busy, retrying [ 241.547912] cma: dma_alloc_from_contiguous(): memory range at c08c62c0 is busy, retrying [ 241.556164] cma: dma_alloc_from_contiguous(): memory range at c08c62e0 is busy, retrying [ 241.564443] cma: dma_alloc_from_contiguous(): memory range at c08c6300 is busy, retrying [ 241.572722] cma: dma_alloc_from_contiguous(): memory range at c08c6320 is busy, retrying [ 241.581003] cma: dma_alloc_from_contiguous(): memory range at c08c6340 is busy, retrying [ 241.589282] cma: dma_alloc_from_contiguous(): memory range at c08c6360 is busy, retrying [ 241.597561] cma: dma_alloc_from_contiguous(): memory range at c08c6380 is busy, retrying [ 241.605814] cma: dma_alloc_from_contiguous(): memory range at c08c63a0 is busy, retrying [ 241.614104] cma: dma_alloc_from_contiguous(): memory range at c08c63c0 is busy, retrying [ 241.622396] cma: dma_alloc_from_contiguous(): returned c08c63e0 [ 241.628340] successfully allocated 4096 bytes [ 241.632685] cma: dma_release_from_contiguous(page c08c63e0) [ 241.638259] cma: dma_alloc_from_contiguous(cma cf473fc0, count 2, align 1) [ 241.645308] cma: dma_alloc_from_contiguous(): memory range at c08c6000 is busy, retrying [ 241.653612] cma: dma_alloc_from_contiguous(): memory range at c08c6040 is busy, retrying [ 241.661892] cma: dma_alloc_from_contiguous(): memory range at c08c6080 is busy, retrying [ 241.670172] cma: dma_alloc_from_contiguous(): memory range at c08c60c0 is busy, retrying [ 241.678452] cma: dma_alloc_from_contiguous(): memory range at c08c6100 is busy, retrying [ 241.686736] cma: dma_alloc_from_contiguous(): memory range at c08c6140 is busy, retrying [ 241.694989] cma: dma_alloc_from_contiguous(): memory range at c08c6180 is busy, retrying [ 241.703279] cma: dma_alloc_from_contiguous(): memory range at c08c61c0 is busy, retrying [ 241.711560] cma: dma_alloc_from_contiguous(): memory range at c08c6200 is busy, retrying [ 241.719838] cma: dma_alloc_from_contiguous(): memory range at c08c6240 is busy, retrying [ 241.728116] cma: dma_alloc_from_contiguous(): memory range at c08c6280 is busy, retrying [ 241.736367] cma: dma_alloc_from_contiguous(): memory range at c08c62c0 is busy, retrying [ 241.744648] cma: dma_alloc_from_contiguous(): memory range at c08c6300 is busy, retrying [ 241.752927] cma: dma_alloc_from_contiguous(): memory range at c08c6340 is busy, retrying [ 241.761209] cma: dma_alloc_from_contiguous(): memory range at c08c6380 is busy, retrying [ 241.769484] cma: dma_alloc_from_contiguous(): returned c08c63c0 [ 241.775416] successfully allocated 8192 bytes [ 241.779781] cma: dma_release_from_contiguous(page c08c63c0) [ 241.785342] cma: dma_alloc_from_contiguous(cma cf473fc0, count 4, align 2) [ 241.792408] cma: dma_alloc_from_contiguous(): memory range at c08c6000 is busy, retrying [ 241.800687] cma: dma_alloc_from_contiguous(): memory range at c08c6080 is busy, retrying [ 241.808967] cma: dma_alloc_from_contiguous(): memory range at c08c6100 is busy, retrying [ 241.817248] cma: dma_alloc_from_contiguous(): memory range at c08c6180 is busy, retrying [ 241.825501] cma: dma_alloc_from_contiguous(): memory range at c08c6200 is busy, retrying [ 241.833783] cma: dma_alloc_from_contiguous(): memory range at c08c6280 is busy, retrying [ 241.842062] cma: dma_alloc_from_contiguous(): memory range at c08c6300 is busy, retrying [ 241.850341] cma: dma_alloc_from_contiguous(): returned c08c6380 [ 241.856299] successfully allocated 16384 bytes [ 241.860751] cma: dma_release_from_contiguous(page c08c6380) [ 241.866312] cma: dma_alloc_from_contiguous(cma cf473fc0, count 8, align 3) [ 241.873378] cma: dma_alloc_from_contiguous(): memory range at c08c6000 is busy, retrying [ 241.881667] cma: dma_alloc_from_contiguous(): memory range at c08c6100 is busy, retrying [ 241.889960] cma: dma_alloc_from_contiguous(): memory range at c08c6200 is busy, retrying [ 241.898245] cma: dma_alloc_from_contiguous(): returned c08c6300 [ 241.904257] successfully allocated 32768 bytes [ 241.908711] cma: dma_release_from_contiguous(page c08c6300) [ 241.914274] cma: dma_alloc_from_contiguous(cma cf473fc0, count 16, align 4) [ 241.921433] cma: dma_alloc_from_contiguous(): memory range at c08c6000 is busy, retrying [ 241.929704] cma: dma_alloc_from_contiguous(): returned c08c6200 [ 241.935815] successfully allocated 65536 bytes [ 241.940270] cma: dma_release_from_contiguous(page c08c6200) [ 241.945835] cma: dma_alloc_from_contiguous(cma cf473fc0, count 32, align 5) [ 241.953005] cma: dma_alloc_from_contiguous(): returned c08c6000 [ 241.959358] successfully allocated 131072 bytes [ 241.963879] cma: dma_release_from_contiguous(page c08c6000) [ 241.969464] cma: dma_alloc_from_contiguous(cma cf473fc0, count 64, align 6) [ 241.976633] cma: dma_alloc_from_contiguous(): returned c08c7000 [ 241.983362] successfully allocated 262144 bytes [ 241.987912] cma: dma_release_from_contiguous(page c08c7000) [ 241.993494] cma: dma_alloc_from_contiguous(cma cf473fc0, count 128, align 7) [ 242.000780] cma: dma_alloc_from_contiguous(): returned c08c8000 [ 242.008388] successfully allocated 524288 bytes [ 242.012918] cma: dma_release_from_contiguous(page c08c8000) [ 242.018550] cma: dma_alloc_from_contiguous(cma cf473fc0, count 256, align 8) [ 242.026035] cma: dma_alloc_from_contiguous(): returned c08ca000 [ 242.035433] successfully allocated 1048576 bytes [ 242.040096] cma: dma_release_from_contiguous(page c08ca000) [ 242.045776] cma: dma_alloc_from_contiguous(cma cf473fc0, count 512, align 8) [ 242.054059] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 242.063072] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 242.071782] cma: dma_alloc_from_contiguous(): returned c08d2000 [ 242.082982] successfully allocated 2097152 bytes [ 242.087671] cma: dma_release_from_contiguous(page c08d2000) [ 242.093494] cma: dma_alloc_from_contiguous(cma cf473fc0, count 1024, align 8) [ 242.101253] cma: dma_alloc_from_contiguous(): returned c08ce000 [ 242.115323] successfully allocated 4194304 bytes [ 242.120063] cma: dma_release_from_contiguous(page c08ce000) [ 242.126198] cma: dma_alloc_from_contiguous(cma cf473fc0, count 2048, align 8) [ 242.133650] alloc_contig_range test_pages_isolated(fc00, 10400) failed [ 242.140183] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 242.148473] alloc_contig_range test_pages_isolated(fc00, 10500) failed [ 242.154987] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 242.163274] alloc_contig_range test_pages_isolated(fc00, 10600) failed [ 242.169804] cma: dma_alloc_from_contiguous(): memory range at c08d2000 is busy, retrying [ 242.178084] alloc_contig_range test_pages_isolated(fc00, 10700) failed [ 242.184597] cma: dma_alloc_from_contiguous(): memory range at c08d4000 is busy, retrying [ 242.192882] alloc_contig_range test_pages_isolated(10000, 10800) failed [ 242.199498] cma: dma_alloc_from_contiguous(): memory range at c08d6000 is busy, retrying [ 242.207777] alloc_contig_range test_pages_isolated(10000, 10900) failed [ 242.214377] cma: dma_alloc_from_contiguous(): memory range at c08d8000 is busy, retrying [ 242.222663] alloc_contig_range test_pages_isolated(10000, 10a00) failed [ 242.229280] cma: dma_alloc_from_contiguous(): memory range at c08da000 is busy, retrying [ 242.237559] alloc_contig_range test_pages_isolated(10000, 10b00) failed [ 242.244159] cma: dma_alloc_from_contiguous(): memory range at c08dc000 is busy, retrying [ 242.252466] alloc_contig_range test_pages_isolated(10400, 10c00) failed [ 242.259082] cma: dma_alloc_from_contiguous(): memory range at c08de000 is busy, retrying [ 242.267362] alloc_contig_range test_pages_isolated(10400, 10d00) failed [ 242.273962] cma: dma_alloc_from_contiguous(): memory range at c08e0000 is busy, retrying [ 242.282247] alloc_contig_range test_pages_isolated(10400, 10e00) failed [ 242.288866] cma: dma_alloc_from_contiguous(): memory range at c08e2000 is busy, retrying [ 242.297152] alloc_contig_range test_pages_isolated(10400, 10f00) failed [ 242.303752] cma: dma_alloc_from_contiguous(): memory range at c08e4000 is busy, retrying [ 242.312037] alloc_contig_range test_pages_isolated(10800, 11000) failed [ 242.318653] cma: dma_alloc_from_contiguous(): memory range at c08e6000 is busy, retrying [ 242.326932] alloc_contig_range test_pages_isolated(10800, 11100) failed [ 242.333532] cma: dma_alloc_from_contiguous(): memory range at c08e8000 is busy, retrying [ 242.341818] alloc_contig_range test_pages_isolated(10800, 11200) failed [ 242.348435] cma: dma_alloc_from_contiguous(): memory range at c08ea000 is busy, retrying [ 242.356714] alloc_contig_range test_pages_isolated(10800, 11300) failed [ 242.363314] cma: dma_alloc_from_contiguous(): memory range at c08ec000 is busy, retrying [ 242.371597] alloc_contig_range test_pages_isolated(10c00, 11400) failed [ 242.378213] cma: dma_alloc_from_contiguous(): memory range at c08ee000 is busy, retrying [ 242.386494] alloc_contig_range test_pages_isolated(10c00, 11500) failed [ 242.393093] cma: dma_alloc_from_contiguous(): memory range at c08f0000 is busy, retrying [ 242.401377] alloc_contig_range test_pages_isolated(10c00, 11600) failed [ 242.407996] cma: dma_alloc_from_contiguous(): memory range at c08f2000 is busy, retrying [ 242.416269] alloc_contig_range test_pages_isolated(10c00, 11700) failed [ 242.422888] cma: dma_alloc_from_contiguous(): memory range at c08f4000 is busy, retrying [ 242.431164] alloc_contig_range test_pages_isolated(11000, 11800) failed [ 242.437784] cma: dma_alloc_from_contiguous(): memory range at c08f6000 is busy, retrying [ 242.446048] alloc_contig_range test_pages_isolated(11000, 11900) failed [ 242.452669] cma: dma_alloc_from_contiguous(): memory range at c08f8000 is busy, retrying [ 242.460946] alloc_contig_range test_pages_isolated(11000, 11a00) failed [ 242.467564] cma: dma_alloc_from_contiguous(): memory range at c08fa000 is busy, retrying [ 242.475829] alloc_contig_range test_pages_isolated(11000, 11b00) failed [ 242.482449] cma: dma_alloc_from_contiguous(): memory range at c08fc000 is busy, retrying [ 242.490724] alloc_contig_range test_pages_isolated(11400, 11c00) failed [ 242.497350] cma: dma_alloc_from_contiguous(): memory range at c08fe000 is busy, retrying [ 242.505619] alloc_contig_range test_pages_isolated(11400, 11d00) failed [ 242.512237] cma: dma_alloc_from_contiguous(): memory range at c0900000 is busy, retrying [ 242.520514] alloc_contig_range test_pages_isolated(11400, 11e00) failed [ 242.527133] cma: dma_alloc_from_contiguous(): memory range at c0902000 is busy, retrying [ 242.535397] alloc_contig_range test_pages_isolated(11400, 11f00) failed [ 242.542017] cma: dma_alloc_from_contiguous(): memory range at c0904000 is busy, retrying [ 242.550312] alloc_contig_range test_pages_isolated(11800, 12000) failed [ 242.556931] cma: dma_alloc_from_contiguous(): memory range at c0906000 is busy, retrying [ 242.565196] alloc_contig_range test_pages_isolated(11800, 12100) failed [ 242.571815] cma: dma_alloc_from_contiguous(): memory range at c0908000 is busy, retrying [ 242.580093] alloc_contig_range test_pages_isolated(11800, 12200) failed [ 242.586712] cma: dma_alloc_from_contiguous(): memory range at c090a000 is busy, retrying [ 242.594977] alloc_contig_range test_pages_isolated(11800, 12300) failed [ 242.601597] cma: dma_alloc_from_contiguous(): memory range at c090c000 is busy, retrying [ 242.609873] alloc_contig_range test_pages_isolated(11c00, 12400) failed [ 242.616491] cma: dma_alloc_from_contiguous(): memory range at c090e000 is busy, retrying [ 242.624756] alloc_contig_range test_pages_isolated(11c00, 12500) failed [ 242.631376] cma: dma_alloc_from_contiguous(): memory range at c0910000 is busy, retrying [ 242.639653] alloc_contig_range test_pages_isolated(11c00, 12600) failed [ 242.646252] cma: dma_alloc_from_contiguous(): memory range at c0912000 is busy, retrying [ 242.654540] alloc_contig_range test_pages_isolated(11c00, 12700) failed [ 242.661158] cma: dma_alloc_from_contiguous(): memory range at c0914000 is busy, retrying [ 242.669445] alloc_contig_range test_pages_isolated(12000, 12800) failed [ 242.676044] cma: dma_alloc_from_contiguous(): memory range at c0916000 is busy, retrying [ 242.684331] alloc_contig_range test_pages_isolated(12000, 12900) failed [ 242.690948] cma: dma_alloc_from_contiguous(): memory range at c0918000 is busy, retrying [ 242.699235] alloc_contig_range test_pages_isolated(12000, 12a00) failed [ 242.705835] cma: dma_alloc_from_contiguous(): memory range at c091a000 is busy, retrying [ 242.714124] alloc_contig_range test_pages_isolated(12000, 12b00) failed [ 242.720740] cma: dma_alloc_from_contiguous(): memory range at c091c000 is busy, retrying [ 242.729019] alloc_contig_range test_pages_isolated(12400, 12c00) failed [ 242.735619] cma: dma_alloc_from_contiguous(): memory range at c091e000 is busy, retrying [ 242.743906] alloc_contig_range test_pages_isolated(12400, 12d00) failed [ 242.750523] cma: dma_alloc_from_contiguous(): memory range at c0920000 is busy, retrying [ 242.758802] alloc_contig_range test_pages_isolated(12400, 12e00) failed [ 242.765403] cma: dma_alloc_from_contiguous(): memory range at c0922000 is busy, retrying [ 242.773690] alloc_contig_range test_pages_isolated(12400, 12f00) failed [ 242.780307] cma: dma_alloc_from_contiguous(): memory range at c0924000 is busy, retrying [ 242.788585] alloc_contig_range test_pages_isolated(12800, 13000) failed [ 242.795184] cma: dma_alloc_from_contiguous(): memory range at c0926000 is busy, retrying [ 242.803472] alloc_contig_range test_pages_isolated(12800, 13100) failed [ 242.810091] cma: dma_alloc_from_contiguous(): memory range at c0928000 is busy, retrying [ 242.818371] alloc_contig_range test_pages_isolated(12800, 13200) failed [ 242.824972] cma: dma_alloc_from_contiguous(): memory range at c092a000 is busy, retrying [ 242.833261] alloc_contig_range test_pages_isolated(12800, 13300) failed [ 242.839878] cma: dma_alloc_from_contiguous(): memory range at c092c000 is busy, retrying [ 242.848178] alloc_contig_range test_pages_isolated(12c00, 13400) failed [ 242.854777] cma: dma_alloc_from_contiguous(): memory range at c092e000 is busy, retrying [ 242.863065] alloc_contig_range test_pages_isolated(12c00, 13500) failed [ 242.869682] cma: dma_alloc_from_contiguous(): memory range at c0930000 is busy, retrying [ 242.877962] alloc_contig_range test_pages_isolated(12c00, 13600) failed [ 242.884561] cma: dma_alloc_from_contiguous(): memory range at c0932000 is busy, retrying [ 242.892848] alloc_contig_range test_pages_isolated(12c00, 13700) failed [ 242.899473] cma: dma_alloc_from_contiguous(): memory range at c0934000 is busy, retrying [ 242.907754] alloc_contig_range test_pages_isolated(13000, 13800) failed [ 242.914353] cma: dma_alloc_from_contiguous(): memory range at c0936000 is busy, retrying [ 242.922641] alloc_contig_range test_pages_isolated(13000, 13900) failed [ 242.929257] cma: dma_alloc_from_contiguous(): memory range at c0938000 is busy, retrying [ 242.937547] alloc_contig_range test_pages_isolated(13000, 13a00) failed [ 242.944148] cma: dma_alloc_from_contiguous(): memory range at c093a000 is busy, retrying [ 242.952435] alloc_contig_range test_pages_isolated(13000, 13b00) failed [ 242.959053] cma: dma_alloc_from_contiguous(): memory range at c093c000 is busy, retrying [ 242.967331] alloc_contig_range test_pages_isolated(13400, 13c00) failed [ 242.973930] cma: dma_alloc_from_contiguous(): memory range at c093e000 is busy, retrying [ 242.982216] alloc_contig_range test_pages_isolated(13400, 13d00) failed [ 242.988834] cma: dma_alloc_from_contiguous(): memory range at c0940000 is busy, retrying [ 242.997115] alloc_contig_range test_pages_isolated(13400, 13e00) failed [ 243.003715] cma: dma_alloc_from_contiguous(): memory range at c0942000 is busy, retrying [ 243.012003] alloc_contig_range test_pages_isolated(13400, 13f00) failed [ 243.018638] cma: dma_alloc_from_contiguous(): memory range at c0944000 is busy, retrying [ 243.026919] alloc_contig_range test_pages_isolated(13800, 14000) failed [ 243.033518] cma: dma_alloc_from_contiguous(): memory range at c0946000 is busy, retrying [ 243.041807] alloc_contig_range test_pages_isolated(13800, 14100) failed [ 243.048423] cma: dma_alloc_from_contiguous(): memory range at c0948000 is busy, retrying [ 243.056702] alloc_contig_range test_pages_isolated(13800, 14200) failed [ 243.063303] cma: dma_alloc_from_contiguous(): memory range at c094a000 is busy, retrying [ 243.071590] alloc_contig_range test_pages_isolated(13800, 14300) failed [ 243.078205] cma: dma_alloc_from_contiguous(): memory range at c094c000 is busy, retrying [ 243.086485] alloc_contig_range test_pages_isolated(13c00, 14400) failed [ 243.093084] cma: dma_alloc_from_contiguous(): memory range at c094e000 is busy, retrying [ 243.101378] alloc_contig_range test_pages_isolated(13c00, 14500) failed [ 243.107995] cma: dma_alloc_from_contiguous(): memory range at c0950000 is busy, retrying [ 243.116261] alloc_contig_range test_pages_isolated(13c00, 14600) failed [ 243.122880] cma: dma_alloc_from_contiguous(): memory range at c0952000 is busy, retrying [ 243.131157] alloc_contig_range test_pages_isolated(13c00, 14700) failed [ 243.137776] cma: dma_alloc_from_contiguous(): memory range at c0954000 is busy, retrying [ 243.146039] alloc_contig_range test_pages_isolated(14000, 14800) failed [ 243.152677] cma: dma_alloc_from_contiguous(): memory range at c0956000 is busy, retrying [ 243.160957] alloc_contig_range test_pages_isolated(14000, 14900) failed [ 243.167576] cma: dma_alloc_from_contiguous(): memory range at c0958000 is busy, retrying [ 243.175843] alloc_contig_range test_pages_isolated(14000, 14a00) failed [ 243.182460] cma: dma_alloc_from_contiguous(): memory range at c095a000 is busy, retrying [ 243.190747] alloc_contig_range test_pages_isolated(14000, 14b00) failed [ 243.197366] cma: dma_alloc_from_contiguous(): memory range at c095c000 is busy, retrying [ 243.205631] alloc_contig_range test_pages_isolated(14400, 14c00) failed [ 243.212249] cma: dma_alloc_from_contiguous(): memory range at c095e000 is busy, retrying [ 243.220528] alloc_contig_range test_pages_isolated(14400, 14d00) failed [ 243.227148] cma: dma_alloc_from_contiguous(): memory range at c0960000 is busy, retrying [ 243.235414] alloc_contig_range test_pages_isolated(14400, 14e00) failed [ 243.242034] cma: dma_alloc_from_contiguous(): memory range at c0962000 is busy, retrying [ 243.250313] alloc_contig_range test_pages_isolated(14400, 14f00) failed [ 243.256934] cma: dma_alloc_from_contiguous(): memory range at c0964000 is busy, retrying [ 243.265199] alloc_contig_range test_pages_isolated(14800, 15000) failed [ 243.271816] cma: dma_alloc_from_contiguous(): memory range at c0966000 is busy, retrying [ 243.280097] alloc_contig_range test_pages_isolated(14800, 15100) failed [ 243.286716] cma: dma_alloc_from_contiguous(): memory range at c0968000 is busy, retrying [ 243.294983] alloc_contig_range test_pages_isolated(14800, 15200) failed [ 243.301610] cma: dma_alloc_from_contiguous(): memory range at c096a000 is busy, retrying [ 243.309895] alloc_contig_range test_pages_isolated(14800, 15300) failed [ 243.316514] cma: dma_alloc_from_contiguous(): memory range at c096c000 is busy, retrying [ 243.324779] alloc_contig_range test_pages_isolated(14c00, 15400) failed [ 243.331397] cma: dma_alloc_from_contiguous(): memory range at c096e000 is busy, retrying [ 243.339675] alloc_contig_range test_pages_isolated(14c00, 15500) failed [ 243.346276] cma: dma_alloc_from_contiguous(): memory range at c0970000 is busy, retrying [ 243.354565] alloc_contig_range test_pages_isolated(14c00, 15600) failed [ 243.361181] cma: dma_alloc_from_contiguous(): memory range at c0972000 is busy, retrying [ 243.369461] alloc_contig_range test_pages_isolated(14c00, 15700) failed [ 243.376061] cma: dma_alloc_from_contiguous(): memory range at c0974000 is busy, retrying [ 243.384346] alloc_contig_range test_pages_isolated(15000, 15800) failed [ 243.390964] cma: dma_alloc_from_contiguous(): memory range at c0976000 is busy, retrying [ 243.399246] alloc_contig_range test_pages_isolated(15000, 15900) failed [ 243.405846] cma: dma_alloc_from_contiguous(): memory range at c0978000 is busy, retrying [ 243.414136] alloc_contig_range test_pages_isolated(15000, 15a00) failed [ 243.420754] cma: dma_alloc_from_contiguous(): memory range at c097a000 is busy, retrying [ 243.429034] alloc_contig_range test_pages_isolated(15000, 15b00) failed [ 243.435633] cma: dma_alloc_from_contiguous(): memory range at c097c000 is busy, retrying [ 243.443932] alloc_contig_range test_pages_isolated(15400, 15c00) failed [ 243.450570] cma: dma_alloc_from_contiguous(): memory range at c097e000 is busy, retrying [ 243.458857] alloc_contig_range test_pages_isolated(15400, 15d00) failed [ 243.465457] cma: dma_alloc_from_contiguous(): memory range at c0980000 is busy, retrying [ 243.473747] alloc_contig_range test_pages_isolated(15400, 15e00) failed [ 243.480365] cma: dma_alloc_from_contiguous(): memory range at c0982000 is busy, retrying [ 243.488647] alloc_contig_range test_pages_isolated(15400, 15f00) failed [ 243.495246] cma: dma_alloc_from_contiguous(): memory range at c0984000 is busy, retrying [ 243.503544] alloc_contig_range test_pages_isolated(15800, 16000) failed [ 243.510160] cma: dma_alloc_from_contiguous(): memory range at c0986000 is busy, retrying [ 243.518442] alloc_contig_range test_pages_isolated(15800, 16100) failed [ 243.525042] cma: dma_alloc_from_contiguous(): memory range at c0988000 is busy, retrying [ 243.533331] alloc_contig_range test_pages_isolated(15800, 16200) failed [ 243.539950] cma: dma_alloc_from_contiguous(): memory range at c098a000 is busy, retrying [ 243.548232] alloc_contig_range test_pages_isolated(15800, 16300) failed [ 243.554832] cma: dma_alloc_from_contiguous(): memory range at c098c000 is busy, retrying [ 243.563118] alloc_contig_range test_pages_isolated(15c00, 16400) failed [ 243.569734] cma: dma_alloc_from_contiguous(): memory range at c098e000 is busy, retrying [ 243.578015] alloc_contig_range test_pages_isolated(15c00, 16500) failed [ 243.584615] cma: dma_alloc_from_contiguous(): memory range at c0990000 is busy, retrying [ 243.592904] alloc_contig_range test_pages_isolated(15c00, 16600) failed [ 243.599520] cma: dma_alloc_from_contiguous(): memory range at c0992000 is busy, retrying [ 243.607799] alloc_contig_range test_pages_isolated(15c00, 16700) failed [ 243.614400] cma: dma_alloc_from_contiguous(): memory range at c0994000 is busy, retrying [ 243.622687] alloc_contig_range test_pages_isolated(16000, 16800) failed [ 243.629305] cma: dma_alloc_from_contiguous(): memory range at c0996000 is busy, retrying [ 243.637588] alloc_contig_range test_pages_isolated(16000, 16900) failed [ 243.644188] cma: dma_alloc_from_contiguous(): memory range at c0998000 is busy, retrying [ 243.652478] alloc_contig_range test_pages_isolated(16000, 16a00) failed [ 243.659095] cma: dma_alloc_from_contiguous(): memory range at c099a000 is busy, retrying [ 243.667377] alloc_contig_range test_pages_isolated(16000, 16b00) failed [ 243.673977] cma: dma_alloc_from_contiguous(): memory range at c099c000 is busy, retrying [ 243.682265] alloc_contig_range test_pages_isolated(16400, 16c00) failed [ 243.688883] cma: dma_alloc_from_contiguous(): memory range at c099e000 is busy, retrying [ 243.697173] alloc_contig_range test_pages_isolated(16400, 16d00) failed [ 243.703774] cma: dma_alloc_from_contiguous(): memory range at c09a0000 is busy, retrying [ 243.712086] alloc_contig_range test_pages_isolated(16400, 16e00) failed [ 243.718704] cma: dma_alloc_from_contiguous(): memory range at c09a2000 is busy, retrying [ 243.726987] alloc_contig_range test_pages_isolated(16400, 16f00) failed [ 243.733587] cma: dma_alloc_from_contiguous(): memory range at c09a4000 is busy, retrying [ 243.741877] alloc_contig_range test_pages_isolated(16800, 17000) failed [ 243.748515] cma: dma_alloc_from_contiguous(): memory range at c09a6000 is busy, retrying [ 243.756801] alloc_contig_range test_pages_isolated(16800, 17100) failed [ 243.763402] cma: dma_alloc_from_contiguous(): memory range at c09a8000 is busy, retrying [ 243.771692] alloc_contig_range test_pages_isolated(16800, 17200) failed [ 243.778308] cma: dma_alloc_from_contiguous(): memory range at c09aa000 is busy, retrying [ 243.786592] alloc_contig_range test_pages_isolated(16800, 17300) failed [ 243.793193] cma: dma_alloc_from_contiguous(): memory range at c09ac000 is busy, retrying [ 243.801480] alloc_contig_range test_pages_isolated(16c00, 17400) failed [ 243.808096] cma: dma_alloc_from_contiguous(): memory range at c09ae000 is busy, retrying [ 243.816362] alloc_contig_range test_pages_isolated(16c00, 17500) failed [ 243.822981] cma: dma_alloc_from_contiguous(): memory range at c09b0000 is busy, retrying [ 243.831261] alloc_contig_range test_pages_isolated(16c00, 17600) failed [ 243.837880] cma: dma_alloc_from_contiguous(): memory range at c09b2000 is busy, retrying [ 243.846147] alloc_contig_range test_pages_isolated(16c00, 17700) failed [ 243.852766] cma: dma_alloc_from_contiguous(): memory range at c09b4000 is busy, retrying [ 243.861044] alloc_contig_range test_pages_isolated(17000, 17800) failed [ 243.867663] cma: dma_alloc_from_contiguous(): memory range at c09b6000 is busy, retrying [ 243.875930] alloc_contig_range test_pages_isolated(17000, 17900) failed [ 243.882550] cma: dma_alloc_from_contiguous(): memory range at c09b8000 is busy, retrying [ 243.890831] alloc_contig_range test_pages_isolated(17000, 17a00) failed [ 243.897457] cma: dma_alloc_from_contiguous(): memory range at c09ba000 is busy, retrying [ 243.905730] alloc_contig_range test_pages_isolated(17000, 17b00) failed [ 243.912350] cma: dma_alloc_from_contiguous(): memory range at c09bc000 is busy, retrying [ 243.920628] alloc_contig_range test_pages_isolated(17400, 17c00) failed [ 243.927245] cma: dma_alloc_from_contiguous(): memory range at c09be000 is busy, retrying [ 243.935513] alloc_contig_range test_pages_isolated(17400, 17d00) failed [ 243.942132] cma: dma_alloc_from_contiguous(): memory range at c09c0000 is busy, retrying [ 243.950411] alloc_contig_range test_pages_isolated(17400, 17e00) failed [ 243.957032] cma: dma_alloc_from_contiguous(): memory range at c09c2000 is busy, retrying [ 243.965475] alloc_contig_range test_pages_isolated(17400, 17f00) failed [ 243.972097] cma: dma_alloc_from_contiguous(): memory range at c09c4000 is busy, retrying [ 243.980377] alloc_contig_range test_pages_isolated(17800, 18000) failed [ 243.986995] cma: dma_alloc_from_contiguous(): memory range at c09c6000 is busy, retrying [ 243.995265] alloc_contig_range test_pages_isolated(17800, 18100) failed [ 244.001883] cma: dma_alloc_from_contiguous(): memory range at c09c8000 is busy, retrying [ 244.010163] alloc_contig_range test_pages_isolated(17800, 18200) failed [ 244.016797] cma: dma_alloc_from_contiguous(): memory range at c09ca000 is busy, retrying [ 244.025065] alloc_contig_range test_pages_isolated(17800, 18300) failed [ 244.032048] cma: dma_alloc_from_contiguous(): memory range at c09cc000 is busy, retrying [ 244.040371] alloc_contig_range test_pages_isolated(17c00, 18400) failed [ 244.047012] cma: dma_alloc_from_contiguous(): memory range at c09ce000 is busy, retrying [ 244.055282] alloc_contig_range test_pages_isolated(17c00, 18500) failed [ 244.061984] cma: dma_alloc_from_contiguous(): memory range at c09d0000 is busy, retrying [ 244.070292] alloc_contig_range test_pages_isolated(17c00, 18600) failed [ 244.076912] cma: dma_alloc_from_contiguous(): memory range at c09d2000 is busy, retrying [ 244.085180] alloc_contig_range test_pages_isolated(17c00, 18700) failed [ 244.091797] cma: dma_alloc_from_contiguous(): memory range at c09d4000 is busy, retrying [ 244.100092] alloc_contig_range test_pages_isolated(18000, 18800) failed [ 244.106709] cma: dma_alloc_from_contiguous(): memory range at c09d6000 is busy, retrying [ 244.114976] alloc_contig_range test_pages_isolated(18000, 18900) failed [ 244.121597] cma: dma_alloc_from_contiguous(): memory range at c09d8000 is busy, retrying [ 244.129878] alloc_contig_range test_pages_isolated(18000, 18a00) failed [ 244.136498] cma: dma_alloc_from_contiguous(): memory range at c09da000 is busy, retrying [ 244.144764] alloc_contig_range test_pages_isolated(18000, 18b00) failed [ 244.151382] cma: dma_alloc_from_contiguous(): memory range at c09dc000 is busy, retrying [ 244.159808] alloc_contig_range test_pages_isolated(18400, 18c00) failed [ 244.166407] cma: dma_alloc_from_contiguous(): memory range at c09de000 is busy, retrying [ 244.174701] alloc_contig_range test_pages_isolated(18400, 18d00) failed [ 244.181315] cma: dma_alloc_from_contiguous(): memory range at c09e0000 is busy, retrying [ 244.189594] alloc_contig_range test_pages_isolated(18400, 18e00) failed [ 244.196195] cma: dma_alloc_from_contiguous(): memory range at c09e2000 is busy, retrying [ 244.204479] alloc_contig_range test_pages_isolated(18400, 18f00) failed [ 244.211093] cma: dma_alloc_from_contiguous(): memory range at c09e4000 is busy, retrying [ 244.219370] alloc_contig_range test_pages_isolated(18800, 19000) failed [ 244.225969] cma: dma_alloc_from_contiguous(): memory range at c09e6000 is busy, retrying [ 244.234253] alloc_contig_range test_pages_isolated(18800, 19100) failed [ 244.240865] cma: dma_alloc_from_contiguous(): memory range at c09e8000 is busy, retrying [ 244.249141] alloc_contig_range test_pages_isolated(18800, 19200) failed [ 244.255742] cma: dma_alloc_from_contiguous(): memory range at c09ea000 is busy, retrying [ 244.264140] alloc_contig_range test_pages_isolated(18800, 19300) failed [ 244.270759] cma: dma_alloc_from_contiguous(): memory range at c09ec000 is busy, retrying [ 244.279036] alloc_contig_range test_pages_isolated(18c00, 19400) failed [ 244.285636] cma: dma_alloc_from_contiguous(): memory range at c09ee000 is busy, retrying [ 244.293914] alloc_contig_range test_pages_isolated(18c00, 19500) failed [ 244.300539] cma: dma_alloc_from_contiguous(): memory range at c09f0000 is busy, retrying [ 244.308817] alloc_contig_range test_pages_isolated(18c00, 19600) failed [ 244.315417] cma: dma_alloc_from_contiguous(): memory range at c09f2000 is busy, retrying [ 244.323697] alloc_contig_range test_pages_isolated(18c00, 19700) failed [ 244.330314] cma: dma_alloc_from_contiguous(): memory range at c09f4000 is busy, retrying [ 244.338588] alloc_contig_range test_pages_isolated(19000, 19800) failed [ 244.345188] cma: dma_alloc_from_contiguous(): memory range at c09f6000 is busy, retrying [ 244.353486] alloc_contig_range test_pages_isolated(19000, 19900) failed [ 244.360276] cma: dma_alloc_from_contiguous(): memory range at c09f8000 is busy, retrying [ 244.368588] alloc_contig_range test_pages_isolated(19000, 19a00) failed [ 244.375190] cma: dma_alloc_from_contiguous(): memory range at c09fa000 is busy, retrying [ 244.383476] alloc_contig_range test_pages_isolated(19000, 19b00) failed [ 244.390090] cma: dma_alloc_from_contiguous(): memory range at c09fc000 is busy, retrying [ 244.398373] alloc_contig_range test_pages_isolated(19400, 19c00) failed [ 244.404972] cma: dma_alloc_from_contiguous(): memory range at c09fe000 is busy, retrying [ 244.413254] alloc_contig_range test_pages_isolated(19400, 19d00) failed [ 244.419867] cma: dma_alloc_from_contiguous(): memory range at c0a00000 is busy, retrying [ 244.428143] alloc_contig_range test_pages_isolated(19400, 19e00) failed [ 244.434743] cma: dma_alloc_from_contiguous(): memory range at c0a02000 is busy, retrying [ 244.443022] alloc_contig_range test_pages_isolated(19400, 19f00) failed [ 244.449635] cma: dma_alloc_from_contiguous(): memory range at c0a04000 is busy, retrying [ 244.457999] alloc_contig_range test_pages_isolated(19800, 1a000) failed [ 244.464598] cma: dma_alloc_from_contiguous(): memory range at c0a06000 is busy, retrying [ 244.472877] alloc_contig_range test_pages_isolated(19800, 1a100) failed [ 244.479489] cma: dma_alloc_from_contiguous(): memory range at c0a08000 is busy, retrying [ 244.487764] alloc_contig_range test_pages_isolated(19800, 1a200) failed [ 244.494364] cma: dma_alloc_from_contiguous(): memory range at c0a0a000 is busy, retrying [ 244.502651] alloc_contig_range test_pages_isolated(19800, 1a300) failed [ 244.509265] cma: dma_alloc_from_contiguous(): memory range at c0a0c000 is busy, retrying [ 244.517540] alloc_contig_range test_pages_isolated(19c00, 1a400) failed [ 244.524141] cma: dma_alloc_from_contiguous(): memory range at c0a0e000 is busy, retrying [ 244.532419] alloc_contig_range test_pages_isolated(19c00, 1a500) failed [ 244.539032] cma: dma_alloc_from_contiguous(): memory range at c0a10000 is busy, retrying [ 244.547308] alloc_contig_range test_pages_isolated(19c00, 1a600) failed [ 244.553908] cma: dma_alloc_from_contiguous(): memory range at c0a12000 is busy, retrying [ 244.562331] alloc_contig_range test_pages_isolated(19c00, 1a700) failed [ 244.568945] cma: dma_alloc_from_contiguous(): memory range at c0a14000 is busy, retrying [ 244.577219] alloc_contig_range test_pages_isolated(1a000, 1a800) failed [ 244.583818] cma: dma_alloc_from_contiguous(): memory range at c0a16000 is busy, retrying [ 244.592096] alloc_contig_range test_pages_isolated(1a000, 1a900) failed [ 244.598710] cma: dma_alloc_from_contiguous(): memory range at c0a18000 is busy, retrying [ 244.606985] alloc_contig_range test_pages_isolated(1a000, 1aa00) failed [ 244.613585] cma: dma_alloc_from_contiguous(): memory range at c0a1a000 is busy, retrying [ 244.621863] alloc_contig_range test_pages_isolated(1a000, 1ab00) failed [ 244.628476] cma: dma_alloc_from_contiguous(): memory range at c0a1c000 is busy, retrying [ 244.636751] alloc_contig_range test_pages_isolated(1a400, 1ac00) failed [ 244.643350] cma: dma_alloc_from_contiguous(): memory range at c0a1e000 is busy, retrying [ 244.651651] alloc_contig_range test_pages_isolated(1a400, 1ad00) failed [ 244.658378] cma: dma_alloc_from_contiguous(): memory range at c0a20000 is busy, retrying [ 244.666668] alloc_contig_range test_pages_isolated(1a400, 1ae00) failed [ 244.673270] cma: dma_alloc_from_contiguous(): memory range at c0a22000 is busy, retrying [ 244.681549] alloc_contig_range test_pages_isolated(1a400, 1af00) failed [ 244.688163] cma: dma_alloc_from_contiguous(): memory range at c0a24000 is busy, retrying [ 244.696447] alloc_contig_range test_pages_isolated(1a800, 1b000) failed [ 244.703046] cma: dma_alloc_from_contiguous(): memory range at c0a26000 is busy, retrying [ 244.711324] alloc_contig_range test_pages_isolated(1a800, 1b100) failed [ 244.717938] cma: dma_alloc_from_contiguous(): memory range at c0a28000 is busy, retrying [ 244.726205] alloc_contig_range test_pages_isolated(1a800, 1b200) failed [ 244.732820] cma: dma_alloc_from_contiguous(): memory range at c0a2a000 is busy, retrying [ 244.741094] alloc_contig_range test_pages_isolated(1a800, 1b300) failed [ 244.747709] cma: dma_alloc_from_contiguous(): memory range at c0a2c000 is busy, retrying [ 244.755973] alloc_contig_range test_pages_isolated(1ac00, 1b400) failed [ 244.762768] cma: dma_alloc_from_contiguous(): memory range at c0a2e000 is busy, retrying [ 244.771060] alloc_contig_range test_pages_isolated(1ac00, 1b500) failed [ 244.777675] cma: dma_alloc_from_contiguous(): memory range at c0a30000 is busy, retrying [ 244.785941] alloc_contig_range test_pages_isolated(1ac00, 1b600) failed [ 244.792556] cma: dma_alloc_from_contiguous(): memory range at c0a32000 is busy, retrying [ 244.800831] alloc_contig_range test_pages_isolated(1ac00, 1b700) failed [ 244.807445] cma: dma_alloc_from_contiguous(): memory range at c0a34000 is busy, retrying [ 244.815708] alloc_contig_range test_pages_isolated(1b000, 1b800) failed [ 244.822322] cma: dma_alloc_from_contiguous(): memory range at c0a36000 is busy, retrying [ 244.830595] alloc_contig_range test_pages_isolated(1b000, 1b900) failed [ 244.837211] cma: dma_alloc_from_contiguous(): memory range at c0a38000 is busy, retrying [ 244.845478] alloc_contig_range test_pages_isolated(1b000, 1ba00) failed [ 244.852094] cma: dma_alloc_from_contiguous(): memory range at c0a3a000 is busy, retrying [ 244.860511] alloc_contig_range test_pages_isolated(1b000, 1bb00) failed [ 244.867126] cma: dma_alloc_from_contiguous(): memory range at c0a3c000 is busy, retrying [ 244.875390] alloc_contig_range test_pages_isolated(1b400, 1bc00) failed [ 244.882004] cma: dma_alloc_from_contiguous(): memory range at c0a3e000 is busy, retrying [ 244.890276] alloc_contig_range test_pages_isolated(1b400, 1bd00) failed [ 244.896899] cma: dma_alloc_from_contiguous(): memory range at c0a40000 is busy, retrying [ 244.905163] alloc_contig_range test_pages_isolated(1b400, 1be00) failed [ 244.911778] cma: dma_alloc_from_contiguous(): memory range at c0a42000 is busy, retrying [ 244.920053] alloc_contig_range test_pages_isolated(1b400, 1bf00) failed [ 244.926668] cma: dma_alloc_from_contiguous(): memory range at c0a44000 is busy, retrying [ 244.934933] alloc_contig_range test_pages_isolated(1b800, 1c000) failed [ 244.941546] cma: dma_alloc_from_contiguous(): memory range at c0a46000 is busy, retrying [ 244.949842] alloc_contig_range test_pages_isolated(1b800, 1c100) failed [ 244.956543] cma: dma_alloc_from_contiguous(): memory range at c0a48000 is busy, retrying [ 244.964818] alloc_contig_range test_pages_isolated(1b800, 1c200) failed [ 244.971435] cma: dma_alloc_from_contiguous(): memory range at c0a4a000 is busy, retrying [ 244.979709] alloc_contig_range test_pages_isolated(1b800, 1c300) failed [ 244.986309] cma: dma_alloc_from_contiguous(): memory range at c0a4c000 is busy, retrying [ 244.994586] alloc_contig_range test_pages_isolated(1bc00, 1c400) failed [ 245.001196] cma: dma_alloc_from_contiguous(): memory range at c0a4e000 is busy, retrying [ 245.009473] alloc_contig_range test_pages_isolated(1bc00, 1c500) failed [ 245.016073] cma: dma_alloc_from_contiguous(): memory range at c0a50000 is busy, retrying [ 245.024366] alloc_contig_range test_pages_isolated(1bc00, 1c600) failed [ 245.030980] cma: dma_alloc_from_contiguous(): memory range at c0a52000 is busy, retrying [ 245.039256] alloc_contig_range test_pages_isolated(1bc00, 1c700) failed [ 245.045858] cma: dma_alloc_from_contiguous(): memory range at c0a54000 is busy, retrying [ 245.054135] alloc_contig_range test_pages_isolated(1c000, 1c800) failed [ 245.060929] cma: dma_alloc_from_contiguous(): memory range at c0a56000 is busy, retrying [ 245.069224] alloc_contig_range test_pages_isolated(1c000, 1c900) failed [ 245.075825] cma: dma_alloc_from_contiguous(): memory range at c0a58000 is busy, retrying [ 245.084106] alloc_contig_range test_pages_isolated(1c000, 1ca00) failed [ 245.090719] cma: dma_alloc_from_contiguous(): memory range at c0a5a000 is busy, retrying [ 245.099001] alloc_contig_range test_pages_isolated(1c000, 1cb00) failed [ 245.105602] cma: dma_alloc_from_contiguous(): memory range at c0a5c000 is busy, retrying [ 245.113882] alloc_contig_range test_pages_isolated(1c400, 1cc00) failed [ 245.120494] cma: dma_alloc_from_contiguous(): memory range at c0a5e000 is busy, retrying [ 245.128773] alloc_contig_range test_pages_isolated(1c400, 1cd00) failed [ 245.135372] cma: dma_alloc_from_contiguous(): memory range at c0a60000 is busy, retrying [ 245.143653] alloc_contig_range test_pages_isolated(1c400, 1ce00) failed [ 245.150267] cma: dma_alloc_from_contiguous(): memory range at c0a62000 is busy, retrying [ 245.158624] alloc_contig_range test_pages_isolated(1c400, 1cf00) failed [ 245.165224] cma: dma_alloc_from_contiguous(): memory range at c0a64000 is busy, retrying [ 245.173505] alloc_contig_range test_pages_isolated(1c800, 1d000) failed [ 245.180118] cma: dma_alloc_from_contiguous(): memory range at c0a66000 is busy, retrying [ 245.188393] alloc_contig_range test_pages_isolated(1c800, 1d100) failed [ 245.194995] cma: dma_alloc_from_contiguous(): memory range at c0a68000 is busy, retrying [ 245.203272] alloc_contig_range test_pages_isolated(1c800, 1d200) failed [ 245.209885] cma: dma_alloc_from_contiguous(): memory range at c0a6a000 is busy, retrying [ 245.218161] alloc_contig_range test_pages_isolated(1c800, 1d300) failed [ 245.224763] cma: dma_alloc_from_contiguous(): memory range at c0a6c000 is busy, retrying [ 245.233041] alloc_contig_range test_pages_isolated(1cc00, 1d400) failed [ 245.239652] cma: dma_alloc_from_contiguous(): memory range at c0a6e000 is busy, retrying [ 245.247948] alloc_contig_range test_pages_isolated(1cc00, 1d500) failed [ 245.254548] cma: dma_alloc_from_contiguous(): memory range at c0a70000 is busy, retrying [ 245.263005] alloc_contig_range test_pages_isolated(1cc00, 1d600) failed [ 245.269621] cma: dma_alloc_from_contiguous(): memory range at c0a72000 is busy, retrying [ 245.277898] alloc_contig_range test_pages_isolated(1cc00, 1d700) failed [ 245.284498] cma: dma_alloc_from_contiguous(): memory range at c0a74000 is busy, retrying [ 245.292775] alloc_contig_range test_pages_isolated(1d000, 1d800) failed [ 245.299394] cma: dma_alloc_from_contiguous(): memory range at c0a76000 is busy, retrying [ 245.307673] alloc_contig_range test_pages_isolated(1d000, 1d900) failed [ 245.314273] cma: dma_alloc_from_contiguous(): memory range at c0a78000 is busy, retrying [ 245.322554] alloc_contig_range test_pages_isolated(1d000, 1da00) failed [ 245.329166] cma: dma_alloc_from_contiguous(): memory range at c0a7a000 is busy, retrying [ 245.337442] alloc_contig_range test_pages_isolated(1d000, 1db00) failed [ 245.344043] cma: dma_alloc_from_contiguous(): memory range at c0a7c000 is busy, retrying [ 245.352319] alloc_contig_range test_pages_isolated(1d400, 1dc00) failed [ 245.359056] cma: dma_alloc_from_contiguous(): memory range at c0a7e000 is busy, retrying [ 245.367347] alloc_contig_range test_pages_isolated(1d400, 1dd00) failed [ 245.373947] cma: dma_alloc_from_contiguous(): memory range at c0a80000 is busy, retrying [ 245.382226] alloc_contig_range test_pages_isolated(1d400, 1de00) failed [ 245.388839] cma: dma_alloc_from_contiguous(): memory range at c0a82000 is busy, retrying [ 245.397114] alloc_contig_range test_pages_isolated(1d400, 1df00) failed [ 245.403714] cma: dma_alloc_from_contiguous(): memory range at c0a84000 is busy, retrying [ 245.411993] alloc_contig_range test_pages_isolated(1d800, 1e000) failed [ 245.418604] cma: dma_alloc_from_contiguous(): memory range at c0a86000 is busy, retrying [ 245.426884] alloc_contig_range test_pages_isolated(1d800, 1e100) failed [ 245.433483] cma: dma_alloc_from_contiguous(): memory range at c0a88000 is busy, retrying [ 245.441763] alloc_contig_range test_pages_isolated(1d800, 1e200) failed [ 245.448375] cma: dma_alloc_from_contiguous(): memory range at c0a8a000 is busy, retrying [ 245.456826] alloc_contig_range test_pages_isolated(1d800, 1e300) failed [ 245.463429] cma: dma_alloc_from_contiguous(): memory range at c0a8c000 is busy, retrying [ 245.471709] alloc_contig_range test_pages_isolated(1dc00, 1e400) failed [ 245.478321] cma: dma_alloc_from_contiguous(): memory range at c0a8e000 is busy, retrying [ 245.486599] alloc_contig_range test_pages_isolated(1dc00, 1e500) failed [ 245.493199] cma: dma_alloc_from_contiguous(): memory range at c0a90000 is busy, retrying [ 245.501487] alloc_contig_range test_pages_isolated(1dc00, 1e600) failed [ 245.508102] cma: dma_alloc_from_contiguous(): memory range at c0a92000 is busy, retrying [ 245.516368] alloc_contig_range test_pages_isolated(1dc00, 1e700) failed [ 245.522982] cma: dma_alloc_from_contiguous(): memory range at c0a94000 is busy, retrying [ 245.531254] alloc_contig_range test_pages_isolated(1e000, 1e800) failed [ 245.537868] cma: dma_alloc_from_contiguous(): memory range at c0a96000 is busy, retrying [ 245.546134] alloc_contig_range test_pages_isolated(1e000, 1e900) failed [ 245.552768] cma: dma_alloc_from_contiguous(): memory range at c0a98000 is busy, retrying [ 245.561186] alloc_contig_range test_pages_isolated(1e000, 1ea00) failed [ 245.567802] cma: dma_alloc_from_contiguous(): memory range at c0a9a000 is busy, retrying [ 245.576067] alloc_contig_range test_pages_isolated(1e000, 1eb00) failed [ 245.582682] cma: dma_alloc_from_contiguous(): memory range at c0a9c000 is busy, retrying [ 245.590957] alloc_contig_range test_pages_isolated(1e400, 1ec00) failed [ 245.597570] cma: dma_alloc_from_contiguous(): memory range at c0a9e000 is busy, retrying [ 245.605838] alloc_contig_range test_pages_isolated(1e400, 1ed00) failed [ 245.612452] cma: dma_alloc_from_contiguous(): memory range at c0aa0000 is busy, retrying [ 245.620725] alloc_contig_range test_pages_isolated(1e400, 1ee00) failed [ 245.627340] cma: dma_alloc_from_contiguous(): memory range at c0aa2000 is busy, retrying [ 245.635605] alloc_contig_range test_pages_isolated(1e400, 1ef00) failed [ 245.642219] cma: dma_alloc_from_contiguous(): memory range at c0aa4000 is busy, retrying [ 245.650491] alloc_contig_range test_pages_isolated(1e800, 1f000) failed [ 245.657232] cma: dma_alloc_from_contiguous(): memory range at c0aa6000 is busy, retrying [ 245.665512] alloc_contig_range test_pages_isolated(1e800, 1f100) failed [ 245.672127] cma: dma_alloc_from_contiguous(): memory range at c0aa8000 is busy, retrying [ 245.680404] alloc_contig_range test_pages_isolated(1e800, 1f200) failed [ 245.687020] cma: dma_alloc_from_contiguous(): memory range at c0aaa000 is busy, retrying [ 245.695284] alloc_contig_range test_pages_isolated(1e800, 1f300) failed [ 245.701906] cma: dma_alloc_from_contiguous(): memory range at c0aac000 is busy, retrying [ 245.710181] alloc_contig_range test_pages_isolated(1ec00, 1f400) failed [ 245.716794] cma: dma_alloc_from_contiguous(): memory range at c0aae000 is busy, retrying [ 245.725058] alloc_contig_range test_pages_isolated(1ec00, 1f500) failed [ 245.731673] cma: dma_alloc_from_contiguous(): memory range at c0ab0000 is busy, retrying [ 245.739947] alloc_contig_range test_pages_isolated(1ec00, 1f600) failed [ 245.746561] cma: dma_alloc_from_contiguous(): memory range at c0ab2000 is busy, retrying [ 245.754826] alloc_contig_range test_pages_isolated(1ec00, 1f700) failed [ 245.761573] cma: dma_alloc_from_contiguous(): memory range at c0ab4000 is busy, retrying [ 245.769858] alloc_contig_range test_pages_isolated(1f000, 1f800) failed [ 245.776472] cma: dma_alloc_from_contiguous(): memory range at c0ab6000 is busy, retrying [ 245.784542] cma: dma_alloc_from_contiguous(): returned (null) [ 245.790457] failed to allocate 8388608 bytes [ 245.794717] cma: dma_alloc_from_contiguous(cma cf473fc0, count 4096, align 8) [ 245.802434] alloc_contig_range test_pages_isolated(fc00, 10c00) failed [ 245.808964] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 245.817381] alloc_contig_range test_pages_isolated(fc00, 10d00) failed [ 245.823897] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 245.832311] alloc_contig_range test_pages_isolated(fc00, 10e00) failed [ 245.838839] cma: dma_alloc_from_contiguous(): memory range at c08d2000 is busy, retrying [ 245.847269] alloc_contig_range test_pages_isolated(fc00, 10f00) failed [ 245.853785] cma: dma_alloc_from_contiguous(): memory range at c08d4000 is busy, retrying [ 245.862280] alloc_contig_range test_pages_isolated(10000, 11000) failed [ 245.868901] cma: dma_alloc_from_contiguous(): memory range at c08d6000 is busy, retrying [ 245.877315] alloc_contig_range test_pages_isolated(10000, 11100) failed [ 245.883916] cma: dma_alloc_from_contiguous(): memory range at c08d8000 is busy, retrying [ 245.892328] alloc_contig_range test_pages_isolated(10000, 11200) failed [ 245.898955] cma: dma_alloc_from_contiguous(): memory range at c08da000 is busy, retrying [ 245.907368] alloc_contig_range test_pages_isolated(10000, 11300) failed [ 245.913970] cma: dma_alloc_from_contiguous(): memory range at c08dc000 is busy, retrying [ 245.922381] alloc_contig_range test_pages_isolated(10400, 11400) failed [ 245.928998] cma: dma_alloc_from_contiguous(): memory range at c08de000 is busy, retrying [ 245.937407] alloc_contig_range test_pages_isolated(10400, 11500) failed [ 245.944008] cma: dma_alloc_from_contiguous(): memory range at c08e0000 is busy, retrying [ 245.952421] alloc_contig_range test_pages_isolated(10400, 11600) failed [ 245.959170] cma: dma_alloc_from_contiguous(): memory range at c08e2000 is busy, retrying [ 245.967587] alloc_contig_range test_pages_isolated(10400, 11700) failed [ 245.974189] cma: dma_alloc_from_contiguous(): memory range at c08e4000 is busy, retrying [ 245.982596] alloc_contig_range test_pages_isolated(10800, 11800) failed [ 245.989210] cma: dma_alloc_from_contiguous(): memory range at c08e6000 is busy, retrying [ 245.997618] alloc_contig_range test_pages_isolated(10800, 11900) failed [ 246.004221] cma: dma_alloc_from_contiguous(): memory range at c08e8000 is busy, retrying [ 246.012631] alloc_contig_range test_pages_isolated(10800, 11a00) failed [ 246.019504] cma: dma_alloc_from_contiguous(): memory range at c08ea000 is busy, retrying [ 246.027934] alloc_contig_range test_pages_isolated(10800, 11b00) failed [ 246.034537] cma: dma_alloc_from_contiguous(): memory range at c08ec000 is busy, retrying [ 246.042948] alloc_contig_range test_pages_isolated(10c00, 11c00) failed [ 246.049562] cma: dma_alloc_from_contiguous(): memory range at c08ee000 is busy, retrying [ 246.058065] alloc_contig_range test_pages_isolated(10c00, 11d00) failed [ 246.064667] cma: dma_alloc_from_contiguous(): memory range at c08f0000 is busy, retrying [ 246.073086] alloc_contig_range test_pages_isolated(10c00, 11e00) failed [ 246.079702] cma: dma_alloc_from_contiguous(): memory range at c08f2000 is busy, retrying [ 246.088114] alloc_contig_range test_pages_isolated(10c00, 11f00) failed [ 246.094715] cma: dma_alloc_from_contiguous(): memory range at c08f4000 is busy, retrying [ 246.103164] alloc_contig_range test_pages_isolated(11000, 12000) failed [ 246.109778] cma: dma_alloc_from_contiguous(): memory range at c08f6000 is busy, retrying [ 246.118191] alloc_contig_range test_pages_isolated(11000, 12100) failed [ 246.124792] cma: dma_alloc_from_contiguous(): memory range at c08f8000 is busy, retrying [ 246.133208] alloc_contig_range test_pages_isolated(11000, 12200) failed [ 246.139824] cma: dma_alloc_from_contiguous(): memory range at c08fa000 is busy, retrying [ 246.148254] alloc_contig_range test_pages_isolated(11000, 12300) failed [ 246.154856] cma: dma_alloc_from_contiguous(): memory range at c08fc000 is busy, retrying [ 246.163471] alloc_contig_range test_pages_isolated(11400, 12400) failed [ 246.170091] cma: dma_alloc_from_contiguous(): memory range at c08fe000 is busy, retrying [ 246.178504] alloc_contig_range test_pages_isolated(11400, 12500) failed [ 246.185106] cma: dma_alloc_from_contiguous(): memory range at c0900000 is busy, retrying [ 246.193521] alloc_contig_range test_pages_isolated(11400, 12600) failed [ 246.200141] cma: dma_alloc_from_contiguous(): memory range at c0902000 is busy, retrying [ 246.208552] alloc_contig_range test_pages_isolated(11400, 12700) failed [ 246.215153] cma: dma_alloc_from_contiguous(): memory range at c0904000 is busy, retrying [ 246.223561] alloc_contig_range test_pages_isolated(11800, 12800) failed [ 246.230178] cma: dma_alloc_from_contiguous(): memory range at c0906000 is busy, retrying [ 246.238587] alloc_contig_range test_pages_isolated(11800, 12900) failed [ 246.245189] cma: dma_alloc_from_contiguous(): memory range at c0908000 is busy, retrying [ 246.253601] alloc_contig_range test_pages_isolated(11800, 12a00) failed [ 246.260289] cma: dma_alloc_from_contiguous(): memory range at c090a000 is busy, retrying [ 246.268707] alloc_contig_range test_pages_isolated(11800, 12b00) failed [ 246.275310] cma: dma_alloc_from_contiguous(): memory range at c090c000 is busy, retrying [ 246.283722] alloc_contig_range test_pages_isolated(11c00, 12c00) failed [ 246.290337] cma: dma_alloc_from_contiguous(): memory range at c090e000 is busy, retrying [ 246.298755] alloc_contig_range test_pages_isolated(11c00, 12d00) failed [ 246.305357] cma: dma_alloc_from_contiguous(): memory range at c0910000 is busy, retrying [ 246.313769] alloc_contig_range test_pages_isolated(11c00, 12e00) failed [ 246.320385] cma: dma_alloc_from_contiguous(): memory range at c0912000 is busy, retrying [ 246.328795] alloc_contig_range test_pages_isolated(11c00, 12f00) failed [ 246.335396] cma: dma_alloc_from_contiguous(): memory range at c0914000 is busy, retrying [ 246.343805] alloc_contig_range test_pages_isolated(12000, 13000) failed [ 246.350419] cma: dma_alloc_from_contiguous(): memory range at c0916000 is busy, retrying [ 246.358969] alloc_contig_range test_pages_isolated(12000, 13100) failed [ 246.365571] cma: dma_alloc_from_contiguous(): memory range at c0918000 is busy, retrying [ 246.373986] alloc_contig_range test_pages_isolated(12000, 13200) failed [ 246.380600] cma: dma_alloc_from_contiguous(): memory range at c091a000 is busy, retrying [ 246.389011] alloc_contig_range test_pages_isolated(12000, 13300) failed [ 246.395614] cma: dma_alloc_from_contiguous(): memory range at c091c000 is busy, retrying [ 246.404025] alloc_contig_range test_pages_isolated(12400, 13400) failed [ 246.410640] cma: dma_alloc_from_contiguous(): memory range at c091e000 is busy, retrying [ 246.419048] alloc_contig_range test_pages_isolated(12400, 13500) failed [ 246.425649] cma: dma_alloc_from_contiguous(): memory range at c0920000 is busy, retrying [ 246.434063] alloc_contig_range test_pages_isolated(12400, 13600) failed [ 246.440677] cma: dma_alloc_from_contiguous(): memory range at c0922000 is busy, retrying [ 246.449104] alloc_contig_range test_pages_isolated(12400, 13700) failed [ 246.455706] cma: dma_alloc_from_contiguous(): memory range at c0924000 is busy, retrying [ 246.464232] alloc_contig_range test_pages_isolated(12800, 13800) failed [ 246.470851] cma: dma_alloc_from_contiguous(): memory range at c0926000 is busy, retrying [ 246.479265] alloc_contig_range test_pages_isolated(12800, 13900) failed [ 246.485867] cma: dma_alloc_from_contiguous(): memory range at c0928000 is busy, retrying [ 246.494279] alloc_contig_range test_pages_isolated(12800, 13a00) failed [ 246.500906] cma: dma_alloc_from_contiguous(): memory range at c092a000 is busy, retrying [ 246.509317] alloc_contig_range test_pages_isolated(12800, 13b00) failed [ 246.515918] cma: dma_alloc_from_contiguous(): memory range at c092c000 is busy, retrying [ 246.524331] alloc_contig_range test_pages_isolated(12c00, 13c00) failed [ 246.530948] cma: dma_alloc_from_contiguous(): memory range at c092e000 is busy, retrying [ 246.539359] alloc_contig_range test_pages_isolated(12c00, 13d00) failed [ 246.545960] cma: dma_alloc_from_contiguous(): memory range at c0930000 is busy, retrying [ 246.554374] alloc_contig_range test_pages_isolated(12c00, 13e00) failed [ 246.561168] cma: dma_alloc_from_contiguous(): memory range at c0932000 is busy, retrying [ 246.569597] alloc_contig_range test_pages_isolated(12c00, 13f00) failed [ 246.576200] cma: dma_alloc_from_contiguous(): memory range at c0934000 is busy, retrying [ 246.584612] alloc_contig_range test_pages_isolated(13000, 14000) failed [ 246.591225] cma: dma_alloc_from_contiguous(): memory range at c0936000 is busy, retrying [ 246.599633] alloc_contig_range test_pages_isolated(13000, 14100) failed [ 246.606235] cma: dma_alloc_from_contiguous(): memory range at c0938000 is busy, retrying [ 246.614644] alloc_contig_range test_pages_isolated(13000, 14200) failed [ 246.621258] cma: dma_alloc_from_contiguous(): memory range at c093a000 is busy, retrying [ 246.629668] alloc_contig_range test_pages_isolated(13000, 14300) failed [ 246.636272] cma: dma_alloc_from_contiguous(): memory range at c093c000 is busy, retrying [ 246.644683] alloc_contig_range test_pages_isolated(13400, 14400) failed [ 246.651296] cma: dma_alloc_from_contiguous(): memory range at c093e000 is busy, retrying [ 246.659796] alloc_contig_range test_pages_isolated(13400, 14500) failed [ 246.666398] cma: dma_alloc_from_contiguous(): memory range at c0940000 is busy, retrying [ 246.674812] alloc_contig_range test_pages_isolated(13400, 14600) failed [ 246.681426] cma: dma_alloc_from_contiguous(): memory range at c0942000 is busy, retrying [ 246.689837] alloc_contig_range test_pages_isolated(13400, 14700) failed [ 246.696459] cma: dma_alloc_from_contiguous(): memory range at c0944000 is busy, retrying [ 246.704856] alloc_contig_range test_pages_isolated(13800, 14800) failed [ 246.711472] cma: dma_alloc_from_contiguous(): memory range at c0946000 is busy, retrying [ 246.719879] alloc_contig_range test_pages_isolated(13800, 14900) failed [ 246.726497] cma: dma_alloc_from_contiguous(): memory range at c0948000 is busy, retrying [ 246.734895] alloc_contig_range test_pages_isolated(13800, 14a00) failed [ 246.741512] cma: dma_alloc_from_contiguous(): memory range at c094a000 is busy, retrying [ 246.749937] alloc_contig_range test_pages_isolated(13800, 14b00) failed [ 246.756747] cma: dma_alloc_from_contiguous(): memory range at c094c000 is busy, retrying [ 246.765155] alloc_contig_range test_pages_isolated(13c00, 14c00) failed [ 246.771775] cma: dma_alloc_from_contiguous(): memory range at c094e000 is busy, retrying [ 246.780187] alloc_contig_range test_pages_isolated(13c00, 14d00) failed [ 246.786804] cma: dma_alloc_from_contiguous(): memory range at c0950000 is busy, retrying [ 246.795204] alloc_contig_range test_pages_isolated(13c00, 14e00) failed [ 246.801825] cma: dma_alloc_from_contiguous(): memory range at c0952000 is busy, retrying [ 246.810238] alloc_contig_range test_pages_isolated(13c00, 14f00) failed [ 246.816856] cma: dma_alloc_from_contiguous(): memory range at c0954000 is busy, retrying [ 246.825254] alloc_contig_range test_pages_isolated(14000, 15000) failed [ 246.831872] cma: dma_alloc_from_contiguous(): memory range at c0956000 is busy, retrying [ 246.840282] alloc_contig_range test_pages_isolated(14000, 15100) failed [ 246.846899] cma: dma_alloc_from_contiguous(): memory range at c0958000 is busy, retrying [ 246.855300] alloc_contig_range test_pages_isolated(14000, 15200) failed [ 246.861998] cma: dma_alloc_from_contiguous(): memory range at c095a000 is busy, retrying [ 246.870423] alloc_contig_range test_pages_isolated(14000, 15300) failed [ 246.877040] cma: dma_alloc_from_contiguous(): memory range at c095c000 is busy, retrying [ 246.885437] alloc_contig_range test_pages_isolated(14400, 15400) failed [ 246.892053] cma: dma_alloc_from_contiguous(): memory range at c095e000 is busy, retrying [ 246.900473] alloc_contig_range test_pages_isolated(14400, 15500) failed [ 246.907089] cma: dma_alloc_from_contiguous(): memory range at c0960000 is busy, retrying [ 246.915490] alloc_contig_range test_pages_isolated(14400, 15600) failed [ 246.922107] cma: dma_alloc_from_contiguous(): memory range at c0962000 is busy, retrying [ 246.930516] alloc_contig_range test_pages_isolated(14400, 15700) failed [ 246.937134] cma: dma_alloc_from_contiguous(): memory range at c0964000 is busy, retrying [ 246.945531] alloc_contig_range test_pages_isolated(14800, 15800) failed [ 246.952147] cma: dma_alloc_from_contiguous(): memory range at c0966000 is busy, retrying [ 246.960692] alloc_contig_range test_pages_isolated(14800, 15900) failed [ 246.967309] cma: dma_alloc_from_contiguous(): memory range at c0968000 is busy, retrying [ 246.975711] alloc_contig_range test_pages_isolated(14800, 15a00) failed [ 246.982327] cma: dma_alloc_from_contiguous(): memory range at c096a000 is busy, retrying [ 246.990735] alloc_contig_range test_pages_isolated(14800, 15b00) failed [ 246.997352] cma: dma_alloc_from_contiguous(): memory range at c096c000 is busy, retrying [ 247.005751] alloc_contig_range test_pages_isolated(14c00, 15c00) failed [ 247.012368] cma: dma_alloc_from_contiguous(): memory range at c096e000 is busy, retrying [ 247.020787] alloc_contig_range test_pages_isolated(14c00, 15d00) failed [ 247.027404] cma: dma_alloc_from_contiguous(): memory range at c0970000 is busy, retrying [ 247.035803] alloc_contig_range test_pages_isolated(14c00, 15e00) failed [ 247.042419] cma: dma_alloc_from_contiguous(): memory range at c0972000 is busy, retrying [ 247.050846] alloc_contig_range test_pages_isolated(14c00, 15f00) failed [ 247.057534] cma: dma_alloc_from_contiguous(): memory range at c0974000 is busy, retrying [ 247.065941] alloc_contig_range test_pages_isolated(15000, 16000) failed [ 247.072557] cma: dma_alloc_from_contiguous(): memory range at c0976000 is busy, retrying [ 247.080963] alloc_contig_range test_pages_isolated(15000, 16100) failed [ 247.087579] cma: dma_alloc_from_contiguous(): memory range at c0978000 is busy, retrying [ 247.095976] alloc_contig_range test_pages_isolated(15000, 16200) failed [ 247.102600] cma: dma_alloc_from_contiguous(): memory range at c097a000 is busy, retrying [ 247.111009] alloc_contig_range test_pages_isolated(15000, 16300) failed [ 247.117626] cma: dma_alloc_from_contiguous(): memory range at c097c000 is busy, retrying [ 247.126023] alloc_contig_range test_pages_isolated(15400, 16400) failed [ 247.132638] cma: dma_alloc_from_contiguous(): memory range at c097e000 is busy, retrying [ 247.141045] alloc_contig_range test_pages_isolated(15400, 16500) failed [ 247.147661] cma: dma_alloc_from_contiguous(): memory range at c0980000 is busy, retrying [ 247.156059] alloc_contig_range test_pages_isolated(15400, 16600) failed [ 247.162890] cma: dma_alloc_from_contiguous(): memory range at c0982000 is busy, retrying [ 247.171314] alloc_contig_range test_pages_isolated(15400, 16700) failed [ 247.177931] cma: dma_alloc_from_contiguous(): memory range at c0984000 is busy, retrying [ 247.186329] alloc_contig_range test_pages_isolated(15800, 16800) failed [ 247.192945] cma: dma_alloc_from_contiguous(): memory range at c0986000 is busy, retrying [ 247.201353] alloc_contig_range test_pages_isolated(15800, 16900) failed [ 247.207970] cma: dma_alloc_from_contiguous(): memory range at c0988000 is busy, retrying [ 247.216369] alloc_contig_range test_pages_isolated(15800, 16a00) failed [ 247.222984] cma: dma_alloc_from_contiguous(): memory range at c098a000 is busy, retrying [ 247.231392] alloc_contig_range test_pages_isolated(15800, 16b00) failed [ 247.238008] cma: dma_alloc_from_contiguous(): memory range at c098c000 is busy, retrying [ 247.246403] alloc_contig_range test_pages_isolated(15c00, 16c00) failed [ 247.253020] cma: dma_alloc_from_contiguous(): memory range at c098e000 is busy, retrying [ 247.261521] alloc_contig_range test_pages_isolated(15c00, 16d00) failed [ 247.268139] cma: dma_alloc_from_contiguous(): memory range at c0990000 is busy, retrying [ 247.276550] alloc_contig_range test_pages_isolated(15c00, 16e00) failed [ 247.283153] cma: dma_alloc_from_contiguous(): memory range at c0992000 is busy, retrying [ 247.291568] alloc_contig_range test_pages_isolated(15c00, 16f00) failed [ 247.298192] cma: dma_alloc_from_contiguous(): memory range at c0994000 is busy, retrying [ 247.306603] alloc_contig_range test_pages_isolated(16000, 17000) failed [ 247.313204] cma: dma_alloc_from_contiguous(): memory range at c0996000 is busy, retrying [ 247.321614] alloc_contig_range test_pages_isolated(16000, 17100) failed [ 247.328229] cma: dma_alloc_from_contiguous(): memory range at c0998000 is busy, retrying [ 247.336643] alloc_contig_range test_pages_isolated(16000, 17200) failed [ 247.343244] cma: dma_alloc_from_contiguous(): memory range at c099a000 is busy, retrying [ 247.351677] alloc_contig_range test_pages_isolated(16000, 17300) failed [ 247.358437] cma: dma_alloc_from_contiguous(): memory range at c099c000 is busy, retrying [ 247.366863] alloc_contig_range test_pages_isolated(16400, 17400) failed [ 247.373464] cma: dma_alloc_from_contiguous(): memory range at c099e000 is busy, retrying [ 247.381897] alloc_contig_range test_pages_isolated(16400, 17500) failed [ 247.388514] cma: dma_alloc_from_contiguous(): memory range at c09a0000 is busy, retrying [ 247.396933] alloc_contig_range test_pages_isolated(16400, 17600) failed [ 247.403534] cma: dma_alloc_from_contiguous(): memory range at c09a2000 is busy, retrying [ 247.411949] alloc_contig_range test_pages_isolated(16400, 17700) failed [ 247.418564] cma: dma_alloc_from_contiguous(): memory range at c09a4000 is busy, retrying [ 247.426975] alloc_contig_range test_pages_isolated(16800, 17800) failed [ 247.433575] cma: dma_alloc_from_contiguous(): memory range at c09a6000 is busy, retrying [ 247.441990] alloc_contig_range test_pages_isolated(16800, 17900) failed [ 247.448606] cma: dma_alloc_from_contiguous(): memory range at c09a8000 is busy, retrying [ 247.457154] alloc_contig_range test_pages_isolated(16800, 17a00) failed [ 247.463756] cma: dma_alloc_from_contiguous(): memory range at c09aa000 is busy, retrying [ 247.472168] alloc_contig_range test_pages_isolated(16800, 17b00) failed [ 247.478783] cma: dma_alloc_from_contiguous(): memory range at c09ac000 is busy, retrying [ 247.487189] alloc_contig_range test_pages_isolated(16c00, 17c00) failed [ 247.493791] cma: dma_alloc_from_contiguous(): memory range at c09ae000 is busy, retrying [ 247.502206] alloc_contig_range test_pages_isolated(16c00, 17d00) failed [ 247.508820] cma: dma_alloc_from_contiguous(): memory range at c09b0000 is busy, retrying [ 247.517230] alloc_contig_range test_pages_isolated(16c00, 17e00) failed [ 247.523831] cma: dma_alloc_from_contiguous(): memory range at c09b2000 is busy, retrying [ 247.532244] alloc_contig_range test_pages_isolated(16c00, 17f00) failed [ 247.538858] cma: dma_alloc_from_contiguous(): memory range at c09b4000 is busy, retrying [ 247.547267] alloc_contig_range test_pages_isolated(17000, 18000) failed [ 247.553869] cma: dma_alloc_from_contiguous(): memory range at c09b6000 is busy, retrying [ 247.562419] alloc_contig_range test_pages_isolated(17000, 18100) failed [ 247.569035] cma: dma_alloc_from_contiguous(): memory range at c09b8000 is busy, retrying [ 247.577446] alloc_contig_range test_pages_isolated(17000, 18200) failed [ 247.584048] cma: dma_alloc_from_contiguous(): memory range at c09ba000 is busy, retrying [ 247.592461] alloc_contig_range test_pages_isolated(17000, 18300) failed [ 247.599076] cma: dma_alloc_from_contiguous(): memory range at c09bc000 is busy, retrying [ 247.607485] alloc_contig_range test_pages_isolated(17400, 18400) failed [ 247.614085] cma: dma_alloc_from_contiguous(): memory range at c09be000 is busy, retrying [ 247.622497] alloc_contig_range test_pages_isolated(17400, 18500) failed [ 247.629112] cma: dma_alloc_from_contiguous(): memory range at c09c0000 is busy, retrying [ 247.637522] alloc_contig_range test_pages_isolated(17400, 18600) failed [ 247.644123] cma: dma_alloc_from_contiguous(): memory range at c09c2000 is busy, retrying [ 247.652554] alloc_contig_range test_pages_isolated(17400, 18700) failed [ 247.659292] cma: dma_alloc_from_contiguous(): memory range at c09c4000 is busy, retrying [ 247.667715] alloc_contig_range test_pages_isolated(17800, 18800) failed [ 247.674317] cma: dma_alloc_from_contiguous(): memory range at c09c6000 is busy, retrying [ 247.682727] alloc_contig_range test_pages_isolated(17800, 18900) failed [ 247.689342] cma: dma_alloc_from_contiguous(): memory range at c09c8000 is busy, retrying [ 247.697756] alloc_contig_range test_pages_isolated(17800, 18a00) failed [ 247.704357] cma: dma_alloc_from_contiguous(): memory range at c09ca000 is busy, retrying [ 247.712767] alloc_contig_range test_pages_isolated(17800, 18b00) failed [ 247.719382] cma: dma_alloc_from_contiguous(): memory range at c09cc000 is busy, retrying [ 247.727791] alloc_contig_range test_pages_isolated(17c00, 18c00) failed [ 247.734392] cma: dma_alloc_from_contiguous(): memory range at c09ce000 is busy, retrying [ 247.742805] alloc_contig_range test_pages_isolated(17c00, 18d00) failed [ 247.749419] cma: dma_alloc_from_contiguous(): memory range at c09d0000 is busy, retrying [ 247.757993] alloc_contig_range test_pages_isolated(17c00, 18e00) failed [ 247.764596] cma: dma_alloc_from_contiguous(): memory range at c09d2000 is busy, retrying [ 247.773012] alloc_contig_range test_pages_isolated(17c00, 18f00) failed [ 247.779627] cma: dma_alloc_from_contiguous(): memory range at c09d4000 is busy, retrying [ 247.788036] alloc_contig_range test_pages_isolated(18000, 19000) failed [ 247.794636] cma: dma_alloc_from_contiguous(): memory range at c09d6000 is busy, retrying [ 247.803049] alloc_contig_range test_pages_isolated(18000, 19100) failed [ 247.809663] cma: dma_alloc_from_contiguous(): memory range at c09d8000 is busy, retrying [ 247.818071] alloc_contig_range test_pages_isolated(18000, 19200) failed [ 247.824672] cma: dma_alloc_from_contiguous(): memory range at c09da000 is busy, retrying [ 247.833087] alloc_contig_range test_pages_isolated(18000, 19300) failed [ 247.839702] cma: dma_alloc_from_contiguous(): memory range at c09dc000 is busy, retrying [ 247.848110] alloc_contig_range test_pages_isolated(18400, 19400) failed [ 247.854710] cma: dma_alloc_from_contiguous(): memory range at c09de000 is busy, retrying [ 247.863199] alloc_contig_range test_pages_isolated(18400, 19500) failed [ 247.869816] cma: dma_alloc_from_contiguous(): memory range at c09e0000 is busy, retrying [ 247.878224] alloc_contig_range test_pages_isolated(18400, 19600) failed [ 247.884827] cma: dma_alloc_from_contiguous(): memory range at c09e2000 is busy, retrying [ 247.893235] alloc_contig_range test_pages_isolated(18400, 19700) failed [ 247.899858] cma: dma_alloc_from_contiguous(): memory range at c09e4000 is busy, retrying [ 247.908265] alloc_contig_range test_pages_isolated(18800, 19800) failed [ 247.914866] cma: dma_alloc_from_contiguous(): memory range at c09e6000 is busy, retrying [ 247.923278] alloc_contig_range test_pages_isolated(18800, 19900) failed [ 247.929895] cma: dma_alloc_from_contiguous(): memory range at c09e8000 is busy, retrying [ 247.938305] alloc_contig_range test_pages_isolated(18800, 19a00) failed [ 247.944907] cma: dma_alloc_from_contiguous(): memory range at c09ea000 is busy, retrying [ 247.953333] alloc_contig_range test_pages_isolated(18800, 19b00) failed [ 247.960080] cma: dma_alloc_from_contiguous(): memory range at c09ec000 is busy, retrying [ 247.968498] alloc_contig_range test_pages_isolated(18c00, 19c00) failed [ 247.975099] cma: dma_alloc_from_contiguous(): memory range at c09ee000 is busy, retrying [ 247.983508] alloc_contig_range test_pages_isolated(18c00, 19d00) failed [ 247.990122] cma: dma_alloc_from_contiguous(): memory range at c09f0000 is busy, retrying [ 247.998533] alloc_contig_range test_pages_isolated(18c00, 19e00) failed [ 248.005135] cma: dma_alloc_from_contiguous(): memory range at c09f2000 is busy, retrying [ 248.013548] alloc_contig_range test_pages_isolated(18c00, 19f00) failed [ 248.020542] cma: dma_alloc_from_contiguous(): memory range at c09f4000 is busy, retrying [ 248.028973] alloc_contig_range test_pages_isolated(19000, 1a000) failed [ 248.035576] cma: dma_alloc_from_contiguous(): memory range at c09f6000 is busy, retrying [ 248.043991] alloc_contig_range test_pages_isolated(19000, 1a100) failed [ 248.050606] cma: dma_alloc_from_contiguous(): memory range at c09f8000 is busy, retrying [ 248.059114] alloc_contig_range test_pages_isolated(19000, 1a200) failed [ 248.065716] cma: dma_alloc_from_contiguous(): memory range at c09fa000 is busy, retrying [ 248.074129] alloc_contig_range test_pages_isolated(19000, 1a300) failed [ 248.080744] cma: dma_alloc_from_contiguous(): memory range at c09fc000 is busy, retrying [ 248.089153] alloc_contig_range test_pages_isolated(19400, 1a400) failed [ 248.095753] cma: dma_alloc_from_contiguous(): memory range at c09fe000 is busy, retrying [ 248.104176] alloc_contig_range test_pages_isolated(19400, 1a500) failed [ 248.110792] cma: dma_alloc_from_contiguous(): memory range at c0a00000 is busy, retrying [ 248.119202] alloc_contig_range test_pages_isolated(19400, 1a600) failed [ 248.125803] cma: dma_alloc_from_contiguous(): memory range at c0a02000 is busy, retrying [ 248.134207] alloc_contig_range test_pages_isolated(19400, 1a700) failed [ 248.140822] cma: dma_alloc_from_contiguous(): memory range at c0a04000 is busy, retrying [ 248.149224] alloc_contig_range test_pages_isolated(19800, 1a800) failed [ 248.155825] cma: dma_alloc_from_contiguous(): memory range at c0a06000 is busy, retrying [ 248.164459] alloc_contig_range test_pages_isolated(19800, 1a900) failed [ 248.171076] cma: dma_alloc_from_contiguous(): memory range at c0a08000 is busy, retrying [ 248.179482] alloc_contig_range test_pages_isolated(19800, 1aa00) failed [ 248.186085] cma: dma_alloc_from_contiguous(): memory range at c0a0a000 is busy, retrying [ 248.194499] alloc_contig_range test_pages_isolated(19800, 1ab00) failed [ 248.201114] cma: dma_alloc_from_contiguous(): memory range at c0a0c000 is busy, retrying [ 248.209522] alloc_contig_range test_pages_isolated(19c00, 1ac00) failed [ 248.216124] cma: dma_alloc_from_contiguous(): memory range at c0a0e000 is busy, retrying [ 248.224538] alloc_contig_range test_pages_isolated(19c00, 1ad00) failed [ 248.231151] cma: dma_alloc_from_contiguous(): memory range at c0a10000 is busy, retrying [ 248.239562] alloc_contig_range test_pages_isolated(19c00, 1ae00) failed [ 248.246164] cma: dma_alloc_from_contiguous(): memory range at c0a12000 is busy, retrying [ 248.254596] alloc_contig_range test_pages_isolated(19c00, 1af00) failed [ 248.261293] cma: dma_alloc_from_contiguous(): memory range at c0a14000 is busy, retrying [ 248.269718] alloc_contig_range test_pages_isolated(1a000, 1b000) failed [ 248.276319] cma: dma_alloc_from_contiguous(): memory range at c0a16000 is busy, retrying [ 248.284730] alloc_contig_range test_pages_isolated(1a000, 1b100) failed [ 248.291345] cma: dma_alloc_from_contiguous(): memory range at c0a18000 is busy, retrying [ 248.299763] alloc_contig_range test_pages_isolated(1a000, 1b200) failed [ 248.306364] cma: dma_alloc_from_contiguous(): memory range at c0a1a000 is busy, retrying [ 248.314777] alloc_contig_range test_pages_isolated(1a000, 1b300) failed [ 248.321391] cma: dma_alloc_from_contiguous(): memory range at c0a1c000 is busy, retrying [ 248.329797] alloc_contig_range test_pages_isolated(1a400, 1b400) failed [ 248.336397] cma: dma_alloc_from_contiguous(): memory range at c0a1e000 is busy, retrying [ 248.344805] alloc_contig_range test_pages_isolated(1a400, 1b500) failed [ 248.351420] cma: dma_alloc_from_contiguous(): memory range at c0a20000 is busy, retrying [ 248.359996] alloc_contig_range test_pages_isolated(1a400, 1b600) failed [ 248.366612] cma: dma_alloc_from_contiguous(): memory range at c0a22000 is busy, retrying [ 248.375011] alloc_contig_range test_pages_isolated(1a400, 1b700) failed [ 248.381629] cma: dma_alloc_from_contiguous(): memory range at c0a24000 is busy, retrying [ 248.390036] alloc_contig_range test_pages_isolated(1a800, 1b800) failed [ 248.396651] cma: dma_alloc_from_contiguous(): memory range at c0a26000 is busy, retrying [ 248.405043] alloc_contig_range test_pages_isolated(1a800, 1b900) failed [ 248.411659] cma: dma_alloc_from_contiguous(): memory range at c0a28000 is busy, retrying [ 248.420068] alloc_contig_range test_pages_isolated(1a800, 1ba00) failed [ 248.426686] cma: dma_alloc_from_contiguous(): memory range at c0a2a000 is busy, retrying [ 248.435082] alloc_contig_range test_pages_isolated(1a800, 1bb00) failed [ 248.441698] cma: dma_alloc_from_contiguous(): memory range at c0a2c000 is busy, retrying [ 248.450103] alloc_contig_range test_pages_isolated(1ac00, 1bc00) failed [ 248.456835] cma: dma_alloc_from_contiguous(): memory range at c0a2e000 is busy, retrying [ 248.465240] alloc_contig_range test_pages_isolated(1ac00, 1bd00) failed [ 248.471856] cma: dma_alloc_from_contiguous(): memory range at c0a30000 is busy, retrying [ 248.480265] alloc_contig_range test_pages_isolated(1ac00, 1be00) failed [ 248.486883] cma: dma_alloc_from_contiguous(): memory range at c0a32000 is busy, retrying [ 248.495282] alloc_contig_range test_pages_isolated(1ac00, 1bf00) failed [ 248.501907] cma: dma_alloc_from_contiguous(): memory range at c0a34000 is busy, retrying [ 248.510316] alloc_contig_range test_pages_isolated(1b000, 1c000) failed [ 248.516930] cma: dma_alloc_from_contiguous(): memory range at c0a36000 is busy, retrying [ 248.525329] alloc_contig_range test_pages_isolated(1b000, 1c100) failed [ 248.531945] cma: dma_alloc_from_contiguous(): memory range at c0a38000 is busy, retrying [ 248.540355] alloc_contig_range test_pages_isolated(1b000, 1c200) failed [ 248.546991] cma: dma_alloc_from_contiguous(): memory range at c0a3a000 is busy, retrying [ 248.555391] alloc_contig_range test_pages_isolated(1b000, 1c300) failed [ 248.562139] cma: dma_alloc_from_contiguous(): memory range at c0a3c000 is busy, retrying [ 248.570558] alloc_contig_range test_pages_isolated(1b400, 1c400) failed [ 248.577174] cma: dma_alloc_from_contiguous(): memory range at c0a3e000 is busy, retrying [ 248.585570] alloc_contig_range test_pages_isolated(1b400, 1c500) failed [ 248.592186] cma: dma_alloc_from_contiguous(): memory range at c0a40000 is busy, retrying [ 248.600591] alloc_contig_range test_pages_isolated(1b400, 1c600) failed [ 248.607208] cma: dma_alloc_from_contiguous(): memory range at c0a42000 is busy, retrying [ 248.615606] alloc_contig_range test_pages_isolated(1b400, 1c700) failed [ 248.622222] cma: dma_alloc_from_contiguous(): memory range at c0a44000 is busy, retrying [ 248.630628] alloc_contig_range test_pages_isolated(1b800, 1c800) failed [ 248.637245] cma: dma_alloc_from_contiguous(): memory range at c0a46000 is busy, retrying [ 248.645643] alloc_contig_range test_pages_isolated(1b800, 1c900) failed [ 248.652260] cma: dma_alloc_from_contiguous(): memory range at c0a48000 is busy, retrying [ 248.660752] alloc_contig_range test_pages_isolated(1b800, 1ca00) failed [ 248.667375] cma: dma_alloc_from_contiguous(): memory range at c0a4a000 is busy, retrying [ 248.675777] alloc_contig_range test_pages_isolated(1b800, 1cb00) failed [ 248.682396] cma: dma_alloc_from_contiguous(): memory range at c0a4c000 is busy, retrying [ 248.690804] alloc_contig_range test_pages_isolated(1bc00, 1cc00) failed [ 248.697442] cma: dma_alloc_from_contiguous(): memory range at c0a4e000 is busy, retrying [ 248.705905] alloc_contig_range test_pages_isolated(1bc00, 1cd00) failed [ 248.712523] cma: dma_alloc_from_contiguous(): memory range at c0a50000 is busy, retrying [ 248.720938] alloc_contig_range test_pages_isolated(1bc00, 1ce00) failed [ 248.727559] cma: dma_alloc_from_contiguous(): memory range at c0a52000 is busy, retrying [ 248.735960] alloc_contig_range test_pages_isolated(1bc00, 1cf00) failed [ 248.742580] cma: dma_alloc_from_contiguous(): memory range at c0a54000 is busy, retrying [ 248.750995] alloc_contig_range test_pages_isolated(1c000, 1d000) failed [ 248.757776] cma: dma_alloc_from_contiguous(): memory range at c0a56000 is busy, retrying [ 248.766183] alloc_contig_range test_pages_isolated(1c000, 1d100) failed [ 248.772800] cma: dma_alloc_from_contiguous(): memory range at c0a58000 is busy, retrying [ 248.781211] alloc_contig_range test_pages_isolated(1c000, 1d200) failed [ 248.787827] cma: dma_alloc_from_contiguous(): memory range at c0a5a000 is busy, retrying [ 248.796226] alloc_contig_range test_pages_isolated(1c000, 1d300) failed [ 248.802843] cma: dma_alloc_from_contiguous(): memory range at c0a5c000 is busy, retrying [ 248.811248] alloc_contig_range test_pages_isolated(1c400, 1d400) failed [ 248.817865] cma: dma_alloc_from_contiguous(): memory range at c0a5e000 is busy, retrying [ 248.826263] alloc_contig_range test_pages_isolated(1c400, 1d500) failed [ 248.832881] cma: dma_alloc_from_contiguous(): memory range at c0a60000 is busy, retrying [ 248.841291] alloc_contig_range test_pages_isolated(1c400, 1d600) failed [ 248.847928] cma: dma_alloc_from_contiguous(): memory range at c0a62000 is busy, retrying [ 248.856325] alloc_contig_range test_pages_isolated(1c400, 1d700) failed [ 248.863054] cma: dma_alloc_from_contiguous(): memory range at c0a64000 is busy, retrying [ 248.871485] alloc_contig_range test_pages_isolated(1c800, 1d800) failed [ 248.878104] cma: dma_alloc_from_contiguous(): memory range at c0a66000 is busy, retrying [ 248.886512] alloc_contig_range test_pages_isolated(1c800, 1d900) failed [ 248.893113] cma: dma_alloc_from_contiguous(): memory range at c0a68000 is busy, retrying [ 248.901538] alloc_contig_range test_pages_isolated(1c800, 1da00) failed [ 248.908154] cma: dma_alloc_from_contiguous(): memory range at c0a6a000 is busy, retrying [ 248.916568] alloc_contig_range test_pages_isolated(1c800, 1db00) failed [ 248.923169] cma: dma_alloc_from_contiguous(): memory range at c0a6c000 is busy, retrying [ 248.931583] alloc_contig_range test_pages_isolated(1cc00, 1dc00) failed [ 248.938197] cma: dma_alloc_from_contiguous(): memory range at c0a6e000 is busy, retrying [ 248.946603] alloc_contig_range test_pages_isolated(1cc00, 1dd00) failed [ 248.953206] cma: dma_alloc_from_contiguous(): memory range at c0a70000 is busy, retrying [ 248.961807] alloc_contig_range test_pages_isolated(1cc00, 1de00) failed [ 248.968424] cma: dma_alloc_from_contiguous(): memory range at c0a72000 is busy, retrying [ 248.976837] alloc_contig_range test_pages_isolated(1cc00, 1df00) failed [ 248.983439] cma: dma_alloc_from_contiguous(): memory range at c0a74000 is busy, retrying [ 248.991851] alloc_contig_range test_pages_isolated(1d000, 1e000) failed [ 248.998464] cma: dma_alloc_from_contiguous(): memory range at c0a76000 is busy, retrying [ 249.006872] alloc_contig_range test_pages_isolated(1d000, 1e100) failed [ 249.013473] cma: dma_alloc_from_contiguous(): memory range at c0a78000 is busy, retrying [ 249.021902] alloc_contig_range test_pages_isolated(1d000, 1e200) failed [ 249.028517] cma: dma_alloc_from_contiguous(): memory range at c0a7a000 is busy, retrying [ 249.036927] alloc_contig_range test_pages_isolated(1d000, 1e300) failed [ 249.043529] cma: dma_alloc_from_contiguous(): memory range at c0a7c000 is busy, retrying [ 249.051939] alloc_contig_range test_pages_isolated(1d400, 1e400) failed [ 249.058755] cma: dma_alloc_from_contiguous(): memory range at c0a7e000 is busy, retrying [ 249.067180] alloc_contig_range test_pages_isolated(1d400, 1e500) failed [ 249.073781] cma: dma_alloc_from_contiguous(): memory range at c0a80000 is busy, retrying [ 249.082197] alloc_contig_range test_pages_isolated(1d400, 1e600) failed [ 249.088811] cma: dma_alloc_from_contiguous(): memory range at c0a82000 is busy, retrying [ 249.097230] alloc_contig_range test_pages_isolated(1d400, 1e700) failed [ 249.103832] cma: dma_alloc_from_contiguous(): memory range at c0a84000 is busy, retrying [ 249.112240] alloc_contig_range test_pages_isolated(1d800, 1e800) failed [ 249.118855] cma: dma_alloc_from_contiguous(): memory range at c0a86000 is busy, retrying [ 249.127266] alloc_contig_range test_pages_isolated(1d800, 1e900) failed [ 249.133868] cma: dma_alloc_from_contiguous(): memory range at c0a88000 is busy, retrying [ 249.142278] alloc_contig_range test_pages_isolated(1d800, 1ea00) failed [ 249.148911] cma: dma_alloc_from_contiguous(): memory range at c0a8a000 is busy, retrying [ 249.157398] alloc_contig_range test_pages_isolated(1d800, 1eb00) failed [ 249.164000] cma: dma_alloc_from_contiguous(): memory range at c0a8c000 is busy, retrying [ 249.172412] alloc_contig_range test_pages_isolated(1dc00, 1ec00) failed [ 249.179025] cma: dma_alloc_from_contiguous(): memory range at c0a8e000 is busy, retrying [ 249.187429] alloc_contig_range test_pages_isolated(1dc00, 1ed00) failed [ 249.194030] cma: dma_alloc_from_contiguous(): memory range at c0a90000 is busy, retrying [ 249.202444] alloc_contig_range test_pages_isolated(1dc00, 1ee00) failed [ 249.209059] cma: dma_alloc_from_contiguous(): memory range at c0a92000 is busy, retrying [ 249.217469] alloc_contig_range test_pages_isolated(1dc00, 1ef00) failed [ 249.224072] cma: dma_alloc_from_contiguous(): memory range at c0a94000 is busy, retrying [ 249.232481] alloc_contig_range test_pages_isolated(1e000, 1f000) failed [ 249.239092] cma: dma_alloc_from_contiguous(): memory range at c0a96000 is busy, retrying [ 249.247503] alloc_contig_range test_pages_isolated(1e000, 1f100) failed [ 249.254105] cma: dma_alloc_from_contiguous(): memory range at c0a98000 is busy, retrying [ 249.262657] alloc_contig_range test_pages_isolated(1e000, 1f200) failed [ 249.269272] cma: dma_alloc_from_contiguous(): memory range at c0a9a000 is busy, retrying [ 249.277683] alloc_contig_range test_pages_isolated(1e000, 1f300) failed [ 249.284285] cma: dma_alloc_from_contiguous(): memory range at c0a9c000 is busy, retrying [ 249.292695] alloc_contig_range test_pages_isolated(1e400, 1f400) failed [ 249.299317] cma: dma_alloc_from_contiguous(): memory range at c0a9e000 is busy, retrying [ 249.307722] alloc_contig_range test_pages_isolated(1e400, 1f500) failed [ 249.314323] cma: dma_alloc_from_contiguous(): memory range at c0aa0000 is busy, retrying [ 249.322737] alloc_contig_range test_pages_isolated(1e400, 1f600) failed [ 249.329352] cma: dma_alloc_from_contiguous(): memory range at c0aa2000 is busy, retrying [ 249.337761] alloc_contig_range test_pages_isolated(1e400, 1f700) failed [ 249.344362] cma: dma_alloc_from_contiguous(): memory range at c0aa4000 is busy, retrying [ 249.352773] alloc_contig_range test_pages_isolated(1e800, 1f800) failed [ 249.359455] cma: dma_alloc_from_contiguous(): memory range at c0aa6000 is busy, retrying [ 249.367539] cma: dma_alloc_from_contiguous(): returned (null) [ 249.373444] failed to allocate 16777216 bytes [ 249.377799] cma: dma_alloc_from_contiguous(cma cf473fc0, count 8192, align 8) [ 249.386092] alloc_contig_range test_pages_isolated(fc00, 11c00) failed [ 249.392630] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 249.401361] alloc_contig_range test_pages_isolated(fc00, 11d00) failed [ 249.407895] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 249.416576] alloc_contig_range test_pages_isolated(fc00, 11e00) failed [ 249.423095] cma: dma_alloc_from_contiguous(): memory range at c08d2000 is busy, retrying [ 249.431773] alloc_contig_range test_pages_isolated(fc00, 11f00) failed [ 249.438304] cma: dma_alloc_from_contiguous(): memory range at c08d4000 is busy, retrying [ 249.446999] alloc_contig_range test_pages_isolated(10000, 12000) failed [ 249.453604] cma: dma_alloc_from_contiguous(): memory range at c08d6000 is busy, retrying [ 249.462563] alloc_contig_range test_pages_isolated(10000, 12100) failed [ 249.469183] cma: dma_alloc_from_contiguous(): memory range at c08d8000 is busy, retrying [ 249.477869] alloc_contig_range test_pages_isolated(10000, 12200) failed [ 249.484474] cma: dma_alloc_from_contiguous(): memory range at c08da000 is busy, retrying [ 249.493152] alloc_contig_range test_pages_isolated(10000, 12300) failed [ 249.499778] cma: dma_alloc_from_contiguous(): memory range at c08dc000 is busy, retrying [ 249.508447] alloc_contig_range test_pages_isolated(10400, 12400) failed [ 249.515051] cma: dma_alloc_from_contiguous(): memory range at c08de000 is busy, retrying [ 249.523725] alloc_contig_range test_pages_isolated(10400, 12500) failed [ 249.530342] cma: dma_alloc_from_contiguous(): memory range at c08e0000 is busy, retrying [ 249.539020] alloc_contig_range test_pages_isolated(10400, 12600) failed [ 249.545624] cma: dma_alloc_from_contiguous(): memory range at c08e2000 is busy, retrying [ 249.554302] alloc_contig_range test_pages_isolated(10400, 12700) failed [ 249.561032] cma: dma_alloc_from_contiguous(): memory range at c08e4000 is busy, retrying [ 249.569731] alloc_contig_range test_pages_isolated(10800, 12800) failed [ 249.576335] cma: dma_alloc_from_contiguous(): memory range at c08e6000 is busy, retrying [ 249.585012] alloc_contig_range test_pages_isolated(10800, 12900) failed [ 249.591632] cma: dma_alloc_from_contiguous(): memory range at c08e8000 is busy, retrying [ 249.600316] alloc_contig_range test_pages_isolated(10800, 12a00) failed [ 249.606935] cma: dma_alloc_from_contiguous(): memory range at c08ea000 is busy, retrying [ 249.615595] alloc_contig_range test_pages_isolated(10800, 12b00) failed [ 249.622216] cma: dma_alloc_from_contiguous(): memory range at c08ec000 is busy, retrying [ 249.630893] alloc_contig_range test_pages_isolated(10c00, 12c00) failed [ 249.637512] cma: dma_alloc_from_contiguous(): memory range at c08ee000 is busy, retrying [ 249.646176] alloc_contig_range test_pages_isolated(10c00, 12d00) failed [ 249.652797] cma: dma_alloc_from_contiguous(): memory range at c08f0000 is busy, retrying [ 249.661668] alloc_contig_range test_pages_isolated(10c00, 12e00) failed [ 249.668289] cma: dma_alloc_from_contiguous(): memory range at c08f2000 is busy, retrying [ 249.676964] alloc_contig_range test_pages_isolated(10c00, 12f00) failed [ 249.683568] cma: dma_alloc_from_contiguous(): memory range at c08f4000 is busy, retrying [ 249.692240] alloc_contig_range test_pages_isolated(11000, 13000) failed [ 249.698864] cma: dma_alloc_from_contiguous(): memory range at c08f6000 is busy, retrying [ 249.707536] alloc_contig_range test_pages_isolated(11000, 13100) failed [ 249.714142] cma: dma_alloc_from_contiguous(): memory range at c08f8000 is busy, retrying [ 249.722815] alloc_contig_range test_pages_isolated(11000, 13200) failed [ 249.729432] cma: dma_alloc_from_contiguous(): memory range at c08fa000 is busy, retrying [ 249.738106] alloc_contig_range test_pages_isolated(11000, 13300) failed [ 249.744711] cma: dma_alloc_from_contiguous(): memory range at c08fc000 is busy, retrying [ 249.753403] alloc_contig_range test_pages_isolated(11400, 13400) failed [ 249.760190] cma: dma_alloc_from_contiguous(): memory range at c08fe000 is busy, retrying [ 249.768882] alloc_contig_range test_pages_isolated(11400, 13500) failed [ 249.775487] cma: dma_alloc_from_contiguous(): memory range at c0900000 is busy, retrying [ 249.784164] alloc_contig_range test_pages_isolated(11400, 13600) failed [ 249.790781] cma: dma_alloc_from_contiguous(): memory range at c0902000 is busy, retrying [ 249.799459] alloc_contig_range test_pages_isolated(11400, 13700) failed [ 249.806064] cma: dma_alloc_from_contiguous(): memory range at c0904000 is busy, retrying [ 249.814739] alloc_contig_range test_pages_isolated(11800, 13800) failed [ 249.821356] cma: dma_alloc_from_contiguous(): memory range at c0906000 is busy, retrying [ 249.830028] alloc_contig_range test_pages_isolated(11800, 13900) failed [ 249.836646] cma: dma_alloc_from_contiguous(): memory range at c0908000 is busy, retrying [ 249.845313] alloc_contig_range test_pages_isolated(11800, 13a00) failed [ 249.851932] cma: dma_alloc_from_contiguous(): memory range at c090a000 is busy, retrying [ 249.860793] alloc_contig_range test_pages_isolated(11800, 13b00) failed [ 249.867415] cma: dma_alloc_from_contiguous(): memory range at c090c000 is busy, retrying [ 249.876080] alloc_contig_range test_pages_isolated(11c00, 13c00) failed [ 249.882698] cma: dma_alloc_from_contiguous(): memory range at c090e000 is busy, retrying [ 249.891380] alloc_contig_range test_pages_isolated(11c00, 13d00) failed [ 249.898007] cma: dma_alloc_from_contiguous(): memory range at c0910000 is busy, retrying [ 249.906682] alloc_contig_range test_pages_isolated(11c00, 13e00) failed [ 249.913287] cma: dma_alloc_from_contiguous(): memory range at c0912000 is busy, retrying [ 249.921963] alloc_contig_range test_pages_isolated(11c00, 13f00) failed [ 249.928580] cma: dma_alloc_from_contiguous(): memory range at c0914000 is busy, retrying [ 249.937257] alloc_contig_range test_pages_isolated(12000, 14000) failed [ 249.943862] cma: dma_alloc_from_contiguous(): memory range at c0916000 is busy, retrying [ 249.952538] alloc_contig_range test_pages_isolated(12000, 14100) failed [ 249.959363] cma: dma_alloc_from_contiguous(): memory range at c0918000 is busy, retrying [ 249.968057] alloc_contig_range test_pages_isolated(12000, 14200) failed [ 249.974662] cma: dma_alloc_from_contiguous(): memory range at c091a000 is busy, retrying [ 249.983347] alloc_contig_range test_pages_isolated(12000, 14300) failed [ 249.989964] cma: dma_alloc_from_contiguous(): memory range at c091c000 is busy, retrying [ 249.998636] alloc_contig_range test_pages_isolated(12400, 14400) failed [ 250.005240] cma: dma_alloc_from_contiguous(): memory range at c091e000 is busy, retrying [ 250.013913] alloc_contig_range test_pages_isolated(12400, 14500) failed [ 250.020691] cma: dma_alloc_from_contiguous(): memory range at c0920000 is busy, retrying [ 250.029394] alloc_contig_range test_pages_isolated(12400, 14600) failed [ 250.035999] cma: dma_alloc_from_contiguous(): memory range at c0922000 is busy, retrying [ 250.044678] alloc_contig_range test_pages_isolated(12400, 14700) failed [ 250.051314] cma: dma_alloc_from_contiguous(): memory range at c0924000 is busy, retrying [ 250.060198] alloc_contig_range test_pages_isolated(12800, 14800) failed [ 250.066822] cma: dma_alloc_from_contiguous(): memory range at c0926000 is busy, retrying [ 250.075485] alloc_contig_range test_pages_isolated(12800, 14900) failed [ 250.082106] cma: dma_alloc_from_contiguous(): memory range at c0928000 is busy, retrying [ 250.090782] alloc_contig_range test_pages_isolated(12800, 14a00) failed [ 250.097413] cma: dma_alloc_from_contiguous(): memory range at c092a000 is busy, retrying [ 250.106074] alloc_contig_range test_pages_isolated(12800, 14b00) failed [ 250.112695] cma: dma_alloc_from_contiguous(): memory range at c092c000 is busy, retrying [ 250.121364] alloc_contig_range test_pages_isolated(12c00, 14c00) failed [ 250.127985] cma: dma_alloc_from_contiguous(): memory range at c092e000 is busy, retrying [ 250.136656] alloc_contig_range test_pages_isolated(12c00, 14d00) failed [ 250.143261] cma: dma_alloc_from_contiguous(): memory range at c0930000 is busy, retrying [ 250.151939] alloc_contig_range test_pages_isolated(12c00, 14e00) failed [ 250.158644] cma: dma_alloc_from_contiguous(): memory range at c0932000 is busy, retrying [ 250.167335] alloc_contig_range test_pages_isolated(12c00, 14f00) failed [ 250.173939] cma: dma_alloc_from_contiguous(): memory range at c0934000 is busy, retrying [ 250.182615] alloc_contig_range test_pages_isolated(13000, 15000) failed [ 250.189233] cma: dma_alloc_from_contiguous(): memory range at c0936000 is busy, retrying [ 250.197909] alloc_contig_range test_pages_isolated(13000, 15100) failed [ 250.204513] cma: dma_alloc_from_contiguous(): memory range at c0938000 is busy, retrying [ 250.213188] alloc_contig_range test_pages_isolated(13000, 15200) failed [ 250.219805] cma: dma_alloc_from_contiguous(): memory range at c093a000 is busy, retrying [ 250.228476] alloc_contig_range test_pages_isolated(13000, 15300) failed [ 250.235082] cma: dma_alloc_from_contiguous(): memory range at c093c000 is busy, retrying [ 250.243752] alloc_contig_range test_pages_isolated(13400, 15400) failed [ 250.250367] cma: dma_alloc_from_contiguous(): memory range at c093e000 is busy, retrying [ 250.259254] alloc_contig_range test_pages_isolated(13400, 15500) failed [ 250.265859] cma: dma_alloc_from_contiguous(): memory range at c0940000 is busy, retrying [ 250.274539] alloc_contig_range test_pages_isolated(13400, 15600) failed [ 250.281157] cma: dma_alloc_from_contiguous(): memory range at c0942000 is busy, retrying [ 250.289830] alloc_contig_range test_pages_isolated(13400, 15700) failed [ 250.296455] cma: dma_alloc_from_contiguous(): memory range at c0944000 is busy, retrying [ 250.305116] alloc_contig_range test_pages_isolated(13800, 15800) failed [ 250.311735] cma: dma_alloc_from_contiguous(): memory range at c0946000 is busy, retrying [ 250.320404] alloc_contig_range test_pages_isolated(13800, 15900) failed [ 250.327023] cma: dma_alloc_from_contiguous(): memory range at c0948000 is busy, retrying [ 250.335683] alloc_contig_range test_pages_isolated(13800, 15a00) failed [ 250.342302] cma: dma_alloc_from_contiguous(): memory range at c094a000 is busy, retrying [ 250.350994] alloc_contig_range test_pages_isolated(13800, 15b00) failed [ 250.357849] cma: dma_alloc_from_contiguous(): memory range at c094c000 is busy, retrying [ 250.366541] alloc_contig_range test_pages_isolated(13c00, 15c00) failed [ 250.373146] cma: dma_alloc_from_contiguous(): memory range at c094e000 is busy, retrying [ 250.381862] alloc_contig_range test_pages_isolated(13c00, 15d00) failed [ 250.388480] cma: dma_alloc_from_contiguous(): memory range at c0950000 is busy, retrying [ 250.397168] alloc_contig_range test_pages_isolated(13c00, 15e00) failed [ 250.403773] cma: dma_alloc_from_contiguous(): memory range at c0952000 is busy, retrying [ 250.412451] alloc_contig_range test_pages_isolated(13c00, 15f00) failed [ 250.419069] cma: dma_alloc_from_contiguous(): memory range at c0954000 is busy, retrying [ 250.427736] alloc_contig_range test_pages_isolated(14000, 16000) failed [ 250.434341] cma: dma_alloc_from_contiguous(): memory range at c0956000 is busy, retrying [ 250.443024] alloc_contig_range test_pages_isolated(14000, 16100) failed [ 250.449642] cma: dma_alloc_from_contiguous(): memory range at c0958000 is busy, retrying [ 250.458427] alloc_contig_range test_pages_isolated(14000, 16200) failed [ 250.465032] cma: dma_alloc_from_contiguous(): memory range at c095a000 is busy, retrying [ 250.473717] alloc_contig_range test_pages_isolated(14000, 16300) failed [ 250.480334] cma: dma_alloc_from_contiguous(): memory range at c095c000 is busy, retrying [ 250.489009] alloc_contig_range test_pages_isolated(14400, 16400) failed [ 250.495612] cma: dma_alloc_from_contiguous(): memory range at c095e000 is busy, retrying [ 250.504295] alloc_contig_range test_pages_isolated(14400, 16500) failed [ 250.510913] cma: dma_alloc_from_contiguous(): memory range at c0960000 is busy, retrying [ 250.519584] alloc_contig_range test_pages_isolated(14400, 16600) failed [ 250.526188] cma: dma_alloc_from_contiguous(): memory range at c0962000 is busy, retrying [ 250.534863] alloc_contig_range test_pages_isolated(14400, 16700) failed [ 250.541481] cma: dma_alloc_from_contiguous(): memory range at c0964000 is busy, retrying [ 250.550147] alloc_contig_range test_pages_isolated(14800, 16800) failed [ 250.556936] cma: dma_alloc_from_contiguous(): memory range at c0966000 is busy, retrying [ 250.565619] alloc_contig_range test_pages_isolated(14800, 16900) failed [ 250.572240] cma: dma_alloc_from_contiguous(): memory range at c0968000 is busy, retrying [ 250.580911] alloc_contig_range test_pages_isolated(14800, 16a00) failed [ 250.587532] cma: dma_alloc_from_contiguous(): memory range at c096a000 is busy, retrying [ 250.596193] alloc_contig_range test_pages_isolated(14800, 16b00) failed [ 250.602813] cma: dma_alloc_from_contiguous(): memory range at c096c000 is busy, retrying [ 250.611486] alloc_contig_range test_pages_isolated(14c00, 16c00) failed [ 250.618106] cma: dma_alloc_from_contiguous(): memory range at c096e000 is busy, retrying [ 250.626775] alloc_contig_range test_pages_isolated(14c00, 16d00) failed [ 250.633381] cma: dma_alloc_from_contiguous(): memory range at c0970000 is busy, retrying [ 250.642055] alloc_contig_range test_pages_isolated(14c00, 16e00) failed [ 250.648693] cma: dma_alloc_from_contiguous(): memory range at c0972000 is busy, retrying [ 250.657533] alloc_contig_range test_pages_isolated(14c00, 16f00) failed [ 250.664138] cma: dma_alloc_from_contiguous(): memory range at c0974000 is busy, retrying [ 250.672816] alloc_contig_range test_pages_isolated(15000, 17000) failed [ 250.679433] cma: dma_alloc_from_contiguous(): memory range at c0976000 is busy, retrying [ 250.688104] alloc_contig_range test_pages_isolated(15000, 17100) failed [ 250.694709] cma: dma_alloc_from_contiguous(): memory range at c0978000 is busy, retrying [ 250.703392] alloc_contig_range test_pages_isolated(15000, 17200) failed [ 250.710010] cma: dma_alloc_from_contiguous(): memory range at c097a000 is busy, retrying [ 250.718680] alloc_contig_range test_pages_isolated(15000, 17300) failed [ 250.725284] cma: dma_alloc_from_contiguous(): memory range at c097c000 is busy, retrying [ 250.733959] alloc_contig_range test_pages_isolated(15400, 17400) failed [ 250.740576] cma: dma_alloc_from_contiguous(): memory range at c097e000 is busy, retrying [ 250.749246] alloc_contig_range test_pages_isolated(15400, 17500) failed [ 250.755850] cma: dma_alloc_from_contiguous(): memory range at c0980000 is busy, retrying [ 250.764695] alloc_contig_range test_pages_isolated(15400, 17600) failed [ 250.771314] cma: dma_alloc_from_contiguous(): memory range at c0982000 is busy, retrying [ 250.779989] alloc_contig_range test_pages_isolated(15400, 17700) failed [ 250.786606] cma: dma_alloc_from_contiguous(): memory range at c0984000 is busy, retrying [ 250.795272] alloc_contig_range test_pages_isolated(15800, 17800) failed [ 250.801890] cma: dma_alloc_from_contiguous(): memory range at c0986000 is busy, retrying [ 250.810561] alloc_contig_range test_pages_isolated(15800, 17900) failed [ 250.817180] cma: dma_alloc_from_contiguous(): memory range at c0988000 is busy, retrying [ 250.825844] alloc_contig_range test_pages_isolated(15800, 17a00) failed [ 250.832464] cma: dma_alloc_from_contiguous(): memory range at c098a000 is busy, retrying [ 250.841134] alloc_contig_range test_pages_isolated(15800, 17b00) failed [ 250.847754] cma: dma_alloc_from_contiguous(): memory range at c098c000 is busy, retrying [ 250.856415] alloc_contig_range test_pages_isolated(15c00, 17c00) failed [ 250.863138] cma: dma_alloc_from_contiguous(): memory range at c098e000 is busy, retrying [ 250.871837] alloc_contig_range test_pages_isolated(15c00, 17d00) failed [ 250.878460] cma: dma_alloc_from_contiguous(): memory range at c0990000 is busy, retrying [ 250.887135] alloc_contig_range test_pages_isolated(15c00, 17e00) failed [ 250.893739] cma: dma_alloc_from_contiguous(): memory range at c0992000 is busy, retrying [ 250.902431] alloc_contig_range test_pages_isolated(15c00, 17f00) failed [ 250.909050] cma: dma_alloc_from_contiguous(): memory range at c0994000 is busy, retrying [ 250.917736] alloc_contig_range test_pages_isolated(16000, 18000) failed [ 250.924341] cma: dma_alloc_from_contiguous(): memory range at c0996000 is busy, retrying [ 250.933022] alloc_contig_range test_pages_isolated(16000, 18100) failed [ 250.939639] cma: dma_alloc_from_contiguous(): memory range at c0998000 is busy, retrying [ 250.948331] alloc_contig_range test_pages_isolated(16000, 18200) failed [ 250.954938] cma: dma_alloc_from_contiguous(): memory range at c099a000 is busy, retrying [ 250.963829] alloc_contig_range test_pages_isolated(16000, 18300) failed [ 250.970453] cma: dma_alloc_from_contiguous(): memory range at c099c000 is busy, retrying [ 250.979131] alloc_contig_range test_pages_isolated(16400, 18400) failed [ 250.985735] cma: dma_alloc_from_contiguous(): memory range at c099e000 is busy, retrying [ 250.994411] alloc_contig_range test_pages_isolated(16400, 18500) failed [ 251.001034] cma: dma_alloc_from_contiguous(): memory range at c09a0000 is busy, retrying [ 251.009710] alloc_contig_range test_pages_isolated(16400, 18600) failed [ 251.016316] cma: dma_alloc_from_contiguous(): memory range at c09a2000 is busy, retrying [ 251.025014] alloc_contig_range test_pages_isolated(16400, 18700) failed [ 251.031635] cma: dma_alloc_from_contiguous(): memory range at c09a4000 is busy, retrying [ 251.040310] alloc_contig_range test_pages_isolated(16800, 18800) failed [ 251.046927] cma: dma_alloc_from_contiguous(): memory range at c09a6000 is busy, retrying [ 251.055589] alloc_contig_range test_pages_isolated(16800, 18900) failed [ 251.062341] cma: dma_alloc_from_contiguous(): memory range at c09a8000 is busy, retrying [ 251.071029] alloc_contig_range test_pages_isolated(16800, 18a00) failed [ 251.077649] cma: dma_alloc_from_contiguous(): memory range at c09aa000 is busy, retrying [ 251.086311] alloc_contig_range test_pages_isolated(16800, 18b00) failed [ 251.092932] cma: dma_alloc_from_contiguous(): memory range at c09ac000 is busy, retrying [ 251.101608] alloc_contig_range test_pages_isolated(16c00, 18c00) failed [ 251.108227] cma: dma_alloc_from_contiguous(): memory range at c09ae000 is busy, retrying [ 251.116905] alloc_contig_range test_pages_isolated(16c00, 18d00) failed [ 251.123509] cma: dma_alloc_from_contiguous(): memory range at c09b0000 is busy, retrying [ 251.132186] alloc_contig_range test_pages_isolated(16c00, 18e00) failed [ 251.138803] cma: dma_alloc_from_contiguous(): memory range at c09b2000 is busy, retrying [ 251.147474] alloc_contig_range test_pages_isolated(16c00, 18f00) failed [ 251.154078] cma: dma_alloc_from_contiguous(): memory range at c09b4000 is busy, retrying [ 251.162897] alloc_contig_range test_pages_isolated(17000, 19000) failed [ 251.169515] cma: dma_alloc_from_contiguous(): memory range at c09b6000 is busy, retrying [ 251.178190] alloc_contig_range test_pages_isolated(17000, 19100) failed [ 251.184796] cma: dma_alloc_from_contiguous(): memory range at c09b8000 is busy, retrying [ 251.193472] alloc_contig_range test_pages_isolated(17000, 19200) failed [ 251.200091] cma: dma_alloc_from_contiguous(): memory range at c09ba000 is busy, retrying [ 251.208764] alloc_contig_range test_pages_isolated(17000, 19300) failed [ 251.215370] cma: dma_alloc_from_contiguous(): memory range at c09bc000 is busy, retrying [ 251.224042] alloc_contig_range test_pages_isolated(17400, 19400) failed [ 251.230658] cma: dma_alloc_from_contiguous(): memory range at c09be000 is busy, retrying [ 251.239337] alloc_contig_range test_pages_isolated(17400, 19500) failed [ 251.245941] cma: dma_alloc_from_contiguous(): memory range at c09c0000 is busy, retrying [ 251.254641] alloc_contig_range test_pages_isolated(17400, 19600) failed [ 251.261393] cma: dma_alloc_from_contiguous(): memory range at c09c2000 is busy, retrying [ 251.270078] alloc_contig_range test_pages_isolated(17400, 19700) failed [ 251.276695] cma: dma_alloc_from_contiguous(): memory range at c09c4000 is busy, retrying [ 251.285354] alloc_contig_range test_pages_isolated(17800, 19800) failed [ 251.291974] cma: dma_alloc_from_contiguous(): memory range at c09c6000 is busy, retrying [ 251.300654] alloc_contig_range test_pages_isolated(17800, 19900) failed [ 251.307272] cma: dma_alloc_from_contiguous(): memory range at c09c8000 is busy, retrying [ 251.315931] alloc_contig_range test_pages_isolated(17800, 19a00) failed [ 251.322551] cma: dma_alloc_from_contiguous(): memory range at c09ca000 is busy, retrying [ 251.331229] alloc_contig_range test_pages_isolated(17800, 19b00) failed [ 251.337848] cma: dma_alloc_from_contiguous(): memory range at c09cc000 is busy, retrying [ 251.346516] alloc_contig_range test_pages_isolated(17c00, 19c00) failed [ 251.353121] cma: dma_alloc_from_contiguous(): memory range at c09ce000 is busy, retrying [ 251.361872] alloc_contig_range test_pages_isolated(17c00, 19d00) failed [ 251.368496] cma: dma_alloc_from_contiguous(): memory range at c09d0000 is busy, retrying [ 251.377173] alloc_contig_range test_pages_isolated(17c00, 19e00) failed [ 251.383777] cma: dma_alloc_from_contiguous(): memory range at c09d2000 is busy, retrying [ 251.392450] alloc_contig_range test_pages_isolated(17c00, 19f00) failed [ 251.399076] cma: dma_alloc_from_contiguous(): memory range at c09d4000 is busy, retrying [ 251.407803] alloc_contig_range test_pages_isolated(18000, 1a000) failed [ 251.414407] cma: dma_alloc_from_contiguous(): memory range at c09d6000 is busy, retrying [ 251.423090] alloc_contig_range test_pages_isolated(18000, 1a100) failed [ 251.429711] cma: dma_alloc_from_contiguous(): memory range at c09d8000 is busy, retrying [ 251.438384] alloc_contig_range test_pages_isolated(18000, 1a200) failed [ 251.444988] cma: dma_alloc_from_contiguous(): memory range at c09da000 is busy, retrying [ 251.453664] alloc_contig_range test_pages_isolated(18000, 1a300) failed [ 251.460414] cma: dma_alloc_from_contiguous(): memory range at c09dc000 is busy, retrying [ 251.469101] alloc_contig_range test_pages_isolated(18400, 1a400) failed [ 251.475705] cma: dma_alloc_from_contiguous(): memory range at c09de000 is busy, retrying [ 251.484381] alloc_contig_range test_pages_isolated(18400, 1a500) failed [ 251.490999] cma: dma_alloc_from_contiguous(): memory range at c09e0000 is busy, retrying [ 251.499681] alloc_contig_range test_pages_isolated(18400, 1a600) failed [ 251.506287] cma: dma_alloc_from_contiguous(): memory range at c09e2000 is busy, retrying [ 251.514963] alloc_contig_range test_pages_isolated(18400, 1a700) failed [ 251.521580] cma: dma_alloc_from_contiguous(): memory range at c09e4000 is busy, retrying [ 251.530252] alloc_contig_range test_pages_isolated(18800, 1a800) failed [ 251.536869] cma: dma_alloc_from_contiguous(): memory range at c09e6000 is busy, retrying [ 251.545530] alloc_contig_range test_pages_isolated(18800, 1a900) failed [ 251.552170] cma: dma_alloc_from_contiguous(): memory range at c09e8000 is busy, retrying [ 251.560924] alloc_contig_range test_pages_isolated(18800, 1aa00) failed [ 251.567551] cma: dma_alloc_from_contiguous(): memory range at c09ea000 is busy, retrying [ 251.576218] alloc_contig_range test_pages_isolated(18800, 1ab00) failed [ 251.582839] cma: dma_alloc_from_contiguous(): memory range at c09ec000 is busy, retrying [ 251.591508] alloc_contig_range test_pages_isolated(18c00, 1ac00) failed [ 251.598131] cma: dma_alloc_from_contiguous(): memory range at c09ee000 is busy, retrying [ 251.606806] alloc_contig_range test_pages_isolated(18c00, 1ad00) failed [ 251.613411] cma: dma_alloc_from_contiguous(): memory range at c09f0000 is busy, retrying [ 251.622094] alloc_contig_range test_pages_isolated(18c00, 1ae00) failed [ 251.628715] cma: dma_alloc_from_contiguous(): memory range at c09f2000 is busy, retrying [ 251.637391] alloc_contig_range test_pages_isolated(18c00, 1af00) failed [ 251.643996] cma: dma_alloc_from_contiguous(): memory range at c09f4000 is busy, retrying [ 251.652672] alloc_contig_range test_pages_isolated(19000, 1b000) failed [ 251.659421] cma: dma_alloc_from_contiguous(): memory range at c09f6000 is busy, retrying [ 251.668115] alloc_contig_range test_pages_isolated(19000, 1b100) failed [ 251.674720] cma: dma_alloc_from_contiguous(): memory range at c09f8000 is busy, retrying [ 251.683405] alloc_contig_range test_pages_isolated(19000, 1b200) failed [ 251.690022] cma: dma_alloc_from_contiguous(): memory range at c09fa000 is busy, retrying [ 251.698700] alloc_contig_range test_pages_isolated(19000, 1b300) failed [ 251.705305] cma: dma_alloc_from_contiguous(): memory range at c09fc000 is busy, retrying [ 251.713988] alloc_contig_range test_pages_isolated(19400, 1b400) failed [ 251.720605] cma: dma_alloc_from_contiguous(): memory range at c09fe000 is busy, retrying [ 251.729276] alloc_contig_range test_pages_isolated(19400, 1b500) failed [ 251.735881] cma: dma_alloc_from_contiguous(): memory range at c0a00000 is busy, retrying [ 251.744558] alloc_contig_range test_pages_isolated(19400, 1b600) failed [ 251.751175] cma: dma_alloc_from_contiguous(): memory range at c0a02000 is busy, retrying [ 251.759920] alloc_contig_range test_pages_isolated(19400, 1b700) failed [ 251.766538] cma: dma_alloc_from_contiguous(): memory range at c0a04000 is busy, retrying [ 251.775201] alloc_contig_range test_pages_isolated(19800, 1b800) failed [ 251.781819] cma: dma_alloc_from_contiguous(): memory range at c0a06000 is busy, retrying [ 251.790491] alloc_contig_range test_pages_isolated(19800, 1b900) failed [ 251.797110] cma: dma_alloc_from_contiguous(): memory range at c0a08000 is busy, retrying [ 251.805767] alloc_contig_range test_pages_isolated(19800, 1ba00) failed [ 251.812387] cma: dma_alloc_from_contiguous(): memory range at c0a0a000 is busy, retrying [ 251.821054] alloc_contig_range test_pages_isolated(19800, 1bb00) failed [ 251.827673] cma: dma_alloc_from_contiguous(): memory range at c0a0c000 is busy, retrying [ 251.836337] alloc_contig_range test_pages_isolated(19c00, 1bc00) failed [ 251.842955] cma: dma_alloc_from_contiguous(): memory range at c0a0e000 is busy, retrying [ 251.851644] alloc_contig_range test_pages_isolated(19c00, 1bd00) failed [ 251.858358] cma: dma_alloc_from_contiguous(): memory range at c0a10000 is busy, retrying [ 251.867046] alloc_contig_range test_pages_isolated(19c00, 1be00) failed [ 251.873652] cma: dma_alloc_from_contiguous(): memory range at c0a12000 is busy, retrying [ 251.882334] alloc_contig_range test_pages_isolated(19c00, 1bf00) failed [ 251.888952] cma: dma_alloc_from_contiguous(): memory range at c0a14000 is busy, retrying [ 251.897632] alloc_contig_range test_pages_isolated(1a000, 1c000) failed [ 251.904235] cma: dma_alloc_from_contiguous(): memory range at c0a16000 is busy, retrying [ 251.912911] alloc_contig_range test_pages_isolated(1a000, 1c100) failed [ 251.919528] cma: dma_alloc_from_contiguous(): memory range at c0a18000 is busy, retrying [ 251.928202] alloc_contig_range test_pages_isolated(1a000, 1c200) failed [ 251.934806] cma: dma_alloc_from_contiguous(): memory range at c0a1a000 is busy, retrying [ 251.943481] alloc_contig_range test_pages_isolated(1a000, 1c300) failed [ 251.950100] cma: dma_alloc_from_contiguous(): memory range at c0a1c000 is busy, retrying [ 251.958914] alloc_contig_range test_pages_isolated(1a400, 1c400) failed [ 251.965518] cma: dma_alloc_from_contiguous(): memory range at c0a1e000 is busy, retrying [ 251.974196] alloc_contig_range test_pages_isolated(1a400, 1c500) failed [ 251.980813] cma: dma_alloc_from_contiguous(): memory range at c0a20000 is busy, retrying [ 251.989486] alloc_contig_range test_pages_isolated(1a400, 1c600) failed [ 251.996092] cma: dma_alloc_from_contiguous(): memory range at c0a22000 is busy, retrying [ 252.004767] alloc_contig_range test_pages_isolated(1a400, 1c700) failed [ 252.011386] cma: dma_alloc_from_contiguous(): memory range at c0a24000 is busy, retrying [ 252.020156] alloc_contig_range test_pages_isolated(1a800, 1c800) failed [ 252.026773] cma: dma_alloc_from_contiguous(): memory range at c0a26000 is busy, retrying [ 252.035434] alloc_contig_range test_pages_isolated(1a800, 1c900) failed [ 252.042054] cma: dma_alloc_from_contiguous(): memory range at c0a28000 is busy, retrying [ 252.050727] alloc_contig_range test_pages_isolated(1a800, 1ca00) failed [ 252.057418] cma: dma_alloc_from_contiguous(): memory range at c0a2a000 is busy, retrying [ 252.066093] alloc_contig_range test_pages_isolated(1a800, 1cb00) failed [ 252.072712] cma: dma_alloc_from_contiguous(): memory range at c0a2c000 is busy, retrying [ 252.081382] alloc_contig_range test_pages_isolated(1ac00, 1cc00) failed [ 252.088001] cma: dma_alloc_from_contiguous(): memory range at c0a2e000 is busy, retrying [ 252.096681] alloc_contig_range test_pages_isolated(1ac00, 1cd00) failed [ 252.103285] cma: dma_alloc_from_contiguous(): memory range at c0a30000 is busy, retrying [ 252.111960] alloc_contig_range test_pages_isolated(1ac00, 1ce00) failed [ 252.118577] cma: dma_alloc_from_contiguous(): memory range at c0a32000 is busy, retrying [ 252.127255] alloc_contig_range test_pages_isolated(1ac00, 1cf00) failed [ 252.133859] cma: dma_alloc_from_contiguous(): memory range at c0a34000 is busy, retrying [ 252.142532] alloc_contig_range test_pages_isolated(1b000, 1d000) failed [ 252.149168] cma: dma_alloc_from_contiguous(): memory range at c0a36000 is busy, retrying [ 252.157944] alloc_contig_range test_pages_isolated(1b000, 1d100) failed [ 252.164548] cma: dma_alloc_from_contiguous(): memory range at c0a38000 is busy, retrying [ 252.173221] alloc_contig_range test_pages_isolated(1b000, 1d200) failed [ 252.179838] cma: dma_alloc_from_contiguous(): memory range at c0a3a000 is busy, retrying [ 252.188513] alloc_contig_range test_pages_isolated(1b000, 1d300) failed [ 252.195117] cma: dma_alloc_from_contiguous(): memory range at c0a3c000 is busy, retrying [ 252.203789] alloc_contig_range test_pages_isolated(1b400, 1d400) failed [ 252.210406] cma: dma_alloc_from_contiguous(): memory range at c0a3e000 is busy, retrying [ 252.219077] alloc_contig_range test_pages_isolated(1b400, 1d500) failed [ 252.225681] cma: dma_alloc_from_contiguous(): memory range at c0a40000 is busy, retrying [ 252.234358] alloc_contig_range test_pages_isolated(1b400, 1d600) failed [ 252.240977] cma: dma_alloc_from_contiguous(): memory range at c0a42000 is busy, retrying [ 252.249648] alloc_contig_range test_pages_isolated(1b400, 1d700) failed [ 252.256254] cma: dma_alloc_from_contiguous(): memory range at c0a44000 is busy, retrying [ 252.265158] alloc_contig_range test_pages_isolated(1b800, 1d800) failed [ 252.271776] cma: dma_alloc_from_contiguous(): memory range at c0a46000 is busy, retrying [ 252.280452] alloc_contig_range test_pages_isolated(1b800, 1d900) failed [ 252.287071] cma: dma_alloc_from_contiguous(): memory range at c0a48000 is busy, retrying [ 252.295739] alloc_contig_range test_pages_isolated(1b800, 1da00) failed [ 252.302366] cma: dma_alloc_from_contiguous(): memory range at c0a4a000 is busy, retrying [ 252.311048] alloc_contig_range test_pages_isolated(1b800, 1db00) failed [ 252.317668] cma: dma_alloc_from_contiguous(): memory range at c0a4c000 is busy, retrying [ 252.326331] alloc_contig_range test_pages_isolated(1bc00, 1dc00) failed [ 252.332951] cma: dma_alloc_from_contiguous(): memory range at c0a4e000 is busy, retrying [ 252.341617] alloc_contig_range test_pages_isolated(1bc00, 1dd00) failed [ 252.348236] cma: dma_alloc_from_contiguous(): memory range at c0a50000 is busy, retrying [ 252.357026] alloc_contig_range test_pages_isolated(1bc00, 1de00) failed [ 252.363631] cma: dma_alloc_from_contiguous(): memory range at c0a52000 is busy, retrying [ 252.372308] alloc_contig_range test_pages_isolated(1bc00, 1df00) failed [ 252.378925] cma: dma_alloc_from_contiguous(): memory range at c0a54000 is busy, retrying [ 252.387596] alloc_contig_range test_pages_isolated(1c000, 1e000) failed [ 252.394199] cma: dma_alloc_from_contiguous(): memory range at c0a56000 is busy, retrying [ 252.402873] alloc_contig_range test_pages_isolated(1c000, 1e100) failed [ 252.409492] cma: dma_alloc_from_contiguous(): memory range at c0a58000 is busy, retrying [ 252.418166] alloc_contig_range test_pages_isolated(1c000, 1e200) failed [ 252.424771] cma: dma_alloc_from_contiguous(): memory range at c0a5a000 is busy, retrying [ 252.433448] alloc_contig_range test_pages_isolated(1c000, 1e300) failed [ 252.440065] cma: dma_alloc_from_contiguous(): memory range at c0a5c000 is busy, retrying [ 252.448759] alloc_contig_range test_pages_isolated(1c400, 1e400) failed [ 252.455362] cma: dma_alloc_from_contiguous(): memory range at c0a5e000 is busy, retrying [ 252.464163] alloc_contig_range test_pages_isolated(1c400, 1e500) failed [ 252.470782] cma: dma_alloc_from_contiguous(): memory range at c0a60000 is busy, retrying [ 252.479460] alloc_contig_range test_pages_isolated(1c400, 1e600) failed [ 252.486065] cma: dma_alloc_from_contiguous(): memory range at c0a62000 is busy, retrying [ 252.494741] alloc_contig_range test_pages_isolated(1c400, 1e700) failed [ 252.501368] cma: dma_alloc_from_contiguous(): memory range at c0a64000 is busy, retrying [ 252.510038] alloc_contig_range test_pages_isolated(1c800, 1e800) failed [ 252.516658] cma: dma_alloc_from_contiguous(): memory range at c0a66000 is busy, retrying [ 252.525320] alloc_contig_range test_pages_isolated(1c800, 1e900) failed [ 252.531939] cma: dma_alloc_from_contiguous(): memory range at c0a68000 is busy, retrying [ 252.540614] alloc_contig_range test_pages_isolated(1c800, 1ea00) failed [ 252.547233] cma: dma_alloc_from_contiguous(): memory range at c0a6a000 is busy, retrying [ 252.555894] alloc_contig_range test_pages_isolated(1c800, 1eb00) failed [ 252.562647] cma: dma_alloc_from_contiguous(): memory range at c0a6c000 is busy, retrying [ 252.571328] alloc_contig_range test_pages_isolated(1cc00, 1ec00) failed [ 252.577948] cma: dma_alloc_from_contiguous(): memory range at c0a6e000 is busy, retrying [ 252.586621] alloc_contig_range test_pages_isolated(1cc00, 1ed00) failed [ 252.593226] cma: dma_alloc_from_contiguous(): memory range at c0a70000 is busy, retrying [ 252.601900] alloc_contig_range test_pages_isolated(1cc00, 1ee00) failed [ 252.608518] cma: dma_alloc_from_contiguous(): memory range at c0a72000 is busy, retrying [ 252.617187] alloc_contig_range test_pages_isolated(1cc00, 1ef00) failed [ 252.623791] cma: dma_alloc_from_contiguous(): memory range at c0a74000 is busy, retrying [ 252.632465] alloc_contig_range test_pages_isolated(1d000, 1f000) failed [ 252.639081] cma: dma_alloc_from_contiguous(): memory range at c0a76000 is busy, retrying [ 252.647754] alloc_contig_range test_pages_isolated(1d000, 1f100) failed [ 252.654359] cma: dma_alloc_from_contiguous(): memory range at c0a78000 is busy, retrying [ 252.663109] alloc_contig_range test_pages_isolated(1d000, 1f200) failed [ 252.669727] cma: dma_alloc_from_contiguous(): memory range at c0a7a000 is busy, retrying [ 252.678398] alloc_contig_range test_pages_isolated(1d000, 1f300) failed [ 252.685003] cma: dma_alloc_from_contiguous(): memory range at c0a7c000 is busy, retrying [ 252.693677] alloc_contig_range test_pages_isolated(1d400, 1f400) failed [ 252.700300] cma: dma_alloc_from_contiguous(): memory range at c0a7e000 is busy, retrying [ 252.708970] alloc_contig_range test_pages_isolated(1d400, 1f500) failed [ 252.715574] cma: dma_alloc_from_contiguous(): memory range at c0a80000 is busy, retrying [ 252.724251] alloc_contig_range test_pages_isolated(1d400, 1f600) failed [ 252.730869] cma: dma_alloc_from_contiguous(): memory range at c0a82000 is busy, retrying [ 252.739541] alloc_contig_range test_pages_isolated(1d400, 1f700) failed [ 252.746146] cma: dma_alloc_from_contiguous(): memory range at c0a84000 is busy, retrying [ 252.754841] alloc_contig_range test_pages_isolated(1d800, 1f800) failed [ 252.761615] cma: dma_alloc_from_contiguous(): memory range at c0a86000 is busy, retrying [ 252.769707] cma: dma_alloc_from_contiguous(): returned (null) [ 252.775612] failed to allocate 33554432 bytes [ 252.779970] cma: dma_alloc_from_contiguous(cma cf473fc0, count 16384, align 8) [ 252.789478] alloc_contig_range test_pages_isolated(fc00, 13c00) failed [ 252.796006] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 252.805578] alloc_contig_range test_pages_isolated(fc00, 13d00) failed [ 252.812122] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 252.821417] alloc_contig_range test_pages_isolated(fc00, 13e00) failed [ 252.827962] cma: dma_alloc_from_contiguous(): memory range at c08d2000 is busy, retrying [ 252.837204] alloc_contig_range test_pages_isolated(fc00, 13f00) failed [ 252.843729] cma: dma_alloc_from_contiguous(): memory range at c08d4000 is busy, retrying [ 252.852951] alloc_contig_range test_pages_isolated(10000, 14000) failed [ 252.859716] cma: dma_alloc_from_contiguous(): memory range at c08d6000 is busy, retrying [ 252.868973] alloc_contig_range test_pages_isolated(10000, 14100) failed [ 252.875585] cma: dma_alloc_from_contiguous(): memory range at c08d8000 is busy, retrying [ 252.884809] alloc_contig_range test_pages_isolated(10000, 14200) failed [ 252.891433] cma: dma_alloc_from_contiguous(): memory range at c08da000 is busy, retrying [ 252.900669] alloc_contig_range test_pages_isolated(10000, 14300) failed [ 252.907295] cma: dma_alloc_from_contiguous(): memory range at c08dc000 is busy, retrying [ 252.916511] alloc_contig_range test_pages_isolated(10400, 14400) failed [ 252.923121] cma: dma_alloc_from_contiguous(): memory range at c08de000 is busy, retrying [ 252.932325] alloc_contig_range test_pages_isolated(10400, 14500) failed [ 252.938948] cma: dma_alloc_from_contiguous(): memory range at c08e0000 is busy, retrying [ 252.948159] alloc_contig_range test_pages_isolated(10400, 14600) failed [ 252.954769] cma: dma_alloc_from_contiguous(): memory range at c08e2000 is busy, retrying [ 252.964071] alloc_contig_range test_pages_isolated(10400, 14700) failed [ 252.970695] cma: dma_alloc_from_contiguous(): memory range at c08e4000 is busy, retrying [ 252.979913] alloc_contig_range test_pages_isolated(10800, 14800) failed [ 252.986536] cma: dma_alloc_from_contiguous(): memory range at c08e6000 is busy, retrying [ 252.995730] alloc_contig_range test_pages_isolated(10800, 14900) failed [ 253.002356] cma: dma_alloc_from_contiguous(): memory range at c08e8000 is busy, retrying [ 253.011555] alloc_contig_range test_pages_isolated(10800, 14a00) failed [ 253.018198] cma: dma_alloc_from_contiguous(): memory range at c08ea000 is busy, retrying [ 253.027401] alloc_contig_range test_pages_isolated(10800, 14b00) failed [ 253.034011] cma: dma_alloc_from_contiguous(): memory range at c08ec000 is busy, retrying [ 253.043215] alloc_contig_range test_pages_isolated(10c00, 14c00) failed [ 253.049859] cma: dma_alloc_from_contiguous(): memory range at c08ee000 is busy, retrying [ 253.059207] alloc_contig_range test_pages_isolated(10c00, 14d00) failed [ 253.065818] cma: dma_alloc_from_contiguous(): memory range at c08f0000 is busy, retrying [ 253.075029] alloc_contig_range test_pages_isolated(10c00, 14e00) failed [ 253.081651] cma: dma_alloc_from_contiguous(): memory range at c08f2000 is busy, retrying [ 253.090863] alloc_contig_range test_pages_isolated(10c00, 14f00) failed [ 253.097496] cma: dma_alloc_from_contiguous(): memory range at c08f4000 is busy, retrying [ 253.106705] alloc_contig_range test_pages_isolated(11000, 15000) failed [ 253.113315] cma: dma_alloc_from_contiguous(): memory range at c08f6000 is busy, retrying [ 253.122528] alloc_contig_range test_pages_isolated(11000, 15100) failed [ 253.129151] cma: dma_alloc_from_contiguous(): memory range at c08f8000 is busy, retrying [ 253.138358] alloc_contig_range test_pages_isolated(11000, 15200) failed [ 253.144968] cma: dma_alloc_from_contiguous(): memory range at c08fa000 is busy, retrying [ 253.154177] alloc_contig_range test_pages_isolated(11000, 15300) failed [ 253.160997] cma: dma_alloc_from_contiguous(): memory range at c08fc000 is busy, retrying [ 253.170236] alloc_contig_range test_pages_isolated(11400, 15400) failed [ 253.176860] cma: dma_alloc_from_contiguous(): memory range at c08fe000 is busy, retrying [ 253.186073] alloc_contig_range test_pages_isolated(11400, 15500) failed [ 253.192699] cma: dma_alloc_from_contiguous(): memory range at c0900000 is busy, retrying [ 253.201911] alloc_contig_range test_pages_isolated(11400, 15600) failed [ 253.208537] cma: dma_alloc_from_contiguous(): memory range at c0902000 is busy, retrying [ 253.217745] alloc_contig_range test_pages_isolated(11400, 15700) failed [ 253.224355] cma: dma_alloc_from_contiguous(): memory range at c0904000 is busy, retrying [ 253.233560] alloc_contig_range test_pages_isolated(11800, 15800) failed [ 253.240184] cma: dma_alloc_from_contiguous(): memory range at c0906000 is busy, retrying [ 253.249390] alloc_contig_range test_pages_isolated(11800, 15900) failed [ 253.256001] cma: dma_alloc_from_contiguous(): memory range at c0908000 is busy, retrying [ 253.265358] alloc_contig_range test_pages_isolated(11800, 15a00) failed [ 253.271985] cma: dma_alloc_from_contiguous(): memory range at c090a000 is busy, retrying [ 253.281198] alloc_contig_range test_pages_isolated(11800, 15b00) failed [ 253.287823] cma: dma_alloc_from_contiguous(): memory range at c090c000 is busy, retrying [ 253.297039] alloc_contig_range test_pages_isolated(11c00, 15c00) failed [ 253.303649] cma: dma_alloc_from_contiguous(): memory range at c090e000 is busy, retrying [ 253.312858] alloc_contig_range test_pages_isolated(11c00, 15d00) failed [ 253.319482] cma: dma_alloc_from_contiguous(): memory range at c0910000 is busy, retrying [ 253.328691] alloc_contig_range test_pages_isolated(11c00, 15e00) failed [ 253.335301] cma: dma_alloc_from_contiguous(): memory range at c0912000 is busy, retrying [ 253.344513] alloc_contig_range test_pages_isolated(11c00, 15f00) failed [ 253.351158] cma: dma_alloc_from_contiguous(): memory range at c0914000 is busy, retrying [ 253.360595] alloc_contig_range test_pages_isolated(12000, 16000) failed [ 253.367224] cma: dma_alloc_from_contiguous(): memory range at c0916000 is busy, retrying [ 253.376535] alloc_contig_range test_pages_isolated(12000, 16100) failed [ 253.383147] cma: dma_alloc_from_contiguous(): memory range at c0918000 is busy, retrying [ 253.392397] alloc_contig_range test_pages_isolated(12000, 16200) failed [ 253.399026] cma: dma_alloc_from_contiguous(): memory range at c091a000 is busy, retrying [ 253.408272] alloc_contig_range test_pages_isolated(12000, 16300) failed [ 253.414883] cma: dma_alloc_from_contiguous(): memory range at c091c000 is busy, retrying [ 253.424106] alloc_contig_range test_pages_isolated(12400, 16400) failed [ 253.430732] cma: dma_alloc_from_contiguous(): memory range at c091e000 is busy, retrying [ 253.439943] alloc_contig_range test_pages_isolated(12400, 16500) failed [ 253.446566] cma: dma_alloc_from_contiguous(): memory range at c0920000 is busy, retrying [ 253.455764] alloc_contig_range test_pages_isolated(12400, 16600) failed [ 253.462530] cma: dma_alloc_from_contiguous(): memory range at c0922000 is busy, retrying [ 253.471767] alloc_contig_range test_pages_isolated(12400, 16700) failed [ 253.478394] cma: dma_alloc_from_contiguous(): memory range at c0924000 is busy, retrying [ 253.487608] alloc_contig_range test_pages_isolated(12800, 16800) failed [ 253.494219] cma: dma_alloc_from_contiguous(): memory range at c0926000 is busy, retrying [ 253.503444] alloc_contig_range test_pages_isolated(12800, 16900) failed [ 253.510068] cma: dma_alloc_from_contiguous(): memory range at c0928000 is busy, retrying [ 253.519280] alloc_contig_range test_pages_isolated(12800, 16a00) failed [ 253.525891] cma: dma_alloc_from_contiguous(): memory range at c092a000 is busy, retrying [ 253.535099] alloc_contig_range test_pages_isolated(12800, 16b00) failed [ 253.541721] cma: dma_alloc_from_contiguous(): memory range at c092c000 is busy, retrying [ 253.550924] alloc_contig_range test_pages_isolated(12c00, 16c00) failed [ 253.557638] cma: dma_alloc_from_contiguous(): memory range at c092e000 is busy, retrying [ 253.566876] alloc_contig_range test_pages_isolated(12c00, 16d00) failed [ 253.573487] cma: dma_alloc_from_contiguous(): memory range at c0930000 is busy, retrying [ 253.582707] alloc_contig_range test_pages_isolated(12c00, 16e00) failed [ 253.589331] cma: dma_alloc_from_contiguous(): memory range at c0932000 is busy, retrying [ 253.598540] alloc_contig_range test_pages_isolated(12c00, 16f00) failed [ 253.605151] cma: dma_alloc_from_contiguous(): memory range at c0934000 is busy, retrying [ 253.614366] alloc_contig_range test_pages_isolated(13000, 17000) failed [ 253.620989] cma: dma_alloc_from_contiguous(): memory range at c0936000 is busy, retrying [ 253.630195] alloc_contig_range test_pages_isolated(13000, 17100) failed [ 253.636818] cma: dma_alloc_from_contiguous(): memory range at c0938000 is busy, retrying [ 253.646015] alloc_contig_range test_pages_isolated(13000, 17200) failed [ 253.652662] cma: dma_alloc_from_contiguous(): memory range at c093a000 is busy, retrying [ 253.662013] alloc_contig_range test_pages_isolated(13000, 17300) failed [ 253.668645] cma: dma_alloc_from_contiguous(): memory range at c093c000 is busy, retrying [ 253.677869] alloc_contig_range test_pages_isolated(13400, 17400) failed [ 253.684478] cma: dma_alloc_from_contiguous(): memory range at c093e000 is busy, retrying [ 253.693689] alloc_contig_range test_pages_isolated(13400, 17500) failed [ 253.700327] cma: dma_alloc_from_contiguous(): memory range at c0940000 is busy, retrying [ 253.709545] alloc_contig_range test_pages_isolated(13400, 17600) failed [ 253.716156] cma: dma_alloc_from_contiguous(): memory range at c0942000 is busy, retrying [ 253.725374] alloc_contig_range test_pages_isolated(13400, 17700) failed [ 253.732002] cma: dma_alloc_from_contiguous(): memory range at c0944000 is busy, retrying [ 253.741215] alloc_contig_range test_pages_isolated(13800, 17800) failed [ 253.747839] cma: dma_alloc_from_contiguous(): memory range at c0946000 is busy, retrying [ 253.757190] alloc_contig_range test_pages_isolated(13800, 17900) failed [ 253.763800] cma: dma_alloc_from_contiguous(): memory range at c0948000 is busy, retrying [ 253.773028] alloc_contig_range test_pages_isolated(13800, 17a00) failed [ 253.779652] cma: dma_alloc_from_contiguous(): memory range at c094a000 is busy, retrying [ 253.788865] alloc_contig_range test_pages_isolated(13800, 17b00) failed [ 253.795477] cma: dma_alloc_from_contiguous(): memory range at c094c000 is busy, retrying [ 253.804685] alloc_contig_range test_pages_isolated(13c00, 17c00) failed [ 253.811307] cma: dma_alloc_from_contiguous(): memory range at c094e000 is busy, retrying [ 253.820507] alloc_contig_range test_pages_isolated(13c00, 17d00) failed [ 253.827130] cma: dma_alloc_from_contiguous(): memory range at c0950000 is busy, retrying [ 253.836327] alloc_contig_range test_pages_isolated(13c00, 17e00) failed [ 253.842953] cma: dma_alloc_from_contiguous(): memory range at c0952000 is busy, retrying [ 253.852157] alloc_contig_range test_pages_isolated(13c00, 17f00) failed [ 253.858898] cma: dma_alloc_from_contiguous(): memory range at c0954000 is busy, retrying [ 253.868148] alloc_contig_range test_pages_isolated(14000, 18000) failed [ 253.874758] cma: dma_alloc_from_contiguous(): memory range at c0956000 is busy, retrying [ 253.883983] alloc_contig_range test_pages_isolated(14000, 18100) failed [ 253.890608] cma: dma_alloc_from_contiguous(): memory range at c0958000 is busy, retrying [ 253.899834] alloc_contig_range test_pages_isolated(14000, 18200) failed [ 253.906459] cma: dma_alloc_from_contiguous(): memory range at c095a000 is busy, retrying [ 253.915656] alloc_contig_range test_pages_isolated(14000, 18300) failed [ 253.922282] cma: dma_alloc_from_contiguous(): memory range at c095c000 is busy, retrying [ 253.931492] alloc_contig_range test_pages_isolated(14400, 18400) failed [ 253.938117] cma: dma_alloc_from_contiguous(): memory range at c095e000 is busy, retrying [ 253.947361] alloc_contig_range test_pages_isolated(14400, 18500) failed [ 253.953972] cma: dma_alloc_from_contiguous(): memory range at c0960000 is busy, retrying [ 253.963366] alloc_contig_range test_pages_isolated(14400, 18600) failed [ 253.969992] cma: dma_alloc_from_contiguous(): memory range at c0962000 is busy, retrying [ 253.979207] alloc_contig_range test_pages_isolated(14400, 18700) failed [ 253.985818] cma: dma_alloc_from_contiguous(): memory range at c0964000 is busy, retrying [ 253.995032] alloc_contig_range test_pages_isolated(14800, 18800) failed [ 254.001655] cma: dma_alloc_from_contiguous(): memory range at c0966000 is busy, retrying [ 254.010862] alloc_contig_range test_pages_isolated(14800, 18900) failed [ 254.017961] cma: dma_alloc_from_contiguous(): memory range at c0968000 is busy, retrying [ 254.027298] alloc_contig_range test_pages_isolated(14800, 18a00) failed [ 254.033909] cma: dma_alloc_from_contiguous(): memory range at c096a000 is busy, retrying [ 254.043171] alloc_contig_range test_pages_isolated(14800, 18b00) failed [ 254.049796] cma: dma_alloc_from_contiguous(): memory range at c096c000 is busy, retrying [ 254.059195] alloc_contig_range test_pages_isolated(14c00, 18c00) failed [ 254.065805] cma: dma_alloc_from_contiguous(): memory range at c096e000 is busy, retrying [ 254.075030] alloc_contig_range test_pages_isolated(14c00, 18d00) failed [ 254.081654] cma: dma_alloc_from_contiguous(): memory range at c0970000 is busy, retrying [ 254.090871] alloc_contig_range test_pages_isolated(14c00, 18e00) failed [ 254.097503] cma: dma_alloc_from_contiguous(): memory range at c0972000 is busy, retrying [ 254.106721] alloc_contig_range test_pages_isolated(14c00, 18f00) failed [ 254.113334] cma: dma_alloc_from_contiguous(): memory range at c0974000 is busy, retrying [ 254.122563] alloc_contig_range test_pages_isolated(15000, 19000) failed [ 254.129186] cma: dma_alloc_from_contiguous(): memory range at c0976000 is busy, retrying [ 254.138396] alloc_contig_range test_pages_isolated(15000, 19100) failed [ 254.145006] cma: dma_alloc_from_contiguous(): memory range at c0978000 is busy, retrying [ 254.154215] alloc_contig_range test_pages_isolated(15000, 19200) failed [ 254.160911] cma: dma_alloc_from_contiguous(): memory range at c097a000 is busy, retrying [ 254.170135] alloc_contig_range test_pages_isolated(15000, 19300) failed [ 254.176759] cma: dma_alloc_from_contiguous(): memory range at c097c000 is busy, retrying [ 254.185956] alloc_contig_range test_pages_isolated(15400, 19400) failed [ 254.192579] cma: dma_alloc_from_contiguous(): memory range at c097e000 is busy, retrying [ 254.201791] alloc_contig_range test_pages_isolated(15400, 19500) failed [ 254.208417] cma: dma_alloc_from_contiguous(): memory range at c0980000 is busy, retrying [ 254.217621] alloc_contig_range test_pages_isolated(15400, 19600) failed [ 254.224233] cma: dma_alloc_from_contiguous(): memory range at c0982000 is busy, retrying [ 254.233439] alloc_contig_range test_pages_isolated(15400, 19700) failed [ 254.240062] cma: dma_alloc_from_contiguous(): memory range at c0984000 is busy, retrying [ 254.249288] alloc_contig_range test_pages_isolated(15800, 19800) failed [ 254.255898] cma: dma_alloc_from_contiguous(): memory range at c0986000 is busy, retrying [ 254.265220] alloc_contig_range test_pages_isolated(15800, 19900) failed [ 254.271845] cma: dma_alloc_from_contiguous(): memory range at c0988000 is busy, retrying [ 254.281059] alloc_contig_range test_pages_isolated(15800, 19a00) failed [ 254.287684] cma: dma_alloc_from_contiguous(): memory range at c098a000 is busy, retrying [ 254.296904] alloc_contig_range test_pages_isolated(15800, 19b00) failed [ 254.303514] cma: dma_alloc_from_contiguous(): memory range at c098c000 is busy, retrying [ 254.312722] alloc_contig_range test_pages_isolated(15c00, 19c00) failed [ 254.319345] cma: dma_alloc_from_contiguous(): memory range at c098e000 is busy, retrying [ 254.328553] alloc_contig_range test_pages_isolated(15c00, 19d00) failed [ 254.335163] cma: dma_alloc_from_contiguous(): memory range at c0990000 is busy, retrying [ 254.344370] alloc_contig_range test_pages_isolated(15c00, 19e00) failed [ 254.350993] cma: dma_alloc_from_contiguous(): memory range at c0992000 is busy, retrying [ 254.360353] alloc_contig_range test_pages_isolated(15c00, 19f00) failed [ 254.366983] cma: dma_alloc_from_contiguous(): memory range at c0994000 is busy, retrying [ 254.376199] alloc_contig_range test_pages_isolated(16000, 1a000) failed [ 254.382825] cma: dma_alloc_from_contiguous(): memory range at c0996000 is busy, retrying [ 254.392031] alloc_contig_range test_pages_isolated(16000, 1a100) failed [ 254.398664] cma: dma_alloc_from_contiguous(): memory range at c0998000 is busy, retrying [ 254.407943] alloc_contig_range test_pages_isolated(16000, 1a200) failed [ 254.414553] cma: dma_alloc_from_contiguous(): memory range at c099a000 is busy, retrying [ 254.423782] alloc_contig_range test_pages_isolated(16000, 1a300) failed [ 254.430409] cma: dma_alloc_from_contiguous(): memory range at c099c000 is busy, retrying [ 254.439632] alloc_contig_range test_pages_isolated(16400, 1a400) failed [ 254.446242] cma: dma_alloc_from_contiguous(): memory range at c099e000 is busy, retrying [ 254.455459] alloc_contig_range test_pages_isolated(16400, 1a500) failed [ 254.462153] cma: dma_alloc_from_contiguous(): memory range at c09a0000 is busy, retrying [ 254.471387] alloc_contig_range test_pages_isolated(16400, 1a600) failed [ 254.478013] cma: dma_alloc_from_contiguous(): memory range at c09a2000 is busy, retrying [ 254.487238] alloc_contig_range test_pages_isolated(16400, 1a700) failed [ 254.493849] cma: dma_alloc_from_contiguous(): memory range at c09a4000 is busy, retrying [ 254.503072] alloc_contig_range test_pages_isolated(16800, 1a800) failed [ 254.509694] cma: dma_alloc_from_contiguous(): memory range at c09a6000 is busy, retrying [ 254.518905] alloc_contig_range test_pages_isolated(16800, 1a900) failed [ 254.525515] cma: dma_alloc_from_contiguous(): memory range at c09a8000 is busy, retrying [ 254.534731] alloc_contig_range test_pages_isolated(16800, 1aa00) failed [ 254.541355] cma: dma_alloc_from_contiguous(): memory range at c09aa000 is busy, retrying [ 254.550587] alloc_contig_range test_pages_isolated(16800, 1ab00) failed [ 254.557356] cma: dma_alloc_from_contiguous(): memory range at c09ac000 is busy, retrying [ 254.566609] alloc_contig_range test_pages_isolated(16c00, 1ac00) failed [ 254.573219] cma: dma_alloc_from_contiguous(): memory range at c09ae000 is busy, retrying [ 254.582442] alloc_contig_range test_pages_isolated(16c00, 1ad00) failed [ 254.589066] cma: dma_alloc_from_contiguous(): memory range at c09b0000 is busy, retrying [ 254.598282] alloc_contig_range test_pages_isolated(16c00, 1ae00) failed [ 254.604892] cma: dma_alloc_from_contiguous(): memory range at c09b2000 is busy, retrying [ 254.614104] alloc_contig_range test_pages_isolated(16c00, 1af00) failed [ 254.620727] cma: dma_alloc_from_contiguous(): memory range at c09b4000 is busy, retrying [ 254.629933] alloc_contig_range test_pages_isolated(17000, 1b000) failed [ 254.636555] cma: dma_alloc_from_contiguous(): memory range at c09b6000 is busy, retrying [ 254.645746] alloc_contig_range test_pages_isolated(17000, 1b100) failed [ 254.652371] cma: dma_alloc_from_contiguous(): memory range at c09b8000 is busy, retrying [ 254.661715] alloc_contig_range test_pages_isolated(17000, 1b200) failed [ 254.668341] cma: dma_alloc_from_contiguous(): memory range at c09ba000 is busy, retrying [ 254.677548] alloc_contig_range test_pages_isolated(17000, 1b300) failed [ 254.684159] cma: dma_alloc_from_contiguous(): memory range at c09bc000 is busy, retrying [ 254.693365] alloc_contig_range test_pages_isolated(17400, 1b400) failed [ 254.699995] cma: dma_alloc_from_contiguous(): memory range at c09be000 is busy, retrying [ 254.709206] alloc_contig_range test_pages_isolated(17400, 1b500) failed [ 254.715816] cma: dma_alloc_from_contiguous(): memory range at c09c0000 is busy, retrying [ 254.725035] alloc_contig_range test_pages_isolated(17400, 1b600) failed [ 254.731658] cma: dma_alloc_from_contiguous(): memory range at c09c2000 is busy, retrying [ 254.740879] alloc_contig_range test_pages_isolated(17400, 1b700) failed [ 254.747502] cma: dma_alloc_from_contiguous(): memory range at c09c4000 is busy, retrying [ 254.756785] alloc_contig_range test_pages_isolated(17800, 1b800) failed [ 254.763395] cma: dma_alloc_from_contiguous(): memory range at c09c6000 is busy, retrying [ 254.772618] alloc_contig_range test_pages_isolated(17800, 1b900) failed [ 254.779243] cma: dma_alloc_from_contiguous(): memory range at c09c8000 is busy, retrying [ 254.788466] alloc_contig_range test_pages_isolated(17800, 1ba00) failed [ 254.795077] cma: dma_alloc_from_contiguous(): memory range at c09ca000 is busy, retrying [ 254.804294] alloc_contig_range test_pages_isolated(17800, 1bb00) failed [ 254.810918] cma: dma_alloc_from_contiguous(): memory range at c09cc000 is busy, retrying [ 254.820121] alloc_contig_range test_pages_isolated(17c00, 1bc00) failed [ 254.826743] cma: dma_alloc_from_contiguous(): memory range at c09ce000 is busy, retrying [ 254.835943] alloc_contig_range test_pages_isolated(17c00, 1bd00) failed [ 254.842569] cma: dma_alloc_from_contiguous(): memory range at c09d0000 is busy, retrying [ 254.851797] alloc_contig_range test_pages_isolated(17c00, 1be00) failed [ 254.858540] cma: dma_alloc_from_contiguous(): memory range at c09d2000 is busy, retrying [ 254.867784] alloc_contig_range test_pages_isolated(17c00, 1bf00) failed [ 254.874396] cma: dma_alloc_from_contiguous(): memory range at c09d4000 is busy, retrying [ 254.883621] alloc_contig_range test_pages_isolated(18000, 1c000) failed [ 254.890244] cma: dma_alloc_from_contiguous(): memory range at c09d6000 is busy, retrying [ 254.899461] alloc_contig_range test_pages_isolated(18000, 1c100) failed [ 254.906071] cma: dma_alloc_from_contiguous(): memory range at c09d8000 is busy, retrying [ 254.915278] alloc_contig_range test_pages_isolated(18000, 1c200) failed [ 254.921901] cma: dma_alloc_from_contiguous(): memory range at c09da000 is busy, retrying [ 254.931104] alloc_contig_range test_pages_isolated(18000, 1c300) failed [ 254.937729] cma: dma_alloc_from_contiguous(): memory range at c09dc000 is busy, retrying [ 254.946939] alloc_contig_range test_pages_isolated(18400, 1c400) failed [ 254.953548] cma: dma_alloc_from_contiguous(): memory range at c09de000 is busy, retrying [ 254.962976] alloc_contig_range test_pages_isolated(18400, 1c500) failed [ 254.969602] cma: dma_alloc_from_contiguous(): memory range at c09e0000 is busy, retrying [ 254.978819] alloc_contig_range test_pages_isolated(18400, 1c600) failed [ 254.985430] cma: dma_alloc_from_contiguous(): memory range at c09e2000 is busy, retrying [ 254.994643] alloc_contig_range test_pages_isolated(18400, 1c700) failed [ 255.001266] cma: dma_alloc_from_contiguous(): memory range at c09e4000 is busy, retrying [ 255.010485] alloc_contig_range test_pages_isolated(18800, 1c800) failed [ 255.017125] cma: dma_alloc_from_contiguous(): memory range at c09e6000 is busy, retrying [ 255.026319] alloc_contig_range test_pages_isolated(18800, 1c900) failed [ 255.032945] cma: dma_alloc_from_contiguous(): memory range at c09e8000 is busy, retrying [ 255.042149] alloc_contig_range test_pages_isolated(18800, 1ca00) failed [ 255.048774] cma: dma_alloc_from_contiguous(): memory range at c09ea000 is busy, retrying [ 255.058126] alloc_contig_range test_pages_isolated(18800, 1cb00) failed [ 255.064737] cma: dma_alloc_from_contiguous(): memory range at c09ec000 is busy, retrying [ 255.073973] alloc_contig_range test_pages_isolated(18c00, 1cc00) failed [ 255.080597] cma: dma_alloc_from_contiguous(): memory range at c09ee000 is busy, retrying [ 255.089808] alloc_contig_range test_pages_isolated(18c00, 1cd00) failed [ 255.096418] cma: dma_alloc_from_contiguous(): memory range at c09f0000 is busy, retrying [ 255.105656] alloc_contig_range test_pages_isolated(18c00, 1ce00) failed [ 255.112283] cma: dma_alloc_from_contiguous(): memory range at c09f2000 is busy, retrying [ 255.121496] alloc_contig_range test_pages_isolated(18c00, 1cf00) failed [ 255.128122] cma: dma_alloc_from_contiguous(): memory range at c09f4000 is busy, retrying [ 255.137341] alloc_contig_range test_pages_isolated(19000, 1d000) failed [ 255.143952] cma: dma_alloc_from_contiguous(): memory range at c09f6000 is busy, retrying [ 255.153179] alloc_contig_range test_pages_isolated(19000, 1d100) failed [ 255.160000] cma: dma_alloc_from_contiguous(): memory range at c09f8000 is busy, retrying [ 255.169257] alloc_contig_range test_pages_isolated(19000, 1d200) failed [ 255.175867] cma: dma_alloc_from_contiguous(): memory range at c09fa000 is busy, retrying [ 255.185086] alloc_contig_range test_pages_isolated(19000, 1d300) failed [ 255.191711] cma: dma_alloc_from_contiguous(): memory range at c09fc000 is busy, retrying [ 255.200934] alloc_contig_range test_pages_isolated(19400, 1d400) failed [ 255.207558] cma: dma_alloc_from_contiguous(): memory range at c09fe000 is busy, retrying [ 255.216785] alloc_contig_range test_pages_isolated(19400, 1d500) failed [ 255.223396] cma: dma_alloc_from_contiguous(): memory range at c0a00000 is busy, retrying [ 255.232621] alloc_contig_range test_pages_isolated(19400, 1d600) failed [ 255.239245] cma: dma_alloc_from_contiguous(): memory range at c0a02000 is busy, retrying [ 255.248459] alloc_contig_range test_pages_isolated(19400, 1d700) failed [ 255.255069] cma: dma_alloc_from_contiguous(): memory range at c0a04000 is busy, retrying [ 255.264435] alloc_contig_range test_pages_isolated(19800, 1d800) failed [ 255.271064] cma: dma_alloc_from_contiguous(): memory range at c0a06000 is busy, retrying [ 255.280280] alloc_contig_range test_pages_isolated(19800, 1d900) failed [ 255.286906] cma: dma_alloc_from_contiguous(): memory range at c0a08000 is busy, retrying [ 255.296104] alloc_contig_range test_pages_isolated(19800, 1da00) failed [ 255.302740] cma: dma_alloc_from_contiguous(): memory range at c0a0a000 is busy, retrying [ 255.311956] alloc_contig_range test_pages_isolated(19800, 1db00) failed [ 255.318582] cma: dma_alloc_from_contiguous(): memory range at c0a0c000 is busy, retrying [ 255.327791] alloc_contig_range test_pages_isolated(19c00, 1dc00) failed [ 255.334401] cma: dma_alloc_from_contiguous(): memory range at c0a0e000 is busy, retrying [ 255.343608] alloc_contig_range test_pages_isolated(19c00, 1dd00) failed [ 255.350232] cma: dma_alloc_from_contiguous(): memory range at c0a10000 is busy, retrying [ 255.359524] alloc_contig_range test_pages_isolated(19c00, 1de00) failed [ 255.366136] cma: dma_alloc_from_contiguous(): memory range at c0a12000 is busy, retrying [ 255.375362] alloc_contig_range test_pages_isolated(19c00, 1df00) failed [ 255.381987] cma: dma_alloc_from_contiguous(): memory range at c0a14000 is busy, retrying [ 255.391203] alloc_contig_range test_pages_isolated(1a000, 1e000) failed [ 255.397830] cma: dma_alloc_from_contiguous(): memory range at c0a16000 is busy, retrying [ 255.407049] alloc_contig_range test_pages_isolated(1a000, 1e100) failed [ 255.413659] cma: dma_alloc_from_contiguous(): memory range at c0a18000 is busy, retrying [ 255.422869] alloc_contig_range test_pages_isolated(1a000, 1e200) failed [ 255.429495] cma: dma_alloc_from_contiguous(): memory range at c0a1a000 is busy, retrying [ 255.438714] alloc_contig_range test_pages_isolated(1a000, 1e300) failed [ 255.445324] cma: dma_alloc_from_contiguous(): memory range at c0a1c000 is busy, retrying [ 255.454571] alloc_contig_range test_pages_isolated(1a400, 1e400) failed [ 255.461278] cma: dma_alloc_from_contiguous(): memory range at c0a1e000 is busy, retrying [ 255.470513] alloc_contig_range test_pages_isolated(1a400, 1e500) failed [ 255.477137] cma: dma_alloc_from_contiguous(): memory range at c0a20000 is busy, retrying [ 255.486350] alloc_contig_range test_pages_isolated(1a400, 1e600) failed [ 255.492976] cma: dma_alloc_from_contiguous(): memory range at c0a22000 is busy, retrying [ 255.502205] alloc_contig_range test_pages_isolated(1a400, 1e700) failed [ 255.508829] cma: dma_alloc_from_contiguous(): memory range at c0a24000 is busy, retrying [ 255.518039] alloc_contig_range test_pages_isolated(1a800, 1e800) failed [ 255.524649] cma: dma_alloc_from_contiguous(): memory range at c0a26000 is busy, retrying [ 255.533858] alloc_contig_range test_pages_isolated(1a800, 1e900) failed [ 255.540481] cma: dma_alloc_from_contiguous(): memory range at c0a28000 is busy, retrying [ 255.549681] alloc_contig_range test_pages_isolated(1a800, 1ea00) failed [ 255.556292] cma: dma_alloc_from_contiguous(): memory range at c0a2a000 is busy, retrying [ 255.565646] alloc_contig_range test_pages_isolated(1a800, 1eb00) failed [ 255.572271] cma: dma_alloc_from_contiguous(): memory range at c0a2c000 is busy, retrying [ 255.581483] alloc_contig_range test_pages_isolated(1ac00, 1ec00) failed [ 255.588106] cma: dma_alloc_from_contiguous(): memory range at c0a2e000 is busy, retrying [ 255.597322] alloc_contig_range test_pages_isolated(1ac00, 1ed00) failed [ 255.603932] cma: dma_alloc_from_contiguous(): memory range at c0a30000 is busy, retrying [ 255.613141] alloc_contig_range test_pages_isolated(1ac00, 1ee00) failed [ 255.619765] cma: dma_alloc_from_contiguous(): memory range at c0a32000 is busy, retrying [ 255.628984] alloc_contig_range test_pages_isolated(1ac00, 1ef00) failed [ 255.635593] cma: dma_alloc_from_contiguous(): memory range at c0a34000 is busy, retrying [ 255.644805] alloc_contig_range test_pages_isolated(1b000, 1f000) failed [ 255.651429] cma: dma_alloc_from_contiguous(): memory range at c0a36000 is busy, retrying [ 255.660759] alloc_contig_range test_pages_isolated(1b000, 1f100) failed [ 255.667390] cma: dma_alloc_from_contiguous(): memory range at c0a38000 is busy, retrying [ 255.676625] alloc_contig_range test_pages_isolated(1b000, 1f200) failed [ 255.683238] cma: dma_alloc_from_contiguous(): memory range at c0a3a000 is busy, retrying [ 255.692456] alloc_contig_range test_pages_isolated(1b000, 1f300) failed [ 255.699092] cma: dma_alloc_from_contiguous(): memory range at c0a3c000 is busy, retrying [ 255.708307] alloc_contig_range test_pages_isolated(1b400, 1f400) failed [ 255.714919] cma: dma_alloc_from_contiguous(): memory range at c0a3e000 is busy, retrying [ 255.724124] alloc_contig_range test_pages_isolated(1b400, 1f500) failed [ 255.730751] cma: dma_alloc_from_contiguous(): memory range at c0a40000 is busy, retrying [ 255.739962] alloc_contig_range test_pages_isolated(1b400, 1f600) failed [ 255.746605] cma: dma_alloc_from_contiguous(): memory range at c0a42000 is busy, retrying [ 255.755806] alloc_contig_range test_pages_isolated(1b400, 1f700) failed [ 255.762558] cma: dma_alloc_from_contiguous(): memory range at c0a44000 is busy, retrying [ 255.771813] alloc_contig_range test_pages_isolated(1b800, 1f800) failed [ 255.778438] cma: dma_alloc_from_contiguous(): memory range at c0a46000 is busy, retrying [ 255.786519] cma: dma_alloc_from_contiguous(): returned (null) [ 255.792423] failed to allocate 67108864 bytes [ 255.796779] cma: dma_alloc_from_contiguous(cma cf473fc0, count 32768, align 8) [ 255.808519] alloc_contig_range test_pages_isolated(fc00, 17c00) failed [ 255.815061] cma: dma_alloc_from_contiguous(): memory range at c08ce000 is busy, retrying [ 255.826619] alloc_contig_range test_pages_isolated(fc00, 17d00) failed [ 255.833161] cma: dma_alloc_from_contiguous(): memory range at c08d0000 is busy, retrying [ 255.844357] alloc_contig_range test_pages_isolated(fc00, 17e00) failed [ 255.850916] cma: dma_alloc_from_contiguous(): memory range at c08d2000 is busy, retrying [ 255.862157] alloc_contig_range test_pages_isolated(fc00, 17f00) failed [ 255.868723] cma: dma_alloc_from_contiguous(): memory range at c08d4000 is busy, retrying [ 255.879687] alloc_contig_range test_pages_isolated(10000, 18000) failed [ 255.886311] cma: dma_alloc_from_contiguous(): memory range at c08d6000 is busy, retrying [ 255.897246] alloc_contig_range test_pages_isolated(10000, 18100) failed [ 255.903872] cma: dma_alloc_from_contiguous(): memory range at c08d8000 is busy, retrying [ 255.914803] alloc_contig_range test_pages_isolated(10000, 18200) failed [ 255.921450] cma: dma_alloc_from_contiguous(): memory range at c08da000 is busy, retrying [ 255.932297] alloc_contig_range test_pages_isolated(10000, 18300) failed [ 255.938942] cma: dma_alloc_from_contiguous(): memory range at c08dc000 is busy, retrying [ 255.949782] alloc_contig_range test_pages_isolated(10400, 18400) failed [ 255.956408] cma: dma_alloc_from_contiguous(): memory range at c08de000 is busy, retrying [ 255.967457] alloc_contig_range test_pages_isolated(10400, 18500) failed [ 255.974085] cma: dma_alloc_from_contiguous(): memory range at c08e0000 is busy, retrying [ 255.984967] alloc_contig_range test_pages_isolated(10400, 18600) failed [ 255.991612] cma: dma_alloc_from_contiguous(): memory range at c08e2000 is busy, retrying [ 256.002439] alloc_contig_range test_pages_isolated(10400, 18700) failed [ 256.009083] cma: dma_alloc_from_contiguous(): memory range at c08e4000 is busy, retrying [ 256.020029] alloc_contig_range test_pages_isolated(10800, 18800) failed [ 256.026672] cma: dma_alloc_from_contiguous(): memory range at c08e6000 is busy, retrying [ 256.037508] alloc_contig_range test_pages_isolated(10800, 18900) failed [ 256.044135] cma: dma_alloc_from_contiguous(): memory range at c08e8000 is busy, retrying [ 256.054986] alloc_contig_range test_pages_isolated(10800, 18a00) failed [ 256.061757] cma: dma_alloc_from_contiguous(): memory range at c08ea000 is busy, retrying [ 256.072717] alloc_contig_range test_pages_isolated(10800, 18b00) failed [ 256.079364] cma: dma_alloc_from_contiguous(): memory range at c08ec000 is busy, retrying [ 256.090243] alloc_contig_range test_pages_isolated(10c00, 18c00) failed [ 256.096898] cma: dma_alloc_from_contiguous(): memory range at c08ee000 is busy, retrying [ 256.107803] alloc_contig_range test_pages_isolated(10c00, 18d00) failed [ 256.114431] cma: dma_alloc_from_contiguous(): memory range at c08f0000 is busy, retrying [ 256.125298] alloc_contig_range test_pages_isolated(10c00, 18e00) failed [ 256.131947] cma: dma_alloc_from_contiguous(): memory range at c08f2000 is busy, retrying [ 256.142793] alloc_contig_range test_pages_isolated(10c00, 18f00) failed [ 256.149437] cma: dma_alloc_from_contiguous(): memory range at c08f4000 is busy, retrying [ 256.160528] alloc_contig_range test_pages_isolated(11000, 19000) failed [ 256.167174] cma: dma_alloc_from_contiguous(): memory range at c08f6000 is busy, retrying [ 256.178037] alloc_contig_range test_pages_isolated(11000, 19100) failed [ 256.184663] cma: dma_alloc_from_contiguous(): memory range at c08f8000 is busy, retrying [ 256.195490] alloc_contig_range test_pages_isolated(11000, 19200) failed [ 256.202133] cma: dma_alloc_from_contiguous(): memory range at c08fa000 is busy, retrying [ 256.212934] alloc_contig_range test_pages_isolated(11000, 19300) failed [ 256.219578] cma: dma_alloc_from_contiguous(): memory range at c08fc000 is busy, retrying [ 256.230361] alloc_contig_range test_pages_isolated(11400, 19400) failed [ 256.237005] cma: dma_alloc_from_contiguous(): memory range at c08fe000 is busy, retrying [ 256.247792] alloc_contig_range test_pages_isolated(11400, 19500) failed [ 256.254417] cma: dma_alloc_from_contiguous(): memory range at c0900000 is busy, retrying [ 256.265428] alloc_contig_range test_pages_isolated(11400, 19600) failed [ 256.272077] cma: dma_alloc_from_contiguous(): memory range at c0902000 is busy, retrying [ 256.282911] alloc_contig_range test_pages_isolated(11400, 19700) failed [ 256.289557] cma: dma_alloc_from_contiguous(): memory range at c0904000 is busy, retrying [ 256.300381] alloc_contig_range test_pages_isolated(11800, 19800) failed [ 256.307025] cma: dma_alloc_from_contiguous(): memory range at c0906000 is busy, retrying [ 256.317841] alloc_contig_range test_pages_isolated(11800, 19900) failed [ 256.324467] cma: dma_alloc_from_contiguous(): memory range at c0908000 is busy, retrying [ 256.335263] alloc_contig_range test_pages_isolated(11800, 19a00) failed [ 256.341905] cma: dma_alloc_from_contiguous(): memory range at c090a000 is busy, retrying [ 256.352722] alloc_contig_range test_pages_isolated(11800, 19b00) failed [ 256.359512] cma: dma_alloc_from_contiguous(): memory range at c090c000 is busy, retrying [ 256.370421] alloc_contig_range test_pages_isolated(11c00, 19c00) failed [ 256.377070] cma: dma_alloc_from_contiguous(): memory range at c090e000 is busy, retrying [ 256.388102] alloc_contig_range test_pages_isolated(11c00, 19d00) failed [ 256.394728] cma: dma_alloc_from_contiguous(): memory range at c0910000 is busy, retrying [ 256.405673] alloc_contig_range test_pages_isolated(11c00, 19e00) failed [ 256.412314] cma: dma_alloc_from_contiguous(): memory range at c0912000 is busy, retrying [ 256.423184] alloc_contig_range test_pages_isolated(11c00, 19f00) failed [ 256.429828] cma: dma_alloc_from_contiguous(): memory range at c0914000 is busy, retrying [ 256.440664] alloc_contig_range test_pages_isolated(12000, 1a000) failed [ 256.447306] cma: dma_alloc_from_contiguous(): memory range at c0916000 is busy, retrying [ 256.458373] alloc_contig_range test_pages_isolated(12000, 1a100) failed [ 256.465001] cma: dma_alloc_from_contiguous(): memory range at c0918000 is busy, retrying [ 256.475910] alloc_contig_range test_pages_isolated(12000, 1a200) failed [ 256.482556] cma: dma_alloc_from_contiguous(): memory range at c091a000 is busy, retrying [ 256.493403] alloc_contig_range test_pages_isolated(12000, 1a300) failed [ 256.500058] cma: dma_alloc_from_contiguous(): memory range at c091c000 is busy, retrying [ 256.510872] alloc_contig_range test_pages_isolated(12400, 1a400) failed [ 256.517517] cma: dma_alloc_from_contiguous(): memory range at c091e000 is busy, retrying [ 256.528343] alloc_contig_range test_pages_isolated(12400, 1a500) failed [ 256.534969] cma: dma_alloc_from_contiguous(): memory range at c0920000 is busy, retrying [ 256.545766] alloc_contig_range test_pages_isolated(12400, 1a600) failed [ 256.552410] cma: dma_alloc_from_contiguous(): memory range at c0922000 is busy, retrying [ 256.563458] alloc_contig_range test_pages_isolated(12400, 1a700) failed [ 256.570106] cma: dma_alloc_from_contiguous(): memory range at c0924000 is busy, retrying [ 256.580955] alloc_contig_range test_pages_isolated(12800, 1a800) failed [ 256.587598] cma: dma_alloc_from_contiguous(): memory range at c0926000 is busy, retrying [ 256.598426] alloc_contig_range test_pages_isolated(12800, 1a900) failed [ 256.605053] cma: dma_alloc_from_contiguous(): memory range at c0928000 is busy, retrying [ 256.615860] alloc_contig_range test_pages_isolated(12800, 1aa00) failed [ 256.622504] cma: dma_alloc_from_contiguous(): memory range at c092a000 is busy, retrying [ 256.633300] alloc_contig_range test_pages_isolated(12800, 1ab00) failed [ 256.639944] cma: dma_alloc_from_contiguous(): memory range at c092c000 is busy, retrying [ 256.650769] alloc_contig_range test_pages_isolated(12c00, 1ac00) failed [ 256.657545] cma: dma_alloc_from_contiguous(): memory range at c092e000 is busy, retrying [ 256.668464] alloc_contig_range test_pages_isolated(12c00, 1ad00) failed [ 256.675090] cma: dma_alloc_from_contiguous(): memory range at c0930000 is busy, retrying [ 256.685947] alloc_contig_range test_pages_isolated(12c00, 1ae00) failed [ 256.692590] cma: dma_alloc_from_contiguous(): memory range at c0932000 is busy, retrying [ 256.703420] alloc_contig_range test_pages_isolated(12c00, 1af00) failed [ 256.710064] cma: dma_alloc_from_contiguous(): memory range at c0934000 is busy, retrying [ 256.720874] alloc_contig_range test_pages_isolated(13000, 1b000) failed [ 256.727517] cma: dma_alloc_from_contiguous(): memory range at c0936000 is busy, retrying [ 256.738331] alloc_contig_range test_pages_isolated(13000, 1b100) failed [ 256.744957] cma: dma_alloc_from_contiguous(): memory range at c0938000 is busy, retrying [ 256.755739] alloc_contig_range test_pages_isolated(13000, 1b200) failed [ 256.762601] cma: dma_alloc_from_contiguous(): memory range at c093a000 is busy, retrying [ 256.773497] alloc_contig_range test_pages_isolated(13000, 1b300) failed [ 256.780143] cma: dma_alloc_from_contiguous(): memory range at c093c000 is busy, retrying [ 256.790994] alloc_contig_range test_pages_isolated(13400, 1b400) failed [ 256.797637] cma: dma_alloc_from_contiguous(): memory range at c093e000 is busy, retrying [ 256.808466] alloc_contig_range test_pages_isolated(13400, 1b500) failed [ 256.815092] cma: dma_alloc_from_contiguous(): memory range at c0940000 is busy, retrying [ 256.825900] alloc_contig_range test_pages_isolated(13400, 1b600) failed [ 256.832544] cma: dma_alloc_from_contiguous(): memory range at c0942000 is busy, retrying [ 256.843337] alloc_contig_range test_pages_isolated(13400, 1b700) failed [ 256.849982] cma: dma_alloc_from_contiguous(): memory range at c0944000 is busy, retrying [ 256.861014] alloc_contig_range test_pages_isolated(13800, 1b800) failed [ 256.867668] cma: dma_alloc_from_contiguous(): memory range at c0946000 is busy, retrying [ 256.878553] alloc_contig_range test_pages_isolated(13800, 1b900) failed [ 256.885180] cma: dma_alloc_from_contiguous(): memory range at c0948000 is busy, retrying [ 256.896026] alloc_contig_range test_pages_isolated(13800, 1ba00) failed [ 256.902685] cma: dma_alloc_from_contiguous(): memory range at c094a000 is busy, retrying [ 256.913554] alloc_contig_range test_pages_isolated(13800, 1bb00) failed [ 256.920202] cma: dma_alloc_from_contiguous(): memory range at c094c000 is busy, retrying [ 256.931077] alloc_contig_range test_pages_isolated(13c00, 1bc00) failed [ 256.937724] cma: dma_alloc_from_contiguous(): memory range at c094e000 is busy, retrying [ 256.948601] alloc_contig_range test_pages_isolated(13c00, 1bd00) failed [ 256.955230] cma: dma_alloc_from_contiguous(): memory range at c0950000 is busy, retrying [ 256.966242] alloc_contig_range test_pages_isolated(13c00, 1be00) failed [ 256.972888] cma: dma_alloc_from_contiguous(): memory range at c0952000 is busy, retrying [ 256.983728] alloc_contig_range test_pages_isolated(13c00, 1bf00) failed [ 256.990372] cma: dma_alloc_from_contiguous(): memory range at c0954000 is busy, retrying [ 257.001178] alloc_contig_range test_pages_isolated(14000, 1c000) failed [ 257.007820] cma: dma_alloc_from_contiguous(): memory range at c0956000 is busy, retrying [ 257.018659] alloc_contig_range test_pages_isolated(14000, 1c100) failed [ 257.025285] cma: dma_alloc_from_contiguous(): memory range at c0958000 is busy, retrying [ 257.036088] alloc_contig_range test_pages_isolated(14000, 1c200) failed [ 257.042732] cma: dma_alloc_from_contiguous(): memory range at c095a000 is busy, retrying [ 257.053510] alloc_contig_range test_pages_isolated(14000, 1c300) failed [ 257.060308] cma: dma_alloc_from_contiguous(): memory range at c095c000 is busy, retrying [ 257.071172] alloc_contig_range test_pages_isolated(14400, 1c400) failed [ 257.077816] cma: dma_alloc_from_contiguous(): memory range at c095e000 is busy, retrying [ 257.088656] alloc_contig_range test_pages_isolated(14400, 1c500) failed [ 257.095282] cma: dma_alloc_from_contiguous(): memory range at c0960000 is busy, retrying [ 257.106110] alloc_contig_range test_pages_isolated(14400, 1c600) failed [ 257.112753] cma: dma_alloc_from_contiguous(): memory range at c0962000 is busy, retrying [ 257.123569] alloc_contig_range test_pages_isolated(14400, 1c700) failed [ 257.130213] cma: dma_alloc_from_contiguous(): memory range at c0964000 is busy, retrying [ 257.141002] alloc_contig_range test_pages_isolated(14800, 1c800) failed [ 257.147645] cma: dma_alloc_from_contiguous(): memory range at c0966000 is busy, retrying [ 257.158586] alloc_contig_range test_pages_isolated(14800, 1c900) failed [ 257.165213] cma: dma_alloc_from_contiguous(): memory range at c0968000 is busy, retrying [ 257.176058] alloc_contig_range test_pages_isolated(14800, 1ca00) failed [ 257.182701] cma: dma_alloc_from_contiguous(): memory range at c096a000 is busy, retrying [ 257.193499] alloc_contig_range test_pages_isolated(14800, 1cb00) failed [ 257.200144] cma: dma_alloc_from_contiguous(): memory range at c096c000 is busy, retrying [ 257.210933] alloc_contig_range test_pages_isolated(14c00, 1cc00) failed [ 257.217576] cma: dma_alloc_from_contiguous(): memory range at c096e000 is busy, retrying [ 257.228377] alloc_contig_range test_pages_isolated(14c00, 1cd00) failed [ 257.235002] cma: dma_alloc_from_contiguous(): memory range at c0970000 is busy, retrying [ 257.245783] alloc_contig_range test_pages_isolated(14c00, 1ce00) failed [ 257.252450] cma: dma_alloc_from_contiguous(): memory range at c0972000 is busy, retrying [ 257.263459] alloc_contig_range test_pages_isolated(14c00, 1cf00) failed [ 257.270110] cma: dma_alloc_from_contiguous(): memory range at c0974000 is busy, retrying [ 257.280979] alloc_contig_range test_pages_isolated(15000, 1d000) failed [ 257.287622] cma: dma_alloc_from_contiguous(): memory range at c0976000 is busy, retrying [ 257.298550] alloc_contig_range test_pages_isolated(15000, 1d100) failed [ 257.305178] cma: dma_alloc_from_contiguous(): memory range at c0978000 is busy, retrying [ 257.316110] alloc_contig_range test_pages_isolated(15000, 1d200) failed [ 257.322753] cma: dma_alloc_from_contiguous(): memory range at c097a000 is busy, retrying [ 257.333620] alloc_contig_range test_pages_isolated(15000, 1d300) failed [ 257.340268] cma: dma_alloc_from_contiguous(): memory range at c097c000 is busy, retrying [ 257.351118] alloc_contig_range test_pages_isolated(15400, 1d400) failed [ 257.357915] cma: dma_alloc_from_contiguous(): memory range at c097e000 is busy, retrying [ 257.368840] alloc_contig_range test_pages_isolated(15400, 1d500) failed [ 257.375465] cma: dma_alloc_from_contiguous(): memory range at c0980000 is busy, retrying [ 257.386323] alloc_contig_range test_pages_isolated(15400, 1d600) failed [ 257.392966] cma: dma_alloc_from_contiguous(): memory range at c0982000 is busy, retrying [ 257.403791] alloc_contig_range test_pages_isolated(15400, 1d700) failed [ 257.410433] cma: dma_alloc_from_contiguous(): memory range at c0984000 is busy, retrying [ 257.421236] alloc_contig_range test_pages_isolated(15800, 1d800) failed [ 257.427878] cma: dma_alloc_from_contiguous(): memory range at c0986000 is busy, retrying [ 257.438677] alloc_contig_range test_pages_isolated(15800, 1d900) failed [ 257.445304] cma: dma_alloc_from_contiguous(): memory range at c0988000 is busy, retrying [ 257.456094] alloc_contig_range test_pages_isolated(15800, 1da00) failed [ 257.462841] cma: dma_alloc_from_contiguous(): memory range at c098a000 is busy, retrying [ 257.473733] alloc_contig_range test_pages_isolated(15800, 1db00) failed [ 257.480379] cma: dma_alloc_from_contiguous(): memory range at c098c000 is busy, retrying [ 257.491209] alloc_contig_range test_pages_isolated(15c00, 1dc00) failed [ 257.497863] cma: dma_alloc_from_contiguous(): memory range at c098e000 is busy, retrying [ 257.508695] alloc_contig_range test_pages_isolated(15c00, 1dd00) failed [ 257.515322] cma: dma_alloc_from_contiguous(): memory range at c0990000 is busy, retrying [ 257.526138] alloc_contig_range test_pages_isolated(15c00, 1de00) failed [ 257.532781] cma: dma_alloc_from_contiguous(): memory range at c0992000 is busy, retrying [ 257.543570] alloc_contig_range test_pages_isolated(15c00, 1df00) failed [ 257.550238] cma: dma_alloc_from_contiguous(): memory range at c0994000 is busy, retrying [ 257.561372] alloc_contig_range test_pages_isolated(16000, 1e000) failed [ 257.568024] cma: dma_alloc_from_contiguous(): memory range at c0996000 is busy, retrying [ 257.578941] alloc_contig_range test_pages_isolated(16000, 1e100) failed [ 257.585567] cma: dma_alloc_from_contiguous(): memory range at c0998000 is busy, retrying [ 257.596443] alloc_contig_range test_pages_isolated(16000, 1e200) failed [ 257.603070] cma: dma_alloc_from_contiguous(): memory range at c099a000 is busy, retrying [ 257.613941] alloc_contig_range test_pages_isolated(16000, 1e300) failed [ 257.620587] cma: dma_alloc_from_contiguous(): memory range at c099c000 is busy, retrying [ 257.631422] alloc_contig_range test_pages_isolated(16400, 1e400) failed [ 257.638069] cma: dma_alloc_from_contiguous(): memory range at c099e000 is busy, retrying [ 257.648908] alloc_contig_range test_pages_isolated(16400, 1e500) failed [ 257.655534] cma: dma_alloc_from_contiguous(): memory range at c09a0000 is busy, retrying [ 257.666662] alloc_contig_range test_pages_isolated(16400, 1e600) failed [ 257.673291] cma: dma_alloc_from_contiguous(): memory range at c09a2000 is busy, retrying [ 257.684179] alloc_contig_range test_pages_isolated(16400, 1e700) failed [ 257.690825] cma: dma_alloc_from_contiguous(): memory range at c09a4000 is busy, retrying [ 257.701700] alloc_contig_range test_pages_isolated(16800, 1e800) failed [ 257.708347] cma: dma_alloc_from_contiguous(): memory range at c09a6000 is busy, retrying [ 257.719168] alloc_contig_range test_pages_isolated(16800, 1e900) failed [ 257.725794] cma: dma_alloc_from_contiguous(): memory range at c09a8000 is busy, retrying [ 257.736644] alloc_contig_range test_pages_isolated(16800, 1ea00) failed [ 257.743270] cma: dma_alloc_from_contiguous(): memory range at c09aa000 is busy, retrying [ 257.754094] alloc_contig_range test_pages_isolated(16800, 1eb00) failed [ 257.760862] cma: dma_alloc_from_contiguous(): memory range at c09ac000 is busy, retrying [ 257.771810] alloc_contig_range test_pages_isolated(16c00, 1ec00) failed [ 257.778455] cma: dma_alloc_from_contiguous(): memory range at c09ae000 is busy, retrying [ 257.789335] alloc_contig_range test_pages_isolated(16c00, 1ed00) failed [ 257.795962] cma: dma_alloc_from_contiguous(): memory range at c09b0000 is busy, retrying [ 257.806855] alloc_contig_range test_pages_isolated(16c00, 1ee00) failed [ 257.813481] cma: dma_alloc_from_contiguous(): memory range at c09b2000 is busy, retrying [ 257.824313] alloc_contig_range test_pages_isolated(16c00, 1ef00) failed [ 257.830960] cma: dma_alloc_from_contiguous(): memory range at c09b4000 is busy, retrying [ 257.841789] alloc_contig_range test_pages_isolated(17000, 1f000) failed [ 257.848457] cma: dma_alloc_from_contiguous(): memory range at c09b6000 is busy, retrying [ 257.859636] alloc_contig_range test_pages_isolated(17000, 1f100) failed [ 257.866262] cma: dma_alloc_from_contiguous(): memory range at c09b8000 is busy, retrying [ 257.877207] alloc_contig_range test_pages_isolated(17000, 1f200) failed [ 257.883834] cma: dma_alloc_from_contiguous(): memory range at c09ba000 is busy, retrying [ 257.894696] alloc_contig_range test_pages_isolated(17000, 1f300) failed [ 257.901352] cma: dma_alloc_from_contiguous(): memory range at c09bc000 is busy, retrying [ 257.912215] alloc_contig_range test_pages_isolated(17400, 1f400) failed [ 257.918862] cma: dma_alloc_from_contiguous(): memory range at c09be000 is busy, retrying [ 257.929720] alloc_contig_range test_pages_isolated(17400, 1f500) failed [ 257.936347] cma: dma_alloc_from_contiguous(): memory range at c09c0000 is busy, retrying [ 257.947191] alloc_contig_range test_pages_isolated(17400, 1f600) failed [ 257.953819] cma: dma_alloc_from_contiguous(): memory range at c09c2000 is busy, retrying [ 257.964916] alloc_contig_range test_pages_isolated(17400, 1f700) failed [ 257.971563] cma: dma_alloc_from_contiguous(): memory range at c09c4000 is busy, retrying [ 257.982416] alloc_contig_range test_pages_isolated(17800, 1f800) failed [ 257.989058] cma: dma_alloc_from_contiguous(): memory range at c09c6000 is busy, retrying [ 257.997141] cma: dma_alloc_from_contiguous(): returned (null) [ 258.003046] failed to allocate 134217728 bytes [ 258.007491] cma: dma_alloc_from_contiguous(cma cf473fc0, count 65536, align 8) [ 258.014695] cma: dma_alloc_from_contiguous(): returned (null) [ 258.020903] failed to allocate 268435456 bytes [ 258.025801] modprobe: page allocation failure: order:0, mode:0x20 [ 258.031908] [<c0013e5c>] (unwind_backtrace+0x0/0xf8) from [<c00908c8>] (warn_alloc_failed+0xc8/0x108) [ 258.041116] [<c00908c8>] (warn_alloc_failed+0xc8/0x108) from [<c0093824>] (__alloc_pages_nodemask+0x5ec/0x800) [ 258.051106] [<c0093824>] (__alloc_pages_nodemask+0x5ec/0x800) from [<c00be9b4>] (cache_alloc_refill+0x404/0x874) [ 258.061262] [<c00be9b4>] (cache_alloc_refill+0x404/0x874) from [<c00bf22c>] (kmem_cache_alloc+0xf0/0x12c) [ 258.070814] [<c00bf22c>] (kmem_cache_alloc+0xf0/0x12c) from [<c0031c3c>] (__sigqueue_alloc+0xc4/0x120) [ 258.080106] [<c0031c3c>] (__sigqueue_alloc+0xc4/0x120) from [<c0032c5c>] (__send_signal.constprop.23+0x8c/0x228) [ 258.090264] [<c0032c5c>] (__send_signal.constprop.23+0x8c/0x228) from [<c0033e88>] (do_notify_parent+0x184/0x1e8) [ 258.100511] [<c0033e88>] (do_notify_parent+0x184/0x1e8) from [<c0029bac>] (do_exit+0x4fc/0x78c) [ 258.109193] [<c0029bac>] (do_exit+0x4fc/0x78c) from [<c002a150>] (do_group_exit+0x3c/0xb0) [ 258.117441] [<c002a150>] (do_group_exit+0x3c/0xb0) from [<c002a1d4>] (__wake_up_parent+0x0/0x18) [ 258.126203] Mem-info: [ 258.128465] Normal per-cpu: [ 258.131249] CPU 0: hi: 186, btch: 31 usd: 0 [ 258.136024] CPU 1: hi: 186, btch: 31 usd: 24 [ 258.140808] active_anon:715 inactive_anon:3175 isolated_anon:0 [ 258.140808] active_file:953 inactive_file:3185 isolated_file:0 [ 258.140808] unevictable:0 dirty:0 writeback:0 unstable:0 [ 258.140808] free:0 slab_reclaimable:755 slab_unreclaimable:1223 [ 258.140808] mapped:1160 shmem:3196 pagetables:41 bounce:0 [ 258.140808] free_cma:0 [ 258.171778] Normal free:0kB min:3500kB low:4372kB high:5248kB active_anon:2860kB inactive_anon:12700kB active_file:3812kB inactive_file:12740kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:767428kB mlocked:0kB dirty:0kB writeback:0kB mapped:4640kB shmem:12784kB slab_reclaimable:3020kB slab_unreclaimable:4892kB kernel_stack:440kB pagetables:164kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no [ 258.211828] lowmem_reserve[]: 0 0 0 [ 258.215324] Normal: 570*4kB 306*8kB 265*16kB 138*32kB 128*64kB 33*128kB 16*256kB 5*512kB 6*1024kB 1*2048kB 105*4096kB = 470728kB [ 258.226928] 7334 total pagecache pages [ 258.230663] 0 pages in swap cache [ 258.233966] Swap cache stats: add 0, delete 0, find 0/0 [ 258.239174] Free swap = 0kB [ 258.242041] Total swap = 0kB [ 258.260503] 131072 pages of RAM [ 258.263633] 117791 free pages [ 258.266587] 2995 reserved pages [ 258.269715] 1978 slab pages [ 258.272496] 3430 pages shared [ 258.275451] 0 pages swap cached [ 258.278582] SLAB: Unable to allocate memory on node 0 (gfp=0x20) [ 258.284573] cache: sigqueue, object size: 168, order: 0 [ 258.289955] node 0: slabs: 0/0, objs: 0/0, free: 0 -sh-4.2# [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-01 14:24 ` Thierry Reding @ 2012-10-02 12:48 ` Thierry Reding 2012-10-02 14:41 ` Mel Gorman 0 siblings, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-10-02 12:48 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1.1: Type: text/plain, Size: 6672 bytes --] On Mon, Oct 01, 2012 at 04:24:29PM +0200, Thierry Reding wrote: > On Fri, Sep 28, 2012 at 01:43:32PM +0100, Mel Gorman wrote: > > On Fri, Sep 28, 2012 at 01:39:24PM +0200, Thierry Reding wrote: > > > On Fri, Sep 28, 2012 at 12:07:12PM +0100, Mel Gorman wrote: > > > > On Fri, Sep 28, 2012 at 12:51:13PM +0200, Thierry Reding wrote: > > > > > On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > > > On Fri, Sep 28, 2012 at 12:32:07PM +0200, Thierry Reding wrote: > > > > > > > On Fri, Sep 28, 2012 at 11:27:28AM +0100, Mel Gorman wrote: > > > > > > > > On Fri, Sep 28, 2012 at 11:48:25AM +0300, Peter Ujfalusi wrote: > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > On 09/28/2012 11:37 AM, Mel Gorman wrote: > > > > > > > > > >> I hope this patch fixes the bug. If this patch fixes the problem > > > > > > > > > >> but has some problem about description or someone has better idea, > > > > > > > > > >> feel free to modify and resend to akpm, Please. > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > A full revert is overkill. Can the following patch be tested as a > > > > > > > > > > potential replacement please? > > > > > > > > > > > > > > > > > > > > ---8<--- > > > > > > > > > > mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 > > > > > > > > > > > > > > > > > > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > > > > > > > > > > that this was due to nr_scanned != total_isolated in the case of CMA > > > > > > > > > > because PageBuddy pages are one scan but many isolations in CMA. This > > > > > > > > > > patch should address the problem. > > > > > > > > > > > > > > > > > > > > This patch is a fix for > > > > > > > > > > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > > > > > > > > > > > > > > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > > > > > > > > > > > > > > > > > linux-next + this patch alone also works for me. > > > > > > > > > > > > > > > > > > Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > > > > > > > > > > > > > > > > Thanks Peter. I expect it also works for Thierry as I expect you were > > > > > > > > suffering the same problem but obviously confirmation of that would be nice. > > > > > > > > > > > > > > I've been running a few tests and indeed this solves the obvious problem > > > > > > > that the coherent pool cannot be created at boot (which in turn caused > > > > > > > the ethernet adapter to fail on Tegra). > > > > > > > > > > > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > > > > > > allocate large chunks of framebuffer memory and these are now failing. > > > > > > > I'll need to check if Minchan's patch solves that problem as well. > > > > > > > > > > > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > > > > > > without a problem. Something else must be wrong then. > > > > > > > > > > However, depending on the size of the allocation it also happens with > > > > > Minchan's patch. What I see is this: > > > > > > > > > > [ 60.736729] alloc_contig_range test_pages_isolated(1e900, 1f0e9) failed > > > > > [ 60.743572] alloc_contig_range test_pages_isolated(1ea00, 1f1e9) failed > > > > > [ 60.750424] alloc_contig_range test_pages_isolated(1ea00, 1f2e9) failed > > > > > [ 60.757239] alloc_contig_range test_pages_isolated(1ec00, 1f3e9) failed > > > > > [ 60.764066] alloc_contig_range test_pages_isolated(1ec00, 1f4e9) failed > > > > > [ 60.770893] alloc_contig_range test_pages_isolated(1ec00, 1f5e9) failed > > > > > [ 60.777698] alloc_contig_range test_pages_isolated(1ec00, 1f6e9) failed > > > > > [ 60.784526] alloc_contig_range test_pages_isolated(1f000, 1f7e9) failed > > > > > [ 60.791148] drm tegra: Failed to alloc buffer: 8294400 > > > > > > > > > > I'm pretty sure this did work before next-20120926. > > > > > > > > > > > > > Can you double check this please? > > > > > > > > This is a separate bug but may be related to the same series. However, CMA should > > > > be ignoring the "skip" hints and because it's sync compaction it should > > > > not be exiting due to lock contention. Maybe Marek will spot it. > > > > > > I've written a small test module that tries to allocate growing blocks > > > of contiguous memory and it seems like with your patch this always fails > > > at 8 MiB. > > > > You earlier said it also happens with Minchan's but your statment here > > is less clear. Does Minchan's also fail on the 8MiB boundary? Second, > > did the test module work with next-20120926? > > The cmatest module that I use tries to allocate blocks from 4 KiB to 256 > MiB (in increments of powers of two). With next-20120926 this always > fails at 8 MiB, independent of the CMA size setting (though I didn't > test setting the CMA size to <= 8 MiB, I assumed that would make the 8 > MiB allocation fail anyway). Note that I had to apply the attached patch > which fixes a build failure on next-20120926. I believe that Mark Brown > posted a similar fix a few days ago. I'm also attaching a log from the > module's test run. There's also an interesting page allocation failure > at the very end of that log which I have not seen with next-20120925. > > I've run the same tests on next-20120925 with the CMA size set to 256 > MiB and only the 256 MiB allocation fails. This is normal since there > are other modules that already allocate smaller buffers from CMA, so a > whole 256 MiB won't be available. > > Vanilla 3.6-rc6 shows the same behaviour as next-20120925. I will try > 3.6-rc7 next since that's what next-20120926 is based on. If that > succeeds I'll try to bisect between 3.6-rc7 and next-20120926 to find > the culprit, but that will probably take some more time as I need to > apply at least one other commit on top to get the board to boot at all. > > So this really isn't all that new, but I just wanted to confirm my > results from last week. We'll see if bisection shows up something > interesting. I just finished bisecting this and git reports: 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit I'm attaching the complete bisection log and a diff of all the changes applied on top of the bad commit to make it compile and run on my board. Most of the patch is probably not important, though. There are two hunks which have the pageblock changes I already posted an two other hunks with the patch you posted earlier. I hope this helps. If you want me to run any other tests, please let me know. Thierry [-- Attachment #1.2: bisect.log --] [-- Type: text/plain, Size: 3130 bytes --] # bad: [0ea37fe67df08c854d0a39c8ff094c363eda0bb6] Add linux-next specific files for 20120926 # good: [979570e02981d4a8fc20b3cc8fd651856c98ee9d] Linux 3.6-rc7 git bisect start 'next-20120926' 'v3.6-rc7' # good: [e5f962c00ba860a6e442a2c2b53bd256332a8a3c] Merge remote-tracking branch 'spi-mb/spi-next' git bisect good e5f962c00ba860a6e442a2c2b53bd256332a8a3c # good: [d2ec64078851952bbd347cd41119c49a80877c4a] Merge remote-tracking branch 'usb/usb-next' git bisect good d2ec64078851952bbd347cd41119c49a80877c4a # good: [71d5f924a70be51a8005a11277ee032797b644f5] Merge remote-tracking branch 'gpio-lw/for-next' git bisect good 71d5f924a70be51a8005a11277ee032797b644f5 # good: [71d5f924a70be51a8005a11277ee032797b644f5] Merge remote-tracking branch 'gpio-lw/for-next' git bisect good 71d5f924a70be51a8005a11277ee032797b644f5 # good: [058aa5321c0521c89b030b4d5e63d82a4973dd5f] Merge branch 'late/kirkwood' into for-next git bisect good 058aa5321c0521c89b030b4d5e63d82a4973dd5f # good: [c32532bac72e1261fcc9e3f5d6edf0a7f30e0f45] drivers/scsi/atp870u.c: fix bad use of udelay git bisect good c32532bac72e1261fcc9e3f5d6edf0a7f30e0f45 # bad: [ab032478bf2d6bdd6815669a5d2e64b4d753ca43] sections: fix section conflicts in drivers/macintosh git bisect bad ab032478bf2d6bdd6815669a5d2e64b4d753ca43 # bad: [ab032478bf2d6bdd6815669a5d2e64b4d753ca43] sections: fix section conflicts in drivers/macintosh git bisect bad ab032478bf2d6bdd6815669a5d2e64b4d753ca43 # good: [9735f3816804ac2c4d694d5b69412275acd453ef] rbtree: remove prior augmented rbtree implementation git bisect good 9735f3816804ac2c4d694d5b69412275acd453ef # good: [030585452e07d6642b60ed157b637fa905926fb0] Revert "mm: have order > 0 compaction start off where it left" git bisect good 030585452e07d6642b60ed157b637fa905926fb0 # good: [030585452e07d6642b60ed157b637fa905926fb0] Revert "mm: have order > 0 compaction start off where it left" git bisect good 030585452e07d6642b60ed157b637fa905926fb0 # bad: [03ad92e89a2c77bbefe442abe00745192b28d8e5] mm: move all mmu notifier invocations to be done outside the PT lock git bisect bad 03ad92e89a2c77bbefe442abe00745192b28d8e5 # bad: [ec2e5c22ffcec23861fdde919f30ddf6abe7abf9] memcg: trivial fixes for Documentation/cgroups/memory.txt git bisect bad ec2e5c22ffcec23861fdde919f30ddf6abe7abf9 # bad: [0ef8ed15fb52b8a9fd0af217a46044e3c4eb5b30] memory-hotplug: don't replace lowmem pages with highmem git bisect bad 0ef8ed15fb52b8a9fd0af217a46044e3c4eb5b30 # bad: [b1bda30b420402da621f0ca7d844668fb66c9c64] mm/hugetlb.c: remove duplicate inclusion of header file git bisect bad b1bda30b420402da621f0ca7d844668fb66c9c64 # bad: [8686ddfe5d23e7b0f3e250d979b9734aac61b64a] mm: compaction: Restart compaction from near where it left off git bisect bad 8686ddfe5d23e7b0f3e250d979b9734aac61b64a # bad: [8686ddfe5d23e7b0f3e250d979b9734aac61b64a] mm: compaction: Restart compaction from near where it left off git bisect bad 8686ddfe5d23e7b0f3e250d979b9734aac61b64a # bad: [3750280f8bd0ed01753a72542756a8c82ab27933] mm: compaction: cache if a pageblock was scanned and no pages were isolated git bisect bad 3750280f8bd0ed01753a72542756a8c82ab27933 [-- Attachment #1.3: bisect.patch --] [-- Type: text/plain, Size: 16583 bytes --] diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index c3ef1ad..e701d3d 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts @@ -7,7 +7,11 @@ compatible = "nvidia,harmony", "nvidia,tegra20"; memory { - reg = <0x00000000 0x40000000>; + reg = <0x00000000 0x20000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 root=LABEL=boot:/rootfs.img ro ignore_loglevel earlyprintk"; }; pinmux { diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig index e2184f6..aefd42c 100644 --- a/arch/arm/configs/tegra_defconfig +++ b/arch/arm/configs/tegra_defconfig @@ -24,7 +24,6 @@ CONFIG_EFI_PARTITION=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_TEGRA=y -CONFIG_GPIO_PCA953X=y CONFIG_ARCH_TEGRA_2x_SOC=y CONFIG_ARCH_TEGRA_3x_SOC=y CONFIG_TEGRA_PCI=y @@ -80,6 +79,14 @@ CONFIG_RFKILL_GPIO=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y # CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_CMA=y +CONFIG_CMA_DEBUG=y +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_TEST=m +CONFIG_MTD=m +CONFIG_MTD_CHAR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_NAND=m CONFIG_PROC_DEVICETREE=y CONFIG_BLK_DEV_LOOP=y CONFIG_AD525X_DPOT=y @@ -112,71 +119,51 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_HW_RANDOM is not set CONFIG_I2C=y # CONFIG_I2C_COMPAT is not set -CONFIG_I2C_MUX=y -CONFIG_I2C_MUX_PINCTRL=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_OCORES=m CONFIG_I2C_TEGRA=y CONFIG_SPI=y -CONFIG_SPI_TEGRA=y -CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_SYSFS=y CONFIG_GPIO_TPS6586X=y -CONFIG_GPIO_TPS65910=y CONFIG_POWER_SUPPLY=y CONFIG_BATTERY_SBS=y CONFIG_SENSORS_LM90=y CONFIG_MFD_TPS6586X=y -CONFIG_MFD_TPS65910=y -CONFIG_MFD_MAX8907=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_VIRTUAL_CONSUMER=y CONFIG_REGULATOR_GPIO=y -CONFIG_REGULATOR_MAX8907=y -CONFIG_REGULATOR_TPS62360=y CONFIG_REGULATOR_TPS6586X=y -CONFIG_REGULATOR_TPS65910=y -CONFIG_MEDIA_SUPPORT=y -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_USB_SUPPORT=y -CONFIG_USB_VIDEO_CLASS=m +CONFIG_DRM=m +CONFIG_FB=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_BACKLIGHT_PWM=m +CONFIG_LOGO=y CONFIG_SOUND=y CONFIG_SND=y # CONFIG_SND_SUPPORT_OLD_API is not set # CONFIG_SND_DRIVERS is not set +# CONFIG_SND_PCI is not set # CONFIG_SND_ARM is not set # CONFIG_SND_SPI is not set # CONFIG_SND_USB is not set CONFIG_SND_SOC=y -CONFIG_SND_SOC_TEGRA=y -CONFIG_SND_SOC_TEGRA_WM8753=y -CONFIG_SND_SOC_TEGRA_WM8903=y -CONFIG_SND_SOC_TEGRA_TRIMSLICE=y -CONFIG_SND_SOC_TEGRA_ALC5632=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_TEGRA=y -CONFIG_USB_ACM=y -CONFIG_USB_WDM=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=16 CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_TEGRA=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_RTC_CLASS=y -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -CONFIG_RTC_DRV_MAX8907=y -CONFIG_RTC_DRV_TPS65910=y -CONFIG_RTC_DRV_EM3027=y CONFIG_RTC_DRV_TEGRA=y -CONFIG_DMADEVICES=y -CONFIG_TEGRA20_APB_DMA=y CONFIG_STAGING=y CONFIG_SENSORS_ISL29018=y CONFIG_SENSORS_ISL29028=y @@ -184,14 +171,12 @@ CONFIG_SENSORS_AK8975=y CONFIG_MFD_NVEC=y CONFIG_KEYBOARD_NVEC=y CONFIG_SERIO_NVEC_PS2=y -CONFIG_NVEC_POWER=y -CONFIG_NVEC_PAZ00=y CONFIG_TEGRA_IOMMU_GART=y CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_MEMORY=y CONFIG_IIO=y CONFIG_PWM=y -CONFIG_PWM_TEGRA=y +CONFIG_PWM_TEGRA=m CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -204,14 +189,16 @@ CONFIG_EXT4_FS=y # CONFIG_DNOTIFY is not set CONFIG_VFAT_FS=y CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_NFS_FS=y -CONFIG_ROOT_NFS=y +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y +CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_DETECT_HUNG_TASK=y CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 08b4c52..431d387 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -280,6 +280,9 @@ config CMA_AREAS If unsure, leave the default value "7". +config CMA_TEST + tristate "CMA test module" + endif endmenu diff --git a/drivers/base/Makefile b/drivers/base/Makefile index 5aa2d70..c4b2a97 100644 --- a/drivers/base/Makefile +++ b/drivers/base/Makefile @@ -7,6 +7,7 @@ obj-y := core.o bus.o dd.o syscore.o \ topology.o obj-$(CONFIG_DEVTMPFS) += devtmpfs.o obj-$(CONFIG_CMA) += dma-contiguous.o +obj-$(CONFIG_CMA_TEST) += cmatest.o obj-y += power/ obj-$(CONFIG_HAS_DMA) += dma-mapping.o obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o diff --git a/drivers/base/cmatest.c b/drivers/base/cmatest.c new file mode 100644 index 0000000..23d8f7f --- /dev/null +++ b/drivers/base/cmatest.c @@ -0,0 +1,38 @@ +#ifdef CONFIG_CMA_DEBUG +# ifndef DEBUG +# define DEBUG +# endif +#endif + +#include <linux/dma-mapping.h> +#include <linux/module.h> + +static int cmatest_init(void) +{ + unsigned int i; + + for (i = 12; i <= 28; i++) { + dma_addr_t phys; + void *ptr; + + ptr = dma_alloc_writecombine(NULL, 1 << i, &phys, GFP_KERNEL); + if (ptr) { + pr_debug("successfully allocated %u bytes\n", 1 << i); + dma_free_writecombine(NULL, 1 << i, ptr, phys); + } else { + pr_debug("failed to allocate %u bytes\n", 1 << i); + } + } + + return 0; +} +module_init(cmatest_init); + +static void cmatest_exit(void) +{ +} +module_exit(cmatest_exit); + +MODULE_AUTHOR("Thierry Reding <thierry.reding@avionic-design.de>"); +MODULE_DESCRIPTION("Contiguous Memory Allocator test module"); +MODULE_LICENSE("GPL v2"); diff --git a/include/linux/audit.h b/include/linux/audit.h index 50faabe..a7a7db9 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -528,7 +528,7 @@ static inline void audit_ptrace(struct task_struct *t) extern unsigned int audit_serial(void); extern int auditsc_get_stamp(struct audit_context *ctx, struct timespec *t, unsigned int *serial); -extern int audit_set_loginuid(kuid_t loginuid); +extern int audit_set_loginuid(kuid_t loginuid); #define audit_get_loginuid(t) ((t)->loginuid) #define audit_get_sessionid(t) ((t)->sessionid) extern void audit_log_task_context(struct audit_buffer *ab); @@ -627,97 +627,38 @@ static inline void audit_mmap_fd(int fd, int flags) extern int audit_n_rules; extern int audit_signals; #else /* CONFIG_AUDITSYSCALL */ -static inline int audit_alloc(struct task_struct *task) -{ - return 0; -} -static inline void audit_free(struct task_struct *task) -{ } -static inline void audit_syscall_entry(int arch, int major, unsigned long a0, - unsigned long a1, unsigned long a2, - unsigned long a3) -{ } -static inline void audit_syscall_exit(void *pt_regs) -{ } -static inline int audit_dummy_context(void) -{ - return 1; -} -static inline void audit_getname(const char *name) -{ } -static inline void audit_putname(const char *name) -{ } -static inline void __audit_inode(const char *name, const struct dentry *dentry) -{ } -static inline void __audit_inode_child(const struct dentry *dentry, - const struct inode *parent) -{ } -static inline void audit_inode(const char *name, const struct dentry *dentry) -{ } -static inline void audit_inode_child(const struct dentry *dentry, - const struct inode *parent) -{ } -static inline void audit_core_dumps(long signr) -{ } -static inline void __audit_seccomp(unsigned long syscall, long signr, int code) -{ } -static inline void audit_seccomp(unsigned long syscall, long signr, int code) -{ } -static inline int auditsc_get_stamp(struct audit_context *ctx, - struct timespec *t, unsigned int *serial) -{ - return 0; -} -static inline int audit_get_loginuid(struct task_struct *tsk) -{ - return INVALID_UID; -} -static inline void audit_log_task_context(struct audit_buffer *ab) -{ } -static inline void audit_log_task_info(struct audit_buffer *ab, - struct task_struct *tsk) -{ } -static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) -{ } -static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, - gid_t gid, umode_t mode) -{ } -static inline int audit_bprm(struct linux_binprm *bprm) -{ - return 0; -} -static inline void audit_socketcall(int nargs, unsigned long *args) -{ } -static inline void audit_fd_pair(int fd1, int fd2) -{ } -static inline int audit_sockaddr(int len, void *addr) -{ - return 0; -} -static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr) -{ } -static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, - unsigned int msg_prio, - const struct timespec *abs_timeout) -{ } -static inline void audit_mq_notify(mqd_t mqdes, - const struct sigevent *notification) -{ } -static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat) -{ } -static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm, - const struct cred *new, - const struct cred *old) -{ - return 0; -} -static inline void audit_log_capset(pid_t pid, const struct cred *new, - const struct cred *old) -{ } -static inline void audit_mmap_fd(int fd, int flags) -{ } -static inline void audit_ptrace(struct task_struct *t) -{ } +#define audit_alloc(t) ({ 0; }) +#define audit_free(t) do { ; } while (0) +#define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0) +#define audit_syscall_exit(r) do { ; } while (0) +#define audit_dummy_context() 1 +#define audit_getname(n) do { ; } while (0) +#define audit_putname(n) do { ; } while (0) +#define __audit_inode(n,d) do { ; } while (0) +#define __audit_inode_child(i,p) do { ; } while (0) +#define audit_inode(n,d) do { (void)(d); } while (0) +#define audit_inode_child(i,p) do { ; } while (0) +#define audit_core_dumps(i) do { ; } while (0) +#define audit_seccomp(i,s,c) do { ; } while (0) +#define auditsc_get_stamp(c,t,s) (0) +#define audit_get_loginuid(t) (INVALID_UID) +#define audit_get_sessionid(t) (-1) +#define audit_log_task_context(b) do { ; } while (0) +#define audit_log_task_info(b, t) do { ; } while (0) +#define audit_ipc_obj(i) ((void)0) +#define audit_ipc_set_perm(q,u,g,m) ((void)0) +#define audit_bprm(p) ({ 0; }) +#define audit_socketcall(n,a) ((void)0) +#define audit_fd_pair(n,a) ((void)0) +#define audit_sockaddr(len, addr) ({ 0; }) +#define audit_mq_open(o,m,a) ((void)0) +#define audit_mq_sendrecv(d,l,p,t) ((void)0) +#define audit_mq_notify(d,n) ((void)0) +#define audit_mq_getsetattr(d,s) ((void)0) +#define audit_log_bprm_fcaps(b, ncr, ocr) ({ 0; }) +#define audit_log_capset(pid, ncr, ocr) ((void)0) +#define audit_mmap_fd(fd, flags) ((void)0) +#define audit_ptrace(t) ((void)0) #define audit_n_rules 0 #define audit_signals 0 #endif /* CONFIG_AUDITSYSCALL */ @@ -741,6 +682,7 @@ extern void audit_log_n_hex(struct audit_buffer *ab, extern void audit_log_n_string(struct audit_buffer *ab, const char *buf, size_t n); +#define audit_log_string(a,b) audit_log_n_string(a, b, strlen(b)); extern void audit_log_n_untrustedstring(struct audit_buffer *ab, const char *string, size_t n); @@ -757,8 +699,7 @@ extern void audit_log_lost(const char *message); #ifdef CONFIG_SECURITY extern void audit_log_secctx(struct audit_buffer *ab, u32 secid); #else -static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid) -{ } +#define audit_log_secctx(b,s) do { ; } while (0) #endif extern int audit_update_lsm_rules(void); @@ -770,50 +711,22 @@ extern int audit_receive_filter(int type, int pid, int seq, void *data, size_t datasz, kuid_t loginuid, u32 sessionid, u32 sid); extern int audit_enabled; -#else /* CONFIG_AUDIT */ -static inline __printf(4, 5) -void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type, - const char *fmt, ...) -{ } -static inline struct audit_buffer *audit_log_start(struct audit_context *ctx, - gfp_t gfp_mask, int type) -{ - return NULL; -} -static inline __printf(2, 3) -void audit_log_format(struct audit_buffer *ab, const char *fmt, ...) -{ } -static inline void audit_log_end(struct audit_buffer *ab) -{ } -static inline void audit_log_n_hex(struct audit_buffer *ab, - const unsigned char *buf, size_t len) -{ } -static inline void audit_log_n_string(struct audit_buffer *ab, - const char *buf, size_t n) -{ } -static inline void audit_log_n_untrustedstring(struct audit_buffer *ab, - const char *string, size_t n) -{ } -static inline void audit_log_untrustedstring(struct audit_buffer *ab, - const char *string) -{ } -static inline void audit_log_d_path(struct audit_buffer *ab, - const char *prefix, - const struct path *path) -{ } -static inline void audit_log_key(struct audit_buffer *ab, char *key) -{ } -static inline void audit_log_link_denied(const char *string, - const struct path *link) -{ } -static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid) -{ } +#else +#define audit_log(c,g,t,f,...) do { ; } while (0) +#define audit_log_start(c,g,t) ({ NULL; }) +#define audit_log_vformat(b,f,a) do { ; } while (0) +#define audit_log_format(b,f,...) do { ; } while (0) +#define audit_log_end(b) do { ; } while (0) +#define audit_log_n_hex(a,b,l) do { ; } while (0) +#define audit_log_n_string(a,c,l) do { ; } while (0) +#define audit_log_string(a,c) do { ; } while (0) +#define audit_log_n_untrustedstring(a,n,s) do { ; } while (0) +#define audit_log_untrustedstring(a,s) do { ; } while (0) +#define audit_log_d_path(b, p, d) do { ; } while (0) +#define audit_log_key(b, k) do { ; } while (0) +#define audit_log_link_denied(o, l) do { ; } while (0) +#define audit_log_secctx(b,s) do { ; } while (0) #define audit_enabled 0 -#endif /* CONFIG_AUDIT */ -static inline void audit_log_string(struct audit_buffer *ab, const char *buf) -{ - audit_log_n_string(ab, buf, strlen(buf)); -} - +#endif #endif #endif diff --git a/include/linux/pageblock-flags.h b/include/linux/pageblock-flags.h index eed27f4..9ed5841 100644 --- a/include/linux/pageblock-flags.h +++ b/include/linux/pageblock-flags.h @@ -30,7 +30,7 @@ enum pageblock_bits { PB_migrate, PB_migrate_end = PB_migrate + 3 - 1, /* 3 bits required for migrate types */ -#ifdef CONFIG_COMPACTION +#if defined(CONFIG_COMPACTION) || defined(CONFIG_CMA) PB_migrate_skip,/* If set the block is skipped by compaction */ #endif /* CONFIG_COMPACTION */ NR_PAGEBLOCK_BITS @@ -68,7 +68,7 @@ unsigned long get_pageblock_flags_group(struct page *page, void set_pageblock_flags_group(struct page *page, unsigned long flags, int start_bitidx, int end_bitidx); -#ifdef CONFIG_COMPACTION +#if defined(CONFIG_COMPACTION) || defined(CONFIG_CMA) #define get_pageblock_skip(page) \ get_pageblock_flags_group(page, PB_migrate_skip, \ PB_migrate_skip + 1) diff --git a/mm/compaction.c b/mm/compaction.c index 2769d96..3382869 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -238,6 +238,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, struct list_head *freelist, bool strict) { + unsigned long nr_strict_required = end_pfn - blockpfn; int nr_scanned = 0, total_isolated = 0; struct page *cursor, *valid_page = NULL; unsigned long flags; @@ -300,10 +301,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is + * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_scanned != total_isolated) + if (strict && nr_strict_required != total_isolated) total_isolated = 0; if (locked) [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-02 12:48 ` Thierry Reding @ 2012-10-02 14:41 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-02 14:41 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > So this really isn't all that new, but I just wanted to confirm my > > results from last week. We'll see if bisection shows up something > > interesting. > > I just finished bisecting this and git reports: > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > I'm attaching the complete bisection log and a diff of all the changes > applied on top of the bad commit to make it compile and run on my board. > Most of the patch is probably not important, though. There are two hunks > which have the pageblock changes I already posted an two other hunks > with the patch you posted earlier. > > I hope this helps. If you want me to run any other tests, please let me > know. > Can you test with this on top please? ---8<--- diff --git a/mm/compaction.c b/mm/compaction.c index d6e260a..1f1d46d 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -374,20 +374,13 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; + struct zone *zone = cc->zone; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) break; @@ -399,7 +392,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 7052289..ffe0473 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 0a1906b..076d08d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5650,23 +5650,14 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ - unsigned long pfn = start; unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); while (pfn < end || !list_empty(&cc.migratepages)) { @@ -5775,6 +5766,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5804,7 +5804,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(cc, start, end); if (ret) goto done; @@ -5853,7 +5853,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-02 14:41 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-02 14:41 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > So this really isn't all that new, but I just wanted to confirm my > > results from last week. We'll see if bisection shows up something > > interesting. > > I just finished bisecting this and git reports: > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > I'm attaching the complete bisection log and a diff of all the changes > applied on top of the bad commit to make it compile and run on my board. > Most of the patch is probably not important, though. There are two hunks > which have the pageblock changes I already posted an two other hunks > with the patch you posted earlier. > > I hope this helps. If you want me to run any other tests, please let me > know. > Can you test with this on top please? ---8<--- diff --git a/mm/compaction.c b/mm/compaction.c index d6e260a..1f1d46d 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -374,20 +374,13 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; + struct zone *zone = cc->zone; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) break; @@ -399,7 +392,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 7052289..ffe0473 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 0a1906b..076d08d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5650,23 +5650,14 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ - unsigned long pfn = start; unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); while (pfn < end || !list_empty(&cc.migratepages)) { @@ -5775,6 +5766,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5804,7 +5804,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(cc, start, end); if (ret) goto done; @@ -5853,7 +5853,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-02 14:41 ` Mel Gorman (?) @ 2012-10-02 15:03 ` Thierry Reding 2012-10-02 15:12 ` Mel Gorman -1 siblings, 1 reply; 61+ messages in thread From: Thierry Reding @ 2012-10-02 15:03 UTC (permalink / raw) To: Mel Gorman Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 1770 bytes --] On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > So this really isn't all that new, but I just wanted to confirm my > > > results from last week. We'll see if bisection shows up something > > > interesting. > > > > I just finished bisecting this and git reports: > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > I'm attaching the complete bisection log and a diff of all the changes > > applied on top of the bad commit to make it compile and run on my board. > > Most of the patch is probably not important, though. There are two hunks > > which have the pageblock changes I already posted an two other hunks > > with the patch you posted earlier. > > > > I hope this helps. If you want me to run any other tests, please let me > > know. > > > > Can you test with this on top please? That doesn't build on top of the bad commit. Or is it supposed to go on top of next-20120926? Note that I've also been doing some more testing on next-20121002 and things seem to be better. The cmatest module runs successfully. That seems to be due to commit 061d7cd, which, IIRC, is the correct patch to fix the build breakage that I tried to fix with #ifdef'ery. For CMA this allows the allocations to succeed, but with COMPACTION enabled this should still fail. My test case was always !COMPACTION, though. However, when I run the original test case, which is allocation of a framebuffer for HDMI it still fails. The allocation size is 8294400 bytes. Exactly 8 MiB (== 8388608 bytes) and 16 MiB (== 16777216 bytes) do work properly. 8 MiB + 4 KiB for instance fails as well, while exactly 10 MiB works again. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-02 15:03 ` Thierry Reding @ 2012-10-02 15:12 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-02 15:12 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > So this really isn't all that new, but I just wanted to confirm my > > > > results from last week. We'll see if bisection shows up something > > > > interesting. > > > > > > I just finished bisecting this and git reports: > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > applied on top of the bad commit to make it compile and run on my board. > > > Most of the patch is probably not important, though. There are two hunks > > > which have the pageblock changes I already posted an two other hunks > > > with the patch you posted earlier. > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > know. > > > > > > > Can you test with this on top please? > > That doesn't build on top of the bad commit. Or is it supposed to go on > top of next-20120926? > It doesn't build or do you mean it doesn't apply? Assuming the problem was that it didn't apply then try this one. It applies on top of next-20120928 which is the closest tag I have to next-20120926. ---8<--- mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 CMA requires that the PG_migrate_skip hint be skipped but it was only skipping it when isolating pages for migration, not for free. Ensure cc->isolate_skip_hint gets passed in both cases. This is a fix for mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 16 ++++------------ mm/internal.h | 3 ++- mm/page_alloc.c | 26 +++++++++++++------------- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index f7a5ff5..62697fb 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -345,22 +345,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -370,7 +362,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index f652660..4ea7497 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -131,7 +131,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e238fa34..6564e93 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5678,23 +5678,15 @@ __alloc_contig_migrate_alloc(struct page *page, unsigned long private, } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; unsigned long pfn = start; unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); while (pfn < end || !list_empty(&cc.migratepages)) { @@ -5803,6 +5794,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5832,7 +5832,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(cc, start, end); if (ret) goto done; @@ -5881,7 +5881,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-02 15:12 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-02 15:12 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > So this really isn't all that new, but I just wanted to confirm my > > > > results from last week. We'll see if bisection shows up something > > > > interesting. > > > > > > I just finished bisecting this and git reports: > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > applied on top of the bad commit to make it compile and run on my board. > > > Most of the patch is probably not important, though. There are two hunks > > > which have the pageblock changes I already posted an two other hunks > > > with the patch you posted earlier. > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > know. > > > > > > > Can you test with this on top please? > > That doesn't build on top of the bad commit. Or is it supposed to go on > top of next-20120926? > It doesn't build or do you mean it doesn't apply? Assuming the problem was that it didn't apply then try this one. It applies on top of next-20120928 which is the closest tag I have to next-20120926. ---8<--- mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 CMA requires that the PG_migrate_skip hint be skipped but it was only skipping it when isolating pages for migration, not for free. Ensure cc->isolate_skip_hint gets passed in both cases. This is a fix for mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 16 ++++------------ mm/internal.h | 3 ++- mm/page_alloc.c | 26 +++++++++++++------------- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index f7a5ff5..62697fb 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -345,22 +345,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -370,7 +362,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index f652660..4ea7497 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -131,7 +131,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e238fa34..6564e93 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5678,23 +5678,15 @@ __alloc_contig_migrate_alloc(struct page *page, unsigned long private, } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; unsigned long pfn = start; unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); while (pfn < end || !list_empty(&cc.migratepages)) { @@ -5803,6 +5794,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5832,7 +5832,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(cc, start, end); if (ret) goto done; @@ -5881,7 +5881,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-02 15:12 ` Mel Gorman @ 2012-10-08 8:06 ` Minchan Kim -1 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 8:06 UTC (permalink / raw) To: Mel Gorman Cc: Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown Hi Mel, On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > results from last week. We'll see if bisection shows up something > > > > > interesting. > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > applied on top of the bad commit to make it compile and run on my board. > > > > Most of the patch is probably not important, though. There are two hunks > > > > which have the pageblock changes I already posted an two other hunks > > > > with the patch you posted earlier. > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > know. > > > > > > > > > > Can you test with this on top please? > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > top of next-20120926? > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > was that it didn't apply then try this one. It applies on top of > next-20120928 which is the closest tag I have to next-20120926. > > ---8<--- > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > CMA requires that the PG_migrate_skip hint be skipped but it was only > skipping it when isolating pages for migration, not for free. Ensure > cc->isolate_skip_hint gets passed in both cases. > > This is a fix for > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> Acked-by: Minchan Kim <minchan@kernel.org> But please resend below compile error fixing. diff --git a/mm/compaction.c b/mm/compaction.c index 136debd..ee461b8 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -372,22 +372,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -397,7 +389,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 9d5d276..a3ce781 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn, bool unevictable); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8e1be1c..d66efcb 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5669,7 +5669,8 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; @@ -5677,26 +5678,17 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); - while (pfn < end || !list_empty(&cc.migratepages)) { + while (pfn < end || !list_empty(&cc->migratepages)) { if (fatal_signal_pending(current)) { ret = -EINTR; break; } - if (list_empty(&cc.migratepages)) { - cc.nr_migratepages = 0; - pfn = isolate_migratepages_range(cc.zone, &cc, + if (list_empty(&cc->migratepages)) { + cc->nr_migratepages = 0; + pfn = isolate_migratepages_range(cc->zone, cc, pfn, end, true); if (!pfn) { ret = -EINTR; @@ -5708,16 +5700,16 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) break; } - nr_reclaimed = reclaim_clean_pages_from_list(cc.zone, - &cc.migratepages); - cc.nr_migratepages -= nr_reclaimed; + nr_reclaimed = reclaim_clean_pages_from_list(cc->zone, + &cc->migratepages); + cc->nr_migratepages -= nr_reclaimed; - ret = migrate_pages(&cc.migratepages, + ret = migrate_pages(&cc->migratepages, alloc_migrate_target, 0, false, MIGRATE_SYNC); } - putback_lru_pages(&cc.migratepages); + putback_lru_pages(&cc->migratepages); return ret > 0 ? 0 : ret; } @@ -5796,6 +5788,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5825,7 +5826,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(&cc, start, end); if (ret) goto done; @@ -5874,7 +5875,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(&cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-08 8:06 ` Minchan Kim 0 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 8:06 UTC (permalink / raw) To: Mel Gorman Cc: Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown Hi Mel, On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > results from last week. We'll see if bisection shows up something > > > > > interesting. > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > applied on top of the bad commit to make it compile and run on my board. > > > > Most of the patch is probably not important, though. There are two hunks > > > > which have the pageblock changes I already posted an two other hunks > > > > with the patch you posted earlier. > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > know. > > > > > > > > > > Can you test with this on top please? > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > top of next-20120926? > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > was that it didn't apply then try this one. It applies on top of > next-20120928 which is the closest tag I have to next-20120926. > > ---8<--- > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > CMA requires that the PG_migrate_skip hint be skipped but it was only > skipping it when isolating pages for migration, not for free. Ensure > cc->isolate_skip_hint gets passed in both cases. > > This is a fix for > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> Acked-by: Minchan Kim <minchan@kernel.org> But please resend below compile error fixing. diff --git a/mm/compaction.c b/mm/compaction.c index 136debd..ee461b8 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -372,22 +372,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -397,7 +389,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 9d5d276..a3ce781 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn, bool unevictable); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8e1be1c..d66efcb 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5669,7 +5669,8 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; @@ -5677,26 +5678,17 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); - while (pfn < end || !list_empty(&cc.migratepages)) { + while (pfn < end || !list_empty(&cc->migratepages)) { if (fatal_signal_pending(current)) { ret = -EINTR; break; } - if (list_empty(&cc.migratepages)) { - cc.nr_migratepages = 0; - pfn = isolate_migratepages_range(cc.zone, &cc, + if (list_empty(&cc->migratepages)) { + cc->nr_migratepages = 0; + pfn = isolate_migratepages_range(cc->zone, cc, pfn, end, true); if (!pfn) { ret = -EINTR; @@ -5708,16 +5700,16 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) break; } - nr_reclaimed = reclaim_clean_pages_from_list(cc.zone, - &cc.migratepages); - cc.nr_migratepages -= nr_reclaimed; + nr_reclaimed = reclaim_clean_pages_from_list(cc->zone, + &cc->migratepages); + cc->nr_migratepages -= nr_reclaimed; - ret = migrate_pages(&cc.migratepages, + ret = migrate_pages(&cc->migratepages, alloc_migrate_target, 0, false, MIGRATE_SYNC); } - putback_lru_pages(&cc.migratepages); + putback_lru_pages(&cc->migratepages); return ret > 0 ? 0 : ret; } @@ -5796,6 +5788,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5825,7 +5826,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(&cc, start, end); if (ret) goto done; @@ -5874,7 +5875,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(&cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; -- Kind regards, Minchan Kim ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-08 8:06 ` Minchan Kim @ 2012-10-08 8:48 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-08 8:48 UTC (permalink / raw) To: Minchan Kim Cc: Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Mon, Oct 08, 2012 at 05:06:54PM +0900, Minchan Kim wrote: > Hi Mel, > > On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > > results from last week. We'll see if bisection shows up something > > > > > > interesting. > > > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > > applied on top of the bad commit to make it compile and run on my board. > > > > > Most of the patch is probably not important, though. There are two hunks > > > > > which have the pageblock changes I already posted an two other hunks > > > > > with the patch you posted earlier. > > > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > > know. > > > > > > > > > > > > > Can you test with this on top please? > > > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > > top of next-20120926? > > > > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > > was that it didn't apply then try this one. It applies on top of > > next-20120928 which is the closest tag I have to next-20120926. > > > > ---8<--- > > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > > > CMA requires that the PG_migrate_skip hint be skipped but it was only > > skipping it when isolating pages for migration, not for free. Ensure > > cc->isolate_skip_hint gets passed in both cases. > > > > This is a fix for > > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > Acked-by: Minchan Kim <minchan@kernel.org> > > But please resend below compile error fixing. > Thanks Minchan. I did resent this patch to Andrew with the subject "[PATCH] mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3". It should have had the build errors fixed but has not been picked up yet. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-08 8:48 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-08 8:48 UTC (permalink / raw) To: Minchan Kim Cc: Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Mon, Oct 08, 2012 at 05:06:54PM +0900, Minchan Kim wrote: > Hi Mel, > > On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > > results from last week. We'll see if bisection shows up something > > > > > > interesting. > > > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > > applied on top of the bad commit to make it compile and run on my board. > > > > > Most of the patch is probably not important, though. There are two hunks > > > > > which have the pageblock changes I already posted an two other hunks > > > > > with the patch you posted earlier. > > > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > > know. > > > > > > > > > > > > > Can you test with this on top please? > > > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > > top of next-20120926? > > > > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > > was that it didn't apply then try this one. It applies on top of > > next-20120928 which is the closest tag I have to next-20120926. > > > > ---8<--- > > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > > > CMA requires that the PG_migrate_skip hint be skipped but it was only > > skipping it when isolating pages for migration, not for free. Ensure > > cc->isolate_skip_hint gets passed in both cases. > > > > This is a fix for > > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > Acked-by: Minchan Kim <minchan@kernel.org> > > But please resend below compile error fixing. > Thanks Minchan. I did resent this patch to Andrew with the subject "[PATCH] mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3". It should have had the build errors fixed but has not been picked up yet. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-08 8:48 ` Mel Gorman @ 2012-10-09 8:40 ` Bartlomiej Zolnierkiewicz -1 siblings, 0 replies; 61+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2012-10-09 8:40 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown Hi, On Monday 08 October 2012 10:48:07 Mel Gorman wrote: > On Mon, Oct 08, 2012 at 05:06:54PM +0900, Minchan Kim wrote: > > Hi Mel, > > > > On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > > > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > > > results from last week. We'll see if bisection shows up something > > > > > > > interesting. > > > > > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > > > applied on top of the bad commit to make it compile and run on my board. > > > > > > Most of the patch is probably not important, though. There are two hunks > > > > > > which have the pageblock changes I already posted an two other hunks > > > > > > with the patch you posted earlier. > > > > > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > > > know. > > > > > > > > > > > > > > > > Can you test with this on top please? > > > > > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > > > top of next-20120926? > > > > > > > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > > > was that it didn't apply then try this one. It applies on top of > > > next-20120928 which is the closest tag I have to next-20120926. > > > > > > ---8<--- > > > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > > > > > CMA requires that the PG_migrate_skip hint be skipped but it was only > > > skipping it when isolating pages for migration, not for free. Ensure > > > cc->isolate_skip_hint gets passed in both cases. > > > > > > This is a fix for > > > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > Acked-by: Minchan Kim <minchan@kernel.org> > > > > But please resend below compile error fixing. > > > > Thanks Minchan. I did resent this patch to Andrew with the subject "[PATCH] > mm: compaction: Cache if a pageblock was scanned and no pages were isolated > -fix3". It should have had the build errors fixed but has not been > picked up yet. I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case work: From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix Patch "mm: compaction: cache if a pageblock was scanned and no pages were isolated" needs a following fix to successfully boot next-20121002 kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with cmatest module from Thierry Reding compiled in). Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- mm/compaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: b/mm/compaction.c =================================================================== --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct bool migrate_scanner) { struct zone *zone = cc->zone; - if (!page) + + if (!page || cc->ignore_skip_hint) return; if (!nr_isolated) { -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-09 8:40 ` Bartlomiej Zolnierkiewicz 0 siblings, 0 replies; 61+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2012-10-09 8:40 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown Hi, On Monday 08 October 2012 10:48:07 Mel Gorman wrote: > On Mon, Oct 08, 2012 at 05:06:54PM +0900, Minchan Kim wrote: > > Hi Mel, > > > > On Tue, Oct 02, 2012 at 04:12:17PM +0100, Mel Gorman wrote: > > > On Tue, Oct 02, 2012 at 05:03:07PM +0200, Thierry Reding wrote: > > > > On Tue, Oct 02, 2012 at 03:41:35PM +0100, Mel Gorman wrote: > > > > > On Tue, Oct 02, 2012 at 02:48:14PM +0200, Thierry Reding wrote: > > > > > > > So this really isn't all that new, but I just wanted to confirm my > > > > > > > results from last week. We'll see if bisection shows up something > > > > > > > interesting. > > > > > > > > > > > > I just finished bisecting this and git reports: > > > > > > > > > > > > 3750280f8bd0ed01753a72542756a8c82ab27933 is the first bad commit > > > > > > > > > > > > I'm attaching the complete bisection log and a diff of all the changes > > > > > > applied on top of the bad commit to make it compile and run on my board. > > > > > > Most of the patch is probably not important, though. There are two hunks > > > > > > which have the pageblock changes I already posted an two other hunks > > > > > > with the patch you posted earlier. > > > > > > > > > > > > I hope this helps. If you want me to run any other tests, please let me > > > > > > know. > > > > > > > > > > > > > > > > Can you test with this on top please? > > > > > > > > That doesn't build on top of the bad commit. Or is it supposed to go on > > > > top of next-20120926? > > > > > > > > > > It doesn't build or do you mean it doesn't apply? Assuming the problem > > > was that it didn't apply then try this one. It applies on top of > > > next-20120928 which is the closest tag I have to next-20120926. > > > > > > ---8<--- > > > mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 > > > > > > CMA requires that the PG_migrate_skip hint be skipped but it was only > > > skipping it when isolating pages for migration, not for free. Ensure > > > cc->isolate_skip_hint gets passed in both cases. > > > > > > This is a fix for > > > mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch > > > > > > Signed-off-by: Mel Gorman <mgorman@suse.de> > > Acked-by: Minchan Kim <minchan@kernel.org> > > > > But please resend below compile error fixing. > > > > Thanks Minchan. I did resent this patch to Andrew with the subject "[PATCH] > mm: compaction: Cache if a pageblock was scanned and no pages were isolated > -fix3". It should have had the build errors fixed but has not been > picked up yet. I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case work: From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix Patch "mm: compaction: cache if a pageblock was scanned and no pages were isolated" needs a following fix to successfully boot next-20121002 kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with cmatest module from Thierry Reding compiled in). Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- mm/compaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: b/mm/compaction.c =================================================================== --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct bool migrate_scanner) { struct zone *zone = cc->zone; - if (!page) + + if (!page || cc->ignore_skip_hint) return; if (!nr_isolated) { ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-09 8:40 ` Bartlomiej Zolnierkiewicz @ 2012-10-09 10:11 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-09 10:11 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > work: > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > were isolated" needs a following fix to successfully boot next-20121002 > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > cmatest module from Thierry Reding compiled in). > Why is it needed to make it boot? CMA should not care about the PG_migrate_skip hint being set because it should always ignore it in alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to me why this fixes a boot failure and I wonder if it's papering over some underlying problem. Can you provide more details please? > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > --- > mm/compaction.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: b/mm/compaction.c > =================================================================== > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > bool migrate_scanner) > { > struct zone *zone = cc->zone; > - if (!page) > + > + if (!page || cc->ignore_skip_hint) > return; > > if (!nr_isolated) { -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-09 10:11 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-09 10:11 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > work: > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > were isolated" needs a following fix to successfully boot next-20121002 > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > cmatest module from Thierry Reding compiled in). > Why is it needed to make it boot? CMA should not care about the PG_migrate_skip hint being set because it should always ignore it in alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to me why this fixes a boot failure and I wonder if it's papering over some underlying problem. Can you provide more details please? > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > --- > mm/compaction.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: b/mm/compaction.c > =================================================================== > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > bool migrate_scanner) > { > struct zone *zone = cc->zone; > - if (!page) > + > + if (!page || cc->ignore_skip_hint) > return; > > if (!nr_isolated) { -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-09 10:11 ` Mel Gorman (?) @ 2012-10-09 11:02 ` Thierry Reding -1 siblings, 0 replies; 61+ messages in thread From: Thierry Reding @ 2012-10-09 11:02 UTC (permalink / raw) To: Mel Gorman Cc: Bartlomiej Zolnierkiewicz, Minchan Kim, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 1500 bytes --] On Tue, Oct 09, 2012 at 11:11:43AM +0100, Mel Gorman wrote: > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > work: > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > were isolated" needs a following fix to successfully boot next-20121002 > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > cmatest module from Thierry Reding compiled in). > > > > Why is it needed to make it boot? CMA should not care about the > PG_migrate_skip hint being set because it should always ignore it in > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > me why this fixes a boot failure and I wonder if it's papering over some > underlying problem. Can you provide more details please? I can confirm that on top of next-20121009 this fixes all the remaining issues with CMA that I've been seeing. By the way, would it be useful to add the CMA test module to the mainline tree as a tool to test for this kind of regressions? It could probably be enhanced to perform more checks or use random allocation sizes for better coverage. Thierry [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-09 10:11 ` Mel Gorman @ 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz -1 siblings, 0 replies; 61+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2012-10-09 11:08 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tuesday 09 October 2012 12:11:43 Mel Gorman wrote: > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > work: > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > were isolated" needs a following fix to successfully boot next-20121002 > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > cmatest module from Thierry Reding compiled in). > > > > Why is it needed to make it boot? CMA should not care about the It boots without Thierry's cmatest module but then fails on CMA allocation attempt (I used out-of-tree /dev/cma_test interface to generate CMA allocation request from user-space). > PG_migrate_skip hint being set because it should always ignore it in > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > me why this fixes a boot failure and I wonder if it's papering over some > underlying problem. Can you provide more details please? I just compared CONFIG_COMPACTION=n and =y cases initially, figured out the difference and did the change. However on a closer look it seems that {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare to bit ranges used by {get,set}_pageblock_flags() used for migration types) and can overwrite pageblock migratetype of the next pageblock in the bitmap (I wonder how could this code ever worked before?). > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > --- > > mm/compaction.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > Index: b/mm/compaction.c > > =================================================================== > > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > > bool migrate_scanner) > > { > > struct zone *zone = cc->zone; > > - if (!page) > > + > > + if (!page || cc->ignore_skip_hint) > > return; > > > > if (!nr_isolated) { The patch below also fixes the issue for me: From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Subject: [PATCH] mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare to bit ranges used by {get,set}_pageblock_flags() used for migration types) and can overwrite pageblock migratetype of the next pageblock in the bitmap. Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- include/linux/pageblock-flags.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: b/include/linux/pageblock-flags.h =================================================================== --- a/include/linux/pageblock-flags.h 2012-10-09 12:50:20.366340001 +0200 +++ b/include/linux/pageblock-flags.h 2012-10-09 12:50:31.794339996 +0200 @@ -71,13 +71,13 @@ void set_pageblock_flags_group(struct pa #ifdef CONFIG_COMPACTION #define get_pageblock_skip(page) \ get_pageblock_flags_group(page, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #define clear_pageblock_skip(page) \ set_pageblock_flags_group(page, 0, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #define set_pageblock_skip(page) \ set_pageblock_flags_group(page, 1, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #endif /* CONFIG_COMPACTION */ #define get_pageblock_flags(page) \ -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz 0 siblings, 0 replies; 61+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2012-10-09 11:08 UTC (permalink / raw) To: Mel Gorman Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tuesday 09 October 2012 12:11:43 Mel Gorman wrote: > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > work: > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > were isolated" needs a following fix to successfully boot next-20121002 > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > cmatest module from Thierry Reding compiled in). > > > > Why is it needed to make it boot? CMA should not care about the It boots without Thierry's cmatest module but then fails on CMA allocation attempt (I used out-of-tree /dev/cma_test interface to generate CMA allocation request from user-space). > PG_migrate_skip hint being set because it should always ignore it in > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > me why this fixes a boot failure and I wonder if it's papering over some > underlying problem. Can you provide more details please? I just compared CONFIG_COMPACTION=n and =y cases initially, figured out the difference and did the change. However on a closer look it seems that {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare to bit ranges used by {get,set}_pageblock_flags() used for migration types) and can overwrite pageblock migratetype of the next pageblock in the bitmap (I wonder how could this code ever worked before?). > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > --- > > mm/compaction.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > Index: b/mm/compaction.c > > =================================================================== > > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > > bool migrate_scanner) > > { > > struct zone *zone = cc->zone; > > - if (!page) > > + > > + if (!page || cc->ignore_skip_hint) > > return; > > > > if (!nr_isolated) { The patch below also fixes the issue for me: From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Subject: [PATCH] mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare to bit ranges used by {get,set}_pageblock_flags() used for migration types) and can overwrite pageblock migratetype of the next pageblock in the bitmap. Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- include/linux/pageblock-flags.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: b/include/linux/pageblock-flags.h =================================================================== --- a/include/linux/pageblock-flags.h 2012-10-09 12:50:20.366340001 +0200 +++ b/include/linux/pageblock-flags.h 2012-10-09 12:50:31.794339996 +0200 @@ -71,13 +71,13 @@ void set_pageblock_flags_group(struct pa #ifdef CONFIG_COMPACTION #define get_pageblock_skip(page) \ get_pageblock_flags_group(page, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #define clear_pageblock_skip(page) \ set_pageblock_flags_group(page, 0, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #define set_pageblock_skip(page) \ set_pageblock_flags_group(page, 1, PB_migrate_skip, \ - PB_migrate_skip + 1) + PB_migrate_skip) #endif /* CONFIG_COMPACTION */ #define get_pageblock_flags(page) \ ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz @ 2012-10-09 11:32 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-09 11:32 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tue, Oct 09, 2012 at 01:08:30PM +0200, Bartlomiej Zolnierkiewicz wrote: > On Tuesday 09 October 2012 12:11:43 Mel Gorman wrote: > > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > > work: > > > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > > were isolated" needs a following fix to successfully boot next-20121002 > > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > > cmatest module from Thierry Reding compiled in). > > > > > > > Why is it needed to make it boot? CMA should not care about the > > It boots without Thierry's cmatest module but then fails on CMA > allocation attempt (I used out-of-tree /dev/cma_test interface to > generate CMA allocation request from user-space). > I see. > > PG_migrate_skip hint being set because it should always ignore it in > > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > > me why this fixes a boot failure and I wonder if it's papering over some > > underlying problem. Can you provide more details please? > > I just compared CONFIG_COMPACTION=n and =y cases initially, figured > out the difference and did the change. However on a closer look it > seems that {get,clear,set}_pageblock_skip() use incorrect bit ranges > (please compare to bit ranges used by {get,set}_pageblock_flags() > used for migration types) and can overwrite pageblock migratetype of > the next pageblock in the bitmap You're right. > (I wonder how could this code ever > worked before?). > Because it would corrupt the adjacent block and muck up the migratetype. This would hurt fragmentation avoidance but it would not be obvious for a long time. When I was checking this, I only checked that the values of the block being set were correct, I missed that I was corrupting the adjacent blocks. > > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > > --- > > > mm/compaction.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > Index: b/mm/compaction.c > > > =================================================================== > > > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > > > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > > > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > > > bool migrate_scanner) > > > { > > > struct zone *zone = cc->zone; > > > - if (!page) > > > + > > > + if (!page || cc->ignore_skip_hint) > > > return; > > > > > > if (!nr_isolated) { > > The patch below also fixes the issue for me: > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Subject: [PATCH] mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() > > {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare > to bit ranges used by {get,set}_pageblock_flags() used for migration types) > and can overwrite pageblock migratetype of the next pageblock in the bitmap. > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Mel Gorman <mgorman@suse.de> Can you resend this patch on its own to Andrew asking for it to be picked up please? This thread is quite long and could easily get lost in the noise. Thanks -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-10-09 11:32 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-09 11:32 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Minchan Kim, Thierry Reding, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown On Tue, Oct 09, 2012 at 01:08:30PM +0200, Bartlomiej Zolnierkiewicz wrote: > On Tuesday 09 October 2012 12:11:43 Mel Gorman wrote: > > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > > work: > > > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > > were isolated" needs a following fix to successfully boot next-20121002 > > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > > cmatest module from Thierry Reding compiled in). > > > > > > > Why is it needed to make it boot? CMA should not care about the > > It boots without Thierry's cmatest module but then fails on CMA > allocation attempt (I used out-of-tree /dev/cma_test interface to > generate CMA allocation request from user-space). > I see. > > PG_migrate_skip hint being set because it should always ignore it in > > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > > me why this fixes a boot failure and I wonder if it's papering over some > > underlying problem. Can you provide more details please? > > I just compared CONFIG_COMPACTION=n and =y cases initially, figured > out the difference and did the change. However on a closer look it > seems that {get,clear,set}_pageblock_skip() use incorrect bit ranges > (please compare to bit ranges used by {get,set}_pageblock_flags() > used for migration types) and can overwrite pageblock migratetype of > the next pageblock in the bitmap You're right. > (I wonder how could this code ever > worked before?). > Because it would corrupt the adjacent block and muck up the migratetype. This would hurt fragmentation avoidance but it would not be obvious for a long time. When I was checking this, I only checked that the values of the block being set were correct, I missed that I was corrupting the adjacent blocks. > > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > > --- > > > mm/compaction.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > Index: b/mm/compaction.c > > > =================================================================== > > > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > > > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > > > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > > > bool migrate_scanner) > > > { > > > struct zone *zone = cc->zone; > > > - if (!page) > > > + > > > + if (!page || cc->ignore_skip_hint) > > > return; > > > > > > if (!nr_isolated) { > > The patch below also fixes the issue for me: > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Subject: [PATCH] mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() > > {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare > to bit ranges used by {get,set}_pageblock_flags() used for migration types) > and can overwrite pageblock migratetype of the next pageblock in the bitmap. > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Mel Gorman <mgorman@suse.de> Can you resend this patch on its own to Andrew asking for it to be picked up please? This thread is quite long and could easily get lost in the noise. Thanks -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz (?) (?) @ 2012-10-09 11:38 ` Thierry Reding -1 siblings, 0 replies; 61+ messages in thread From: Thierry Reding @ 2012-10-09 11:38 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Mel Gorman, Minchan Kim, Peter Ujfalusi, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Kyungmin Park, Mark Brown [-- Attachment #1: Type: text/plain, Size: 4346 bytes --] On Tue, Oct 09, 2012 at 01:08:30PM +0200, Bartlomiej Zolnierkiewicz wrote: > On Tuesday 09 October 2012 12:11:43 Mel Gorman wrote: > > On Tue, Oct 09, 2012 at 10:40:10AM +0200, Bartlomiej Zolnierkiewicz wrote: > > > I also need following patch to make CONFIG_CMA=y && CONFIG_COMPACTION=y case > > > work: > > > > > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Subject: [PATCH] mm: compaction: cache if a pageblock was scanned and no pages were isolated - cma fix > > > > > > Patch "mm: compaction: cache if a pageblock was scanned and no pages > > > were isolated" needs a following fix to successfully boot next-20121002 > > > kernel (same with next-20121008) with CONFIG_CMA=y and CONFIG_COMPACTION=y > > > (with applied -fix1, -fix2, -fix3 patches from Mel Gorman and also with > > > cmatest module from Thierry Reding compiled in). > > > > > > > Why is it needed to make it boot? CMA should not care about the > > It boots without Thierry's cmatest module but then fails on CMA > allocation attempt (I used out-of-tree /dev/cma_test interface to > generate CMA allocation request from user-space). > > > PG_migrate_skip hint being set because it should always ignore it in > > alloc_contig_range() due to cc->ignore_skip_hint. It's not obvious to > > me why this fixes a boot failure and I wonder if it's papering over some > > underlying problem. Can you provide more details please? > > I just compared CONFIG_COMPACTION=n and =y cases initially, figured > out the difference and did the change. However on a closer look it > seems that {get,clear,set}_pageblock_skip() use incorrect bit ranges > (please compare to bit ranges used by {get,set}_pageblock_flags() > used for migration types) and can overwrite pageblock migratetype of > the next pageblock in the bitmap (I wonder how could this code ever > worked before?). > > > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > > --- > > > mm/compaction.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > Index: b/mm/compaction.c > > > =================================================================== > > > --- a/mm/compaction.c 2012-10-08 18:10:53.491679716 +0200 > > > +++ b/mm/compaction.c 2012-10-08 18:11:33.615679713 +0200 > > > @@ -117,7 +117,8 @@ static void update_pageblock_skip(struct > > > bool migrate_scanner) > > > { > > > struct zone *zone = cc->zone; > > > - if (!page) > > > + > > > + if (!page || cc->ignore_skip_hint) > > > return; > > > > > > if (!nr_isolated) { > > The patch below also fixes the issue for me: > > From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Subject: [PATCH] mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() > > {get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare > to bit ranges used by {get,set}_pageblock_flags() used for migration types) > and can overwrite pageblock migratetype of the next pageblock in the bitmap. > > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > --- > include/linux/pageblock-flags.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > Index: b/include/linux/pageblock-flags.h > =================================================================== > --- a/include/linux/pageblock-flags.h 2012-10-09 12:50:20.366340001 +0200 > +++ b/include/linux/pageblock-flags.h 2012-10-09 12:50:31.794339996 +0200 > @@ -71,13 +71,13 @@ void set_pageblock_flags_group(struct pa > #ifdef CONFIG_COMPACTION > #define get_pageblock_skip(page) \ > get_pageblock_flags_group(page, PB_migrate_skip, \ > - PB_migrate_skip + 1) > + PB_migrate_skip) > #define clear_pageblock_skip(page) \ > set_pageblock_flags_group(page, 0, PB_migrate_skip, \ > - PB_migrate_skip + 1) > + PB_migrate_skip) > #define set_pageblock_skip(page) \ > set_pageblock_flags_group(page, 1, PB_migrate_skip, \ > - PB_migrate_skip + 1) > + PB_migrate_skip) > #endif /* CONFIG_COMPACTION */ > > #define get_pageblock_flags(page) \ Tested-by: Thierry Reding <thierry.reding@avionic-design.de> [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 2012-09-28 10:38 ` Thierry Reding @ 2012-09-28 10:52 ` Mel Gorman 2012-09-28 10:52 ` Mel Gorman 1 sibling, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 10:52 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > > > I've been running a few tests and indeed this solves the obvious problem > > that the coherent pool cannot be created at boot (which in turn caused > > the ethernet adapter to fail on Tegra). > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > allocate large chunks of framebuffer memory and these are now failing. > > I'll need to check if Minchan's patch solves that problem as well. > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > without a problem. Something else must be wrong then. > Can you check if Minchan's version 100% succeeds and my version 100% fails or is it a case that sometimes CMA works and sometimes fails with both versions? I'll examine the patch of course and see what flaw is there this time. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: CMA broken in next-20120926 @ 2012-09-28 10:52 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-09-28 10:52 UTC (permalink / raw) To: Thierry Reding Cc: Peter Ujfalusi, Minchan Kim, Andrew Morton, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown On Fri, Sep 28, 2012 at 12:38:15PM +0200, Thierry Reding wrote: > > > > > > I've been running a few tests and indeed this solves the obvious problem > > that the coherent pool cannot be created at boot (which in turn caused > > the ethernet adapter to fail on Tegra). > > > > However I've been working on the Tegra DRM driver, which uses CMA to > > allocate large chunks of framebuffer memory and these are now failing. > > I'll need to check if Minchan's patch solves that problem as well. > > Indeed, with Minchan's patch the DRM can allocate the framebuffer > without a problem. Something else must be wrong then. > Can you check if Minchan's version 100% succeeds and my version 100% fails or is it a case that sometimes CMA works and sometimes fails with both versions? I'll examine the patch of course and see what flaw is there this time. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 2012-09-28 5:43 ` Minchan Kim @ 2012-10-04 14:00 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-04 14:00 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi The following patch is still missing from linux-next/akpm so am resending in case it got lost in the mess. CMA is reported to be broken in next-20120926. Minchan Kim pointed out that this was due to nr_scanned != total_isolated in the case of CMA because PageBuddy pages are one scan but many isolations in CMA. This patch should address the problem. This patch is a fix for mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch Signed-off-by: Mel Gorman <mgorman@suse.de> diff --git a/mm/compaction.c b/mm/compaction.c index 136debd..ed3b8f1 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, { int nr_scanned = 0, total_isolated = 0; struct page *cursor, *valid_page = NULL; + unsigned long nr_strict_required = end_pfn - blockpfn; unsigned long flags; bool locked = false; @@ -342,10 +343,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is + * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_scanned != total_isolated) + if (strict && nr_strict_required != total_isolated) total_isolated = 0; if (locked) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 @ 2012-10-04 14:00 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-04 14:00 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi The following patch is still missing from linux-next/akpm so am resending in case it got lost in the mess. CMA is reported to be broken in next-20120926. Minchan Kim pointed out that this was due to nr_scanned != total_isolated in the case of CMA because PageBuddy pages are one scan but many isolations in CMA. This patch should address the problem. This patch is a fix for mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch Signed-off-by: Mel Gorman <mgorman@suse.de> diff --git a/mm/compaction.c b/mm/compaction.c index 136debd..ed3b8f1 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -282,6 +282,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, { int nr_scanned = 0, total_isolated = 0; struct page *cursor, *valid_page = NULL; + unsigned long nr_strict_required = end_pfn - blockpfn; unsigned long flags; bool locked = false; @@ -342,10 +343,10 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* * If strict isolation is requested by CMA then check that all the - * pages scanned were isolated. If there were any failures, 0 is + * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_scanned != total_isolated) + if (strict && nr_strict_required != total_isolated) total_isolated = 0; if (locked) ^ permalink raw reply related [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 2012-10-04 14:00 ` Mel Gorman @ 2012-10-05 9:59 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-05 9:59 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi Thierry reported offline that the strict check "mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1" check is still too strict because it's possible for more pages to be isolated than required. This patch corrects the check. There are still CMA-related problems but they are "somewhere else" yet to be determined. Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/compaction.c b/mm/compaction.c index 2c4ce17..9eef558 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -346,7 +346,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_strict_required != total_isolated) + if (strict && nr_strict_required > total_isolated) total_isolated = 0; if (locked) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 @ 2012-10-05 9:59 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-05 9:59 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi Thierry reported offline that the strict check "mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1" check is still too strict because it's possible for more pages to be isolated than required. This patch corrects the check. There are still CMA-related problems but they are "somewhere else" yet to be determined. Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/compaction.c b/mm/compaction.c index 2c4ce17..9eef558 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -346,7 +346,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * pages requested were isolated. If there were any failures, 0 is * returned and CMA will fail. */ - if (strict && nr_strict_required != total_isolated) + if (strict && nr_strict_required > total_isolated) total_isolated = 0; if (locked) ^ permalink raw reply related [flat|nested] 61+ messages in thread
* Re: [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 2012-10-05 9:59 ` Mel Gorman @ 2012-10-08 6:50 ` Minchan Kim -1 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 6:50 UTC (permalink / raw) To: Mel Gorman Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Oct 05, 2012 at 10:59:45AM +0100, Mel Gorman wrote: > Thierry reported offline that the strict check "mm: compaction: Iron out > isolate_freepages_block() and isolate_freepages_range() -fix1" check is > still too strict because it's possible for more pages to be isolated > than required. This patch corrects the check. > > There are still CMA-related problems but they are "somewhere else" yet > to be determined. > > Signed-off-by: Mel Gorman <mgorman@suse.de> Acked-by: Minchan Kim <minchan@kernel.org> -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 @ 2012-10-08 6:50 ` Minchan Kim 0 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 6:50 UTC (permalink / raw) To: Mel Gorman Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Fri, Oct 05, 2012 at 10:59:45AM +0100, Mel Gorman wrote: > Thierry reported offline that the strict check "mm: compaction: Iron out > isolate_freepages_block() and isolate_freepages_range() -fix1" check is > still too strict because it's possible for more pages to be isolated > than required. This patch corrects the check. > > There are still CMA-related problems but they are "somewhere else" yet > to be determined. > > Signed-off-by: Mel Gorman <mgorman@suse.de> Acked-by: Minchan Kim <minchan@kernel.org> -- Kind regards, Minchan Kim ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 2012-10-04 14:00 ` Mel Gorman @ 2012-10-08 6:53 ` Minchan Kim -1 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 6:53 UTC (permalink / raw) To: Mel Gorman Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Thu, Oct 04, 2012 at 03:00:17PM +0100, Mel Gorman wrote: > The following patch is still missing from linux-next/akpm so am > resending in case it got lost in the mess. > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > that this was due to nr_scanned != total_isolated in the case of CMA > because PageBuddy pages are one scan but many isolations in CMA. This > patch should address the problem. > > This patch is a fix for > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> Andrew, please fold this into [1] and pick. Mel, Thanks for seeing this problem while I enjoy holiday. [1] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 61+ messages in thread
* Re: [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 @ 2012-10-08 6:53 ` Minchan Kim 0 siblings, 0 replies; 61+ messages in thread From: Minchan Kim @ 2012-10-08 6:53 UTC (permalink / raw) To: Mel Gorman Cc: Andrew Morton, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi On Thu, Oct 04, 2012 at 03:00:17PM +0100, Mel Gorman wrote: > The following patch is still missing from linux-next/akpm so am > resending in case it got lost in the mess. > > > CMA is reported to be broken in next-20120926. Minchan Kim pointed out > that this was due to nr_scanned != total_isolated in the case of CMA > because PageBuddy pages are one scan but many isolations in CMA. This > patch should address the problem. > > This patch is a fix for > mm-compaction-acquire-the-zone-lock-as-late-as-possible-fix-2.patch > > Signed-off-by: Mel Gorman <mgorman@suse.de> Andrew, please fold this into [1] and pick. Mel, Thanks for seeing this problem while I enjoy holiday. [1] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 -- Kind regards, Minchan Kim ^ permalink raw reply [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 2012-09-28 5:43 ` Minchan Kim @ 2012-10-04 14:03 ` Mel Gorman -1 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-04 14:03 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi The following patch still has not been tested but I'm reposting it anyway. I've sent a rebased patch on top of next-20121004 that includes this patch privately to Thierry for testing. CMA requires that the PG_migrate_skip hint be skipped but it was only skipping it when isolating pages for migration, not for free. Ensure cc->isolate_skip_hint gets passed in both cases. This is a fix for mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch but is based on top of linux-next/akpm as of 20121004. It will cause minor conflicts when it is slotted into place but the resolutions should be straight-forward. Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 16 ++++------------ mm/internal.h | 3 ++- mm/page_alloc.c | 43 ++++++++++++++++++++++--------------------- 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index ed3b8f1..2c4ce17 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -373,22 +373,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -398,7 +390,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 9d5d276..a3ce781 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn, bool unevictable); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8e1be1c..d66efcb 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5669,7 +5669,8 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; @@ -5677,26 +5678,17 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); - while (pfn < end || !list_empty(&cc.migratepages)) { + while (pfn < end || !list_empty(&cc->migratepages)) { if (fatal_signal_pending(current)) { ret = -EINTR; break; } - if (list_empty(&cc.migratepages)) { - cc.nr_migratepages = 0; - pfn = isolate_migratepages_range(cc.zone, &cc, + if (list_empty(&cc->migratepages)) { + cc->nr_migratepages = 0; + pfn = isolate_migratepages_range(cc->zone, cc, pfn, end, true); if (!pfn) { ret = -EINTR; @@ -5708,16 +5700,16 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) break; } - nr_reclaimed = reclaim_clean_pages_from_list(cc.zone, - &cc.migratepages); - cc.nr_migratepages -= nr_reclaimed; + nr_reclaimed = reclaim_clean_pages_from_list(cc->zone, + &cc->migratepages); + cc->nr_migratepages -= nr_reclaimed; - ret = migrate_pages(&cc.migratepages, + ret = migrate_pages(&cc->migratepages, alloc_migrate_target, 0, false, MIGRATE_SYNC); } - putback_lru_pages(&cc.migratepages); + putback_lru_pages(&cc->migratepages); return ret > 0 ? 0 : ret; } @@ -5796,6 +5788,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5825,7 +5826,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(&cc, start, end); if (ret) goto done; @@ -5874,7 +5875,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(&cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 61+ messages in thread
* [PATCH] mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 @ 2012-10-04 14:03 ` Mel Gorman 0 siblings, 0 replies; 61+ messages in thread From: Mel Gorman @ 2012-10-04 14:03 UTC (permalink / raw) To: Andrew Morton Cc: Minchan Kim, Thierry Reding, Marek Szyprowski, Michal Nazarewicz, linux-kernel, linux-mm, Bartlomiej Zolnierkiewicz, Kyungmin Park, Mark Brown, Peter Ujfalusi The following patch still has not been tested but I'm reposting it anyway. I've sent a rebased patch on top of next-20121004 that includes this patch privately to Thierry for testing. CMA requires that the PG_migrate_skip hint be skipped but it was only skipping it when isolating pages for migration, not for free. Ensure cc->isolate_skip_hint gets passed in both cases. This is a fix for mm-compaction-cache-if-a-pageblock-was-scanned-and-no-pages-were-isolated-fix.patch but is based on top of linux-next/akpm as of 20121004. It will cause minor conflicts when it is slotted into place but the resolutions should be straight-forward. Signed-off-by: Mel Gorman <mgorman@suse.de> --- mm/compaction.c | 16 ++++------------ mm/internal.h | 3 ++- mm/page_alloc.c | 43 ++++++++++++++++++++++--------------------- 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/mm/compaction.c b/mm/compaction.c index ed3b8f1..2c4ce17 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -373,22 +373,14 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, * a free page). */ unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn) { unsigned long isolated, pfn, block_end_pfn; - struct zone *zone = NULL; LIST_HEAD(freelist); - /* cc needed for isolate_freepages_block to acquire zone->lock */ - struct compact_control cc = { - .sync = true, - }; - - if (pfn_valid(start_pfn)) - cc.zone = zone = page_zone(pfn_to_page(start_pfn)); - for (pfn = start_pfn; pfn < end_pfn; pfn += isolated) { - if (!pfn_valid(pfn) || zone != page_zone(pfn_to_page(pfn))) + if (!pfn_valid(pfn) || cc->zone != page_zone(pfn_to_page(pfn))) break; /* @@ -398,7 +390,7 @@ isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn) block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); block_end_pfn = min(block_end_pfn, end_pfn); - isolated = isolate_freepages_block(&cc, pfn, block_end_pfn, + isolated = isolate_freepages_block(cc, pfn, block_end_pfn, &freelist, true); /* diff --git a/mm/internal.h b/mm/internal.h index 9d5d276..a3ce781 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -135,7 +135,8 @@ struct compact_control { }; unsigned long -isolate_freepages_range(unsigned long start_pfn, unsigned long end_pfn); +isolate_freepages_range(struct compact_control *cc, + unsigned long start_pfn, unsigned long end_pfn); unsigned long isolate_migratepages_range(struct zone *zone, struct compact_control *cc, unsigned long low_pfn, unsigned long end_pfn, bool unevictable); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8e1be1c..d66efcb 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5669,7 +5669,8 @@ static unsigned long pfn_max_align_up(unsigned long pfn) } /* [start, end) must belong to a single zone. */ -static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) +static int __alloc_contig_migrate_range(struct compact_control *cc, + unsigned long start, unsigned long end) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; @@ -5677,26 +5678,17 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) unsigned int tries = 0; int ret = 0; - struct compact_control cc = { - .nr_migratepages = 0, - .order = -1, - .zone = page_zone(pfn_to_page(start)), - .sync = true, - .ignore_skip_hint = true, - }; - INIT_LIST_HEAD(&cc.migratepages); - migrate_prep_local(); - while (pfn < end || !list_empty(&cc.migratepages)) { + while (pfn < end || !list_empty(&cc->migratepages)) { if (fatal_signal_pending(current)) { ret = -EINTR; break; } - if (list_empty(&cc.migratepages)) { - cc.nr_migratepages = 0; - pfn = isolate_migratepages_range(cc.zone, &cc, + if (list_empty(&cc->migratepages)) { + cc->nr_migratepages = 0; + pfn = isolate_migratepages_range(cc->zone, cc, pfn, end, true); if (!pfn) { ret = -EINTR; @@ -5708,16 +5700,16 @@ static int __alloc_contig_migrate_range(unsigned long start, unsigned long end) break; } - nr_reclaimed = reclaim_clean_pages_from_list(cc.zone, - &cc.migratepages); - cc.nr_migratepages -= nr_reclaimed; + nr_reclaimed = reclaim_clean_pages_from_list(cc->zone, + &cc->migratepages); + cc->nr_migratepages -= nr_reclaimed; - ret = migrate_pages(&cc.migratepages, + ret = migrate_pages(&cc->migratepages, alloc_migrate_target, 0, false, MIGRATE_SYNC); } - putback_lru_pages(&cc.migratepages); + putback_lru_pages(&cc->migratepages); return ret > 0 ? 0 : ret; } @@ -5796,6 +5788,15 @@ int alloc_contig_range(unsigned long start, unsigned long end, unsigned long outer_start, outer_end; int ret = 0, order; + struct compact_control cc = { + .nr_migratepages = 0, + .order = -1, + .zone = page_zone(pfn_to_page(start)), + .sync = true, + .ignore_skip_hint = true, + }; + INIT_LIST_HEAD(&cc.migratepages); + /* * What we do here is we mark all pageblocks in range as * MIGRATE_ISOLATE. Because pageblock and max order pages may @@ -5825,7 +5826,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, if (ret) goto done; - ret = __alloc_contig_migrate_range(start, end); + ret = __alloc_contig_migrate_range(&cc, start, end); if (ret) goto done; @@ -5874,7 +5875,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, __reclaim_pages(zone, GFP_HIGHUSER_MOVABLE, end-start); /* Grab isolated pages from freelists. */ - outer_end = isolate_freepages_range(outer_start, end); + outer_end = isolate_freepages_range(&cc, outer_start, end); if (!outer_end) { ret = -EBUSY; goto done; ^ permalink raw reply related [flat|nested] 61+ messages in thread
end of thread, other threads:[~2012-10-09 11:38 UTC | newest] Thread overview: 61+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-27 11:29 CMA broken in next-20120926 Thierry Reding 2012-09-27 15:59 ` Marek Szyprowski 2012-09-27 17:49 ` Mark Brown 2012-09-27 22:11 ` Andrew Morton 2012-09-27 22:11 ` Andrew Morton 2012-09-28 5:43 ` Minchan Kim 2012-09-28 5:43 ` Minchan Kim 2012-09-28 6:10 ` Thierry Reding 2012-09-28 7:44 ` Peter Ujfalusi 2012-09-28 7:44 ` Peter Ujfalusi 2012-09-28 7:56 ` Mel Gorman 2012-09-28 7:56 ` Mel Gorman 2012-09-28 8:09 ` Mel Gorman 2012-09-28 8:09 ` Mel Gorman 2012-09-28 8:37 ` Mel Gorman 2012-09-28 8:37 ` Mel Gorman 2012-09-28 8:48 ` Peter Ujfalusi 2012-09-28 8:48 ` Peter Ujfalusi 2012-09-28 10:27 ` Mel Gorman 2012-09-28 10:27 ` Mel Gorman 2012-09-28 10:32 ` Thierry Reding 2012-09-28 10:38 ` Thierry Reding 2012-09-28 10:51 ` Thierry Reding 2012-09-28 11:07 ` Mel Gorman 2012-09-28 11:07 ` Mel Gorman 2012-09-28 11:39 ` Thierry Reding 2012-09-28 12:43 ` Mel Gorman 2012-09-28 12:43 ` Mel Gorman 2012-10-01 14:24 ` Thierry Reding 2012-10-02 12:48 ` Thierry Reding 2012-10-02 14:41 ` Mel Gorman 2012-10-02 14:41 ` Mel Gorman 2012-10-02 15:03 ` Thierry Reding 2012-10-02 15:12 ` Mel Gorman 2012-10-02 15:12 ` Mel Gorman 2012-10-08 8:06 ` Minchan Kim 2012-10-08 8:06 ` Minchan Kim 2012-10-08 8:48 ` Mel Gorman 2012-10-08 8:48 ` Mel Gorman 2012-10-09 8:40 ` Bartlomiej Zolnierkiewicz 2012-10-09 8:40 ` Bartlomiej Zolnierkiewicz 2012-10-09 10:11 ` Mel Gorman 2012-10-09 10:11 ` Mel Gorman 2012-10-09 11:02 ` Thierry Reding 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz 2012-10-09 11:08 ` Bartlomiej Zolnierkiewicz 2012-10-09 11:32 ` Mel Gorman 2012-10-09 11:32 ` Mel Gorman 2012-10-09 11:38 ` Thierry Reding 2012-09-28 10:52 ` Mel Gorman 2012-09-28 10:52 ` Mel Gorman 2012-10-04 14:00 ` [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 Mel Gorman 2012-10-04 14:00 ` Mel Gorman 2012-10-05 9:59 ` [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix2 Mel Gorman 2012-10-05 9:59 ` Mel Gorman 2012-10-08 6:50 ` Minchan Kim 2012-10-08 6:50 ` Minchan Kim 2012-10-08 6:53 ` [PATCH] mm: compaction: Iron out isolate_freepages_block() and isolate_freepages_range() -fix1 Minchan Kim 2012-10-08 6:53 ` Minchan Kim 2012-10-04 14:03 ` [PATCH] mm: compaction: Cache if a pageblock was scanned and no pages were isolated -fix3 Mel Gorman 2012-10-04 14:03 ` Mel Gorman
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.