RE: [PATCH] mmc: renesas_sdhi: increase suspend/resume latency limit

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

 



Hi Ulrich-san again,

> From: Yoshihiro Shimoda, Sent: Tuesday, August 3, 2021 8:17 PM
> 
> So, I'll test this patch with my test environment tomorrow.

Unfortunately, this patch failed on mmc_test driver.
I'm not sure, but perhaps we have a potential issue on runtime PM with SDHI driver?

< My environment >
- H3 ES3.0 Salvator-XS
- kernel v5.14-rc2
- buildroot v2020.02.10

< How to test >
# mount -t debugfs none /sys/kernel/debug
# ./bind.sh mmc0:0001
# ./test.sh mmc0 mmc0;0001 38 38
# ./test.sh mmc0 mmc0;0001 38 38

CAUTION: The mmc_test driver will overwrite any data of the device..

< Results >
- When I tested on an eMMC, the issue happened.
-- But, when I tested on a sd card, the issue didn't happen.

- The mmc_test failed after test case 38.
-- After that, I could not recover the device even if I issued test case 45(Reset).
-- Once the test case 38 was OK, but after that, any test case failed.

- When I changed the latency value via sysfs as 100, the issue didn't happen.
# echo 100 > /sys/devices/platform/soc/ee140000.mmc/power/pm_qos_resume_latency_us

< Issue >
# ./test.sh mmc0 mmc0:0001 38 38
[   90.688971] mmc0: Starting tests of card mmc0:0001...
[   90.718703] mmc0: Test case 38. Write performance with non-blocking req 4k to 4MB...
[   90.762127] [mmc_test_rw_multiple] error
[   90.770964] mmc0: Result: ERROR (-84)
[   90.779551] mmc0: Tests completed.

< My scripts >
--- bind.sh ---
#!/bin/sh
if [ $# -ne 2 ]; then
	echo "[dev] [bind or unbind]"
	echo "dev list (for bind)"
	ls -la /sys/bus/mmc/drivers/mmcblk
	echo "dev list (for unbind)"
	ls -la /sys/bus/mmc/drivers/mmc_test
	exit
fi

if [ $2 = "bind" ]; then
	echo $1 > /sys/bus/mmc/drivers/mmcblk/unbind
	echo $1 > /sys/bus/mmc/drivers/mmc_test/bind
elif [ $2 = "unbind" ]; then
	echo $1 > /sys/bus/mmc/drivers/mmc_test/unbind
	echo $1 > /sys/bus/mmc/drivers/mmcblk/bind
fi
---------------

--- test.sh ---
#!/bin/sh

if [ $# -ne 4 ]; then
	echo "[dev base] [dev] [start] [end]"
	if [ $# -eq 2 ]; then
		echo "testlist"
		cat /sys/kernel/debug/$1/$2/testlist
	fi
	exit
fi

dev_base=$1
dev=$2
start=$3
end=$4

i=$start
while [ $i -le $end ] ; do
	echo $i > /sys/kernel/debug/$dev_base/$dev/test
	sleep 1
	i=`expr $i + 1`
done
---------------

Best regards,
Yoshihiro Shimoda





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux