Re: [PATCH V4 00/11] mmc: Add Command Queue support

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

 



Hi

On 2017/7/24 18:09, Adrian Hunter wrote:
On 24/07/17 12:17, Shawn Lin wrote:
Hi Adrian,

On 2017/7/21 17:49, Adrian Hunter wrote:
Hi

Here is V4 of the hardware command queue patches without the software
command queue patches.


I see this log for the reboot test last weekend. One of my boards
seems to easily trigger this WARN_ONCE.

[   10.012778] mmc1: cqhci: spurious TCN for tag 31

Tag 31 is DCMD.  DCMD can be problematic which is one of the reasons it is
optional.  In this case it looks like you are getting a TCN before the DCMD
is actually finished.  You should be able to see if that is the case by

yes, it is that case you refer to.

dumping the registers when it happens, although you will need to stop
messages going to the console because that will be too slow.

okay, I will remove DCMD caps for the test and see what we could
do to make DCMD more robust later.


[   10.013332] ------------[ cut here ]------------
[   10.013779] WARNING: CPU: 0 PID: 2596 at drivers/mmc/host/cqhci.c:721
cqhci_irq+0x2cc/0x42c
[   10.014520] Modules linked in:
[   10.014837] CPU: 0 PID: 2596 Comm: sed Not tainted
4.13.0-rc1-next-20170720-00012-g9d9bf45 #33
[   10.015595] Hardware name: Firefly-RK3399 Board (DT)
[   10.016043] task: ffff80007b510000 task.stack: ffff80007a160000
[   10.016575] PC is at cqhci_irq+0x2cc/0x42c
[   10.016946] LR is at cqhci_irq+0x2cc/0x42c
[   10.017321] pc : [<ffff0000087f7c3c>] lr : [<ffff0000087f7c3c>] pstate:
600001c5
[   10.017974] sp : ffff80007ef11db0
[   10.018275] x29: ffff80007ef11db0 x28: 0000000000000001
[   10.018759] x27: ffff80007ba7d600 x26: 0000000000000001
[   10.019242] x25: ffff000008d279a8 x24: ffff80007b8f4130
[   10.019725] x23: ffff000008fb0d00 x22: 0000000000000002
[   10.020208] x21: ffff80007ba7d000 x20: ffff80007b8f4118
[   10.020690] x19: 000000000000001f x18: 0000000000000000
[   10.021172] x17: 0000000000000000 x16: 0000000000000000
[   10.021654] x15: 0000000000000000 x14: 00000000f7b60065
[   10.022138] x13: 00000000ffc54040 x12: 0000000000000000
[   10.022624] x11: 000000000000081b x10: 0000000000000006
[   10.023105] x9 : 000000000000081c x8 : ffff00000853de20
[   10.023587] x7 : ffff000008ec9df8 x6 : ffff00000900651b
[   10.024070] x5 : 0000000000000000 x4 : 0000000000000000
[   10.024553] x3 : 0000000000000000 x2 : ffff80007ef19970
[   10.025035] x1 : ffff80007b510000 x0 : 0000000000000024
[   10.025519] Call trace:
[   10.025761] Exception stack(0xffff80007ef11be0 to 0xffff80007ef11d10)
[   10.026342] 1be0: 000000000000001f 0001000000000000 ffff80007ef11db0
ffff0000087f7c3c
[   10.027040] 1c00: ffff000008d279a8 0000000000000001 ffff80007ba7d600
0000000000000001
[   10.027738] 1c20: 0000000000000002 0000000000000000 ffff80007ef11db0
ffff80007ef11db0
[   10.028437] 1c40: ffff80007ef11d70 00000000ffffffc8 ffff80007ef11c80
ffff00000810f980
[   10.029135] 1c60: ffff80007ef11db0 ffff80007ef11db0 ffff80007ef11d70
00000000ffffffc8
[   10.029833] 1c80: 0000000000000024 ffff80007b510000 ffff80007ef19970
0000000000000000
[   10.030533] 1ca0: 0000000000000000 0000000000000000 ffff00000900651b
ffff000008ec9df8
[   10.031230] 1cc0: ffff00000853de20 000000000000081c 0000000000000006
000000000000081b
[   10.031928] 1ce0: 0000000000000000 00000000ffc54040 00000000f7b60065
0000000000000000
[   10.032624] 1d00: 0000000000000000 0000000000000000
[   10.033068] [<ffff0000087f7c3c>] cqhci_irq+0x2cc/0x42c
[   10.033541] [<ffff0000087f2c90>] sdhci_arasan_cqhci_irq+0x44/0x58
[   10.034092] [<ffff0000087dec28>] sdhci_irq+0xb0/0xb74
[   10.034554] [<ffff00000811096c>] __handle_irq_event_percpu+0xa0/0x128
[   10.035133] [<ffff000008110a10>] handle_irq_event_percpu+0x1c/0x54
[   10.035687] [<ffff000008110a8c>] handle_irq_event+0x44/0x74
[   10.036192] [<ffff000008114040>] handle_fasteoi_irq+0x9c/0x154
[   10.036717] [<ffff00000810fa7c>] generic_handle_irq+0x24/0x38
[   10.037234] [<ffff0000081100fc>] __handle_domain_irq+0x60/0xac
[   10.037759] [<ffff00000808173c>] gic_handle_irq+0xd4/0x17c


