mmc: mmc-hsq: Use fifo to dispatch mmc_request
authorMichael Wu <michael@allwinnertech.com>
Mon, 28 Nov 2022 09:38:47 +0000 (17:38 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 7 Dec 2022 12:29:14 +0000 (13:29 +0100)
commite026a3f9172f5c9aacff270b929a166c3ea1b6f7
tree582520afcf2068ac328f1440be595224aede1d9f
parent4f431a047a5c8698ed4b67e2760cfbeb5fffb69d
mmc: mmc-hsq: Use fifo to dispatch mmc_request

Current next_tag selection will cause a large delay in some requests and
destroy the scheduling results of the block scheduling layer. Because the
issued mrq tags cannot ensure that each time is sequential, especially when
the IO load is heavy. In the fio performance test, we found that 4k random
read data was sent to mmc_hsq to start calling request_atomic It takes
nearly 200ms to process the request, while mmc_hsq has processed thousands
of other requests. So we use fifo here to ensure the first in, first out
feature of the request and avoid adding additional delay to the request.

Reviewed-by: Wenchao Chen <wenchao.chen@unisoc.com>
Signed-off-by: Michael Wu <michael@allwinnertech.com>
Link: https://lore.kernel.org/r/20221128093847.22768-1-michael@allwinnertech.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mmc_hsq.c
drivers/mmc/host/mmc_hsq.h