* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
[not found] ` <CAK7LNARacEorb38mVBw_V-Zvz-znWgBma1AP1-z_5B_xZU4ogg@mail.gmail.com>
@ 2019-08-23 12:56 ` Masahiro Yamada
[not found] ` <CAK7LNAQfYBCoChMV=MOwcUyVoqRkrPWs7DaWdzDqjBe18gGiAQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-23 12:56 UTC (permalink / raw)
To: Nicolin Chen, Christoph Hellwig, linux-mmc, Ulf Hansson,
Adrian Hunter
Cc: Robin Murphy, Marek Szyprowski, vdumpa, Russell King,
Catalin Marinas, Will Deacon, Chris Zankel, Max Filippov,
Joerg Roedel, David Woodhouse, Tony Lindgren, Andrew Morton,
Stephen Rothwell, Thierry Reding, Kees Cook, iamjoonsoo.kim,
Wolfram Sang, linux-arm-kernel, Linux Kernel Mailing List,
linux-xtensa
+ linux-mmc, Ulf Hansson, Adrian Hunter,
ADMA of SDHCI is not working
since bd2e75633c8012fc8a7431c82fda66237133bf7e
Did anybody see the same problem?
Masahiro
On Fri, Aug 23, 2019 at 9:49 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> On Tue, May 7, 2019 at 7:36 AM Nicolin Chen <nicoleotsuka@gmail.com> wrote:
> >
> > The addresses within a single page are always contiguous, so it's
> > not so necessary to always allocate one single page from CMA area.
> > Since the CMA area has a limited predefined size of space, it may
> > run out of space in heavy use cases, where there might be quite a
> > lot CMA pages being allocated for single pages.
> >
> > However, there is also a concern that a device might care where a
> > page comes from -- it might expect the page from CMA area and act
> > differently if the page doesn't.
> >
> > This patch tries to use the fallback alloc_pages path, instead of
> > one-page size allocations from the global CMA area in case that a
> > device does not have its own CMA area. This'd save resources from
> > the CMA global area for more CMA allocations, and also reduce CMA
> > fragmentations resulted from trivial allocations.
> >
> > Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
>
>
> This commit (bd2e75633c8012fc8a7431c82fda66237133bf7e)
> broke the DMA for my MMC driver in the following way:
>
>
>
>
> [ 1.876755] mmc0: ADMA error
> [ 1.883385] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
> [ 1.889834] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
> [ 1.896284] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000001
> [ 1.902733] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
> [ 1.909182] mmc0: sdhci: Present: 0x01ff02f6 | Host ctl: 0x00000019
> [ 1.915631] mmc0: sdhci: Power: 0x0000000b | Blk gap: 0x00000000
> [ 1.922081] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x0000fa07
> [ 1.928530] mmc0: sdhci: Timeout: 0x0000000b | Int stat: 0x00000001
> [ 1.934981] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
> [ 1.941429] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
> [ 1.947880] mmc0: sdhci: Caps: 0x546ec800 | Caps_1: 0x00000000
> [ 1.954329] mmc0: sdhci: Cmd: 0x0000083a | Max curr: 0x00000000
> [ 1.960778] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0xffffffff
> [ 1.967229] mmc0: sdhci: Resp[2]: 0x320f5903 | Resp[3]: 0x3fd05e00
> [ 1.973678] mmc0: sdhci: Host ctl2: 0x00000000
> [ 1.978125] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000013965b200
> [ 1.985271] mmc0: sdhci: ============================================
> [ 1.991758] mmc0: error -5 whilst initialising MMC card
> [ 1.991913] 43fb0000.uart: ttyS1 at MMIO 0x43fb0000 (irq = 0,
> base_baud = 768000) is a 16550A
> [ 2.011011] hctosys: unable to open rtc device (rtc0)
> [ 2.017694] Freeing unused kernel memory: 2368K
> [ 2.027131] Run /init as init process
> Starting syslogd: OK
> Starting klogd: OK
> Initializing random number generator... [ 2.074399] random: dd:
> uninitialized urandom read (512 bytes read)
> done.
> Starting network: OK
> [ 2.109593] mmc0: ADMA error
> [ 2.112488] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
> [ 2.118941] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
> [ 2.125389] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000001
> [ 2.131840] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
> [ 2.138289] mmc0: sdhci: Present: 0x01ff02f6 | Host ctl: 0x00000019
> [ 2.144738] mmc0: sdhci: Power: 0x0000000b | Blk gap: 0x00000000
> [ 2.151188] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00004e47
> [ 2.157637] mmc0: sdhci: Timeout: 0x0000000b | Int stat: 0x00000001
> [ 2.164087] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
> [ 2.170536] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
> [ 2.176987] mmc0: sdhci: Caps: 0x546ec800 | Caps_1: 0x00000000
> [ 2.183435] mmc0: sdhci: Cmd: 0x0000083a | Max curr: 0x00000000
> [ 2.189886] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0xffffffff
> [ 2.196335] mmc0: sdhci: Resp[2]: 0x320f5903 | Resp[3]: 0x3fd05e00
> [ 2.202784] mmc0: sdhci: Host ctl2: 0x00000000
> [ 2.207232] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000013965b200
> [ 2.214379] mmc0: sdhci: ============================================
>
> [ 2.220881] mmc0: error -5 whilst initialising MMC card
> Welcome to Buildroot
> buildroot login: [ 2.332786] mmc0: ADMA error
> [ 2.335668] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
> [ 2.342119] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
> [ 2.348568] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000001
> [ 2.355018] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
> [ 2.361468] mmc0: sdhci: Present: 0x01ff02f6 | Host ctl: 0x00000019
> [ 2.367917] mmc0: sdhci: Power: 0x0000000b | Blk gap: 0x00000000
> [ 2.374367] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x0000f447
> [ 2.380816] mmc0: sdhci: Timeout: 0x0000000b | Int stat: 0x00000001
> [ 2.387267] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
> [ 2.393716] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
> [ 2.400166] mmc0: sdhci: Caps: 0x546ec800 | Caps_1: 0x00000000
> [ 2.406615] mmc0: sdhci: Cmd: 0x0000083a | Max curr: 0x00000000
> [ 2.413065] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0xffffffff
> [ 2.419515] mmc0: sdhci: Resp[2]: 0x320f5903 | Resp[3]: 0x3fd05e00
> [ 2.425963] mmc0: sdhci: Host ctl2: 0x00000000
> [ 2.430412] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000013965b200
> [ 2.437557] mmc0: sdhci: ============================================
> [ 2.444031] mmc0: error -5 whilst initialising MMC card
> [ 2.572203] mmc0: ADMA error
> [ 2.575089] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
> [ 2.581540] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
> [ 2.587989] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000001
> [ 2.594439] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
> [ 2.600889] mmc0: sdhci: Present: 0x01ef02f6 | Host ctl: 0x00000019
> [ 2.607339] mmc0: sdhci: Power: 0x0000000b | Blk gap: 0x00000000
> [ 2.613788] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x0000e8c7
> [ 2.620237] mmc0: sdhci: Timeout: 0x0000000b | Int stat: 0x00000001
> [ 2.626686] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
> [ 2.633137] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
> [ 2.639586] mmc0: sdhci: Caps: 0x546ec800 | Caps_1: 0x00000000
> [ 2.646036] mmc0: sdhci: Cmd: 0x0000083a | Max curr: 0x00000000
> [ 2.652485] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0xffffffff
> [ 2.658936] mmc0: sdhci: Resp[2]: 0x320f5903 | Resp[3]: 0x3fd05e00
> [ 2.665384] mmc0: sdhci: Host ctl2: 0x00000000
> [ 2.669832] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000013965b200
> [ 2.676979] mmc0: sdhci: ============================================
> [ 2.683450] mmc0: error -5 whilst initialising MMC card
>
> CTRL-A Z for help | 115200 8N1 | NOR | Minicom 2.7.1 | VT102 | Offline
> | ttyUSB0
>
> Reverting this commit fixed the problem.
>
>
>
> --
> Best Regards
> Masahiro Yamada
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
[not found] ` <CAK7LNAQfYBCoChMV=MOwcUyVoqRkrPWs7DaWdzDqjBe18gGiAQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2019-08-25 1:10 ` Christoph Hellwig
2019-08-26 2:05 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2019-08-25 1:10 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Ulf Hansson, Tony Lindgren, Catalin Marinas, Will Deacon,
Linux Kernel Mailing List, Max Filippov, Christoph Hellwig,
Stephen Rothwell, Russell King, Thierry Reding,
linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, Kees Cook, Nicolin Chen,
Andrew Morton, linux-arm-kernel, Chris Zankel, Wolfram Sang,
Robin Murphy, linux-mmc, Adrian Hunter,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
iamjoonsoo.kim-Hm3cg6mZ9cc, David Woodhouse
On Fri, Aug 23, 2019 at 09:56:52PM +0900, Masahiro Yamada wrote:
> + linux-mmc, Ulf Hansson, Adrian Hunter,
>
>
> ADMA of SDHCI is not working
> since bd2e75633c8012fc8a7431c82fda66237133bf7e
Does it work for you with this commit:
http://git.infradead.org/users/hch/dma-mapping.git/commitdiff/90ae409f9eb3bcaf38688f9ec22375816053a08e
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-25 1:10 ` Christoph Hellwig
@ 2019-08-26 2:05 ` Masahiro Yamada
2019-08-26 7:33 ` Christoph Hellwig
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-26 2:05 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Nicolin Chen, linux-mmc, Ulf Hansson, Adrian Hunter, Robin Murphy,
Marek Szyprowski, vdumpa, Russell King, Catalin Marinas,
Will Deacon, Chris Zankel, Max Filippov, Joerg Roedel,
David Woodhouse, Tony Lindgren, Andrew Morton, Stephen Rothwell,
Thierry Reding, Kees Cook, iamjoonsoo.kim,
Wolfram Sang <wsa+renesas>
Christoph,
On Sun, Aug 25, 2019 at 10:10 AM Christoph Hellwig <hch@lst.de> wrote:
>
> On Fri, Aug 23, 2019 at 09:56:52PM +0900, Masahiro Yamada wrote:
> > + linux-mmc, Ulf Hansson, Adrian Hunter,
> >
> >
> > ADMA of SDHCI is not working
> > since bd2e75633c8012fc8a7431c82fda66237133bf7e
>
> Does it work for you with this commit:
>
> http://git.infradead.org/users/hch/dma-mapping.git/commitdiff/90ae409f9eb3bcaf38688f9ec22375816053a08e
This is included in v5.3-rc6
so I tested it.
No, it did not fix the problem.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-26 2:05 ` Masahiro Yamada
@ 2019-08-26 7:33 ` Christoph Hellwig
2019-08-27 7:45 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2019-08-26 7:33 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Christoph Hellwig, Nicolin Chen, linux-mmc, Ulf Hansson,
Adrian Hunter, Robin Murphy, Marek Szyprowski, vdumpa,
Russell King, Catalin Marinas, Will Deacon, Chris Zankel,
Max Filippov, Joerg Roedel, David Woodhouse, Tony Lindgren,
Andrew Morton, Stephen Rothwell, Thierry Reding, Kees Cook,
iamjoonsoo.kim
On Mon, Aug 26, 2019 at 11:05:00AM +0900, Masahiro Yamada wrote:
> This is included in v5.3-rc6
> so I tested it.
So there is no allocation failure, but you get I/O errors later?
Does the device use a device-private CMA area? Does it work with Linux
5.2 if CONFIG_DMA_CMA is disabled?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-26 7:33 ` Christoph Hellwig
@ 2019-08-27 7:45 ` Masahiro Yamada
2019-08-27 7:50 ` Christoph Hellwig
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-27 7:45 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Nicolin Chen, linux-mmc, Ulf Hansson, Adrian Hunter, Robin Murphy,
Marek Szyprowski, vdumpa, Russell King, Catalin Marinas,
Will Deacon, Chris Zankel, Max Filippov, Joerg Roedel,
David Woodhouse, Tony Lindgren, Andrew Morton, Stephen Rothwell,
Thierry Reding, Kees Cook, iamjoonsoo.kim,
Wolfram Sang <wsa+renesas>
On Mon, Aug 26, 2019 at 4:33 PM Christoph Hellwig <hch@lst.de> wrote:
>
> On Mon, Aug 26, 2019 at 11:05:00AM +0900, Masahiro Yamada wrote:
> > This is included in v5.3-rc6
> > so I tested it.
>
> So there is no allocation failure, but you get I/O errors later?
Right.
>
> Does the device use a device-private CMA area?
Not sure.
My driver is drivers/mmc/host/sdhci-cadence.c
It reuses routines in drivers/mmc/host/sdhci.c
> Does it work with Linux
> 5.2 if CONFIG_DMA_CMA is disabled?
No.
5.2 + disable CONFIG_DMA_CMA
failed in the same way.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-27 7:45 ` Masahiro Yamada
@ 2019-08-27 7:50 ` Christoph Hellwig
[not found] ` <20190827075021.GA953-jcswGhMUV9g@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2019-08-27 7:50 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Christoph Hellwig, Nicolin Chen, linux-mmc, Ulf Hansson,
Adrian Hunter, Robin Murphy, Marek Szyprowski, vdumpa,
Russell King, Catalin Marinas, Will Deacon, Chris Zankel,
Max Filippov, Joerg Roedel, David Woodhouse, Tony Lindgren,
Andrew Morton, Stephen Rothwell, Thierry Reding, Kees Cook,
iamjoonsoo.kim
On Tue, Aug 27, 2019 at 04:45:20PM +0900, Masahiro Yamada wrote:
> On Mon, Aug 26, 2019 at 4:33 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> > On Mon, Aug 26, 2019 at 11:05:00AM +0900, Masahiro Yamada wrote:
> > > This is included in v5.3-rc6
> > > so I tested it.
> >
> > So there is no allocation failure, but you get I/O errors later?
>
> Right.
>
> >
> > Does the device use a device-private CMA area?
>
> Not sure.
> My driver is drivers/mmc/host/sdhci-cadence.c
> It reuses routines in drivers/mmc/host/sdhci.c
>
>
>
> > Does it work with Linux
> > 5.2 if CONFIG_DMA_CMA is disabled?
>
> No.
> 5.2 + disable CONFIG_DMA_CMA
> failed in the same way.
So it seems like the device wants CMA memory. I guess the patch
below will fix it, but that isn't the solution. Can you try it
to confirm? In the end it probably assumes a dma mask it doesn't
set that the CMA memory satisfies or something similar.
diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c
index 69cfb4345388..bd2f24aa7f19 100644
--- a/kernel/dma/contiguous.c
+++ b/kernel/dma/contiguous.c
@@ -236,7 +236,7 @@ struct page *dma_alloc_contiguous(struct device *dev, size_t size, gfp_t gfp)
if (dev && dev->cma_area)
cma = dev->cma_area;
- else if (count > 1)
+ else
cma = dma_contiguous_default_area;
/* CMA can be used only in the context which permits sleeping */
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
[not found] ` <20190827075021.GA953-jcswGhMUV9g@public.gmane.org>
@ 2019-08-27 9:03 ` Masahiro Yamada
[not found] ` <CAK7LNAQZ+bueZZzSoMADmgLjWNvijHRV=wLQzN_kvLG3b5Uu+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-27 9:03 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Ulf Hansson, Tony Lindgren, Catalin Marinas, Will Deacon,
Linux Kernel Mailing List, Max Filippov, Stephen Rothwell,
Russell King, Thierry Reding, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw,
Kees Cook, Nicolin Chen, Andrew Morton, linux-arm-kernel,
Chris Zankel, Wolfram Sang, David Woodhouse, linux-mmc,
Adrian Hunter, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
iamjoonsoo.kim-Hm3cg6mZ9cc, Robin Murphy
On Tue, Aug 27, 2019 at 4:50 PM Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> wrote:
>
> On Tue, Aug 27, 2019 at 04:45:20PM +0900, Masahiro Yamada wrote:
> > On Mon, Aug 26, 2019 at 4:33 PM Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> wrote:
> > >
> > > On Mon, Aug 26, 2019 at 11:05:00AM +0900, Masahiro Yamada wrote:
> > > > This is included in v5.3-rc6
> > > > so I tested it.
> > >
> > > So there is no allocation failure, but you get I/O errors later?
> >
> > Right.
> >
> > >
> > > Does the device use a device-private CMA area?
> >
> > Not sure.
> > My driver is drivers/mmc/host/sdhci-cadence.c
> > It reuses routines in drivers/mmc/host/sdhci.c
> >
> >
> >
> > > Does it work with Linux
> > > 5.2 if CONFIG_DMA_CMA is disabled?
> >
> > No.
> > 5.2 + disable CONFIG_DMA_CMA
> > failed in the same way.
>
> So it seems like the device wants CMA memory. I guess the patch
> below will fix it, but that isn't the solution. Can you try it
> to confirm? In the end it probably assumes a dma mask it doesn't
> set that the CMA memory satisfies or something similar.
Thanks for the pointer.
> diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c
> index 69cfb4345388..bd2f24aa7f19 100644
> --- a/kernel/dma/contiguous.c
> +++ b/kernel/dma/contiguous.c
> @@ -236,7 +236,7 @@ struct page *dma_alloc_contiguous(struct device *dev, size_t size, gfp_t gfp)
>
> if (dev && dev->cma_area)
> cma = dev->cma_area;
> - else if (count > 1)
> + else
> cma = dma_contiguous_default_area;
>
> /* CMA can be used only in the context which permits sleeping */
Yes, this makes my driver working again
when CONFIG_DMA_CMA=y.
If I apply the following, my driver gets back working
irrespective of CONFIG_DMA_CMA.
diff --git a/drivers/mmc/host/sdhci-cadence.c b/drivers/mmc/host/sdhci-cadence.c
index 163d1cf4367e..504459395c39 100644
--- a/drivers/mmc/host/sdhci-cadence.c
+++ b/drivers/mmc/host/sdhci-cadence.c
@@ -237,6 +237,7 @@ static const struct sdhci_ops sdhci_cdns_ops = {
static const struct sdhci_pltfm_data sdhci_cdns_pltfm_data = {
.ops = &sdhci_cdns_ops,
+ .quirks2 = SDHCI_QUIRK2_BROKEN_64_BIT_DMA,
};
static int sdhci_cdns_set_tune_val(struct sdhci_host *host, unsigned int val)
--
Best Regards
Masahiro Yamada
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
[not found] ` <CAK7LNAQZ+bueZZzSoMADmgLjWNvijHRV=wLQzN_kvLG3b5Uu+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2019-08-27 11:55 ` Christoph Hellwig
2019-08-28 10:53 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Christoph Hellwig @ 2019-08-27 11:55 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Ulf Hansson, Tony Lindgren, Catalin Marinas, Will Deacon,
Linux Kernel Mailing List, Max Filippov, Christoph Hellwig,
Stephen Rothwell, Russell King, Thierry Reding,
linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw, Kees Cook, Nicolin Chen,
Andrew Morton, linux-arm-kernel, Chris Zankel, Wolfram Sang,
Robin Murphy, linux-mmc, Adrian Hunter,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
iamjoonsoo.kim-Hm3cg6mZ9cc, David Woodhouse
On Tue, Aug 27, 2019 at 06:03:14PM +0900, Masahiro Yamada wrote:
> Yes, this makes my driver working again
> when CONFIG_DMA_CMA=y.
>
>
> If I apply the following, my driver gets back working
> irrespective of CONFIG_DMA_CMA.
That sounds a lot like the device simply isn't 64-bit DMA capable, and
previously always got CMA allocations under the limit it actually
supported. I suggest that you submit this quirk to the mmc maintainers.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-27 11:55 ` Christoph Hellwig
@ 2019-08-28 10:53 ` Masahiro Yamada
2019-08-28 12:23 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-28 10:53 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Nicolin Chen, linux-mmc, Ulf Hansson, Adrian Hunter, Robin Murphy,
Marek Szyprowski, vdumpa, Russell King, Catalin Marinas,
Will Deacon, Chris Zankel, Max Filippov, Joerg Roedel,
David Woodhouse, Tony Lindgren, Andrew Morton, Stephen Rothwell,
Thierry Reding, Kees Cook, iamjoonsoo.kim,
Wolfram Sang <wsa+renesas>
Hi Christoph,
On Tue, Aug 27, 2019 at 8:55 PM Christoph Hellwig <hch@lst.de> wrote:
>
> On Tue, Aug 27, 2019 at 06:03:14PM +0900, Masahiro Yamada wrote:
> > Yes, this makes my driver working again
> > when CONFIG_DMA_CMA=y.
> >
> >
> > If I apply the following, my driver gets back working
> > irrespective of CONFIG_DMA_CMA.
>
> That sounds a lot like the device simply isn't 64-bit DMA capable, and
> previously always got CMA allocations under the limit it actually
> supported. I suggest that you submit this quirk to the mmc maintainers.
I tested v5.2 and my MMC host controller works with
dma_address that exceeds 32-bit physical address.
So, I believe my MMC device is 64-bit DMA capable.
I am still looking into the code
to find out what was changed.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-28 10:53 ` Masahiro Yamada
@ 2019-08-28 12:23 ` Masahiro Yamada
2019-08-29 11:45 ` Masahiro Yamada
0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-28 12:23 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Ulf Hansson, Tony Lindgren, Catalin Marinas, Will Deacon,
Linux Kernel Mailing List, Max Filippov, Marek Szyprowski,
Stephen Rothwell, Joerg Roedel, Russell King, Thierry Reding,
linux-xtensa, Kees Cook, Nicolin Chen, Andrew Morton,
linux-arm-kernel, Chris Zankel, Wolfram Sang, David Woodhouse,
linux-mmc, Adrian Hunter, iommu, iamjoo
On Wed, Aug 28, 2019 at 7:53 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> Hi Christoph,
>
> On Tue, Aug 27, 2019 at 8:55 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> > On Tue, Aug 27, 2019 at 06:03:14PM +0900, Masahiro Yamada wrote:
> > > Yes, this makes my driver working again
> > > when CONFIG_DMA_CMA=y.
> > >
> > >
> > > If I apply the following, my driver gets back working
> > > irrespective of CONFIG_DMA_CMA.
> >
> > That sounds a lot like the device simply isn't 64-bit DMA capable, and
> > previously always got CMA allocations under the limit it actually
> > supported. I suggest that you submit this quirk to the mmc maintainers.
>
>
> I tested v5.2 and my MMC host controller works with
> dma_address that exceeds 32-bit physical address.
>
> So, I believe my MMC device is 64-bit DMA capable.
>
> I am still looking into the code
> to find out what was changed.
I retract this comment.
Prior to bd2e75633c8012fc8a7431c82fda66237133bf7e,
the descriptor table for ADMA is placed within the
32-bit phys address range, not exceeds the 32-bit limit.
Probably, my device is not 64-bit capable.
I will talk to the hardware engineer,
and check the hardware spec just in case.
Thanks.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages
2019-08-28 12:23 ` Masahiro Yamada
@ 2019-08-29 11:45 ` Masahiro Yamada
0 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2019-08-29 11:45 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Nicolin Chen, linux-mmc, Ulf Hansson, Adrian Hunter, Robin Murphy,
Marek Szyprowski, vdumpa, Russell King, Catalin Marinas,
Will Deacon, Chris Zankel, Max Filippov, Joerg Roedel,
David Woodhouse, Tony Lindgren, Andrew Morton, Stephen Rothwell,
Thierry Reding, Kees Cook, iamjoonsoo.kim,
Wolfram Sang <wsa+renesas>
On Wed, Aug 28, 2019 at 9:23 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> On Wed, Aug 28, 2019 at 7:53 PM Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
> >
> > Hi Christoph,
> >
> > On Tue, Aug 27, 2019 at 8:55 PM Christoph Hellwig <hch@lst.de> wrote:
> > >
> > > On Tue, Aug 27, 2019 at 06:03:14PM +0900, Masahiro Yamada wrote:
> > > > Yes, this makes my driver working again
> > > > when CONFIG_DMA_CMA=y.
> > > >
> > > >
> > > > If I apply the following, my driver gets back working
> > > > irrespective of CONFIG_DMA_CMA.
> > >
> > > That sounds a lot like the device simply isn't 64-bit DMA capable, and
> > > previously always got CMA allocations under the limit it actually
> > > supported. I suggest that you submit this quirk to the mmc maintainers.
> >
> >
> > I tested v5.2 and my MMC host controller works with
> > dma_address that exceeds 32-bit physical address.
> >
> > So, I believe my MMC device is 64-bit DMA capable.
> >
> > I am still looking into the code
> > to find out what was changed.
>
>
> I retract this comment.
>
> Prior to bd2e75633c8012fc8a7431c82fda66237133bf7e,
> the descriptor table for ADMA is placed within the
> 32-bit phys address range, not exceeds the 32-bit limit.
>
> Probably, my device is not 64-bit capable.
>
> I will talk to the hardware engineer,
> and check the hardware spec just in case.
>
After looking more into my hardware,
I found out how to fix my driver:
https://lore.kernel.org/patchwork/patch/1121600/
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-08-29 11:45 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190506223334.1834-1-nicoleotsuka@gmail.com>
[not found] ` <20190506223334.1834-3-nicoleotsuka@gmail.com>
[not found] ` <CAK7LNARacEorb38mVBw_V-Zvz-znWgBma1AP1-z_5B_xZU4ogg@mail.gmail.com>
2019-08-23 12:56 ` [PATCH v2 2/2] dma-contiguous: Use fallback alloc_pages for single pages Masahiro Yamada
[not found] ` <CAK7LNAQfYBCoChMV=MOwcUyVoqRkrPWs7DaWdzDqjBe18gGiAQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-25 1:10 ` Christoph Hellwig
2019-08-26 2:05 ` Masahiro Yamada
2019-08-26 7:33 ` Christoph Hellwig
2019-08-27 7:45 ` Masahiro Yamada
2019-08-27 7:50 ` Christoph Hellwig
[not found] ` <20190827075021.GA953-jcswGhMUV9g@public.gmane.org>
2019-08-27 9:03 ` Masahiro Yamada
[not found] ` <CAK7LNAQZ+bueZZzSoMADmgLjWNvijHRV=wLQzN_kvLG3b5Uu+w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-27 11:55 ` Christoph Hellwig
2019-08-28 10:53 ` Masahiro Yamada
2019-08-28 12:23 ` Masahiro Yamada
2019-08-29 11:45 ` Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).