Changes since V3:
     Adjusted ...blk_end_request...() for new block status codes
     Fixed CQHCI transaction descriptor for "no DCMD" case

Changes since V2:
     Dropped patches that have been applied.
     Re-based
     Added "mmc: sdhci-pci: Add CQHCI support for Intel GLK"

Changes since V1:

     "Share mmc request array between partitions" is dependent
     on changes in "Introduce queue semantics", so added that
     and block fixes:

     Added "Fix is_waiting_last_req set incorrectly"
     Added "Fix cmd error reset failure path"
     Added "Use local var for mqrq_cur"
     Added "Introduce queue semantics"

Changes since RFC:

     Re-based on next.
     Added comment about command queue priority.
     Added some acks and reviews.


Adrian Hunter (10):
        mmc: core: Add mmc_retune_hold_now()
        mmc: core: Add members to mmc_request and mmc_data for CQE's
        mmc: host: Add CQE interface
        mmc: core: Turn off CQE before sending commands
        mmc: core: Add support for handling CQE requests
        mmc: mmc: Enable Command Queuing
        mmc: mmc: Enable CQE's
        mmc: block: Prepare CQE data
        mmc: block: Add CQE support
        mmc: sdhci-pci: Add CQHCI support for Intel GLK

Venkat Gopalakrishnan (1):
        mmc: cqhci: support for command queue enabled host

   drivers/mmc/core/block.c          |  240 +++++++-
   drivers/mmc/core/block.h          |    7 +
   drivers/mmc/core/bus.c            |    7 +
   drivers/mmc/core/core.c           |  156 ++++-
   drivers/mmc/core/host.c           |    6 +
   drivers/mmc/core/host.h           |    1 +
   drivers/mmc/core/mmc.c            |   30 +-
   drivers/mmc/core/queue.c          |  273 ++++++++-
   drivers/mmc/core/queue.h          |   42 +-
   drivers/mmc/host/Kconfig          |   14 +
   drivers/mmc/host/Makefile         |    1 +
   drivers/mmc/host/cqhci.c          | 1146
+++++++++++++++++++++++++++++++++++++
   drivers/mmc/host/cqhci.h          |  240 ++++++++
   drivers/mmc/host/sdhci-pci-core.c |  153 ++++-
   include/linux/mmc/core.h          |   18 +-
   include/linux/mmc/host.h          |   24 +
   include/trace/events/mmc.h        |   36 +-
   17 files changed, 2354 insertions(+), 40 deletions(-)
   create mode 100644 drivers/mmc/host/cqhci.c
   create mode 100644 drivers/mmc/host/cqhci.h


Regards
Adrian










--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux