RE: [PATCH 1/3] mmc: tmio: core: Add end operation into tmio_mmc_dma_ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Wolfram-san,

> From: Wolfram Sang, Sent: Friday, June 12, 2020 5:33 AM
> 
> Hi,
> 
> On Thu, May 21, 2020 at 04:01:04PM +0900, Yoshihiro Shimoda wrote:
<snip>
> > diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
> > index b4cf101..0a4f365 100644
> > --- a/drivers/mmc/host/tmio_mmc.h
> > +++ b/drivers/mmc/host/tmio_mmc.h
> > @@ -118,6 +118,9 @@ struct tmio_mmc_dma_ops {
> >  	void (*release)(struct tmio_mmc_host *host);
> >  	void (*abort)(struct tmio_mmc_host *host);
> >  	void (*dataend)(struct tmio_mmc_host *host);
> > +
> > +	/* optional */
> > +	void (*end)(struct tmio_mmc_host *host);	/* held host->lock */
> 
> Okay, the good news is that I can reproduce the error case. I also get a
> growing list in /sys/kernel/debug/dma-api/dump.

Good news!

> However, here, the list does not grow at the same rate as the fake
> timeouts are injected. So, it doesn't look like the unmapping is missed
> every time but only occasionally, so this seems like a race somewhere?
> 
> And if that is true, I wonder if we couldn't fix the current error paths
> instead of adding another callback?
> 
> Or do you get a missed unmap for every timeout, Shimoda-san?

No, I got.
So, I investigate why, and then it found the injected timeout happened on CMD13
didn't cause a missed unmap because the command didn't map any buffer (host->dma_on == false).

JFYI, my debug patch and log messages are pasted below:

---
diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
index 15e21894bd44..8c306597a105 100644
--- a/drivers/mmc/host/renesas_sdhi_core.c
+++ b/drivers/mmc/host/renesas_sdhi_core.c
@@ -664,6 +664,12 @@ static int renesas_sdhi_wait_idle(struct tmio_mmc_host *host, u32 bit)
 
 	if (!timeout) {
 		dev_warn(&host->pdev->dev, "timeout waiting for SD bus idle\n");
+		dev_warn(&host->pdev->dev,
+			 "debug=%d timeout=%d no_dma=%d real=%d both=%d map=%d unmap=%d\n",
+			 host->debug, host->debug_timeout,
+			 host->debug_timeout_no_dma,
+			 host->debug_real_timeout, host->debug_both_timeout,
+			 host->debug_map, host->debug_unmap);
 		return -EBUSY;
 	}
 
diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
index 47ac53e91241..af16ff3b0868 100644
--- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c
+++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
@@ -208,6 +208,7 @@ renesas_sdhi_internal_dmac_start_dma(struct tmio_mmc_host *host,
 					    sg_dma_address(sg));
 
 	host->dma_on = true;
+	host->debug_map++;
 
 	return;
 
@@ -246,6 +247,7 @@ static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
 
 	renesas_sdhi_internal_dmac_enable_dma(host, false);
 	dma_unmap_sg(&host->pdev->dev, host->sg_ptr, host->sg_len, dir);
+	host->debug_unmap++;
 
 	if (dir == DMA_FROM_DEVICE)
 		clear_bit(SDHI_INTERNAL_DMAC_RX_IN_USE, &global_flags);
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index b4cf10109162..ee950e453a26 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -189,6 +189,13 @@ struct tmio_mmc_host {
 	void (*hs400_complete)(struct tmio_mmc_host *host);
 
 	const struct tmio_mmc_dma_ops *dma_ops;
+	int debug;
+	int debug_timeout;
+	int debug_real_timeout;
+	int debug_both_timeout;
+	int debug_timeout_no_dma;
+	int debug_map;
+	int debug_unmap;
 };
 
 struct tmio_mmc_host *tmio_mmc_host_alloc(struct platform_device *pdev,
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index d7fde57c78c1..e5aebd44b0c7 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -546,8 +546,19 @@ static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, unsigned int stat)
 		cmd->resp[0] = cmd->resp[3];
 	}
 
-	if (stat & TMIO_STAT_CMDTIMEOUT)
+	host->debug++;
+	if (stat & TMIO_STAT_CMDTIMEOUT || !(host->debug & 0xff)) {
 		cmd->error = -ETIMEDOUT;
+		if (stat & TMIO_STAT_CMDTIMEOUT)
+			host->debug_real_timeout++;
+		if (!(host->debug & 0xff)) {
+			host->debug_timeout++;
+			if (!host->dma_on)
+				host->debug_timeout_no_dma++;
+		}
+		if (stat & TMIO_STAT_CMDTIMEOUT && !(host->debug & 0xff))
+			host->debug_both_timeout++;
+	}
 	else if ((stat & TMIO_STAT_CRCFAIL && cmd->flags & MMC_RSP_CRC) ||
 		 stat & TMIO_STAT_STOPBIT_ERR ||
 		 stat & TMIO_STAT_CMD_IDX_ERR)
@@ -797,6 +808,8 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host)
 
 	spin_lock_irqsave(&host->lock, flags);
 
+	host->dma_on = false;
+
 	mrq = host->mrq;
 	if (IS_ERR_OR_NULL(mrq)) {
 		spin_unlock_irqrestore(&host->lock, flags);
-- 
2.17.1
---

~ # dmesg | grep mmc
[    3.674229] renesas_sdhi_internal_dmac ee100000.sd: mmc0 base at 0x00000000ee100000, max clock rate 200 MHz
[    3.742939] renesas_sdhi_internal_dmac ee140000.sd: mmc1 base at 0x00000000ee140000, max clock rate 200 MHz
[    3.822470] renesas_sdhi_internal_dmac ee160000.sd: mmc2 base at 0x00000000ee160000, max clock rate 200 MHz
[    3.922265] mmc1: new HS400 MMC card at address 0001
[    3.927919] mmcblk1: mmc1:0001 BGSD3R 29.1 GiB 
[    3.932705] mmcblk1boot0: mmc1:0001 BGSD3R partition 1 16.0 MiB
[    3.946713] mmcblk1boot1: mmc1:0001 BGSD3R partition 2 16.0 MiB
[    3.961567] mmcblk1rpmb: mmc1:0001 BGSD3R partition 3 4.00 MiB, chardev (243:0)
[    3.984810]  mmcblk1: p1
[    4.007834] mmc0: new ultra high speed SDR104 SDHC card at address aaaa
[    4.015030] mmcblk0: mmc0:aaaa SL32G 29.7 GiB 
[    4.051127]  mmcblk0: p1
~ # 
~ # cat /sys/kernel/debug/dma-api/dump | grep sd
~ # 
~ # dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k &
~ # [   86.183589] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   86.191318] renesas_sdhi_internal_dmac ee100000.sd: debug=256 timeout=1 no_dma=0 real=6 both=0 map=111 unmap=110
[   86.202819] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   86.210483] renesas_sdhi_internal_dmac ee100000.sd: debug=256 timeout=1 no_dma=0 real=6 both=0 map=111 unmap=110
[   86.221984] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   86.229650] renesas_sdhi_internal_dmac ee100000.sd: debug=256 timeout=1 no_dma=0 real=6 both=0 map=111 unmap=110
[   86.241237] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   86.248999] renesas_sdhi_internal_dmac ee100000.sd: debug=256 timeout=1 no_dma=0 real=6 both=0 map=111 unmap=110
[   86.260589] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   86.268274] renesas_sdhi_internal_dmac ee100000.sd: debug=256 timeout=1 no_dma=0 real=6 both=0 map=111 unmap=110
[   91.356599] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[   91.482031] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   91.489717] renesas_sdhi_internal_dmac ee100000.sd: debug=768 timeout=3 no_dma=1 real=6 both=0 map=365 unmap=363
[   91.501336] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   91.509055] renesas_sdhi_internal_dmac ee100000.sd: debug=768 timeout=3 no_dma=1 real=6 both=0 map=365 unmap=363
[   91.520577] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   91.528313] renesas_sdhi_internal_dmac ee100000.sd: debug=768 timeout=3 no_dma=1 real=6 both=0 map=365 unmap=363
[   91.539817] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   91.547483] renesas_sdhi_internal_dmac ee100000.sd: debug=768 timeout=3 no_dma=1 real=6 both=0 map=365 unmap=363
[   91.559009] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   91.566686] renesas_sdhi_internal_dmac ee100000.sd: debug=768 timeout=3 no_dma=1 real=6 both=0 map=365 unmap=363
[   96.732560] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[   96.803665] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   96.811419] renesas_sdhi_internal_dmac ee100000.sd: debug=1024 timeout=4 no_dma=1 real=12 both=0 map=489 unmap=486
[   96.823096] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   96.830760] renesas_sdhi_internal_dmac ee100000.sd: debug=1024 timeout=4 no_dma=1 real=12 both=0 map=489 unmap=486
[   96.842434] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   96.850097] renesas_sdhi_internal_dmac ee100000.sd: debug=1024 timeout=4 no_dma=1 real=12 both=0 map=489 unmap=486
[   96.861787] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   96.869488] renesas_sdhi_internal_dmac ee100000.sd: debug=1024 timeout=4 no_dma=1 real=12 both=0 map=489 unmap=486
[   96.881278] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[   96.888971] renesas_sdhi_internal_dmac ee100000.sd: debug=1024 timeout=4 no_dma=1 real=12 both=0 map=489 unmap=486
[  102.108592] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  102.207529] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  102.215309] renesas_sdhi_internal_dmac ee100000.sd: debug=1536 timeout=6 no_dma=2 real=12 both=0 map=744 unmap=740
[  102.226986] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  102.234652] renesas_sdhi_internal_dmac ee100000.sd: debug=1536 timeout=6 no_dma=2 real=12 both=0 map=744 unmap=740
[  102.246325] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  102.254052] renesas_sdhi_internal_dmac ee100000.sd: debug=1536 timeout=6 no_dma=2 real=12 both=0 map=744 unmap=740
[  102.265841] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  102.273508] renesas_sdhi_internal_dmac ee100000.sd: debug=1536 timeout=6 no_dma=2 real=12 both=0 map=744 unmap=740
[  102.285259] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  102.292944] renesas_sdhi_internal_dmac ee100000.sd: debug=1536 timeout=6 no_dma=2 real=12 both=0 map=744 unmap=740
--> This means:
 - injected timeout happened 6 times
 -- in this case, dma_on = false was observed 2 times.
 ---> So, leaking unmap happened 4 times.
 - The numbers of "map" and "unmap" also indicated that leaking unmap happened 4 times.

[  107.484619] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)

1024+0 records in
1024+0 records out
8388608 bytes (8.0MB) copied, 21.460091 seconds, 381.7KB/s

[1]+  Done                       dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k
~ # 
~ # 
~ # cat /sys/kernel/debug/dma-api/dump | grep sd | wc
        4        64       612
--> DMA_API_DEBUG debugfs also had "4"

~ # 
~ # 
~ # 
~ # dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k &
~ # [  120.528606] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  120.536283] renesas_sdhi_internal_dmac ee100000.sd: debug=2048 timeout=8 no_dma=3 real=12 both=0 map=999 unmap=994
[  120.547958] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  120.555621] renesas_sdhi_internal_dmac ee100000.sd: debug=2048 timeout=8 no_dma=3 real=12 both=0 map=999 unmap=994
[  120.567294] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  120.574957] renesas_sdhi_internal_dmac ee100000.sd: debug=2048 timeout=8 no_dma=3 real=12 both=0 map=999 unmap=994
[  120.586702] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  120.594375] renesas_sdhi_internal_dmac ee100000.sd: debug=2048 timeout=8 no_dma=3 real=12 both=0 map=999 unmap=994
[  120.606101] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  120.613774] renesas_sdhi_internal_dmac ee100000.sd: debug=2048 timeout=8 no_dma=3 real=12 both=0 map=999 unmap=994
[  125.660558] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  125.743798] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  125.751549] renesas_sdhi_internal_dmac ee100000.sd: debug=2304 timeout=9 no_dma=3 real=18 both=0 map=1123 unmap=1117
[  125.763400] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  125.771067] renesas_sdhi_internal_dmac ee100000.sd: debug=2304 timeout=9 no_dma=3 real=18 both=0 map=1123 unmap=1117
[  125.782985] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  125.790658] renesas_sdhi_internal_dmac ee100000.sd: debug=2304 timeout=9 no_dma=3 real=18 both=0 map=1123 unmap=1117
[  125.802610] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  125.810278] renesas_sdhi_internal_dmac ee100000.sd: debug=2304 timeout=9 no_dma=3 real=18 both=0 map=1123 unmap=1117
[  125.822148] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  125.829825] renesas_sdhi_internal_dmac ee100000.sd: debug=2304 timeout=9 no_dma=3 real=18 both=0 map=1123 unmap=1117
[  131.036560] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  131.176918] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  131.184601] renesas_sdhi_internal_dmac ee100000.sd: debug=2816 timeout=11 no_dma=4 real=18 both=0 map=1377 unmap=1370
[  131.196557] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  131.204385] renesas_sdhi_internal_dmac ee100000.sd: debug=2816 timeout=11 no_dma=4 real=18 both=0 map=1377 unmap=1370
[  131.216491] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  131.224161] renesas_sdhi_internal_dmac ee100000.sd: debug=2816 timeout=11 no_dma=4 real=18 both=0 map=1377 unmap=1370
[  131.236096] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  131.243763] renesas_sdhi_internal_dmac ee100000.sd: debug=2816 timeout=11 no_dma=4 real=18 both=0 map=1377 unmap=1370
[  131.255738] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  131.263446] renesas_sdhi_internal_dmac ee100000.sd: debug=2816 timeout=11 no_dma=4 real=18 both=0 map=1377 unmap=1370
--> 7 times

[  136.412594] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
1024+0 records in
1024+0 records out
8388608 bytes (8.0MB) copied, 15.988695 seconds, 512.4KB/s

[1]+  Done                       dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k
~ # 
~ # 
~ # cat /sys/kernel/debug/dma-api/dump | grep sd | wc 
        7       112      1072
--> 7 times

~ # dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k &
~ # [  153.454690] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  153.462430] renesas_sdhi_internal_dmac ee100000.sd: debug=3328 timeout=13 no_dma=5 real=18 both=0 map=1632 unmap=1624
[  153.474369] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  153.482037] renesas_sdhi_internal_dmac ee100000.sd: debug=3328 timeout=13 no_dma=5 real=18 both=0 map=1632 unmap=1624
[  153.493970] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  153.501635] renesas_sdhi_internal_dmac ee100000.sd: debug=3328 timeout=13 no_dma=5 real=18 both=0 map=1632 unmap=1624
[  153.513586] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  153.521403] renesas_sdhi_internal_dmac ee100000.sd: debug=3328 timeout=13 no_dma=5 real=18 both=0 map=1632 unmap=1624
[  153.533388] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  153.541056] renesas_sdhi_internal_dmac ee100000.sd: debug=3328 timeout=13 no_dma=5 real=18 both=0 map=1632 unmap=1624
[  158.684563] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  158.773970] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  158.781827] renesas_sdhi_internal_dmac ee100000.sd: debug=3584 timeout=14 no_dma=5 real=24 both=0 map=1756 unmap=1747
[  158.793798] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  158.801524] renesas_sdhi_internal_dmac ee100000.sd: debug=3584 timeout=14 no_dma=5 real=24 both=0 map=1756 unmap=1747
[  158.813478] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  158.821146] renesas_sdhi_internal_dmac ee100000.sd: debug=3584 timeout=14 no_dma=5 real=24 both=0 map=1756 unmap=1747
[  158.833090] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  158.840824] renesas_sdhi_internal_dmac ee100000.sd: debug=3584 timeout=14 no_dma=5 real=24 both=0 map=1756 unmap=1747
[  158.852816] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  158.860488] renesas_sdhi_internal_dmac ee100000.sd: debug=3584 timeout=14 no_dma=5 real=24 both=0 map=1756 unmap=1747
[  164.060563] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  164.154898] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  164.162672] renesas_sdhi_internal_dmac ee100000.sd: debug=4096 timeout=16 no_dma=6 real=24 both=0 map=2010 unmap=2000
[  164.174607] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  164.182272] renesas_sdhi_internal_dmac ee100000.sd: debug=4096 timeout=16 no_dma=6 real=24 both=0 map=2010 unmap=2000
[  164.194273] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  164.201950] renesas_sdhi_internal_dmac ee100000.sd: debug=4096 timeout=16 no_dma=6 real=24 both=0 map=2010 unmap=2000
[  164.213979] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  164.221648] renesas_sdhi_internal_dmac ee100000.sd: debug=4096 timeout=16 no_dma=6 real=24 both=0 map=2010 unmap=2000
[  164.233625] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  164.241295] renesas_sdhi_internal_dmac ee100000.sd: debug=4096 timeout=16 no_dma=6 real=24 both=0 map=2010 unmap=2000
[  169.436561] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
[  169.502256] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  169.510040] renesas_sdhi_internal_dmac ee100000.sd: debug=4352 timeout=17 no_dma=6 real=30 both=0 map=2134 unmap=2123
[  169.521978] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  169.529645] renesas_sdhi_internal_dmac ee100000.sd: debug=4352 timeout=17 no_dma=6 real=30 both=0 map=2134 unmap=2123
[  169.541597] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  169.549352] renesas_sdhi_internal_dmac ee100000.sd: debug=4352 timeout=17 no_dma=6 real=30 both=0 map=2134 unmap=2123
[  169.561374] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  169.569137] renesas_sdhi_internal_dmac ee100000.sd: debug=4352 timeout=17 no_dma=6 real=30 both=0 map=2134 unmap=2123
[  169.581142] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for SD bus idle
[  169.588833] renesas_sdhi_internal_dmac ee100000.sd: debug=4352 timeout=17 no_dma=6 real=30 both=0 map=2134 unmap=2123
--> 11 times

[  174.812597] renesas_sdhi_internal_dmac ee100000.sd: timeout waiting for hardware interrupt (CMD13)
1024+0 records in
1024+0 records out
8388608 bytes (8.0MB) copied, 21.521918 seconds, 380.6KB/s

[1]+  Done                       dd if=/dev/mmcblk0 of=/dev/null bs=8k count=1k
~ # 
~ # cat /sys/kernel/debug/dma-api/dump | grep sd | wc
       11       176      1688
--> 11 times

Best regards,
Yoshihiro Shimoda





[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux